From d031166fecac97fc6b5c35636deace8a3c9ec5f6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 7 Nov 2005 14:38:44 +0100 Subject: [ALSA] hda-codec - Allocate amp hash array dynamically Modules: HDA Codec driver Allocate amp hash array dynamically instead of static array. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 22 +++++++++++++++++++--- sound/pci/hda/hda_codec.h | 3 ++- 2 files changed, 21 insertions(+), 4 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 0dbeeaf6113..e7fb182f90e 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -465,6 +465,7 @@ static void snd_hda_codec_free(struct hda_codec *codec) codec->bus->caddr_tbl[codec->addr] = NULL; if (codec->patch_ops.free) codec->patch_ops.free(codec); + kfree(codec->amp_info); kfree(codec); } @@ -586,6 +587,8 @@ static void init_amp_hash(struct hda_codec *codec) { memset(codec->amp_hash, 0xff, sizeof(codec->amp_hash)); codec->num_amp_entries = 0; + codec->amp_info_size = 0; + codec->amp_info = NULL; } /* query the hash. allocate an entry if not found. */ @@ -603,9 +606,22 @@ static struct hda_amp_info *get_alloc_amp_hash(struct hda_codec *codec, u32 key) } /* add a new hash entry */ - if (codec->num_amp_entries >= ARRAY_SIZE(codec->amp_info)) { - snd_printk(KERN_ERR "hda_codec: Tooooo many amps!\n"); - return NULL; + if (codec->num_amp_entries >= codec->amp_info_size) { + /* reallocate the array */ + int new_size = codec->amp_info_size + 64; + struct hda_amp_info *new_info = kcalloc(new_size, sizeof(struct hda_amp_info), + GFP_KERNEL); + if (! new_info) { + snd_printk(KERN_ERR "hda_codec: can't malloc amp_info\n"); + return NULL; + } + if (codec->amp_info) { + memcpy(new_info, codec->amp_info, + codec->amp_info_size * sizeof(struct hda_amp_info)); + kfree(codec->amp_info); + } + codec->amp_info_size = new_size; + codec->amp_info = new_info; } cur = codec->num_amp_entries++; info = &codec->amp_info[cur]; diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index 1179d6cfa82..b0123adc569 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h @@ -545,7 +545,8 @@ struct hda_codec { /* hash for amp access */ u16 amp_hash[32]; int num_amp_entries; - struct hda_amp_info amp_info[128]; /* big enough? */ + int amp_info_size; + struct hda_amp_info *amp_info; struct semaphore spdif_mutex; unsigned int spdif_status; /* IEC958 status bits */ -- cgit v1.2.3-70-g09d2 From 362775e2125b74cd04f83fd4ef5b72ef1ee6d3a1 Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Mon, 7 Nov 2005 14:43:23 +0100 Subject: [ALSA] sound/hda: rate-limit timeout message Modules: HDA Intel driver Rate-limit the azx_get_response timeout message. A continuous 2 per second is too much. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_intel.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index ed525c03c99..429ef3810b1 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -514,7 +515,9 @@ static unsigned int azx_get_response(struct hda_codec *codec) while (chip->rirb.cmds) { if (! --timeout) { - snd_printk(KERN_ERR "azx_get_response timeout\n"); + if (printk_ratelimit()) + snd_printk(KERN_ERR + "azx_get_response timeout\n"); chip->rirb.rp = azx_readb(chip, RIRBWP); chip->rirb.cmds = 0; return -1; -- cgit v1.2.3-70-g09d2 From 2f020aa71197eddef749ad6202ca5a66c0c6e382 Mon Sep 17 00:00:00 2001 From: Lee Revell Date: Mon, 7 Nov 2005 14:54:24 +0100 Subject: [ALSA] emu10k1 - Enable side surround channels for Audigy2 EX Modules: EMU10K1/EMU10K2 driver Enable side surround channels for Audigy2 EX. Tested by Rick Wright . Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/emu10k1_main.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 53aeff0b783..0a22f40a100 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -714,6 +714,7 @@ static emu_chip_details_t emu_chip_details[] = { .emu10k2_chip = 1, .ca0102_chip = 1, .ca0151_chip = 1, + .spk71 = 1, .spdif_bug = 1} , {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x10021102, .driver = "Audigy2", .name = "Audigy 2 Platinum [SB0240P]", -- cgit v1.2.3-70-g09d2 From f6f8bb642350dafc21676ccd4fab333282064b8d Mon Sep 17 00:00:00 2001 From: Lee Revell Date: Mon, 7 Nov 2005 14:59:19 +0100 Subject: [ALSA] Add support for Audigy 2 subsystem 2006 Modules: EMU10K1/EMU10K2 driver Add support for Audigy 2 subsystem 2006. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/emu10k1_main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 0a22f40a100..541aad6c712 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -681,6 +681,16 @@ static emu_chip_details_t emu_chip_details[] = { .spk71 = 1, .spdif_bug = 1, .ac97_chip = 1} , + /* Tested by shane-alsa@cm.nu 5th Nov 2005 */ + {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20061102, + .driver = "Audigy2", .name = "Audigy 2 [2006]", + .id = "Audigy2", + .emu10k2_chip = 1, + .ca0102_chip = 1, + .ca0151_chip = 1, + .spk71 = 1, + .spdif_bug = 1, + .ac97_chip = 1} , {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20021102, .driver = "Audigy2", .name = "Audigy 2 ZS [SB0350]", .id = "Audigy2", -- cgit v1.2.3-70-g09d2 From c1b8f5f0e4aabd4b47648dd9465fb750e07da9fb Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 8 Nov 2005 17:44:37 +0100 Subject: [ALSA] via82xx - Add dxs entry for MSI KT800 Delta-FSR Modules: VIA82xx driver Added the dxs entry for MSI KT800 Delta-FSR. Signed-off-by: Takashi Iwai --- sound/pci/via82xx.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sound/pci') diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index fad2a2413bf..f0d8c7f24f2 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2307,6 +2307,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) { .subvendor = 0x1458, .subdevice = 0xa002, .action = VIA_DXS_ENABLE }, /* Gigabyte GA-7VAXP */ { .subvendor = 0x1462, .subdevice = 0x0080, .action = VIA_DXS_SRC }, /* MSI K8T Neo-FIS2R */ { .subvendor = 0x1462, .subdevice = 0x0430, .action = VIA_DXS_SRC }, /* MSI 7142 (K8MM-V) */ + { .subvendor = 0x1462, .subdevice = 0x0470, .action = VIA_DXS_SRC }, /* MSI KT880 Delta-FSR */ { .subvendor = 0x1462, .subdevice = 0x3800, .action = VIA_DXS_ENABLE }, /* MSI KT266 */ { .subvendor = 0x1462, .subdevice = 0x5901, .action = VIA_DXS_NO_VRA }, /* MSI KT6 Delta-SR */ { .subvendor = 0x1462, .subdevice = 0x7023, .action = VIA_DXS_NO_VRA }, /* MSI K8T Neo2-FI */ -- cgit v1.2.3-70-g09d2 From fd6715e564a53bc3fca22e4f0a9d76b6b72afdb5 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 10 Nov 2005 07:51:31 +0100 Subject: [ALSA] ice1724 (juli) - forced analog doughter board detection Modules: ICE1712 driver Signed-off-by: Jaroslav Kysela --- sound/pci/ice1712/juli.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/ice1712/juli.c b/sound/pci/ice1712/juli.c index 2437876a44e..a5e04a3136b 100644 --- a/sound/pci/ice1712/juli.c +++ b/sound/pci/ice1712/juli.c @@ -175,7 +175,14 @@ static int __devinit juli_init(ice1712_t *ice) if (err < 0) return err; - ice->spec.juli.analog = ice->gpio.get_data(ice) & GPIO_ANALOG_PRESENT; +#if 0 + /* it seems that the analog doughter board detection does not work + reliably, so force the analog flag; it should be very rare + to use Juli@ without the analog doughter board */ + ice->spec.juli.analog = (ice->gpio.get_data(ice) & GPIO_ANALOG_PRESENT) ? 0 : 1; +#else + ice->spec.juli.analog = 1; +#endif if (ice->spec.juli.analog) { printk(KERN_INFO "juli@: analog I/O detected\n"); -- cgit v1.2.3-70-g09d2 From 755e137138007200c3e2549fbd8390a4e7708ed9 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 11 Nov 2005 21:05:27 +0100 Subject: [ALSA] ali5451 - Fix and clean up codec accessor Modules: ALI5451 driver Fix the codec accessors to avoid soft lockup. Spin locks are revised, too. Signed-off-by: Takashi Iwai --- sound/pci/ali5451/ali5451.c | 89 ++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 53 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index feffbe73387..21be4c26ebc 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -387,26 +387,24 @@ static inline void snd_ali_5451_poke( ali_t *codec, } static int snd_ali_codec_ready( ali_t *codec, - unsigned int port, - int sched ) + unsigned int port ) { unsigned long end_time; unsigned int res; - end_time = jiffies + 10 * msecs_to_jiffies(250); + end_time = jiffies + msecs_to_jiffies(250); do { res = snd_ali_5451_peek(codec,port); if (! (res & 0x8000)) return 0; - if (sched) - schedule_timeout_uninterruptible(1); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); snd_ali_5451_poke(codec, port, res & ~0x8000); snd_printdd("ali_codec_ready: codec is not ready.\n "); return -EIO; } -static int snd_ali_stimer_ready(ali_t *codec, int sched) +static int snd_ali_stimer_ready(ali_t *codec) { unsigned long end_time; unsigned long dwChk1,dwChk2; @@ -414,13 +412,12 @@ static int snd_ali_stimer_ready(ali_t *codec, int sched) dwChk1 = snd_ali_5451_peek(codec, ALI_STIMER); dwChk2 = snd_ali_5451_peek(codec, ALI_STIMER); - end_time = jiffies + 10 * msecs_to_jiffies(250); + end_time = jiffies + msecs_to_jiffies(250); do { dwChk2 = snd_ali_5451_peek(codec, ALI_STIMER); if (dwChk2 != dwChk1) return 0; - if (sched) - schedule_timeout_uninterruptible(1); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); snd_printk(KERN_ERR "ali_stimer_read: stimer is not ready.\n"); return -EIO; @@ -440,9 +437,9 @@ static void snd_ali_codec_poke(ali_t *codec,int secondary, port = codec->chregs.regs.ac97write; - if (snd_ali_codec_ready(codec, port, 0) < 0) + if (snd_ali_codec_ready(codec, port) < 0) return; - if (snd_ali_stimer_ready(codec, 0) < 0) + if (snd_ali_stimer_ready(codec) < 0) return; dwVal = (unsigned int) (reg & 0xff); @@ -469,9 +466,9 @@ static unsigned short snd_ali_codec_peek( ali_t *codec, port = codec->chregs.regs.ac97read; - if (snd_ali_codec_ready(codec, port, 0) < 0) + if (snd_ali_codec_ready(codec, port) < 0) return ~0; - if (snd_ali_stimer_ready(codec, 0) < 0) + if (snd_ali_stimer_ready(codec) < 0) return ~0; dwVal = (unsigned int) (reg & 0xff); @@ -480,9 +477,9 @@ static unsigned short snd_ali_codec_peek( ali_t *codec, snd_ali_5451_poke(codec, port, dwVal); - if (snd_ali_stimer_ready(codec, 0) < 0) + if (snd_ali_stimer_ready(codec) < 0) return ~0; - if (snd_ali_codec_ready(codec, port, 0) < 0) + if (snd_ali_codec_ready(codec, port) < 0) return ~0; return (snd_ali_5451_peek(codec, port) & 0xffff0000)>>16; @@ -770,7 +767,7 @@ static void snd_ali_delay(ali_t *codec,int interval) currenttimer = inl(ALI_REG(codec, ALI_STIMER)); while (currenttimer < begintimer + interval) { - if(snd_ali_stimer_ready(codec, 1) < 0) + if(snd_ali_stimer_ready(codec) < 0) break; currenttimer = inl(ALI_REG(codec, ALI_STIMER)); } @@ -1065,35 +1062,34 @@ static irqreturn_t snd_ali_card_interrupt(int irq, static snd_ali_voice_t *snd_ali_alloc_voice(ali_t * codec, int type, int rec, int channel) { snd_ali_voice_t *pvoice = NULL; - unsigned long flags; int idx; snd_ali_printk("alloc_voice: type=%d rec=%d\n",type,rec); - spin_lock_irqsave(&codec->voice_alloc, flags); + spin_lock_irq(&codec->voice_alloc); if (type == SNDRV_ALI_VOICE_TYPE_PCM) { idx = channel > 0 ? snd_ali_alloc_pcm_channel(codec, channel) : snd_ali_find_free_channel(codec,rec); if(idx < 0) { snd_printk(KERN_ERR "ali_alloc_voice: err.\n"); - spin_unlock_irqrestore(&codec->voice_alloc, flags); + spin_unlock_irq(&codec->voice_alloc); return NULL; } pvoice = &(codec->synth.voices[idx]); + pvoice->codec = codec; pvoice->use = 1; pvoice->pcm = 1; pvoice->mode = rec; - spin_unlock_irqrestore(&codec->voice_alloc, flags); + spin_unlock_irq(&codec->voice_alloc); return pvoice; } - spin_unlock_irqrestore(&codec->voice_alloc, flags); + spin_unlock_irq(&codec->voice_alloc); return NULL; } static void snd_ali_free_voice(ali_t * codec, snd_ali_voice_t *pvoice) { - unsigned long flags; void (*private_free)(void *); void *private_data; @@ -1101,7 +1097,7 @@ static void snd_ali_free_voice(ali_t * codec, snd_ali_voice_t *pvoice) if (pvoice == NULL || !pvoice->use) return; snd_ali_clear_voices(codec, pvoice->number, pvoice->number); - spin_lock_irqsave(&codec->voice_alloc, flags); + spin_lock_irq(&codec->voice_alloc); private_free = pvoice->private_free; private_data = pvoice->private_data; pvoice->private_free = NULL; @@ -1111,7 +1107,7 @@ static void snd_ali_free_voice(ali_t * codec, snd_ali_voice_t *pvoice) } pvoice->use = pvoice->pcm = pvoice->synth = 0; pvoice->substream = NULL; - spin_unlock_irqrestore(&codec->voice_alloc, flags); + spin_unlock_irq(&codec->voice_alloc); if (private_free) private_free(private_data); } @@ -1357,7 +1353,6 @@ static int snd_ali_playback_prepare(snd_pcm_substream_t * substream) snd_pcm_runtime_t *runtime = substream->runtime; snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; snd_ali_voice_t *evoice = pvoice->extra; - unsigned long flags; unsigned int LBA; unsigned int Delta; @@ -1370,7 +1365,7 @@ static int snd_ali_playback_prepare(snd_pcm_substream_t * substream) snd_ali_printk("playback_prepare ...\n"); - spin_lock_irqsave(&codec->reg_lock, flags); + spin_lock_irq(&codec->reg_lock); /* set Delta (rate) value */ Delta = snd_ali_convert_rate(runtime->rate, 0); @@ -1435,7 +1430,7 @@ static int snd_ali_playback_prepare(snd_pcm_substream_t * substream) CTRL, EC); } - spin_unlock_irqrestore(&codec->reg_lock, flags); + spin_unlock_irq(&codec->reg_lock); return 0; } @@ -1445,7 +1440,6 @@ static int snd_ali_prepare(snd_pcm_substream_t * substream) ali_t *codec = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; - unsigned long flags; unsigned int LBA; unsigned int Delta; unsigned int ESO; @@ -1456,7 +1450,7 @@ static int snd_ali_prepare(snd_pcm_substream_t * substream) unsigned int EC; u8 bValue; - spin_lock_irqsave(&codec->reg_lock, flags); + spin_lock_irq(&codec->reg_lock); snd_ali_printk("ali_prepare...\n"); @@ -1471,15 +1465,16 @@ static int snd_ali_prepare(snd_pcm_substream_t * substream) unsigned int rate; - if (codec->revision != ALI_5451_V02) { - spin_unlock_irqrestore(&codec->reg_lock, flags); + spin_unlock_irq(&codec->reg_lock); + if (codec->revision != ALI_5451_V02) return -1; - } + rate = snd_ali_get_spdif_in_rate(codec); if (rate == 0) { snd_printk(KERN_WARNING "ali_capture_preapre: spdif rate detect err!\n"); rate = 48000; } + spin_lock_irq(&codec->reg_lock); bValue = inb(ALI_REG(codec,ALI_SPDIF_CTRL)); if (bValue & 0x10) { outb(bValue,ALI_REG(codec,ALI_SPDIF_CTRL)); @@ -1521,7 +1516,7 @@ static int snd_ali_prepare(snd_pcm_substream_t * substream) EC); - spin_unlock_irqrestore(&codec->reg_lock, flags); + spin_unlock_irq(&codec->reg_lock); return 0; } @@ -1554,16 +1549,15 @@ static snd_pcm_uframes_t snd_ali_pointer(snd_pcm_substream_t *substream) snd_pcm_runtime_t *runtime = substream->runtime; snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; unsigned int cso; - unsigned long flags; - spin_lock_irqsave(&codec->reg_lock, flags); + spin_lock(&codec->reg_lock); if (!pvoice->running) { - spin_unlock_irqrestore(&codec->reg_lock, flags); + spin_unlock_irq(&codec->reg_lock); return 0; } outb(pvoice->number, ALI_REG(codec, ALI_GC_CIR)); cso = inw(ALI_REG(codec, ALI_CSO_ALPHA_FMS + 2)); - spin_unlock_irqrestore(&codec->reg_lock, flags); + spin_unlock(&codec->reg_lock); return cso; } @@ -1618,15 +1612,12 @@ static snd_pcm_hardware_t snd_ali_capture = static void snd_ali_pcm_free_substream(snd_pcm_runtime_t *runtime) { - unsigned long flags; snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; ali_t *codec; if (pvoice) { codec = pvoice->codec; - spin_lock_irqsave(&codec->reg_lock, flags); snd_ali_free_voice(pvoice->codec, pvoice); - spin_unlock_irqrestore(&codec->reg_lock, flags); } } @@ -1636,16 +1627,10 @@ static int snd_ali_open(snd_pcm_substream_t * substream, int rec, int channel, ali_t *codec = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; snd_ali_voice_t *pvoice; - unsigned long flags = 0; - spin_lock_irqsave(&codec->reg_lock, flags); pvoice = snd_ali_alloc_voice(codec, SNDRV_ALI_VOICE_TYPE_PCM, rec, channel); - if (pvoice == NULL) { - spin_unlock_irqrestore(&codec->reg_lock, flags); + if (pvoice == NULL) return -EAGAIN; - } - pvoice->codec = codec; - spin_unlock_irqrestore(&codec->reg_lock, flags); pvoice->substream = substream; runtime->private_data = pvoice; @@ -1864,13 +1849,12 @@ static int snd_ali5451_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t static int snd_ali5451_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) { - unsigned long flags; ali_t *codec = kcontrol->private_data; unsigned int enable; enable = ucontrol->value.integer.value[0] ? 1 : 0; - spin_lock_irqsave(&codec->reg_lock, flags); + spin_lock_irq(&codec->reg_lock); switch(kcontrol->private_value) { case 0: enable = (codec->spdif_mask & 0x02) ? 1 : 0; @@ -1885,19 +1869,18 @@ static int snd_ali5451_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t break; } ucontrol->value.integer.value[0] = enable; - spin_unlock_irqrestore(&codec->reg_lock, flags); + spin_unlock_irq(&codec->reg_lock); return 0; } static int snd_ali5451_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) { - unsigned long flags; ali_t *codec = kcontrol->private_data; unsigned int change = 0, enable = 0; enable = ucontrol->value.integer.value[0] ? 1 : 0; - spin_lock_irqsave(&codec->reg_lock, flags); + spin_lock_irq(&codec->reg_lock); switch (kcontrol->private_value) { case 0: change = (codec->spdif_mask & 0x02) ? 1 : 0; @@ -1942,7 +1925,7 @@ static int snd_ali5451_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t default: break; } - spin_unlock_irqrestore(&codec->reg_lock, flags); + spin_unlock_irq(&codec->reg_lock); return change; } -- cgit v1.2.3-70-g09d2 From e2b15f8f7dfc7a60ab89162502732120792a644f Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Fri, 11 Nov 2005 23:39:05 +0100 Subject: [ALSA] snd-emu10k1: Attenuate output volume to reduce distortion Modules: EMU10K1/EMU10K2 driver on Audigy 2 ZS Notebook. Set the master volume to about 6 or 8% in alsamixer. This will attenuate the output enough for better sound quality. Note: Only stereo enabled at present. The distortion is caused by the output path after the DSP adding 12dB gain to the output while still in digital mode, resulting in wrap around distortion. Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emu10k1_main.c | 2 ++ sound/pci/emu10k1/tina2.h | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 sound/pci/emu10k1/tina2.h (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 541aad6c712..2d1ebe8c6b4 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -40,6 +40,7 @@ #include #include #include "p16v.h" +#include "tina2.h" #if 0 MODULE_AUTHOR("Jaroslav Kysela , Creative Labs, Inc."); @@ -600,6 +601,7 @@ static int __devinit snd_emu10k1_cardbus_init(emu10k1_t * emu) outl(0x0090007f, special_port); value = inl(special_port); + snd_emu10k1_ptr20_write(emu, TINA2_VOLUME, 0, 0xfefefefe); /* Defaults to 0x30303030 */ return 0; } diff --git a/sound/pci/emu10k1/tina2.h b/sound/pci/emu10k1/tina2.h new file mode 100644 index 00000000000..5c43abf03e8 --- /dev/null +++ b/sound/pci/emu10k1/tina2.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) by James Courtier-Dutton + * Driver p16v chips + * Version: 0.21 + * + * + * This code was initally based on code from ALSA's emu10k1x.c which is: + * Copyright (c) by Francisco Moraes + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/********************************************************************************************************/ +/* Audigy2 Tina2 (notebook) pointer-offset register set, accessed through the PTR2 and DATA2 registers */ +/********************************************************************************************************/ + +#define TINA2_VOLUME 0x71 /* Attenuate playback volume to prevent distortion. */ + /* The windows driver does not use this register, + * so it must use some other attenuation method. + * Without this, the output is 12dB too loud, + * resulting in distortion. + */ + -- cgit v1.2.3-70-g09d2 From 6ef7e8614c03f90ecb924938f5cc074af2723d35 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Fri, 11 Nov 2005 23:45:23 +0100 Subject: [ALSA] snd-emu10k1: Found some new registers to display in debug mode. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emuproc.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emuproc.c b/sound/pci/emu10k1/emuproc.c index cc22707c91f..6cdee588d35 100644 --- a/sound/pci/emu10k1/emuproc.c +++ b/sound/pci/emu10k1/emuproc.c @@ -445,7 +445,7 @@ static void snd_emu_proc_ptr_reg_read(snd_info_entry_t *entry, emu10k1_t *emu = entry->private_data; unsigned long value; int i,j; - if (offset+length > 0x80) { + if (offset+length > 0xa0) { snd_iprintf(buffer, "Input values out of range\n"); return; } @@ -472,7 +472,7 @@ static void snd_emu_proc_ptr_reg_write(snd_info_entry_t *entry, while (!snd_info_get_line(buffer, line, sizeof(line))) { if (sscanf(line, "%x %x %x", ®, &channel_id, &val) != 3) continue; - if ((reg < 0x80) && (reg >=0) && (val <= 0xffffffff) && (channel_id >=0) && (channel_id <= 3) ) + if ((reg < 0xa0) && (reg >=0) && (val <= 0xffffffff) && (channel_id >=0) && (channel_id <= 3) ) snd_ptr_write(emu, iobase, reg, channel_id, val); } } @@ -513,6 +513,12 @@ static void snd_emu_proc_ptr_reg_read20b(snd_info_entry_t *entry, { snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x40, 0x40, 4); } + +static void snd_emu_proc_ptr_reg_read20c(snd_info_entry_t *entry, + snd_info_buffer_t * buffer) +{ + snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x80, 0x20, 4); +} #endif static struct snd_info_entry_ops snd_emu10k1_proc_ops_fx8010 = { @@ -553,6 +559,12 @@ int __devinit snd_emu10k1_proc_init(emu10k1_t * emu) entry->c.text.write = snd_emu_proc_ptr_reg_write20; entry->mode |= S_IWUSR; } + if (! snd_card_proc_new(emu->card, "ptr_regs20c", &entry)) { + snd_info_set_text_ops(entry, emu, 65536, snd_emu_proc_ptr_reg_read20c); + entry->c.text.write_size = 64; + entry->c.text.write = snd_emu_proc_ptr_reg_write20; + entry->mode |= S_IWUSR; + } #endif if (! snd_card_proc_new(emu->card, "emu10k1", &entry)) -- cgit v1.2.3-70-g09d2 From b4a621f547ce78d6a415b3be2febd29b55e3235c Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 14 Nov 2005 08:48:59 +0100 Subject: [ALSA] ac97 - procfs - print PCI subsystem vendor/device values Modules: AC97 Codec For debugging and problem finding purposes, show also the PCI subsystem vendor/device values in the ac97#X proc file. Signed-off-by: Jaroslav Kysela --- sound/pci/ac97/ac97_proc.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/ac97/ac97_proc.c b/sound/pci/ac97/ac97_proc.c index a040b2666ed..f4333b867bd 100644 --- a/sound/pci/ac97/ac97_proc.c +++ b/sound/pci/ac97/ac97_proc.c @@ -79,9 +79,16 @@ static void snd_ac97_proc_read_main(ac97_t *ac97, snd_info_buffer_t * buffer, in snd_ac97_get_name(NULL, ac97->id, name, 0); snd_iprintf(buffer, "%d-%d/%d: %s\n\n", ac97->addr, ac97->num, subidx, name); + + if ((ac97->scaps & AC97_SCAP_AUDIO) == 0) goto __modem; + snd_iprintf(buffer, "PCI Subsys Vendor: 0x%04x\n", + ac97->subsystem_vendor); + snd_iprintf(buffer, "PCI Subsys Device: 0x%04x\n\n", + ac97->subsystem_device); + if ((ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_23) { val = snd_ac97_read(ac97, AC97_INT_PAGING); snd_ac97_update_bits(ac97, AC97_INT_PAGING, -- cgit v1.2.3-70-g09d2 From 26741b5512a99ee35f398ef018d23a38e8dc6e8a Mon Sep 17 00:00:00 2001 From: Daniel Mueller Date: Mon, 14 Nov 2005 17:40:44 +0100 Subject: [ALSA] hda-codec - Fix HDA sound and V.92 modem for notebook Siemens FieldPG-M Modules: HDA Codec driver The patch fixes the problem of mute onboard HDA sound output, buildin V.92 modem idendification and functionality. Signed-off-by: Daniel Mueller Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_si3054.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_si3054.c b/sound/pci/hda/patch_si3054.c index 9c7fe0b3200..12b5de29f42 100644 --- a/sound/pci/hda/patch_si3054.c +++ b/sound/pci/hda/patch_si3054.c @@ -295,6 +295,7 @@ static int patch_si3054(struct hda_codec *codec) * patch entries */ struct hda_codec_preset snd_hda_preset_si3054[] = { + { .id = 0x163c3055, .name = "Si3054", .patch = patch_si3054 }, { .id = 0x163c3155, .name = "Si3054", .patch = patch_si3054 }, {} }; -- cgit v1.2.3-70-g09d2 From f31a31b9024f21b2ad8f5a7c30e265a652e2e211 Mon Sep 17 00:00:00 2001 From: "Kurt J. Bosch" Date: Wed, 16 Nov 2005 18:41:21 +0100 Subject: [ALSA] Fix missing suspend/resume-code for ens1371 Modules: ENS1370/1+ driver This patch fixes missing suspend/resume-code for snd-ens1371 (but not for snd-ens1370) Signed-off-by: Kurt J. Bosch Signed-off-by: Takashi Iwai --- sound/pci/ens1370.c | 174 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 123 insertions(+), 51 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index 2daa575f43f..fa619a959d8 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -19,6 +19,13 @@ * */ +/* Power-Management-Code ( CONFIG_PM ) + * for ens1371 only ( FIXME ) + * derived from cs4281.c, atiixp.c and via82xx.c + * using http://www.alsa-project.org/~iwai/writing-an-alsa-driver/c1540.htm + * by Kurt J. Bosch + */ + #include #include #include @@ -1924,6 +1931,117 @@ static struct { }; #endif +static void snd_ensoniq_chip_init(ensoniq_t * ensoniq) +{ +#ifdef CHIP1371 + int idx; + struct pci_dev *pci = ensoniq->pci; +#endif +// this code was part of snd_ensoniq_create before intruduction of suspend/resume +#ifdef CHIP1370 + outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL)); + outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); + outl(ES_MEM_PAGEO(ES_PAGE_ADC), ES_REG(ensoniq, MEM_PAGE)); + outl(ensoniq->dma_bug.addr, ES_REG(ensoniq, PHANTOM_FRAME)); + outl(0, ES_REG(ensoniq, PHANTOM_COUNT)); +#else + outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL)); + outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); + outl(0, ES_REG(ensoniq, 1371_LEGACY)); + for (idx = 0; es1371_ac97_reset_hack[idx].vid != (unsigned short)PCI_ANY_ID; idx++) + if (pci->vendor == es1371_ac97_reset_hack[idx].vid && + pci->device == es1371_ac97_reset_hack[idx].did && + ensoniq->rev == es1371_ac97_reset_hack[idx].rev) { + outl(ensoniq->cssr, ES_REG(ensoniq, STATUS)); + /* need to delay around 20ms(bleech) to give + some CODECs enough time to wakeup */ + msleep(20); + break; + } + /* AC'97 warm reset to start the bitclk */ + outl(ensoniq->ctrl | ES_1371_SYNC_RES, ES_REG(ensoniq, CONTROL)); + inl(ES_REG(ensoniq, CONTROL)); + udelay(20); + outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL)); + /* Init the sample rate converter */ + snd_es1371_wait_src_ready(ensoniq); + outl(ES_1371_SRC_DISABLE, ES_REG(ensoniq, 1371_SMPRATE)); + for (idx = 0; idx < 0x80; idx++) + snd_es1371_src_write(ensoniq, idx, 0); + snd_es1371_src_write(ensoniq, ES_SMPREG_DAC1 + ES_SMPREG_TRUNC_N, 16 << 4); + snd_es1371_src_write(ensoniq, ES_SMPREG_DAC1 + ES_SMPREG_INT_REGS, 16 << 10); + snd_es1371_src_write(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_TRUNC_N, 16 << 4); + snd_es1371_src_write(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_INT_REGS, 16 << 10); + snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_ADC, 1 << 12); + snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_ADC + 1, 1 << 12); + snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC1, 1 << 12); + snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC1 + 1, 1 << 12); + snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC2, 1 << 12); + snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC2 + 1, 1 << 12); + snd_es1371_adc_rate(ensoniq, 22050); + snd_es1371_dac1_rate(ensoniq, 22050); + snd_es1371_dac2_rate(ensoniq, 22050); + /* WARNING: + * enabling the sample rate converter without properly programming + * its parameters causes the chip to lock up (the SRC busy bit will + * be stuck high, and I've found no way to rectify this other than + * power cycle) - Thomas Sailer + */ + snd_es1371_wait_src_ready(ensoniq); + outl(0, ES_REG(ensoniq, 1371_SMPRATE)); + /* try reset codec directly */ + outl(ES_1371_CODEC_WRITE(0, 0), ES_REG(ensoniq, 1371_CODEC)); +#endif + outb(ensoniq->uartc = 0x00, ES_REG(ensoniq, UART_CONTROL)); + outb(0x00, ES_REG(ensoniq, UART_RES)); + outl(ensoniq->cssr, ES_REG(ensoniq, STATUS)); + synchronize_irq(ensoniq->irq); +} + +#ifdef CONFIG_PM +static int snd_ensoniq_suspend (snd_card_t * card, + pm_message_t state) +{ + ensoniq_t *ensoniq = card->pm_private_data; + + snd_pcm_suspend_all(ensoniq->pcm1); + snd_pcm_suspend_all(ensoniq->pcm2); + +#ifdef CHIP1371 + if (ensoniq->u.es1371.ac97) + snd_ac97_suspend(ensoniq->u.es1371.ac97); +#else + /* FIXME */ +#endif + pci_set_power_state(ensoniq->pci, 3); + pci_disable_device(ensoniq->pci); + // snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); // only 2.6.10 + return 0; +} + +static int snd_ensoniq_resume (snd_card_t * card + ) +{ + ensoniq_t *ensoniq = card->pm_private_data; + + pci_enable_device(ensoniq->pci); + pci_set_power_state(ensoniq->pci, 0); + pci_set_master(ensoniq->pci); + + snd_ensoniq_chip_init(ensoniq); + +#ifdef CHIP1371 + if (ensoniq->u.es1371.ac97) + snd_ac97_resume(ensoniq->u.es1371.ac97); +#else + /* FIXME */ +#endif + // snd_power_change_state(card, SNDRV_CTL_POWER_D0); // only 2.6.10 + return 0; +} +#endif /* CONFIG_PM */ + + static int __devinit snd_ensoniq_create(snd_card_t * card, struct pci_dev *pci, ensoniq_t ** rensoniq) @@ -1986,12 +2104,6 @@ static int __devinit snd_ensoniq_create(snd_card_t * card, ensoniq->ctrl = ES_1370_CDC_EN | ES_1370_PCLKDIVO(ES_1370_SRTODIV(8000)); #endif ensoniq->sctrl = 0; - /* initialize the chips */ - outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL)); - outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); - outl(ES_MEM_PAGEO(ES_PAGE_ADC), ES_REG(ensoniq, MEM_PAGE)); - outl(ensoniq->dma_bug.addr, ES_REG(ensoniq, PHANTOM_FRAME)); - outl(0, ES_REG(ensoniq, PHANTOM_COUNT)); #else ensoniq->ctrl = 0; ensoniq->sctrl = 0; @@ -2002,59 +2114,16 @@ static int __devinit snd_ensoniq_create(snd_card_t * card, ensoniq->ctrl |= ES_1371_GPIO_OUT(1); /* turn amplifier on */ break; } - /* initialize the chips */ - outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL)); - outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); - outl(0, ES_REG(ensoniq, 1371_LEGACY)); for (idx = 0; es1371_ac97_reset_hack[idx].vid != (unsigned short)PCI_ANY_ID; idx++) if (pci->vendor == es1371_ac97_reset_hack[idx].vid && pci->device == es1371_ac97_reset_hack[idx].did && ensoniq->rev == es1371_ac97_reset_hack[idx].rev) { ensoniq->cssr |= ES_1371_ST_AC97_RST; - outl(ensoniq->cssr, ES_REG(ensoniq, STATUS)); - /* need to delay around 20ms(bleech) to give - some CODECs enough time to wakeup */ - msleep(20); break; } - /* AC'97 warm reset to start the bitclk */ - outl(ensoniq->ctrl | ES_1371_SYNC_RES, ES_REG(ensoniq, CONTROL)); - inl(ES_REG(ensoniq, CONTROL)); - udelay(20); - outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL)); - /* Init the sample rate converter */ - snd_es1371_wait_src_ready(ensoniq); - outl(ES_1371_SRC_DISABLE, ES_REG(ensoniq, 1371_SMPRATE)); - for (idx = 0; idx < 0x80; idx++) - snd_es1371_src_write(ensoniq, idx, 0); - snd_es1371_src_write(ensoniq, ES_SMPREG_DAC1 + ES_SMPREG_TRUNC_N, 16 << 4); - snd_es1371_src_write(ensoniq, ES_SMPREG_DAC1 + ES_SMPREG_INT_REGS, 16 << 10); - snd_es1371_src_write(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_TRUNC_N, 16 << 4); - snd_es1371_src_write(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_INT_REGS, 16 << 10); - snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_ADC, 1 << 12); - snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_ADC + 1, 1 << 12); - snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC1, 1 << 12); - snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC1 + 1, 1 << 12); - snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC2, 1 << 12); - snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_DAC2 + 1, 1 << 12); - snd_es1371_adc_rate(ensoniq, 22050); - snd_es1371_dac1_rate(ensoniq, 22050); - snd_es1371_dac2_rate(ensoniq, 22050); - /* WARNING: - * enabling the sample rate converter without properly programming - * its parameters causes the chip to lock up (the SRC busy bit will - * be stuck high, and I've found no way to rectify this other than - * power cycle) - Thomas Sailer - */ - snd_es1371_wait_src_ready(ensoniq); - outl(0, ES_REG(ensoniq, 1371_SMPRATE)); - /* try reset codec directly */ - outl(ES_1371_CODEC_WRITE(0, 0), ES_REG(ensoniq, 1371_CODEC)); #endif - outb(ensoniq->uartc = 0x00, ES_REG(ensoniq, UART_CONTROL)); - outb(0x00, ES_REG(ensoniq, UART_RES)); - outl(ensoniq->cssr, ES_REG(ensoniq, STATUS)); - synchronize_irq(ensoniq->irq); + + snd_ensoniq_chip_init(ensoniq); if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, ensoniq, &ops)) < 0) { snd_ensoniq_free(ensoniq); @@ -2063,6 +2132,8 @@ static int __devinit snd_ensoniq_create(snd_card_t * card, snd_ensoniq_proc_init(ensoniq); + snd_card_set_pm_callback(card, snd_ensoniq_suspend, snd_ensoniq_resume, ensoniq); + snd_card_set_dev(card, &pci->dev); *rensoniq = ensoniq; @@ -2389,6 +2460,7 @@ static struct pci_driver driver = { .id_table = snd_audiopci_ids, .probe = snd_audiopci_probe, .remove = __devexit_p(snd_audiopci_remove), + SND_PCI_PM_CALLBACKS }; static int __init alsa_card_ens137x_init(void) -- cgit v1.2.3-70-g09d2 From c3e6f7d8763fa0400d28c57633eb323515ba05fc Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 16 Nov 2005 18:43:35 +0100 Subject: [ALSA] Remove superfluous pcm_free callbacks Remove superflous pcm_free callbacks. Signed-off-by: Takashi Iwai --- sound/isa/ad1816a/ad1816a_lib.c | 8 -------- sound/isa/ad1848/ad1848_lib.c | 8 -------- sound/isa/cmi8330.c | 6 ------ sound/isa/cs423x/cs4231_lib.c | 8 -------- sound/isa/es1688/es1688_lib.c | 8 -------- sound/isa/es18xx.c | 8 -------- sound/isa/gus/gus_pcm.c | 8 -------- sound/isa/opti9xx/opti92x-ad1848.c | 8 -------- sound/isa/sb/sb16_main.c | 6 ------ sound/isa/sb/sb8_main.c | 6 ------ sound/pci/ad1889.c | 9 --------- sound/pci/als4000.c | 8 -------- sound/pci/azt3328.c | 9 --------- sound/pci/ca0106/ca0106_main.c | 8 -------- sound/pci/cmipci.c | 8 -------- sound/pci/cs4281.c | 8 -------- sound/pci/cs46xx/cs46xx_lib.c | 32 -------------------------------- sound/pci/emu10k1/emu10k1x.c | 8 -------- sound/pci/emu10k1/emupcm.c | 25 ------------------------- sound/pci/emu10k1/p16v.c | 9 --------- sound/pci/ens1370.c | 16 ---------------- sound/pci/es1938.c | 6 ------ sound/pci/fm801.c | 8 -------- sound/pci/ice1712/ice1712.c | 24 ------------------------ sound/pci/rme9652/hdspm.c | 11 ----------- sound/pci/sonicvibes.c | 8 -------- sound/pci/trident/trident_main.c | 34 ---------------------------------- sound/pci/ymfpci/ymfpci_main.c | 32 -------------------------------- sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c | 10 ---------- sound/ppc/pmac.c | 6 ------ sound/sparc/amd7930.c | 9 --------- sound/sparc/cs4231.c | 8 -------- sound/usb/usx2y/usbusx2yaudio.c | 4 +--- sound/usb/usx2y/usx2yhwdeppcm.c | 8 -------- 34 files changed, 1 insertion(+), 381 deletions(-) (limited to 'sound/pci') diff --git a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c index 7ae02396cae..170409e26d0 100644 --- a/sound/isa/ad1816a/ad1816a_lib.c +++ b/sound/isa/ad1816a/ad1816a_lib.c @@ -662,13 +662,6 @@ static snd_pcm_ops_t snd_ad1816a_capture_ops = { .pointer = snd_ad1816a_capture_pointer, }; -static void snd_ad1816a_pcm_free(snd_pcm_t *pcm) -{ - ad1816a_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int snd_ad1816a_pcm(ad1816a_t *chip, int device, snd_pcm_t **rpcm) { int error; @@ -681,7 +674,6 @@ int snd_ad1816a_pcm(ad1816a_t *chip, int device, snd_pcm_t **rpcm) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_ad1816a_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_ad1816a_pcm_free; pcm->info_flags = (chip->dma1 == chip->dma2 ) ? SNDRV_PCM_INFO_JOINT_DUPLEX : 0; strcpy(pcm->name, snd_ad1816a_chip_id(chip)); diff --git a/sound/isa/ad1848/ad1848_lib.c b/sound/isa/ad1848/ad1848_lib.c index 891bacc94f6..84a3c559655 100644 --- a/sound/isa/ad1848/ad1848_lib.c +++ b/sound/isa/ad1848/ad1848_lib.c @@ -959,13 +959,6 @@ static snd_pcm_ops_t snd_ad1848_capture_ops = { .pointer = snd_ad1848_capture_pointer, }; -static void snd_ad1848_pcm_free(snd_pcm_t *pcm) -{ - ad1848_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int snd_ad1848_pcm(ad1848_t *chip, int device, snd_pcm_t **rpcm) { snd_pcm_t *pcm; @@ -977,7 +970,6 @@ int snd_ad1848_pcm(ad1848_t *chip, int device, snd_pcm_t **rpcm) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_ad1848_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_ad1848_capture_ops); - pcm->private_free = snd_ad1848_pcm_free; pcm->private_data = chip; pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; strcpy(pcm->name, snd_ad1848_chip_id(chip)); diff --git a/sound/isa/cmi8330.c b/sound/isa/cmi8330.c index 5252206ea38..6038529d5af 100644 --- a/sound/isa/cmi8330.c +++ b/sound/isa/cmi8330.c @@ -388,11 +388,6 @@ static int snd_cmi8330_capture_open(snd_pcm_substream_t * substream) return chip->streams[SNDRV_PCM_STREAM_CAPTURE].open(substream); } -static void snd_cmi8330_pcm_free(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_cmi8330_pcm(snd_card_t *card, struct snd_cmi8330 *chip) { snd_pcm_t *pcm; @@ -407,7 +402,6 @@ static int __devinit snd_cmi8330_pcm(snd_card_t *card, struct snd_cmi8330 *chip) return err; strcpy(pcm->name, "CMI8330"); pcm->private_data = chip; - pcm->private_free = snd_cmi8330_pcm_free; /* SB16 */ ops = snd_sb16dsp_get_pcm_ops(CMI_SB_STREAM); diff --git a/sound/isa/cs423x/cs4231_lib.c b/sound/isa/cs423x/cs4231_lib.c index 4af769030be..4c9fb168636 100644 --- a/sound/isa/cs423x/cs4231_lib.c +++ b/sound/isa/cs423x/cs4231_lib.c @@ -1605,13 +1605,6 @@ static snd_pcm_ops_t snd_cs4231_capture_ops = { .pointer = snd_cs4231_capture_pointer, }; -static void snd_cs4231_pcm_free(snd_pcm_t *pcm) -{ - cs4231_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int snd_cs4231_pcm(cs4231_t *chip, int device, snd_pcm_t **rpcm) { snd_pcm_t *pcm; @@ -1629,7 +1622,6 @@ int snd_cs4231_pcm(cs4231_t *chip, int device, snd_pcm_t **rpcm) /* global setup */ pcm->private_data = chip; - pcm->private_free = snd_cs4231_pcm_free; pcm->info_flags = 0; if (chip->single_dma) pcm->info_flags |= SNDRV_PCM_INFO_HALF_DUPLEX; diff --git a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c index 2edc9c9f044..841e9ac8c66 100644 --- a/sound/isa/es1688/es1688_lib.c +++ b/sound/isa/es1688/es1688_lib.c @@ -724,13 +724,6 @@ static snd_pcm_ops_t snd_es1688_capture_ops = { .pointer = snd_es1688_capture_pointer, }; -static void snd_es1688_pcm_free(snd_pcm_t *pcm) -{ - es1688_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int snd_es1688_pcm(es1688_t * chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -743,7 +736,6 @@ int snd_es1688_pcm(es1688_t * chip, int device, snd_pcm_t ** rpcm) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_es1688_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_es1688_pcm_free; pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; sprintf(pcm->name, snd_es1688_chip_id(chip)); chip->pcm = pcm; diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c index 970e2aaade2..7191ff90cc7 100644 --- a/sound/isa/es18xx.c +++ b/sound/isa/es18xx.c @@ -1566,13 +1566,6 @@ static snd_pcm_ops_t snd_es18xx_capture_ops = { .pointer = snd_es18xx_capture_pointer, }; -static void snd_es18xx_pcm_free(snd_pcm_t *pcm) -{ - es18xx_t *codec = pcm->private_data; - codec->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_es18xx_pcm(es18xx_t *chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1595,7 +1588,6 @@ static int __devinit snd_es18xx_pcm(es18xx_t *chip, int device, snd_pcm_t ** rpc /* global setup */ pcm->private_data = chip; - pcm->private_free = snd_es18xx_pcm_free; pcm->info_flags = 0; if (chip->caps & ES18XX_DUPLEX_SAME) pcm->info_flags |= SNDRV_PCM_INFO_JOINT_DUPLEX; diff --git a/sound/isa/gus/gus_pcm.c b/sound/isa/gus/gus_pcm.c index 1cc89fb67bf..bae0fee705e 100644 --- a/sound/isa/gus/gus_pcm.c +++ b/sound/isa/gus/gus_pcm.c @@ -727,13 +727,6 @@ static int snd_gf1_pcm_capture_close(snd_pcm_substream_t * substream) return 0; } -static void snd_gf1_pcm_free(snd_pcm_t *pcm) -{ - snd_gus_card_t *gus = pcm->private_data; - gus->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int snd_gf1_pcm_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -860,7 +853,6 @@ int snd_gf1_pcm_new(snd_gus_card_t * gus, int pcm_dev, int control_index, snd_pc if (err < 0) return err; pcm->private_data = gus; - pcm->private_free = snd_gf1_pcm_free; /* playback setup */ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_gf1_pcm_playback_ops); diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c index b94339f8306..1be32999dfe 100644 --- a/sound/isa/opti9xx/opti92x-ad1848.c +++ b/sound/isa/opti9xx/opti92x-ad1848.c @@ -1346,13 +1346,6 @@ static snd_pcm_ops_t snd_opti93x_capture_ops = { .pointer = snd_opti93x_capture_pointer, }; -static void snd_opti93x_pcm_free(snd_pcm_t *pcm) -{ - opti93x_t *codec = pcm->private_data; - codec->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int snd_opti93x_pcm(opti93x_t *codec, int device, snd_pcm_t **rpcm) { int error; @@ -1365,7 +1358,6 @@ static int snd_opti93x_pcm(opti93x_t *codec, int device, snd_pcm_t **rpcm) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_opti93x_capture_ops); pcm->private_data = codec; - pcm->private_free = snd_opti93x_pcm_free; pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; strcpy(pcm->name, snd_opti93x_chip_id(codec)); diff --git a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c index 556b95e3e22..17312e060a1 100644 --- a/sound/isa/sb/sb16_main.c +++ b/sound/isa/sb/sb16_main.c @@ -851,11 +851,6 @@ static snd_pcm_ops_t snd_sb16_capture_ops = { .pointer = snd_sb16_capture_pointer, }; -static void snd_sb16dsp_pcm_free(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int snd_sb16dsp_pcm(sb_t * chip, int device, snd_pcm_t ** rpcm) { snd_card_t *card = chip->card; @@ -869,7 +864,6 @@ int snd_sb16dsp_pcm(sb_t * chip, int device, snd_pcm_t ** rpcm) sprintf(pcm->name, "DSP v%i.%i", chip->version >> 8, chip->version & 0xff); pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; pcm->private_data = chip; - pcm->private_free = snd_sb16dsp_pcm_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sb16_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb16_capture_ops); diff --git a/sound/isa/sb/sb8_main.c b/sound/isa/sb/sb8_main.c index 5ddc6e41d90..28d8afdf689 100644 --- a/sound/isa/sb/sb8_main.c +++ b/sound/isa/sb/sb8_main.c @@ -507,11 +507,6 @@ static snd_pcm_ops_t snd_sb8_capture_ops = { .pointer = snd_sb8_capture_pointer, }; -static void snd_sb8dsp_pcm_free(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int snd_sb8dsp_pcm(sb_t *chip, int device, snd_pcm_t ** rpcm) { snd_card_t *card = chip->card; @@ -525,7 +520,6 @@ int snd_sb8dsp_pcm(sb_t *chip, int device, snd_pcm_t ** rpcm) sprintf(pcm->name, "DSP v%i.%i", chip->version >> 8, chip->version & 0xff); pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; pcm->private_data = chip; - pcm->private_free = snd_sb8dsp_pcm_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sb8_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb8_capture_ops); diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index 1fdae678a34..999aaeae3ff 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c @@ -623,14 +623,6 @@ snd_ad1889_interrupt(int irq, return IRQ_HANDLED; } -static void -snd_ad1889_pcm_free(snd_pcm_t *pcm) -{ - struct snd_ad1889 *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_ad1889_pcm_init(struct snd_ad1889 *chip, int device, snd_pcm_t **rpcm) { @@ -650,7 +642,6 @@ snd_ad1889_pcm_init(struct snd_ad1889 *chip, int device, snd_pcm_t **rpcm) &snd_ad1889_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_ad1889_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, chip->card->shortname); diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c index 1904df65026..d496cc5ab35 100644 --- a/sound/pci/als4000.c +++ b/sound/pci/als4000.c @@ -490,13 +490,6 @@ static snd_pcm_ops_t snd_als4000_capture_ops = { .pointer = snd_als4000_capture_pointer }; -static void snd_als4000_pcm_free(snd_pcm_t *pcm) -{ - sb_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_als4000_pcm(sb_t *chip, int device) { snd_pcm_t *pcm; @@ -504,7 +497,6 @@ static int __devinit snd_als4000_pcm(sb_t *chip, int device) if ((err = snd_pcm_new(chip->card, "ALS4000 DSP", device, 1, 1, &pcm)) < 0) return err; - pcm->private_free = snd_als4000_pcm_free; pcm->private_data = chip; pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_als4000_playback_ops); diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c index ab737d6df41..96d1ba0174f 100644 --- a/sound/pci/azt3328.c +++ b/sound/pci/azt3328.c @@ -1365,14 +1365,6 @@ static snd_pcm_ops_t snd_azf3328_capture_ops = { .pointer = snd_azf3328_capture_pointer }; -static void -snd_azf3328_pcm_free(snd_pcm_t *pcm) -{ - azf3328_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_azf3328_pcm(azf3328_t *chip, int device) { @@ -1386,7 +1378,6 @@ snd_azf3328_pcm(azf3328_t *chip, int device) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_azf3328_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_azf3328_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, chip->card->shortname); chip->pcm = pcm; diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 389d967c97f..a89eed25509 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -1069,13 +1069,6 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, return IRQ_HANDLED; } -static void snd_ca0106_pcm_free(snd_pcm_t *pcm) -{ - ca0106_t *emu = pcm->private_data; - emu->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_ca0106_pcm(ca0106_t *emu, int device, snd_pcm_t **rpcm) { snd_pcm_t *pcm; @@ -1088,7 +1081,6 @@ static int __devinit snd_ca0106_pcm(ca0106_t *emu, int device, snd_pcm_t **rpcm) return err; pcm->private_data = emu; - pcm->private_free = snd_ca0106_pcm_free; switch (device) { case 0: diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index db605373b3b..0309689f37f 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c @@ -1693,11 +1693,6 @@ static snd_pcm_ops_t snd_cmipci_capture_spdif_ops = { /* */ -static void snd_cmipci_pcm_free(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_cmipci_pcm_new(cmipci_t *cm, int device) { snd_pcm_t *pcm; @@ -1711,7 +1706,6 @@ static int __devinit snd_cmipci_pcm_new(cmipci_t *cm, int device) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_cmipci_capture_ops); pcm->private_data = cm; - pcm->private_free = snd_cmipci_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "C-Media PCI DAC/ADC"); cm->pcm = pcm; @@ -1734,7 +1728,6 @@ static int __devinit snd_cmipci_pcm2_new(cmipci_t *cm, int device) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_cmipci_playback2_ops); pcm->private_data = cm; - pcm->private_free = snd_cmipci_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "C-Media PCI 2nd DAC"); cm->pcm2 = pcm; @@ -1758,7 +1751,6 @@ static int __devinit snd_cmipci_pcm_spdif_new(cmipci_t *cm, int device) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_cmipci_capture_spdif_ops); pcm->private_data = cm; - pcm->private_free = snd_cmipci_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "C-Media PCI IEC958"); cm->pcm_spdif = pcm; diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index 034ff3755a3..a4b4608034b 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c @@ -990,13 +990,6 @@ static snd_pcm_ops_t snd_cs4281_capture_ops = { .pointer = snd_cs4281_pointer, }; -static void snd_cs4281_pcm_free(snd_pcm_t *pcm) -{ - cs4281_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_cs4281_pcm(cs4281_t * chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1012,7 +1005,6 @@ static int __devinit snd_cs4281_pcm(cs4281_t * chip, int device, snd_pcm_t ** rp snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_cs4281_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_cs4281_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "CS4281"); chip->pcm = pcm; diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index 9b8af5bcbb0..9a86148d718 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c @@ -1574,35 +1574,7 @@ static snd_pcm_ops_t snd_cs46xx_capture_indirect_ops = { .ack = snd_cs46xx_capture_transfer, }; -static void snd_cs46xx_pcm_free(snd_pcm_t *pcm) -{ - cs46xx_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - #ifdef CONFIG_SND_CS46XX_NEW_DSP -static void snd_cs46xx_pcm_rear_free(snd_pcm_t *pcm) -{ - cs46xx_t *chip = pcm->private_data; - chip->pcm_rear = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - -static void snd_cs46xx_pcm_center_lfe_free(snd_pcm_t *pcm) -{ - cs46xx_t *chip = pcm->private_data; - chip->pcm_center_lfe = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - -static void snd_cs46xx_pcm_iec958_free(snd_pcm_t *pcm) -{ - cs46xx_t *chip = pcm->private_data; - chip->pcm_iec958 = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - #define MAX_PLAYBACK_CHANNELS (DSP_MAX_PCM_CHANNELS - 1) #else #define MAX_PLAYBACK_CHANNELS 1 @@ -1619,7 +1591,6 @@ int __devinit snd_cs46xx_pcm(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) return err; pcm->private_data = chip; - pcm->private_free = snd_cs46xx_pcm_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_cs46xx_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_cs46xx_capture_ops); @@ -1652,7 +1623,6 @@ int __devinit snd_cs46xx_pcm_rear(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) return err; pcm->private_data = chip; - pcm->private_free = snd_cs46xx_pcm_rear_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_cs46xx_playback_rear_ops); @@ -1682,7 +1652,6 @@ int __devinit snd_cs46xx_pcm_center_lfe(cs46xx_t *chip, int device, snd_pcm_t ** return err; pcm->private_data = chip; - pcm->private_free = snd_cs46xx_pcm_center_lfe_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_cs46xx_playback_clfe_ops); @@ -1712,7 +1681,6 @@ int __devinit snd_cs46xx_pcm_iec958(cs46xx_t *chip, int device, snd_pcm_t ** rpc return err; pcm->private_data = chip; - pcm->private_free = snd_cs46xx_pcm_iec958_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_cs46xx_playback_iec958_ops); diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index 795577716a5..ca402e99469 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c @@ -836,13 +836,6 @@ static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, return IRQ_HANDLED; } -static void snd_emu10k1x_pcm_free(snd_pcm_t *pcm) -{ - emu10k1x_t *emu = pcm->private_data; - emu->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_emu10k1x_pcm(emu10k1x_t *emu, int device, snd_pcm_t **rpcm) { snd_pcm_t *pcm; @@ -858,7 +851,6 @@ static int __devinit snd_emu10k1x_pcm(emu10k1x_t *emu, int device, snd_pcm_t **r return err; pcm->private_data = emu; - pcm->private_free = snd_emu10k1x_pcm_free; switch(device) { case 0: diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c index bf7490dae09..90d3a0b50d1 100644 --- a/sound/pci/emu10k1/emupcm.c +++ b/sound/pci/emu10k1/emupcm.c @@ -1249,13 +1249,6 @@ static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = { .page = snd_pcm_sgbuf_ops_page, }; -static void snd_emu10k1_pcm_free(snd_pcm_t *pcm) -{ - emu10k1_t *emu = pcm->private_data; - emu->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1269,7 +1262,6 @@ int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) return err; pcm->private_data = emu; - pcm->private_free = snd_emu10k1_pcm_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_ops); @@ -1305,7 +1297,6 @@ int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rp return err; pcm->private_data = emu; - pcm->private_free = snd_emu10k1_pcm_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_efx_playback_ops); @@ -1336,13 +1327,6 @@ static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = { .pointer = snd_emu10k1_capture_pointer, }; -static void snd_emu10k1_pcm_mic_free(snd_pcm_t *pcm) -{ - emu10k1_t *emu = pcm->private_data; - emu->pcm_mic = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1355,7 +1339,6 @@ int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm return err; pcm->private_data = emu; - pcm->private_free = snd_emu10k1_pcm_mic_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_mic_ops); @@ -1673,13 +1656,6 @@ static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = { .ack = snd_emu10k1_fx8010_playback_transfer, }; -static void snd_emu10k1_pcm_efx_free(snd_pcm_t *pcm) -{ - emu10k1_t *emu = pcm->private_data; - emu->pcm_efx = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __devinit snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1693,7 +1669,6 @@ int __devinit snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm return err; pcm->private_data = emu; - pcm->private_free = snd_emu10k1_pcm_efx_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_fx8010_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_efx_ops); diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c index e27ebb9bb74..3b456007ba2 100644 --- a/sound/pci/emu10k1/p16v.c +++ b/sound/pci/emu10k1/p16v.c @@ -587,14 +587,6 @@ int snd_p16v_free(emu10k1_t *chip) return 0; } -static void snd_p16v_pcm_free(snd_pcm_t *pcm) -{ - emu10k1_t *emu = pcm->private_data; - //snd_printk("snd_p16v_pcm_free pcm: called\n"); - snd_pcm_lib_preallocate_free_for_all(pcm); - emu->pcm = NULL; -} - int snd_p16v_pcm(emu10k1_t *emu, int device, snd_pcm_t **rpcm) { snd_pcm_t *pcm; @@ -611,7 +603,6 @@ int snd_p16v_pcm(emu10k1_t *emu, int device, snd_pcm_t **rpcm) return err; pcm->private_data = emu; - pcm->private_free = snd_p16v_pcm_free; // Single playback 8 channel device. // Single capture 2 channel device. snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_p16v_playback_front_ops); diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index fa619a959d8..180c49e4f6a 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -1214,13 +1214,6 @@ static snd_pcm_ops_t snd_ensoniq_capture_ops = { .pointer = snd_ensoniq_capture_pointer, }; -static void snd_ensoniq_pcm_free(snd_pcm_t *pcm) -{ - ensoniq_t *ensoniq = pcm->private_data; - ensoniq->pcm1 = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_ensoniq_pcm(ensoniq_t * ensoniq, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1244,7 +1237,6 @@ static int __devinit snd_ensoniq_pcm(ensoniq_t * ensoniq, int device, snd_pcm_t snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_ensoniq_capture_ops); pcm->private_data = ensoniq; - pcm->private_free = snd_ensoniq_pcm_free; pcm->info_flags = 0; #ifdef CHIP1370 strcpy(pcm->name, "ES1370 DAC2/ADC"); @@ -1261,13 +1253,6 @@ static int __devinit snd_ensoniq_pcm(ensoniq_t * ensoniq, int device, snd_pcm_t return 0; } -static void snd_ensoniq_pcm_free2(snd_pcm_t *pcm) -{ - ensoniq_t *ensoniq = pcm->private_data; - ensoniq->pcm2 = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_ensoniq_pcm2(ensoniq_t * ensoniq, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1289,7 +1274,6 @@ static int __devinit snd_ensoniq_pcm2(ensoniq_t * ensoniq, int device, snd_pcm_t snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_ensoniq_playback2_ops); #endif pcm->private_data = ensoniq; - pcm->private_free = snd_ensoniq_pcm_free2; pcm->info_flags = 0; #ifdef CHIP1370 strcpy(pcm->name, "ES1370 DAC1"); diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c index c134f48152b..d05c3d2b330 100644 --- a/sound/pci/es1938.c +++ b/sound/pci/es1938.c @@ -1000,11 +1000,6 @@ static snd_pcm_ops_t snd_es1938_capture_ops = { .copy = snd_es1938_capture_copy, }; -static void snd_es1938_free_pcm(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_es1938_new_pcm(es1938_t *chip, int device) { snd_pcm_t *pcm; @@ -1016,7 +1011,6 @@ static int __devinit snd_es1938_new_pcm(es1938_t *chip, int device) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_es1938_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_es1938_free_pcm; pcm->info_flags = 0; strcpy(pcm->name, "ESS Solo-1"); diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index 4e1d3434888..261061b76c7 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c @@ -665,13 +665,6 @@ static snd_pcm_ops_t snd_fm801_capture_ops = { .pointer = snd_fm801_capture_pointer, }; -static void snd_fm801_pcm_free(snd_pcm_t *pcm) -{ - fm801_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_fm801_pcm(fm801_t *chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -686,7 +679,6 @@ static int __devinit snd_fm801_pcm(fm801_t *chip, int device, snd_pcm_t ** rpcm) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_fm801_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_fm801_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "FM801"); chip->pcm = pcm; diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c index bd71bf42454..b16c9c1c92c 100644 --- a/sound/pci/ice1712/ice1712.c +++ b/sound/pci/ice1712/ice1712.c @@ -859,13 +859,6 @@ static snd_pcm_ops_t snd_ice1712_capture_ops = { .pointer = snd_ice1712_capture_pointer, }; -static void snd_ice1712_pcm_free(snd_pcm_t *pcm) -{ - ice1712_t *ice = pcm->private_data; - ice->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_ice1712_pcm(ice1712_t * ice, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -881,7 +874,6 @@ static int __devinit snd_ice1712_pcm(ice1712_t * ice, int device, snd_pcm_t ** r snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_ice1712_capture_ops); pcm->private_data = ice; - pcm->private_free = snd_ice1712_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "ICE1712 consumer"); ice->pcm = pcm; @@ -897,13 +889,6 @@ static int __devinit snd_ice1712_pcm(ice1712_t * ice, int device, snd_pcm_t ** r return 0; } -static void snd_ice1712_pcm_free_ds(snd_pcm_t *pcm) -{ - ice1712_t *ice = pcm->private_data; - ice->pcm_ds = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_ice1712_pcm_ds(ice1712_t * ice, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -918,7 +903,6 @@ static int __devinit snd_ice1712_pcm_ds(ice1712_t * ice, int device, snd_pcm_t * snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_ice1712_playback_ds_ops); pcm->private_data = ice; - pcm->private_free = snd_ice1712_pcm_free_ds; pcm->info_flags = 0; strcpy(pcm->name, "ICE1712 consumer (DS)"); ice->pcm_ds = pcm; @@ -1223,13 +1207,6 @@ static int snd_ice1712_capture_pro_close(snd_pcm_substream_t * substream) return 0; } -static void snd_ice1712_pcm_profi_free(snd_pcm_t *pcm) -{ - ice1712_t *ice = pcm->private_data; - ice->pcm_pro = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static snd_pcm_ops_t snd_ice1712_playback_pro_ops = { .open = snd_ice1712_playback_pro_open, .close = snd_ice1712_playback_pro_close, @@ -1267,7 +1244,6 @@ static int __devinit snd_ice1712_pcm_profi(ice1712_t * ice, int device, snd_pcm_ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_ice1712_capture_pro_ops); pcm->private_data = ice; - pcm->private_free = snd_ice1712_pcm_profi_free; pcm->info_flags = 0; strcpy(pcm->name, "ICE1712 multi"); diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index a1aef6f6767..ae2013a8492 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -3336,15 +3336,6 @@ static int __devinit snd_hdspm_preallocate_memory(hdspm_t * hdspm) return 0; } -static int snd_hdspm_memory_free(hdspm_t * hdspm) -{ - snd_printdd("memory_free_for_all %p\n", hdspm->pcm); - - snd_pcm_lib_preallocate_free_for_all(hdspm->pcm); - return 0; -} - - static void hdspm_set_sgbuf(hdspm_t * hdspm, struct snd_sg_buf *sgbuf, unsigned int reg, int channels) { @@ -3568,8 +3559,6 @@ static int snd_hdspm_free(hdspm_t * hdspm) if (hdspm->iobase) iounmap(hdspm->iobase); - snd_hdspm_memory_free(hdspm); - if (hdspm->port) pci_release_regions(hdspm->pci); diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c index e92ef3ae2ca..b66459f69c0 100644 --- a/sound/pci/sonicvibes.c +++ b/sound/pci/sonicvibes.c @@ -844,13 +844,6 @@ static snd_pcm_ops_t snd_sonicvibes_capture_ops = { .pointer = snd_sonicvibes_capture_pointer, }; -static void snd_sonicvibes_pcm_free(snd_pcm_t *pcm) -{ - sonicvibes_t *sonic = pcm->private_data; - sonic->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __devinit snd_sonicvibes_pcm(sonicvibes_t * sonic, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -864,7 +857,6 @@ static int __devinit snd_sonicvibes_pcm(sonicvibes_t * sonic, int device, snd_pc snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sonicvibes_capture_ops); pcm->private_data = sonic; - pcm->private_free = snd_sonicvibes_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "S3 SonicVibes"); sonic->pcm = pcm; diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c index b9b93c7faaf..62f109f020a 100644 --- a/sound/pci/trident/trident_main.c +++ b/sound/pci/trident/trident_main.c @@ -2117,37 +2117,6 @@ static snd_pcm_ops_t snd_trident_spdif_7018_ops = { .pointer = snd_trident_playback_pointer, }; -/*--------------------------------------------------------------------------- - snd_trident_pcm_free - - Description: This routine release the 4DWave private data. - - Paramters: private_data - pointer to 4DWave device info. - - Returns: None - - ---------------------------------------------------------------------------*/ -static void snd_trident_pcm_free(snd_pcm_t *pcm) -{ - trident_t *trident = pcm->private_data; - trident->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - -static void snd_trident_foldback_pcm_free(snd_pcm_t *pcm) -{ - trident_t *trident = pcm->private_data; - trident->foldback = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - -static void snd_trident_spdif_pcm_free(snd_pcm_t *pcm) -{ - trident_t *trident = pcm->private_data; - trident->spdif = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - /*--------------------------------------------------------------------------- snd_trident_pcm @@ -2170,7 +2139,6 @@ int __devinit snd_trident_pcm(trident_t * trident, int device, snd_pcm_t ** rpcm return err; pcm->private_data = trident; - pcm->private_free = snd_trident_pcm_free; if (trident->tlb.entries) { snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_trident_nx_playback_ops); @@ -2232,7 +2200,6 @@ int __devinit snd_trident_foldback_pcm(trident_t * trident, int device, snd_pcm_ return err; foldback->private_data = trident; - foldback->private_free = snd_trident_foldback_pcm_free; if (trident->tlb.entries) snd_pcm_set_ops(foldback, SNDRV_PCM_STREAM_CAPTURE, &snd_trident_nx_foldback_ops); else @@ -2285,7 +2252,6 @@ int __devinit snd_trident_spdif_pcm(trident_t * trident, int device, snd_pcm_t * return err; spdif->private_data = trident; - spdif->private_free = snd_trident_spdif_pcm_free; if (trident->device != TRIDENT_DEVICE_ID_SI7018) { snd_pcm_set_ops(spdif, SNDRV_PCM_STREAM_PLAYBACK, &snd_trident_spdif_ops); } else { diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index 88a43e091d7..8229703c80c 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -1071,13 +1071,6 @@ static snd_pcm_ops_t snd_ymfpci_capture_rec_ops = { .pointer = snd_ymfpci_capture_pointer, }; -static void snd_ymfpci_pcm_free(snd_pcm_t *pcm) -{ - ymfpci_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __devinit snd_ymfpci_pcm(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1088,7 +1081,6 @@ int __devinit snd_ymfpci_pcm(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) if ((err = snd_pcm_new(chip->card, "YMFPCI", device, 32, 1, &pcm)) < 0) return err; pcm->private_data = chip; - pcm->private_free = snd_ymfpci_pcm_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_ymfpci_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_ymfpci_capture_rec_ops); @@ -1117,13 +1109,6 @@ static snd_pcm_ops_t snd_ymfpci_capture_ac97_ops = { .pointer = snd_ymfpci_capture_pointer, }; -static void snd_ymfpci_pcm2_free(snd_pcm_t *pcm) -{ - ymfpci_t *chip = pcm->private_data; - chip->pcm2 = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __devinit snd_ymfpci_pcm2(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1134,7 +1119,6 @@ int __devinit snd_ymfpci_pcm2(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) if ((err = snd_pcm_new(chip->card, "YMFPCI - PCM2", device, 0, 1, &pcm)) < 0) return err; pcm->private_data = chip; - pcm->private_free = snd_ymfpci_pcm2_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_ymfpci_capture_ac97_ops); @@ -1163,13 +1147,6 @@ static snd_pcm_ops_t snd_ymfpci_playback_spdif_ops = { .pointer = snd_ymfpci_playback_pointer, }; -static void snd_ymfpci_pcm_spdif_free(snd_pcm_t *pcm) -{ - ymfpci_t *chip = pcm->private_data; - chip->pcm_spdif = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __devinit snd_ymfpci_pcm_spdif(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1180,7 +1157,6 @@ int __devinit snd_ymfpci_pcm_spdif(ymfpci_t *chip, int device, snd_pcm_t ** rpcm if ((err = snd_pcm_new(chip->card, "YMFPCI - IEC958", device, 1, 0, &pcm)) < 0) return err; pcm->private_data = chip; - pcm->private_free = snd_ymfpci_pcm_spdif_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_ymfpci_playback_spdif_ops); @@ -1208,13 +1184,6 @@ static snd_pcm_ops_t snd_ymfpci_playback_4ch_ops = { .pointer = snd_ymfpci_playback_pointer, }; -static void snd_ymfpci_pcm_4ch_free(snd_pcm_t *pcm) -{ - ymfpci_t *chip = pcm->private_data; - chip->pcm_4ch = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __devinit snd_ymfpci_pcm_4ch(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) { snd_pcm_t *pcm; @@ -1225,7 +1194,6 @@ int __devinit snd_ymfpci_pcm_4ch(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) if ((err = snd_pcm_new(chip->card, "YMFPCI - Rear", device, 1, 0, &pcm)) < 0) return err; pcm->private_data = chip; - pcm->private_free = snd_ymfpci_pcm_4ch_free; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_ymfpci_playback_4ch_ops); diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c b/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c index 20b86d8df7a..d54033ebd5e 100644 --- a/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c +++ b/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c @@ -324,15 +324,6 @@ static snd_pcm_ops_t pdacf_pcm_capture_ops = { }; -/* - * free callback for pcm - */ -static void snd_pdacf_pcm_free(snd_pcm_t *pcm) -{ - pdacf_t *chip = pcm->private_data; - chip->pcm = NULL; -} - /* * snd_pdacf_pcm_new - create and initialize a pcm */ @@ -348,7 +339,6 @@ int snd_pdacf_pcm_new(pdacf_t *chip) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &pdacf_pcm_capture_ops); pcm->private_data = chip; - pcm->private_free = snd_pdacf_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, chip->card->shortname); chip->pcm = pcm; diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c index db2f1815fc3..dd28187ec0e 100644 --- a/sound/ppc/pmac.c +++ b/sound/ppc/pmac.c @@ -637,11 +637,6 @@ static snd_pcm_ops_t snd_pmac_capture_ops = { .pointer = snd_pmac_capture_pointer, }; -static void pmac_pcm_free(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int __init snd_pmac_pcm_new(pmac_t *chip) { snd_pcm_t *pcm; @@ -659,7 +654,6 @@ int __init snd_pmac_pcm_new(pmac_t *chip) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_pmac_capture_ops); pcm->private_data = chip; - pcm->private_free = pmac_pcm_free; pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; strcpy(pcm->name, chip->card->shortname); chip->pcm = pcm; diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c index 46d504ba7e0..7d4b6855bac 100644 --- a/sound/sparc/amd7930.c +++ b/sound/sparc/amd7930.c @@ -755,14 +755,6 @@ static snd_pcm_ops_t snd_amd7930_capture_ops = { .pointer = snd_amd7930_capture_pointer, }; -static void snd_amd7930_pcm_free(snd_pcm_t *pcm) -{ - amd7930_t *amd = pcm->private_data; - - amd->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static int __init snd_amd7930_pcm(amd7930_t *amd) { snd_pcm_t *pcm; @@ -780,7 +772,6 @@ static int __init snd_amd7930_pcm(amd7930_t *amd) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_amd7930_capture_ops); pcm->private_data = amd; - pcm->private_free = snd_amd7930_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, amd->card->shortname); amd->pcm = pcm; diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c index 1f8d27a6152..0fa482c9110 100644 --- a/sound/sparc/cs4231.c +++ b/sound/sparc/cs4231.c @@ -1385,13 +1385,6 @@ static snd_pcm_ops_t snd_cs4231_capture_ops = { .pointer = snd_cs4231_capture_pointer, }; -static void snd_cs4231_pcm_free(snd_pcm_t *pcm) -{ - cs4231_t *chip = pcm->private_data; - chip->pcm = NULL; - snd_pcm_lib_preallocate_free_for_all(pcm); -} - int snd_cs4231_pcm(cs4231_t *chip) { snd_pcm_t *pcm; @@ -1405,7 +1398,6 @@ int snd_cs4231_pcm(cs4231_t *chip) /* global setup */ pcm->private_data = chip; - pcm->private_free = snd_cs4231_pcm_free; pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; strcpy(pcm->name, "CS4231"); diff --git a/sound/usb/usx2y/usbusx2yaudio.c b/sound/usb/usx2y/usbusx2yaudio.c index affda973cec..c5989cb7db3 100644 --- a/sound/usb/usx2y/usbusx2yaudio.c +++ b/sound/usb/usx2y/usbusx2yaudio.c @@ -941,10 +941,8 @@ static void usX2Y_audio_stream_free(snd_usX2Y_substream_t **usX2Y_substream) static void snd_usX2Y_pcm_private_free(snd_pcm_t *pcm) { snd_usX2Y_substream_t **usX2Y_stream = pcm->private_data; - if (usX2Y_stream) { - snd_pcm_lib_preallocate_free_for_all(pcm); + if (usX2Y_stream) usX2Y_audio_stream_free(usX2Y_stream); - } } static int usX2Y_audio_stream_new(snd_card_t *card, int playback_endpoint, int capture_endpoint) diff --git a/sound/usb/usx2y/usx2yhwdeppcm.c b/sound/usb/usx2y/usx2yhwdeppcm.c index c9136a98755..4bbf52bd602 100644 --- a/sound/usb/usx2y/usx2yhwdeppcm.c +++ b/sound/usb/usx2y/usx2yhwdeppcm.c @@ -740,12 +740,6 @@ static void snd_usX2Y_hwdep_pcm_private_free(snd_hwdep_t *hwdep) } -static void snd_usX2Y_usbpcm_private_free(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - - int usX2Y_hwdep_pcm_new(snd_card_t* card) { int err; @@ -776,7 +770,6 @@ int usX2Y_hwdep_pcm_new(snd_card_t* card) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_usX2Y_usbpcm_ops); pcm->private_data = usX2Y(card)->subs; - pcm->private_free = snd_usX2Y_usbpcm_private_free; pcm->info_flags = 0; sprintf(pcm->name, NAME_ALLCAPS" hwdep Audio"); @@ -788,7 +781,6 @@ int usX2Y_hwdep_pcm_new(snd_card_t* card) SNDRV_DMA_TYPE_CONTINUOUS, snd_dma_continuous_data(GFP_KERNEL), 64*1024, 128*1024))) { - snd_usX2Y_usbpcm_private_free(pcm); return err; } -- cgit v1.2.3-70-g09d2 From 9b4ffa48ae855c8657a36014c5b0243ff69f4722 Mon Sep 17 00:00:00 2001 From: Jaya Kumar Date: Thu, 17 Nov 2005 10:12:23 +0100 Subject: [ALSA] Add support for the CS5535 Audio device Add support for the CS5535 Audio device. I've fixed up some errors as per Takashi's advice from the thread: http://lkml.org/lkml/2005/9/15/119 From: Alan Cox cs5535 is a 32bit x86 only device using weird CPU features Signed-off-by: Jaya Kumar Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai --- CREDITS | 1 + MAINTAINERS | 5 + include/linux/pci_ids.h | 4 + sound/pci/Kconfig | 13 + sound/pci/Makefile | 1 + sound/pci/cs5535audio/Makefile | 8 + sound/pci/cs5535audio/cs5535audio.c | 410 ++++++++++++++++++++++++++++++ sound/pci/cs5535audio/cs5535audio.h | 123 +++++++++ sound/pci/cs5535audio/cs5535audio_pcm.c | 430 ++++++++++++++++++++++++++++++++ 9 files changed, 995 insertions(+) create mode 100644 sound/pci/cs5535audio/Makefile create mode 100644 sound/pci/cs5535audio/cs5535audio.c create mode 100644 sound/pci/cs5535audio/cs5535audio.h create mode 100644 sound/pci/cs5535audio/cs5535audio_pcm.c (limited to 'sound/pci') diff --git a/CREDITS b/CREDITS index 1b4f8694fa4..521f00d1b54 100644 --- a/CREDITS +++ b/CREDITS @@ -1883,6 +1883,7 @@ N: Jaya Kumar E: jayalk@intworks.biz W: http://www.intworks.biz D: Arc monochrome LCD framebuffer driver, x86 reboot fixups +D: pirq addr, CS5535 alsa audio driver S: Gurgaon, India S: Kuala Lumpur, Malaysia diff --git a/MAINTAINERS b/MAINTAINERS index 6af683025ae..93f97b3afac 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -650,6 +650,11 @@ L: linux-crypto@vger.kernel.org T: git kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6.git S: Maintained +CS5535 Audio ALSA driver +P: Jaya Kumar +M: jayakumar.alsa@gmail.com +S: Maintained + CYBERPRO FB DRIVER P: Russell King M: rmk@arm.linux.org.uk diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 4db67b3b05c..9093f118f99 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -376,6 +376,10 @@ #define PCI_DEVICE_ID_NS_87560_USB 0x0012 #define PCI_DEVICE_ID_NS_83815 0x0020 #define PCI_DEVICE_ID_NS_83820 0x0022 +#define PCI_DEVICE_ID_NS_CS5535_IDE 0x002d +#define PCI_DEVICE_ID_NS_CS5535_AUDIO 0x002e +#define PCI_DEVICE_ID_NS_CS5535_USB 0x002f +#define PCI_DEVICE_ID_NS_CS5535_VIDEO 0x0030 #define PCI_DEVICE_ID_NS_SATURN 0x0035 #define PCI_DEVICE_ID_NS_SCx200_BRIDGE 0x0500 #define PCI_DEVICE_ID_NS_SCx200_SMI 0x0501 diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig index 0fb16cf335e..920305c7402 100644 --- a/sound/pci/Kconfig +++ b/sound/pci/Kconfig @@ -359,6 +359,19 @@ config SND_ENS1370 To compile this driver as a module, choose M here: the module will be called snd-ens1370. +config SND_CS5535AUDIO + tristate "CS5535 Audio" + depends on SND && X86 && !X86_64 + select SND_PCM + select SND_AC97_CODEC + help + Say Y here to include support for audio on CS5535 chips. It is + referred to as NS CS5535 IO or AMD CS5535 IO companion in + various literature. + + To compile this driver as a module, choose M here: the module + will be called snd-cs5535audio. + config SND_ENS1371 tristate "(Creative) Ensoniq AudioPCI 1371/1373" depends on SND diff --git a/sound/pci/Makefile b/sound/pci/Makefile index 42fabfcfc2a..82a9c734f84 100644 --- a/sound/pci/Makefile +++ b/sound/pci/Makefile @@ -54,6 +54,7 @@ obj-$(CONFIG_SND) += \ au88x0/ \ ca0106/ \ cs46xx/ \ + cs5535audio/ \ emu10k1/ \ hda/ \ ice1712/ \ diff --git a/sound/pci/cs5535audio/Makefile b/sound/pci/cs5535audio/Makefile new file mode 100644 index 00000000000..08d8ee6547d --- /dev/null +++ b/sound/pci/cs5535audio/Makefile @@ -0,0 +1,8 @@ +# +# Makefile for cs5535audio +# + +snd-cs5535audio-objs := cs5535audio.o cs5535audio_pcm.o + +# Toplevel Module Dependency +obj-$(CONFIG_SND_CS5535AUDIO) += snd-cs5535audio.o diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c new file mode 100644 index 00000000000..920c857fc22 --- /dev/null +++ b/sound/pci/cs5535audio/cs5535audio.c @@ -0,0 +1,410 @@ +/* + * Driver for audio on multifunction CS5535 companion device + * Copyright (C) Jaya Kumar + * + * Based on Jaroslav Kysela and Takashi Iwai's examples. + * This work was sponsored by CIS(M) Sdn Bhd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "cs5535audio.h" + +#define DRIVER_NAME "cs5535audio" + + +static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; +static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; +static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; + +static struct pci_device_id snd_cs5535audio_ids[] = { + { PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO, PCI_ANY_ID, + PCI_ANY_ID, 0, 0, 0, }, + {} +}; + +MODULE_DEVICE_TABLE(pci, snd_cs5535audio_ids); + +static void wait_till_cmd_acked(cs5535audio_t *cs5535au, unsigned long timeout) +{ + unsigned long tmp; + do { + tmp = cs_readl(cs5535au, ACC_CODEC_CNTL); + if (!(tmp & CMD_NEW)) + break; + msleep(10); + } while (--timeout); + if (!timeout) + snd_printk(KERN_ERR "Failure writing to cs5535 codec\n"); +} + +static unsigned short snd_cs5535audio_codec_read(cs5535audio_t *cs5535au, + unsigned short reg) +{ + unsigned long regdata; + unsigned long timeout; + unsigned long val; + + regdata = ((unsigned long) reg) << 24; + regdata |= ACC_CODEC_CNTL_RD_CMD; + regdata |= CMD_NEW; + + cs_writel(cs5535au, ACC_CODEC_CNTL, regdata); + wait_till_cmd_acked(cs5535au, 500); + + timeout = 50; + do { + val = cs_readl(cs5535au, ACC_CODEC_STATUS); + if ( (val & STS_NEW) && + ((unsigned long) reg == ((0xFF000000 & val)>>24)) ) + break; + msleep(10); + } while (--timeout); + if (!timeout) + snd_printk(KERN_ERR "Failure reading cs5535 codec\n"); + + return ((unsigned short) val); +} + +static void snd_cs5535audio_codec_write(cs5535audio_t *cs5535au, + unsigned short reg, unsigned short val) +{ + unsigned long regdata; + + regdata = ((unsigned long) reg) << 24; + regdata |= (unsigned long) val; + regdata &= CMD_MASK; + regdata |= CMD_NEW; + regdata &= ACC_CODEC_CNTL_WR_CMD; + + cs_writel(cs5535au, ACC_CODEC_CNTL, regdata); + wait_till_cmd_acked(cs5535au, 50); +} + +static void snd_cs5535audio_ac97_codec_write(ac97_t *ac97, + unsigned short reg, unsigned short val) +{ + cs5535audio_t *cs5535au = ac97->private_data; + snd_cs5535audio_codec_write(cs5535au, reg, val); +} + +static unsigned short snd_cs5535audio_ac97_codec_read(ac97_t *ac97, + unsigned short reg) +{ + cs5535audio_t *cs5535au = ac97->private_data; + return snd_cs5535audio_codec_read(cs5535au, reg); +} + +static void snd_cs5535audio_mixer_free_ac97(ac97_t *ac97) +{ + cs5535audio_t *cs5535audio = ac97->private_data; + cs5535audio->ac97 = NULL; +} + +static int snd_cs5535audio_mixer(cs5535audio_t *cs5535au) +{ + snd_card_t *card = cs5535au->card; + ac97_bus_t *pbus; + ac97_template_t ac97; + int err; + static ac97_bus_ops_t ops = { + .write = snd_cs5535audio_ac97_codec_write, + .read = snd_cs5535audio_ac97_codec_read, + }; + + if ((err = snd_ac97_bus(card, 0, &ops, NULL, &pbus)) < 0) + return err; + + memset(&ac97, 0, sizeof(ac97)); + ac97.scaps = AC97_SCAP_AUDIO|AC97_SCAP_SKIP_MODEM; + ac97.private_data = cs5535au; + ac97.pci = cs5535au->pci; + ac97.private_free = snd_cs5535audio_mixer_free_ac97; + + if ((err = snd_ac97_mixer(pbus, &ac97, &cs5535au->ac97)) < 0) { + snd_printk("mixer failed\n"); + return err; + } + + return 0; +} + +static void process_bm0_irq(cs5535audio_t *cs5535au) +{ + u8 bm_stat; + spin_lock(&cs5535au->reg_lock); + bm_stat = cs_readb(cs5535au, ACC_BM0_STATUS); + spin_unlock(&cs5535au->reg_lock); + if (bm_stat & EOP) { + cs5535audio_dma_t *dma; + dma = cs5535au->playback_substream->runtime->private_data; + snd_pcm_period_elapsed(cs5535au->playback_substream); + } else { + snd_printk(KERN_ERR "unexpected bm0 irq src, bm_stat=%x\n", + bm_stat); + } +} + +static void process_bm1_irq(cs5535audio_t *cs5535au) +{ + u8 bm_stat; + spin_lock(&cs5535au->reg_lock); + bm_stat = cs_readb(cs5535au, ACC_BM1_STATUS); + spin_unlock(&cs5535au->reg_lock); + if (bm_stat & EOP) { + cs5535audio_dma_t *dma; + dma = cs5535au->capture_substream->runtime->private_data; + snd_pcm_period_elapsed(cs5535au->capture_substream); + } +} + +static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id, + struct pt_regs *regs) +{ + u16 acc_irq_stat; + u8 bm_stat; + unsigned char count; + cs5535audio_t *cs5535au = dev_id; + + if (cs5535au == NULL) + return IRQ_NONE; + + acc_irq_stat = cs_readw(cs5535au, ACC_IRQ_STATUS); + + if (!acc_irq_stat) + return IRQ_NONE; + for (count=0; count < 10; count++) { + if (acc_irq_stat & (1<irq); + pci_set_power_state(cs5535au->pci, 3); + + if (cs5535au->irq >= 0) + free_irq(cs5535au->irq, cs5535au); + + pci_release_regions(cs5535au->pci); + pci_disable_device(cs5535au->pci); + kfree(cs5535au); + return 0; +} + +static int snd_cs5535audio_dev_free(snd_device_t *device) +{ + cs5535audio_t *cs5535au = device->device_data; + return snd_cs5535audio_free(cs5535au); +} + +static int __devinit snd_cs5535audio_create(snd_card_t *card, + struct pci_dev *pci, + cs5535audio_t **rcs5535au) +{ + cs5535audio_t *cs5535au; + + int err; + static snd_device_ops_t ops = { + .dev_free = snd_cs5535audio_dev_free, + }; + + *rcs5535au = NULL; + if ((err = pci_enable_device(pci)) < 0) + return err; + + if (pci_set_dma_mask(pci, DMA_32BIT_MASK) < 0 || + pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK) < 0) { + printk(KERN_WARNING "unable to get 32bit dma\n"); + err = -ENXIO; + goto pcifail; + } + + cs5535au = kzalloc(sizeof(*cs5535au), GFP_KERNEL); + if (cs5535au == NULL) { + err = -ENOMEM; + goto pcifail; + } + + spin_lock_init(&cs5535au->reg_lock); + cs5535au->card = card; + cs5535au->pci = pci; + cs5535au->irq = -1; + + if ((err = pci_request_regions(pci, "CS5535 Audio")) < 0) { + kfree(cs5535au); + goto pcifail; + } + + cs5535au->port = pci_resource_start(pci, 0); + + if (request_irq(pci->irq, snd_cs5535audio_interrupt, + SA_INTERRUPT|SA_SHIRQ, "CS5535 Audio", cs5535au)) { + snd_printk("unable to grab IRQ %d\n", pci->irq); + err = -EBUSY; + goto sndfail; + } + + cs5535au->irq = pci->irq; + pci_set_master(pci); + + if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, + cs5535au, &ops)) < 0) + goto sndfail; + + snd_card_set_dev(card, &pci->dev); + + *rcs5535au = cs5535au; + return 0; + +sndfail: /* leave the device alive, just kill the snd */ + snd_cs5535audio_free(cs5535au); + return err; + +pcifail: + pci_disable_device(pci); + return err; +} + +static int __devinit snd_cs5535audio_probe(struct pci_dev *pci, + const struct pci_device_id *pci_id) +{ + static int dev; + snd_card_t *card; + cs5535audio_t *cs5535au; + int err; + + if (dev >= SNDRV_CARDS) + return -ENODEV; + if (!enable[dev]) { + dev++; + return -ENOENT; + } + + card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); + if (card == NULL) + return -ENOMEM; + + if ((err = snd_cs5535audio_create(card, pci, &cs5535au)) < 0) + goto probefail_out; + + if ((err = snd_cs5535audio_mixer(cs5535au)) < 0) + goto probefail_out; + + if ((err = snd_cs5535audio_pcm(cs5535au)) < 0) + goto probefail_out; + + strcpy(card->driver, DRIVER_NAME); + + strcpy(card->shortname, "CS5535 Audio"); + sprintf(card->longname, "%s %s at 0x%lx, irq %i", + card->shortname, card->driver, + cs5535au->port, cs5535au->irq); + + if ((err = snd_card_register(card)) < 0) + goto probefail_out; + + pci_set_drvdata(pci, card); + dev++; + return 0; + +probefail_out: + snd_card_free(card); + return err; +} + +static void __devexit snd_cs5535audio_remove(struct pci_dev *pci) +{ + snd_card_free(pci_get_drvdata(pci)); + pci_set_drvdata(pci, NULL); +} + +static struct pci_driver driver = { + .name = DRIVER_NAME, + .id_table = snd_cs5535audio_ids, + .probe = snd_cs5535audio_probe, + .remove = __devexit_p(snd_cs5535audio_remove), +}; + +static int __init alsa_card_cs5535audio_init(void) +{ + return pci_module_init(&driver); +} + +static void __exit alsa_card_cs5535audio_exit(void) +{ + pci_unregister_driver(&driver); +} + +module_init(alsa_card_cs5535audio_init) +module_exit(alsa_card_cs5535audio_exit) + +MODULE_AUTHOR("Jaya Kumar"); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("CS5535 Audio"); +MODULE_SUPPORTED_DEVICE("CS5535 Audio"); diff --git a/sound/pci/cs5535audio/cs5535audio.h b/sound/pci/cs5535audio/cs5535audio.h new file mode 100644 index 00000000000..e28177fb099 --- /dev/null +++ b/sound/pci/cs5535audio/cs5535audio.h @@ -0,0 +1,123 @@ +#ifndef __SOUND_CS5535AUDIO_H +#define __SOUND_CS5535AUDIO_H + +#define cs_writel(cs5535au, reg, val) outl(val, (int) cs5535au->port + reg) +#define cs_writeb(cs5535au, reg, val) outb(val, (int) cs5535au->port + reg) +#define cs_readl(cs5535au, reg) inl((unsigned short) (cs5535au->port + reg)) +#define cs_readw(cs5535au, reg) inw((unsigned short) (cs5535au->port + reg)) +#define cs_readb(cs5535au, reg) inb((unsigned short) (cs5535au->port + reg)) + +#define CS5535AUDIO_MAX_DESCRIPTORS 128 + +/* acc_codec bar0 reg addrs */ +#define ACC_GPIO_STATUS 0x00 +#define ACC_CODEC_STATUS 0x08 +#define ACC_CODEC_CNTL 0x0C +#define ACC_IRQ_STATUS 0x12 +#define ACC_BM0_CMD 0x20 +#define ACC_BM1_CMD 0x28 +#define ACC_BM2_CMD 0x30 +#define ACC_BM3_CMD 0x38 +#define ACC_BM4_CMD 0x40 +#define ACC_BM5_CMD 0x48 +#define ACC_BM6_CMD 0x50 +#define ACC_BM7_CMD 0x58 +#define ACC_BM0_PRD 0x24 +#define ACC_BM1_PRD 0x2C +#define ACC_BM2_PRD 0x34 +#define ACC_BM3_PRD 0x3C +#define ACC_BM4_PRD 0x44 +#define ACC_BM5_PRD 0x4C +#define ACC_BM6_PRD 0x54 +#define ACC_BM7_PRD 0x5C +#define ACC_BM0_STATUS 0x21 +#define ACC_BM1_STATUS 0x29 +#define ACC_BM2_STATUS 0x31 +#define ACC_BM3_STATUS 0x39 +#define ACC_BM4_STATUS 0x41 +#define ACC_BM5_STATUS 0x49 +#define ACC_BM6_STATUS 0x51 +#define ACC_BM7_STATUS 0x59 +#define ACC_BM0_PNTR 0x60 +#define ACC_BM1_PNTR 0x64 +#define ACC_BM2_PNTR 0x68 +#define ACC_BM3_PNTR 0x6C +#define ACC_BM4_PNTR 0x70 +#define ACC_BM5_PNTR 0x74 +#define ACC_BM6_PNTR 0x78 +#define ACC_BM7_PNTR 0x7C +/* acc_codec bar0 reg bits */ +/* ACC_IRQ_STATUS */ +#define IRQ_STS 0 +#define WU_IRQ_STS 1 +#define BM0_IRQ_STS 2 +#define BM1_IRQ_STS 3 +#define BM2_IRQ_STS 4 +#define BM3_IRQ_STS 5 +#define BM4_IRQ_STS 6 +#define BM5_IRQ_STS 7 +#define BM6_IRQ_STS 8 +#define BM7_IRQ_STS 9 +/* ACC_BMX_STATUS */ +#define EOP (1<<0) +#define BM_EOP_ERR (1<<1) +/* ACC_BMX_CTL */ +#define BM_CTL_EN 0x00000001 +#define BM_CTL_PAUSE 0x00000011 +#define BM_CTL_DIS 0x00000000 +#define BM_CTL_BYTE_ORD_LE 0x00000000 +#define BM_CTL_BYTE_ORD_BE 0x00000100 +/* cs5535 specific ac97 codec register defines */ +#define CMD_MASK 0xFF00FFFF +#define CMD_NEW 0x00010000 +#define STS_NEW 0x00020000 +#define PRM_RDY_STS 0x00800000 +#define ACC_CODEC_CNTL_WR_CMD (~0x80000000) +#define ACC_CODEC_CNTL_RD_CMD 0x80000000 +#define PRD_JMP 0x2000 +#define PRD_EOP 0x4000 +#define PRD_EOT 0x8000 + +typedef struct _snd_cs5535audio cs5535audio_t; +typedef struct snd_cs5535audio_dma cs5535audio_dma_t; +typedef struct snd_cs5535audio_dma_ops cs5535audio_dma_ops_t; + +enum { CS5535AUDIO_DMA_PLAYBACK, CS5535AUDIO_DMA_CAPTURE, NUM_CS5535AUDIO_DMAS }; +struct snd_cs5535audio_dma_ops { + int type; + void (*enable_dma)(cs5535audio_t *cs5535au); + void (*disable_dma)(cs5535audio_t *cs5535au); + void (*pause_dma)(cs5535audio_t *cs5535au); + void (*setup_prd)(cs5535audio_t *cs5535au, u32 prd_addr); + u32 (*read_dma_pntr)(cs5535audio_t *cs5535au); +}; + +typedef struct cs5535audio_dma_desc { + u32 addr; + u16 size; + u16 ctlreserved; +} cs5535audio_dma_desc_t; + +struct snd_cs5535audio_dma { + const cs5535audio_dma_ops_t *ops; + struct snd_dma_buffer desc_buf; + snd_pcm_substream_t *substream; + unsigned int buf_addr, buf_bytes; + unsigned int period_bytes, periods; +}; + +struct _snd_cs5535audio { + snd_card_t *card; + ac97_t *ac97; + int irq; + struct pci_dev *pci; + unsigned long port; + spinlock_t reg_lock; + snd_pcm_substream_t *playback_substream; + snd_pcm_substream_t *capture_substream; + cs5535audio_dma_t dmas[NUM_CS5535AUDIO_DMAS]; +}; + +int __devinit snd_cs5535audio_pcm(cs5535audio_t *cs5535audio); +#endif /* __SOUND_CS5535AUDIO_H */ + diff --git a/sound/pci/cs5535audio/cs5535audio_pcm.c b/sound/pci/cs5535audio/cs5535audio_pcm.c new file mode 100644 index 00000000000..5802ed9d57b --- /dev/null +++ b/sound/pci/cs5535audio/cs5535audio_pcm.c @@ -0,0 +1,430 @@ +/* + * Driver for audio on multifunction CS5535 companion device + * Copyright (C) Jaya Kumar + * + * Based on Jaroslav Kysela and Takashi Iwai's examples. + * This work was sponsored by CIS(M) Sdn Bhd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * todo: add be fmt support, spdif, pm + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "cs5535audio.h" + +static snd_pcm_hardware_t snd_cs5535audio_playback = +{ + .info = ( + SNDRV_PCM_INFO_MMAP | + SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_MMAP_VALID | + SNDRV_PCM_INFO_PAUSE | + SNDRV_PCM_INFO_SYNC_START + ), + .formats = ( + SNDRV_PCM_FMTBIT_S16_LE + ), + .rates = ( + SNDRV_PCM_RATE_CONTINUOUS | + SNDRV_PCM_RATE_8000_48000 + ), + .rate_min = 4000, + .rate_max = 48000, + .channels_min = 2, + .channels_max = 2, + .buffer_bytes_max = (128*1024), + .period_bytes_min = 64, + .period_bytes_max = (64*1024 - 16), + .periods_min = 1, + .periods_max = CS5535AUDIO_MAX_DESCRIPTORS, + .fifo_size = 0, +}; + +static snd_pcm_hardware_t snd_cs5535audio_capture = +{ + .info = ( + SNDRV_PCM_INFO_MMAP | + SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_MMAP_VALID | + SNDRV_PCM_INFO_SYNC_START + ), + .formats = ( + SNDRV_PCM_FMTBIT_S16_LE + ), + .rates = ( + SNDRV_PCM_RATE_CONTINUOUS | + SNDRV_PCM_RATE_8000_48000 + ), + .rate_min = 4000, + .rate_max = 48000, + .channels_min = 2, + .channels_max = 2, + .buffer_bytes_max = (128*1024), + .period_bytes_min = 64, + .period_bytes_max = (64*1024 - 16), + .periods_min = 1, + .periods_max = CS5535AUDIO_MAX_DESCRIPTORS, + .fifo_size = 0, +}; + +static int snd_cs5535audio_playback_open(snd_pcm_substream_t *substream) +{ + int err; + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + snd_pcm_runtime_t *runtime = substream->runtime; + + runtime->hw = snd_cs5535audio_playback; + cs5535au->playback_substream = substream; + runtime->private_data = &(cs5535au->dmas[CS5535AUDIO_DMA_PLAYBACK]); + snd_pcm_set_sync(substream); + if ((err = snd_pcm_hw_constraint_integer(runtime, + SNDRV_PCM_HW_PARAM_PERIODS)) < 0) + return err; + + return 0; +} + +static int snd_cs5535audio_playback_close(snd_pcm_substream_t *substream) +{ + return 0; +} + +#define CS5535AUDIO_DESC_LIST_SIZE \ + PAGE_ALIGN(CS5535AUDIO_MAX_DESCRIPTORS * sizeof(cs5535audio_dma_desc_t)) + +static int cs5535audio_build_dma_packets(cs5535audio_t *cs5535au, + cs5535audio_dma_t *dma, + snd_pcm_substream_t *substream, + unsigned int periods, + unsigned int period_bytes) +{ + unsigned int i; + u32 addr, desc_addr, jmpprd_addr; + cs5535audio_dma_desc_t *lastdesc; + + if (periods > CS5535AUDIO_MAX_DESCRIPTORS) + return -ENOMEM; + + if (dma->desc_buf.area == NULL) { + if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, + snd_dma_pci_data(cs5535au->pci), + CS5535AUDIO_DESC_LIST_SIZE+1, + &dma->desc_buf) < 0) + return -ENOMEM; + dma->period_bytes = dma->periods = 0; + } + + if (dma->periods == periods && dma->period_bytes == period_bytes) + return 0; + + /* the u32 cast is okay because in snd*create we succesfully told + pci alloc that we're only 32 bit capable so the uppper will be 0 */ + addr = (u32) substream->runtime->dma_addr; + desc_addr = (u32) dma->desc_buf.addr; + for (i = 0; i < periods; i++) { + cs5535audio_dma_desc_t *desc = + &((cs5535audio_dma_desc_t *) dma->desc_buf.area)[i]; + desc->addr = cpu_to_le32(addr); + desc->size = period_bytes; + desc->ctlreserved = PRD_EOP; + desc_addr += sizeof(cs5535audio_dma_desc_t); + addr += period_bytes; + } + /* we reserved one dummy descriptor at the end to do the PRD jump */ + lastdesc = &((cs5535audio_dma_desc_t *) dma->desc_buf.area)[periods]; + lastdesc->addr = cpu_to_le32((u32) dma->desc_buf.addr); + lastdesc->size = 0; + lastdesc->ctlreserved = PRD_JMP; + jmpprd_addr = cpu_to_le32(lastdesc->addr + + (sizeof(cs5535audio_dma_desc_t)*periods)); + + dma->period_bytes = period_bytes; + dma->periods = periods; + spin_lock_irq(&cs5535au->reg_lock); + dma->ops->disable_dma(cs5535au); + dma->ops->setup_prd(cs5535au, jmpprd_addr); + spin_unlock_irq(&cs5535au->reg_lock); + return 0; +} + +static void cs5535audio_playback_enable_dma(cs5535audio_t *cs5535au) +{ + cs_writeb(cs5535au, ACC_BM0_CMD, BM_CTL_EN); +} + +static void cs5535audio_playback_disable_dma(cs5535audio_t *cs5535au) +{ + cs_writeb(cs5535au, ACC_BM0_CMD, 0); +} + +static void cs5535audio_playback_pause_dma(cs5535audio_t *cs5535au) +{ + cs_writeb(cs5535au, ACC_BM0_CMD, BM_CTL_PAUSE); +} + +static void cs5535audio_playback_setup_prd(cs5535audio_t *cs5535au, + u32 prd_addr) +{ + cs_writel(cs5535au, ACC_BM0_PRD, prd_addr); +} + +static u32 cs5535audio_playback_read_dma_pntr(cs5535audio_t *cs5535au) +{ + return cs_readl(cs5535au, ACC_BM0_PNTR); +} + +static void cs5535audio_capture_enable_dma(cs5535audio_t *cs5535au) +{ + cs_writeb(cs5535au, ACC_BM1_CMD, BM_CTL_EN); +} + +static void cs5535audio_capture_disable_dma(cs5535audio_t *cs5535au) +{ + cs_writeb(cs5535au, ACC_BM1_CMD, 0); +} + +static void cs5535audio_capture_pause_dma(cs5535audio_t *cs5535au) +{ + cs_writeb(cs5535au, ACC_BM1_CMD, BM_CTL_PAUSE); +} + +static void cs5535audio_capture_setup_prd(cs5535audio_t *cs5535au, + u32 prd_addr) +{ + cs_writel(cs5535au, ACC_BM1_PRD, prd_addr); +} + +static u32 cs5535audio_capture_read_dma_pntr(cs5535audio_t *cs5535au) +{ + return cs_readl(cs5535au, ACC_BM1_PNTR); +} + +static void cs5535audio_clear_dma_packets(cs5535audio_t *cs5535au, + cs5535audio_dma_t *dma, + snd_pcm_substream_t *substream) +{ + snd_dma_free_pages(&dma->desc_buf); + dma->desc_buf.area = NULL; +} + +static int snd_cs5535audio_hw_params(snd_pcm_substream_t *substream, + snd_pcm_hw_params_t *hw_params) +{ + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + cs5535audio_dma_t *dma = substream->runtime->private_data; + int err; + + err = snd_pcm_lib_malloc_pages(substream, + params_buffer_bytes(hw_params)); + if (err < 0) + return err; + dma->buf_addr = substream->runtime->dma_addr; + dma->buf_bytes = params_buffer_bytes(hw_params); + + err = cs5535audio_build_dma_packets(cs5535au, dma, substream, + params_periods(hw_params), + params_period_bytes(hw_params)); + return err; +} + +static int snd_cs5535audio_hw_free(snd_pcm_substream_t *substream) +{ + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + cs5535audio_dma_t *dma = substream->runtime->private_data; + + cs5535audio_clear_dma_packets(cs5535au, dma, substream); + return snd_pcm_lib_free_pages(substream); +} + +static int snd_cs5535audio_playback_prepare(snd_pcm_substream_t *substream) +{ + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + return snd_ac97_set_rate(cs5535au->ac97, AC97_PCM_FRONT_DAC_RATE, + substream->runtime->rate); +} + +static int snd_cs5535audio_trigger(snd_pcm_substream_t *substream, int cmd) +{ + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + cs5535audio_dma_t *dma = substream->runtime->private_data; + + switch (cmd) { + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + spin_lock_irq(&cs5535au->reg_lock); + dma->ops->pause_dma(cs5535au); + spin_unlock_irq(&cs5535au->reg_lock); + break; + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + spin_lock_irq(&cs5535au->reg_lock); + dma->ops->enable_dma(cs5535au); + spin_unlock_irq(&cs5535au->reg_lock); + break; + case SNDRV_PCM_TRIGGER_START: + spin_lock_irq(&cs5535au->reg_lock); + dma->ops->enable_dma(cs5535au); + spin_unlock_irq(&cs5535au->reg_lock); + break; + case SNDRV_PCM_TRIGGER_STOP: + spin_lock_irq(&cs5535au->reg_lock); + dma->ops->disable_dma(cs5535au); + spin_unlock_irq(&cs5535au->reg_lock); + break; + default: + snd_printk(KERN_ERR "unhandled trigger\n"); + return -EINVAL; + break; + } + return 0; +} + +static snd_pcm_uframes_t snd_cs5535audio_pcm_pointer(snd_pcm_substream_t + *substream) +{ + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + u32 curdma; + cs5535audio_dma_t *dma; + + dma = substream->runtime->private_data; + curdma = dma->ops->read_dma_pntr(cs5535au); + if (curdma < dma->buf_addr) { + snd_printk(KERN_ERR "curdma=%x < %x bufaddr.\n", + curdma, dma->buf_addr); + return 0; + } + curdma -= dma->buf_addr; + if (curdma >= dma->buf_bytes) { + snd_printk(KERN_ERR "diff=%x >= %x buf_bytes.\n", + curdma, dma->buf_bytes); + return 0; + } + return bytes_to_frames(substream->runtime, curdma); +} + +static int snd_cs5535audio_capture_open(snd_pcm_substream_t *substream) +{ + int err; + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + snd_pcm_runtime_t *runtime = substream->runtime; + + runtime->hw = snd_cs5535audio_capture; + cs5535au->capture_substream = substream; + runtime->private_data = &(cs5535au->dmas[CS5535AUDIO_DMA_CAPTURE]); + snd_pcm_set_sync(substream); + if ((err = snd_pcm_hw_constraint_integer(runtime, + SNDRV_PCM_HW_PARAM_PERIODS)) < 0) + return err; + return 0; +} + +static int snd_cs5535audio_capture_close(snd_pcm_substream_t *substream) +{ + return 0; +} + +static int snd_cs5535audio_capture_prepare(snd_pcm_substream_t *substream) +{ + cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + return snd_ac97_set_rate(cs5535au->ac97, AC97_PCM_LR_ADC_RATE, + substream->runtime->rate); +} + +static snd_pcm_ops_t snd_cs5535audio_playback_ops = { + .open = snd_cs5535audio_playback_open, + .close = snd_cs5535audio_playback_close, + .ioctl = snd_pcm_lib_ioctl, + .hw_params = snd_cs5535audio_hw_params, + .hw_free = snd_cs5535audio_hw_free, + .prepare = snd_cs5535audio_playback_prepare, + .trigger = snd_cs5535audio_trigger, + .pointer = snd_cs5535audio_pcm_pointer, +}; + +static snd_pcm_ops_t snd_cs5535audio_capture_ops = { + .open = snd_cs5535audio_capture_open, + .close = snd_cs5535audio_capture_close, + .ioctl = snd_pcm_lib_ioctl, + .hw_params = snd_cs5535audio_hw_params, + .hw_free = snd_cs5535audio_hw_free, + .prepare = snd_cs5535audio_capture_prepare, + .trigger = snd_cs5535audio_trigger, + .pointer = snd_cs5535audio_pcm_pointer, +}; + +static void snd_cs5535audio_pcm_free(snd_pcm_t *pcm) +{ + snd_pcm_lib_preallocate_free_for_all(pcm); +} + +static cs5535audio_dma_ops_t snd_cs5535audio_playback_dma_ops = { + .type = CS5535AUDIO_DMA_PLAYBACK, + .enable_dma = cs5535audio_playback_enable_dma, + .disable_dma = cs5535audio_playback_disable_dma, + .setup_prd = cs5535audio_playback_setup_prd, + .pause_dma = cs5535audio_playback_pause_dma, + .read_dma_pntr = cs5535audio_playback_read_dma_pntr, +}; + +static cs5535audio_dma_ops_t snd_cs5535audio_capture_dma_ops = { + .type = CS5535AUDIO_DMA_CAPTURE, + .enable_dma = cs5535audio_capture_enable_dma, + .disable_dma = cs5535audio_capture_disable_dma, + .setup_prd = cs5535audio_capture_setup_prd, + .pause_dma = cs5535audio_capture_pause_dma, + .read_dma_pntr = cs5535audio_capture_read_dma_pntr, +}; + +int __devinit snd_cs5535audio_pcm(cs5535audio_t *cs5535au) +{ + snd_pcm_t *pcm; + int err; + + err = snd_pcm_new(cs5535au->card, "CS5535 Audio", 0, 1, 1, &pcm); + if (err < 0) + return err; + + cs5535au->dmas[CS5535AUDIO_DMA_PLAYBACK].ops = + &snd_cs5535audio_playback_dma_ops; + cs5535au->dmas[CS5535AUDIO_DMA_CAPTURE].ops = + &snd_cs5535audio_capture_dma_ops; + snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, + &snd_cs5535audio_playback_ops); + snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, + &snd_cs5535audio_capture_ops); + + pcm->private_data = cs5535au; + pcm->private_free = snd_cs5535audio_pcm_free; + pcm->info_flags = 0; + strcpy(pcm->name, "CS5535 Audio"); + + snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, + snd_dma_pci_data(cs5535au->pci), + 64*1024, 128*1024); + + return 0; +} + -- cgit v1.2.3-70-g09d2 From 3e8731740e17f01ec1ecce556ccdc4c42279ce1b Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:15:37 +0100 Subject: [ALSA] Minor clean up and fixes for CS5535 audio driver Modules: Documentation,CS5535 driver Minor clean up and fixes for CS5535 audio driver. Added an entry in ALSA-Configuration.txt, too. Signed-off-by: Takashi Iwai --- Documentation/sound/alsa/ALSA-Configuration.txt | 7 +++ sound/pci/cs5535audio/cs5535audio.c | 34 ++++++--------- sound/pci/cs5535audio/cs5535audio.h | 10 ++--- sound/pci/cs5535audio/cs5535audio_pcm.c | 57 ++++++++++--------------- 4 files changed, 48 insertions(+), 60 deletions(-) (limited to 'sound/pci') diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 2f27f391c7c..23d1870d522 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt @@ -410,6 +410,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. The power-management is supported. + Module snd-cs5535audio + ---------------------- + + Module for multifunction CS5535 companion PCI device + + Module supports up to 8 cards. + Module snd-dt019x ----------------- diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c index 920c857fc22..3f4379da4d2 100644 --- a/sound/pci/cs5535audio/cs5535audio.c +++ b/sound/pci/cs5535audio/cs5535audio.c @@ -55,7 +55,7 @@ MODULE_DEVICE_TABLE(pci, snd_cs5535audio_ids); static void wait_till_cmd_acked(cs5535audio_t *cs5535au, unsigned long timeout) { - unsigned long tmp; + unsigned int tmp; do { tmp = cs_readl(cs5535au, ACC_CODEC_CNTL); if (!(tmp & CMD_NEW)) @@ -69,11 +69,11 @@ static void wait_till_cmd_acked(cs5535audio_t *cs5535au, unsigned long timeout) static unsigned short snd_cs5535audio_codec_read(cs5535audio_t *cs5535au, unsigned short reg) { - unsigned long regdata; - unsigned long timeout; - unsigned long val; + unsigned int regdata; + int timeout; + unsigned int val; - regdata = ((unsigned long) reg) << 24; + regdata = ((unsigned int) reg) << 24; regdata |= ACC_CODEC_CNTL_RD_CMD; regdata |= CMD_NEW; @@ -83,24 +83,23 @@ static unsigned short snd_cs5535audio_codec_read(cs5535audio_t *cs5535au, timeout = 50; do { val = cs_readl(cs5535au, ACC_CODEC_STATUS); - if ( (val & STS_NEW) && - ((unsigned long) reg == ((0xFF000000 & val)>>24)) ) + if ((val & STS_NEW) && reg == (val >> 24)) break; msleep(10); } while (--timeout); if (!timeout) snd_printk(KERN_ERR "Failure reading cs5535 codec\n"); - return ((unsigned short) val); + return (unsigned short) val; } static void snd_cs5535audio_codec_write(cs5535audio_t *cs5535au, unsigned short reg, unsigned short val) { - unsigned long regdata; + unsigned int regdata; - regdata = ((unsigned long) reg) << 24; - regdata |= (unsigned long) val; + regdata = ((unsigned int) reg) << 24; + regdata |= val; regdata &= CMD_MASK; regdata |= CMD_NEW; regdata &= ACC_CODEC_CNTL_WR_CMD; @@ -123,12 +122,6 @@ static unsigned short snd_cs5535audio_ac97_codec_read(ac97_t *ac97, return snd_cs5535audio_codec_read(cs5535au, reg); } -static void snd_cs5535audio_mixer_free_ac97(ac97_t *ac97) -{ - cs5535audio_t *cs5535audio = ac97->private_data; - cs5535audio->ac97 = NULL; -} - static int snd_cs5535audio_mixer(cs5535audio_t *cs5535au) { snd_card_t *card = cs5535au->card; @@ -147,10 +140,9 @@ static int snd_cs5535audio_mixer(cs5535audio_t *cs5535au) ac97.scaps = AC97_SCAP_AUDIO|AC97_SCAP_SKIP_MODEM; ac97.private_data = cs5535au; ac97.pci = cs5535au->pci; - ac97.private_free = snd_cs5535audio_mixer_free_ac97; if ((err = snd_ac97_mixer(pbus, &ac97, &cs5535au->ac97)) < 0) { - snd_printk("mixer failed\n"); + snd_printk(KERN_ERR "mixer failed\n"); return err; } @@ -201,8 +193,8 @@ static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id, if (!acc_irq_stat) return IRQ_NONE; - for (count=0; count < 10; count++) { - if (acc_irq_stat & (1<port + reg) -#define cs_writeb(cs5535au, reg, val) outb(val, (int) cs5535au->port + reg) -#define cs_readl(cs5535au, reg) inl((unsigned short) (cs5535au->port + reg)) -#define cs_readw(cs5535au, reg) inw((unsigned short) (cs5535au->port + reg)) -#define cs_readb(cs5535au, reg) inb((unsigned short) (cs5535au->port + reg)) +#define cs_writel(cs5535au, reg, val) outl(val, (cs5535au)->port + reg) +#define cs_writeb(cs5535au, reg, val) outb(val, (cs5535au)->port + reg) +#define cs_readl(cs5535au, reg) inl((cs5535au)->port + reg) +#define cs_readw(cs5535au, reg) inw((cs5535au)->port + reg) +#define cs_readb(cs5535au, reg) inb((cs5535au)->port + reg) #define CS5535AUDIO_MAX_DESCRIPTORS 128 diff --git a/sound/pci/cs5535audio/cs5535audio_pcm.c b/sound/pci/cs5535audio/cs5535audio_pcm.c index 5802ed9d57b..d32b23f202c 100644 --- a/sound/pci/cs5535audio/cs5535audio_pcm.c +++ b/sound/pci/cs5535audio/cs5535audio_pcm.c @@ -150,8 +150,8 @@ static int cs5535audio_build_dma_packets(cs5535audio_t *cs5535au, cs5535audio_dma_desc_t *desc = &((cs5535audio_dma_desc_t *) dma->desc_buf.area)[i]; desc->addr = cpu_to_le32(addr); - desc->size = period_bytes; - desc->ctlreserved = PRD_EOP; + desc->size = cpu_to_le32(period_bytes); + desc->ctlreserved = cpu_to_le32(PRD_EOP); desc_addr += sizeof(cs5535audio_dma_desc_t); addr += period_bytes; } @@ -159,7 +159,7 @@ static int cs5535audio_build_dma_packets(cs5535audio_t *cs5535au, lastdesc = &((cs5535audio_dma_desc_t *) dma->desc_buf.area)[periods]; lastdesc->addr = cpu_to_le32((u32) dma->desc_buf.addr); lastdesc->size = 0; - lastdesc->ctlreserved = PRD_JMP; + lastdesc->ctlreserved = cpu_to_le32(PRD_JMP); jmpprd_addr = cpu_to_le32(lastdesc->addr + (sizeof(cs5535audio_dma_desc_t)*periods)); @@ -272,34 +272,29 @@ static int snd_cs5535audio_trigger(snd_pcm_substream_t *substream, int cmd) { cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); cs5535audio_dma_t *dma = substream->runtime->private_data; + int err = 0; + spin_lock(&cs5535au->reg_lock); switch (cmd) { - case SNDRV_PCM_TRIGGER_PAUSE_PUSH: - spin_lock_irq(&cs5535au->reg_lock); - dma->ops->pause_dma(cs5535au); - spin_unlock_irq(&cs5535au->reg_lock); - break; - case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: - spin_lock_irq(&cs5535au->reg_lock); - dma->ops->enable_dma(cs5535au); - spin_unlock_irq(&cs5535au->reg_lock); - break; - case SNDRV_PCM_TRIGGER_START: - spin_lock_irq(&cs5535au->reg_lock); - dma->ops->enable_dma(cs5535au); - spin_unlock_irq(&cs5535au->reg_lock); - break; - case SNDRV_PCM_TRIGGER_STOP: - spin_lock_irq(&cs5535au->reg_lock); - dma->ops->disable_dma(cs5535au); - spin_unlock_irq(&cs5535au->reg_lock); - break; - default: - snd_printk(KERN_ERR "unhandled trigger\n"); - return -EINVAL; - break; + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + dma->ops->pause_dma(cs5535au); + break; + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + dma->ops->enable_dma(cs5535au); + break; + case SNDRV_PCM_TRIGGER_START: + dma->ops->enable_dma(cs5535au); + break; + case SNDRV_PCM_TRIGGER_STOP: + dma->ops->disable_dma(cs5535au); + break; + default: + snd_printk(KERN_ERR "unhandled trigger\n"); + err = -EINVAL; + break; } - return 0; + spin_unlock(&cs5535au->reg_lock); + return err; } static snd_pcm_uframes_t snd_cs5535audio_pcm_pointer(snd_pcm_substream_t @@ -375,11 +370,6 @@ static snd_pcm_ops_t snd_cs5535audio_capture_ops = { .pointer = snd_cs5535audio_pcm_pointer, }; -static void snd_cs5535audio_pcm_free(snd_pcm_t *pcm) -{ - snd_pcm_lib_preallocate_free_for_all(pcm); -} - static cs5535audio_dma_ops_t snd_cs5535audio_playback_dma_ops = { .type = CS5535AUDIO_DMA_PLAYBACK, .enable_dma = cs5535audio_playback_enable_dma, @@ -417,7 +407,6 @@ int __devinit snd_cs5535audio_pcm(cs5535audio_t *cs5535au) &snd_cs5535audio_capture_ops); pcm->private_data = cs5535au; - pcm->private_free = snd_cs5535audio_pcm_free; pcm->info_flags = 0; strcpy(pcm->name, "CS5535 Audio"); -- cgit v1.2.3-70-g09d2 From 230b5c1a612ae903c560b55a15df287b0ff437ea Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:17:05 +0100 Subject: [ALSA] Sort Kconfig entries Modules: ISA,PCI drivers Sort Kconfig entries in alphabetical order. Signed-off-by: Takashi Iwai --- sound/isa/Kconfig | 158 ++++++++++----------- sound/pci/Kconfig | 410 +++++++++++++++++++++++++++--------------------------- 2 files changed, 284 insertions(+), 284 deletions(-) (limited to 'sound/pci') diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig index 5d6c300ac0d..04cafd2d211 100644 --- a/sound/isa/Kconfig +++ b/sound/isa/Kconfig @@ -41,6 +41,45 @@ config SND_AD1848 To compile this driver as a module, choose M here: the module will be called snd-ad1848. +config SND_ALS100 + tristate "Avance Logic ALS100/ALS120" + depends on SND && PNP && ISA + select ISAPNP + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_PCM + help + Say Y here to include support for soundcards based on Avance + Logic ALS100, ALS110, ALS120 and ALS200 chips. + + To compile this driver as a module, choose M here: the module + will be called snd-als100. + +config SND_AZT2320 + tristate "Aztech Systems AZT2320" + depends on SND && PNP && ISA + select ISAPNP + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_CS4231_LIB + help + Say Y here to include support for soundcards based on the + Aztech Systems AZT2320 chip. + + To compile this driver as a module, choose M here: the module + will be called snd-azt2320. + +config SND_CMI8330 + tristate "C-Media CMI8330" + depends on SND + select SND_AD1848_LIB + help + Say Y here to include support for soundcards based on the + C-Media CMI8330 chip. + + To compile this driver as a module, choose M here: the module + will be called snd-cmi8330. + config SND_CS4231 tristate "Generic Cirrus Logic CS4231 driver" depends on SND @@ -79,6 +118,20 @@ config SND_CS4236 To compile this driver as a module, choose M here: the module will be called snd-cs4236. +config SND_DT019X + tristate "Diamond Technologies DT-019X, Avance Logic ALS-007" + depends on SND && PNP && ISA + select ISAPNP + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_PCM + help + Say Y here to include support for soundcards based on the + Diamond Technologies DT-019X or Avance Logic ALS-007 chips. + + To compile this driver as a module, choose M here: the module + will be called snd-dt019x. + config SND_ES968 tristate "Generic ESS ES968 driver" depends on SND && PNP && ISA @@ -194,6 +247,19 @@ config SND_INTERWAVE_STB To compile this driver as a module, choose M here: the module will be called snd-interwave-stb. +config SND_OPL3SA2 + tristate "Yamaha OPL3-SA2/SA3" + depends on SND + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_CS4231_LIB + help + Say Y here to include support for Yamaha OPL3-SA2 and OPL3-SA3 + chips. + + To compile this driver as a module, choose M here: the module + will be called snd-opl3sa2. + config SND_OPTI92X_AD1848 tristate "OPTi 82C92x - AD1848" depends on SND @@ -286,85 +352,6 @@ config SND_SB16_CSP coprocessor can do variable tasks like various compression and decompression algorithms. -config SND_WAVEFRONT - tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)" - depends on SND - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_CS4231_LIB - help - Say Y here to include support for Turtle Beach Maui, Tropez - and Tropez+ soundcards based on the Wavefront chip. - - To compile this driver as a module, choose M here: the module - will be called snd-wavefront. - -config SND_ALS100 - tristate "Avance Logic ALS100/ALS120" - depends on SND && PNP && ISA - select ISAPNP - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_PCM - help - Say Y here to include support for soundcards based on Avance - Logic ALS100, ALS110, ALS120 and ALS200 chips. - - To compile this driver as a module, choose M here: the module - will be called snd-als100. - -config SND_AZT2320 - tristate "Aztech Systems AZT2320" - depends on SND && PNP && ISA - select ISAPNP - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_CS4231_LIB - help - Say Y here to include support for soundcards based on the - Aztech Systems AZT2320 chip. - - To compile this driver as a module, choose M here: the module - will be called snd-azt2320. - -config SND_CMI8330 - tristate "C-Media CMI8330" - depends on SND - select SND_AD1848_LIB - help - Say Y here to include support for soundcards based on the - C-Media CMI8330 chip. - - To compile this driver as a module, choose M here: the module - will be called snd-cmi8330. - -config SND_DT019X - tristate "Diamond Technologies DT-019X, Avance Logic ALS-007" - depends on SND && PNP && ISA - select ISAPNP - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_PCM - help - Say Y here to include support for soundcards based on the - Diamond Technologies DT-019X or Avance Logic ALS-007 chips. - - To compile this driver as a module, choose M here: the module - will be called snd-dt019x. - -config SND_OPL3SA2 - tristate "Yamaha OPL3-SA2/SA3" - depends on SND - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_CS4231_LIB - help - Say Y here to include support for Yamaha OPL3-SA2 and OPL3-SA3 - chips. - - To compile this driver as a module, choose M here: the module - will be called snd-opl3sa2. - config SND_SGALAXY tristate "Aztech Sound Galaxy" depends on SND @@ -389,4 +376,17 @@ config SND_SSCAPE To compile this driver as a module, choose M here: the module will be called snd-sscape. +config SND_WAVEFRONT + tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)" + depends on SND + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_CS4231_LIB + help + Say Y here to include support for Turtle Beach Maui, Tropez + and Tropez+ soundcards based on the Wavefront chip. + + To compile this driver as a module, choose M here: the module + will be called snd-wavefront. + endmenu diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig index 920305c7402..ef7bdc5a965 100644 --- a/sound/pci/Kconfig +++ b/sound/pci/Kconfig @@ -3,6 +3,31 @@ menu "PCI devices" depends on SND!=n && PCI +config SND_AD1889 + tristate "Analog Devices AD1889" + depends on SND + select SND_AC97_CODEC + help + Say Y here to include support for the integrated AC97 sound + device found in particular on the Hewlett-Packard [BCJ]-xxx0 + class PA-RISC workstations, using the AD1819 codec. + + To compile this as a module, choose M here: the module + will be called snd-ad1889. + +config SND_ALS4000 + tristate "Avance Logic ALS4000" + depends on SND && ISA_DMA_API + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_PCM + help + Say Y here to include support for soundcards based on Avance Logic + ALS4000 chips. + + To compile this driver as a module, choose M here: the module + will be called snd-als4000. + config SND_ALI5451 tristate "ALi M5451 PCI Audio Controller" depends on SND @@ -119,6 +144,44 @@ config SND_BT87X_OVERCLOCK Higher sample rates won't hurt your hardware, but audio quality may suffer. +config SND_CA0106 + tristate "SB Audigy LS / Live 24bit" + depends on SND + select SND_AC97_CODEC + select SND_RAWMIDI + help + Say Y here to include support for the Sound Blaster Audigy LS + and Live 24bit. + + To compile this driver as a module, choose M here: the module + will be called snd-ca0106. + +config SND_CMIPCI + tristate "C-Media 8738, 8338" + depends on SND + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_PCM + help + If you want to use soundcards based on C-Media CMI8338 or CMI8738 + chips, say Y here and read + . + + To compile this driver as a module, choose M here: the module + will be called snd-cmipci. + +config SND_CS4281 + tristate "Cirrus Logic (Sound Fusion) CS4281" + depends on SND + select SND_OPL3_LIB + select SND_RAWMIDI + select SND_AC97_CODEC + help + Say Y here to include support for Cirrus Logic CS4281 chips. + + To compile this driver as a module, choose M here: the module + will be called snd-cs4281. + config SND_CS46XX tristate "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x" depends on SND @@ -139,17 +202,18 @@ config SND_CS46XX_NEW_DSP This works better than the old code, so say Y. -config SND_CS4281 - tristate "Cirrus Logic (Sound Fusion) CS4281" - depends on SND - select SND_OPL3_LIB - select SND_RAWMIDI +config SND_CS5535AUDIO + tristate "CS5535 Audio" + depends on SND && X86 && !X86_64 + select SND_PCM select SND_AC97_CODEC help - Say Y here to include support for Cirrus Logic CS4281 chips. + Say Y here to include support for audio on CS5535 chips. It is + referred to as NS CS5535 IO or AMD CS5535 IO companion in + various literature. To compile this driver as a module, choose M here: the module - will be called snd-cs4281. + will be called snd-cs5535audio. config SND_EMU10K1 tristate "Emu10k1 (SB Live!, Audigy, E-mu APS)" @@ -180,174 +244,6 @@ config SND_EMU10K1X To compile this driver as a module, choose M here: the module will be called snd-emu10k1x. -config SND_CA0106 - tristate "SB Audigy LS / Live 24bit" - depends on SND - select SND_AC97_CODEC - select SND_RAWMIDI - help - Say Y here to include support for the Sound Blaster Audigy LS - and Live 24bit. - - To compile this driver as a module, choose M here: the module - will be called snd-ca0106. - -config SND_KORG1212 - tristate "Korg 1212 IO" - depends on SND - select SND_PCM - help - Say Y here to include support for Korg 1212IO soundcards. - - To compile this driver as a module, choose M here: the module - will be called snd-korg1212. - -config SND_MIXART - tristate "Digigram miXart" - depends on SND - select SND_HWDEP - select SND_PCM - help - If you want to use Digigram miXart soundcards, say Y here and - read . - - To compile this driver as a module, choose M here: the module - will be called snd-mixart. - -config SND_NM256 - tristate "NeoMagic NM256AV/ZX" - depends on SND - select SND_AC97_CODEC - help - Say Y here to include support for NeoMagic NM256AV/ZX chips. - - To compile this driver as a module, choose M here: the module - will be called snd-nm256. - -config SND_RME32 - tristate "RME Digi32, 32/8, 32 PRO" - depends on SND - select SND_PCM - help - Say Y to include support for RME Digi32, Digi32 PRO and - Digi32/8 (Sek'd Prodif32, Prodif96 and Prodif Gold) audio - devices. - - To compile this driver as a module, choose M here: the module - will be called snd-rme32. - -config SND_RME96 - tristate "RME Digi96, 96/8, 96/8 PRO" - depends on SND - select SND_PCM - help - Say Y here to include support for RME Digi96, Digi96/8 and - Digi96/8 PRO/PAD/PST soundcards. - - To compile this driver as a module, choose M here: the module - will be called snd-rme96. - -config SND_RME9652 - tristate "RME Digi9652 (Hammerfall)" - depends on SND - select SND_PCM - help - Say Y here to include support for RME Hammerfall (RME - Digi9652/Digi9636) soundcards. - - To compile this driver as a module, choose M here: the module - will be called snd-rme9652. - -config SND_HDSP - tristate "RME Hammerfall DSP Audio" - depends on SND - select SND_HWDEP - select SND_RAWMIDI - select SND_PCM - help - Say Y here to include support for RME Hammerfall DSP Audio - soundcards. - - To compile this driver as a module, choose M here: the module - will be called snd-hdsp. - -config SND_HDSPM - tristate "RME Hammerfall DSP MADI" - depends on SND - select SND_HWDEP - select SND_RAWMIDI - select SND_PCM - help - Say Y here to include support for RME Hammerfall DSP MADI - soundcards. - - To compile this driver as a module, choose M here: the module - will be called snd-hdspm. - -config SND_TRIDENT - tristate "Trident 4D-Wave DX/NX; SiS 7018" - depends on SND - select SND_MPU401_UART - select SND_AC97_CODEC - help - Say Y here to include support for soundcards based on Trident - 4D-Wave DX/NX or SiS 7018 chips. - - To compile this driver as a module, choose M here: the module - will be called snd-trident. - -config SND_YMFPCI - tristate "Yamaha YMF724/740/744/754" - depends on SND - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_AC97_CODEC - help - Say Y here to include support for Yamaha PCI audio chips - - YMF724, YMF724F, YMF740, YMF740C, YMF744, YMF754. - - To compile this driver as a module, choose M here: the module - will be called snd-ymfpci. - -config SND_AD1889 - tristate "Analog Devices AD1889" - depends on SND - select SND_AC97_CODEC - help - Say Y here to include support for the integrated AC97 sound - device found in particular on the Hewlett-Packard [BCJ]-xxx0 - class PA-RISC workstations, using the AD1819 codec. - - To compile this as a module, choose M here: the module - will be called snd-ad1889. - -config SND_ALS4000 - tristate "Avance Logic ALS4000" - depends on SND && ISA_DMA_API - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_PCM - help - Say Y here to include support for soundcards based on Avance Logic - ALS4000 chips. - - To compile this driver as a module, choose M here: the module - will be called snd-als4000. - -config SND_CMIPCI - tristate "C-Media 8738, 8338" - depends on SND - select SND_OPL3_LIB - select SND_MPU401_UART - select SND_PCM - help - If you want to use soundcards based on C-Media CMI8338 or CMI8738 - chips, say Y here and read - . - - To compile this driver as a module, choose M here: the module - will be called snd-cmipci. - config SND_ENS1370 tristate "(Creative) Ensoniq AudioPCI 1370" depends on SND @@ -359,19 +255,6 @@ config SND_ENS1370 To compile this driver as a module, choose M here: the module will be called snd-ens1370. -config SND_CS5535AUDIO - tristate "CS5535 Audio" - depends on SND && X86 && !X86_64 - select SND_PCM - select SND_AC97_CODEC - help - Say Y here to include support for audio on CS5535 chips. It is - referred to as NS CS5535 IO or AMD CS5535 IO companion in - various literature. - - To compile this driver as a module, choose M here: the module - will be called snd-cs5535audio. - config SND_ENS1371 tristate "(Creative) Ensoniq AudioPCI 1371/1373" depends on SND @@ -409,17 +292,6 @@ config SND_ES1968 To compile this driver as a module, choose M here: the module will be called snd-es1968. -config SND_MAESTRO3 - tristate "ESS Allegro/Maestro3" - depends on SND - select SND_AC97_CODEC - help - Say Y here to include support for soundcards based on ESS Maestro 3 - (Allegro) chips. - - To compile this driver as a module, choose M here: the module - will be called snd-maestro3. - config SND_FM801 tristate "ForteMedia FM801" depends on SND @@ -445,6 +317,43 @@ config SND_FM801_TEA575X To compile this driver as a module, choose M here: the module will be called snd-fm801-tea575x. +config SND_HDA_INTEL + tristate "Intel HD Audio" + depends on SND + select SND_PCM + help + Say Y here to include support for Intel "High Definition + Audio" (Azalia) motherboard devices. + + To compile this driver as a module, choose M here: the module + will be called snd-hda-intel. + +config SND_HDSP + tristate "RME Hammerfall DSP Audio" + depends on SND + select SND_HWDEP + select SND_RAWMIDI + select SND_PCM + help + Say Y here to include support for RME Hammerfall DSP Audio + soundcards. + + To compile this driver as a module, choose M here: the module + will be called snd-hdsp. + +config SND_HDSPM + tristate "RME Hammerfall DSP MADI" + depends on SND + select SND_HWDEP + select SND_RAWMIDI + select SND_PCM + help + Say Y here to include support for RME Hammerfall DSP MADI + soundcards. + + To compile this driver as a module, choose M here: the module + will be called snd-hdspm. + config SND_ICE1712 tristate "ICEnsemble ICE1712 (Envy24)" depends on SND @@ -503,6 +412,83 @@ config SND_INTEL8X0M To compile this driver as a module, choose M here: the module will be called snd-intel8x0m. +config SND_KORG1212 + tristate "Korg 1212 IO" + depends on SND + select SND_PCM + help + Say Y here to include support for Korg 1212IO soundcards. + + To compile this driver as a module, choose M here: the module + will be called snd-korg1212. + +config SND_MAESTRO3 + tristate "ESS Allegro/Maestro3" + depends on SND + select SND_AC97_CODEC + help + Say Y here to include support for soundcards based on ESS Maestro 3 + (Allegro) chips. + + To compile this driver as a module, choose M here: the module + will be called snd-maestro3. + +config SND_MIXART + tristate "Digigram miXart" + depends on SND + select SND_HWDEP + select SND_PCM + help + If you want to use Digigram miXart soundcards, say Y here and + read . + + To compile this driver as a module, choose M here: the module + will be called snd-mixart. + +config SND_NM256 + tristate "NeoMagic NM256AV/ZX" + depends on SND + select SND_AC97_CODEC + help + Say Y here to include support for NeoMagic NM256AV/ZX chips. + + To compile this driver as a module, choose M here: the module + will be called snd-nm256. + +config SND_RME32 + tristate "RME Digi32, 32/8, 32 PRO" + depends on SND + select SND_PCM + help + Say Y to include support for RME Digi32, Digi32 PRO and + Digi32/8 (Sek'd Prodif32, Prodif96 and Prodif Gold) audio + devices. + + To compile this driver as a module, choose M here: the module + will be called snd-rme32. + +config SND_RME96 + tristate "RME Digi96, 96/8, 96/8 PRO" + depends on SND + select SND_PCM + help + Say Y here to include support for RME Digi96, Digi96/8 and + Digi96/8 PRO/PAD/PST soundcards. + + To compile this driver as a module, choose M here: the module + will be called snd-rme96. + +config SND_RME9652 + tristate "RME Digi9652 (Hammerfall)" + depends on SND + select SND_PCM + help + Say Y here to include support for RME Hammerfall (RME + Digi9652/Digi9636) soundcards. + + To compile this driver as a module, choose M here: the module + will be called snd-rme9652. + config SND_SONICVIBES tristate "S3 SonicVibes" depends on SND @@ -516,6 +502,18 @@ config SND_SONICVIBES To compile this driver as a module, choose M here: the module will be called snd-sonicvibes. +config SND_TRIDENT + tristate "Trident 4D-Wave DX/NX; SiS 7018" + depends on SND + select SND_MPU401_UART + select SND_AC97_CODEC + help + Say Y here to include support for soundcards based on Trident + 4D-Wave DX/NX or SiS 7018 chips. + + To compile this driver as a module, choose M here: the module + will be called snd-trident. + config SND_VIA82XX tristate "VIA 82C686A/B, 8233/8235 AC97 Controller" depends on SND @@ -549,15 +547,17 @@ config SND_VX222 To compile this driver as a module, choose M here: the module will be called snd-vx222. -config SND_HDA_INTEL - tristate "Intel HD Audio" +config SND_YMFPCI + tristate "Yamaha YMF724/740/744/754" depends on SND - select SND_PCM + select SND_OPL3_LIB + select SND_MPU401_UART + select SND_AC97_CODEC help - Say Y here to include support for Intel "High Definition - Audio" (Azalia) motherboard devices. + Say Y here to include support for Yamaha PCI audio chips - + YMF724, YMF724F, YMF740, YMF740C, YMF744, YMF754. To compile this driver as a module, choose M here: the module - will be called snd-hda-intel. + will be called snd-ymfpci. endmenu -- cgit v1.2.3-70-g09d2 From bdbae7e62837c22c5399df0789a24e9d8a1d675f Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:21:19 +0100 Subject: [ALSA] Remove snd_vx_delay() function Replace snd_vx_delay() with appropriate delay/sleep functions. Signed-off-by: Takashi Iwai --- include/sound/vx_core.h | 2 -- sound/drivers/vx/vx_core.c | 19 +++---------------- sound/pci/vx222/vx222_ops.c | 14 +++++++------- sound/pcmcia/vx/vxp_ops.c | 10 +++++----- 4 files changed, 15 insertions(+), 30 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h index 7a60a388866..43c901bf7c1 100644 --- a/include/sound/vx_core.h +++ b/include/sound/vx_core.h @@ -274,8 +274,6 @@ static inline void snd_vx_outl(vx_core_t *chip, int reg, unsigned int val) #define vx_inl(chip,reg) snd_vx_inl(chip, VX_##reg) #define vx_outl(chip,reg,val) snd_vx_outl(chip, VX_##reg,val) -void snd_vx_delay(vx_core_t *chip, int msec); - static inline void vx_reset_dsp(vx_core_t *chip) { snd_assert(chip->ops->reset_dsp, return); diff --git a/sound/drivers/vx/vx_core.c b/sound/drivers/vx/vx_core.c index 4697b1d75cb..e6e4cf99741 100644 --- a/sound/drivers/vx/vx_core.c +++ b/sound/drivers/vx/vx_core.c @@ -40,18 +40,6 @@ MODULE_DESCRIPTION("Common routines for Digigram VX drivers"); MODULE_LICENSE("GPL"); -/* - * snd_vx_delay - delay for the specified time - * @xmsec: the time to delay in msec - */ -void snd_vx_delay(vx_core_t *chip, int xmsec) -{ - if (! in_interrupt() && xmsec >= 1000 / HZ) - msleep(xmsec); - else - mdelay(xmsec); -} - /* * vx_check_reg_bit - wait for the specified bit is set/reset on a register * @reg: register to check @@ -76,7 +64,7 @@ int snd_vx_check_reg_bit(vx_core_t *chip, int reg, int mask, int bit, int time) do { if ((snd_vx_inb(chip, reg) & mask) == bit) return 0; - //snd_vx_delay(chip, 10); + //msleep(10); } while (time_after_eq(end_time, jiffies)); snd_printd(KERN_DEBUG "vx_check_reg_bit: timeout, reg=%s, mask=0x%x, val=0x%x\n", reg_names[reg], mask, snd_vx_inb(chip, reg)); return -EIO; @@ -664,7 +652,7 @@ int snd_vx_dsp_boot(vx_core_t *chip, const struct firmware *boot) if ((err = snd_vx_load_boot_image(chip, boot)) < 0) return err; - snd_vx_delay(chip, 10); + msleep(10); return 0; } @@ -704,7 +692,7 @@ int snd_vx_dsp_load(vx_core_t *chip, const struct firmware *dsp) } snd_printdd(KERN_DEBUG "checksum = 0x%08x\n", csum); - snd_vx_delay(chip, 200); + msleep(200); if ((err = vx_wait_isr_bit(chip, ISR_CHK)) < 0) return err; @@ -831,7 +819,6 @@ EXPORT_SYMBOL(snd_vx_create); EXPORT_SYMBOL(snd_vx_setup_firmware); EXPORT_SYMBOL(snd_vx_free_firmware); EXPORT_SYMBOL(snd_vx_irq_handler); -EXPORT_SYMBOL(snd_vx_delay); EXPORT_SYMBOL(snd_vx_dsp_boot); EXPORT_SYMBOL(snd_vx_dsp_load); EXPORT_SYMBOL(snd_vx_load_boot_image); diff --git a/sound/pci/vx222/vx222_ops.c b/sound/pci/vx222/vx222_ops.c index 967bd5e6b23..2d4d0c29b4c 100644 --- a/sound/pci/vx222/vx222_ops.c +++ b/sound/pci/vx222/vx222_ops.c @@ -154,7 +154,7 @@ static void vx2_reset_dsp(vx_core_t *_chip) /* set the reset dsp bit to 0 */ vx_outl(chip, CDSP, chip->regCDSP & ~VX_CDSP_DSP_RESET_MASK); - snd_vx_delay(_chip, XX_DSP_RESET_WAIT_TIME); + mdelay(XX_DSP_RESET_WAIT_TIME); chip->regCDSP |= VX_CDSP_DSP_RESET_MASK; /* set the reset dsp bit to 1 */ @@ -362,10 +362,10 @@ static int vx2_load_xilinx_binary(vx_core_t *chip, const struct firmware *xilinx /* XILINX reset (wait at least 1 milisecond between reset on and off). */ vx_outl(chip, CNTRL, VX_CNTRL_REGISTER_VALUE | VX_XILINX_RESET_MASK); vx_inl(chip, CNTRL); - snd_vx_delay(chip, 10); + msleep(10); vx_outl(chip, CNTRL, VX_CNTRL_REGISTER_VALUE); vx_inl(chip, CNTRL); - snd_vx_delay(chip, 10); + msleep(10); if (chip->type == VX_TYPE_BOARD) port = VX_CNTRL; @@ -381,7 +381,7 @@ static int vx2_load_xilinx_binary(vx_core_t *chip, const struct firmware *xilinx } put_xilinx_data(chip, port, 4, 0xff); /* end signature */ - snd_vx_delay(chip, 200); + msleep(200); /* test after loading (is buggy with VX222) */ if (chip->type != VX_TYPE_BOARD) { @@ -720,17 +720,17 @@ static void vx2_reset_codec(vx_core_t *_chip) /* Set the reset CODEC bit to 0. */ vx_outl(chip, CDSP, chip->regCDSP &~ VX_CDSP_CODEC_RESET_MASK); vx_inl(chip, CDSP); - snd_vx_delay(_chip, 10); + msleep(10); /* Set the reset CODEC bit to 1. */ chip->regCDSP |= VX_CDSP_CODEC_RESET_MASK; vx_outl(chip, CDSP, chip->regCDSP); vx_inl(chip, CDSP); if (_chip->type == VX_TYPE_BOARD) { - snd_vx_delay(_chip, 1); + msleep(1); return; } - snd_vx_delay(_chip, 5); /* additionnel wait time for AKM's */ + msleep(5); /* additionnel wait time for AKM's */ vx2_write_codec_reg(_chip, AKM_CODEC_POWER_CONTROL_CMD); /* DAC power up, ADC power up, Vref power down */ diff --git a/sound/pcmcia/vx/vxp_ops.c b/sound/pcmcia/vx/vxp_ops.c index 6f15c3d03ab..2754d657a4d 100644 --- a/sound/pcmcia/vx/vxp_ops.c +++ b/sound/pcmcia/vx/vxp_ops.c @@ -96,7 +96,7 @@ static int vx_check_magic(vx_core_t *chip) c = vx_inb(chip, CDSP); if (c == CDSP_MAGIC) return 0; - snd_vx_delay(chip, 10); + msleep(10); } while (time_after_eq(end_time, jiffies)); snd_printk(KERN_ERR "cannot find xilinx magic word (%x)\n", c); return -EIO; @@ -134,12 +134,12 @@ static void vxp_reset_codec(vx_core_t *_chip) /* Set the reset CODEC bit to 1. */ vx_outb(chip, CDSP, chip->regCDSP | VXP_CDSP_CODEC_RESET_MASK); vx_inb(chip, CDSP); - snd_vx_delay(_chip, 10); + msleep(10); /* Set the reset CODEC bit to 0. */ chip->regCDSP &= ~VXP_CDSP_CODEC_RESET_MASK; vx_outb(chip, CDSP, chip->regCDSP); vx_inb(chip, CDSP); - snd_vx_delay(_chip, 1); + msleep(1); } /* @@ -207,7 +207,7 @@ static int vxp_load_xilinx_binary(vx_core_t *_chip, const struct firmware *fw) vx_outb(chip, ICR, ICR_HF0); /* TEMPO 250ms : wait until Xilinx is downloaded */ - snd_vx_delay(_chip, 300); + msleep(300); /* test magical word */ if (vx_check_magic(_chip) < 0) @@ -221,7 +221,7 @@ static int vxp_load_xilinx_binary(vx_core_t *_chip, const struct firmware *fw) chip->regDIALOG |= VXP_DLG_XILINX_REPROG_MASK; vx_outb(chip, DIALOG, chip->regDIALOG); vx_inb(chip, DIALOG); - snd_vx_delay(_chip, 10); + msleep(10); chip->regDIALOG &= ~VXP_DLG_XILINX_REPROG_MASK; vx_outb(chip, DIALOG, chip->regDIALOG); vx_inb(chip, DIALOG); -- cgit v1.2.3-70-g09d2 From bfdcbace6c76cab54f1651349816dc35cc8f12b8 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:35:53 +0100 Subject: [ALSA] Remove superfluous macros Modules: ATIIXP driver,ATIIXP-modem driver Remove superfluous macros for delay. Call appropriate functions directly. Signed-off-by: Takashi Iwai --- sound/pci/atiixp.c | 12 +++--------- sound/pci/atiixp_modem.c | 12 +++--------- 2 files changed, 6 insertions(+), 18 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 8bae10d9352..36395d0f3d8 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -328,12 +328,6 @@ static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, #define atiixp_update(chip,reg,mask,val) \ snd_atiixp_update_bits(chip, ATI_REG_##reg, mask, val) -/* delay for one tick */ -#define do_delay() do { \ - schedule_timeout_uninterruptible(1); \ -} while (0) - - /* * handling DMA packets * @@ -513,7 +507,7 @@ static int snd_atiixp_aclink_reset(atiixp_t *chip) atiixp_update(chip, CMD, ATI_REG_CMD_AC_SYNC|ATI_REG_CMD_AC_RESET, ATI_REG_CMD_AC_SYNC); atiixp_read(chip, CMD); - do_delay(); + msleep(1); atiixp_update(chip, CMD, ATI_REG_CMD_AC_RESET, ATI_REG_CMD_AC_RESET); if (--timeout) { snd_printk(KERN_ERR "atiixp: codec reset timeout\n"); @@ -561,9 +555,9 @@ static int snd_atiixp_codec_detect(atiixp_t *chip) chip->codec_not_ready_bits = 0; atiixp_write(chip, IER, CODEC_CHECK_BITS); /* wait for the interrupts */ - timeout = HZ / 10; + timeout = 50; while (timeout-- > 0) { - do_delay(); + msleep(1); if (chip->codec_not_ready_bits) break; } diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index 3174b662541..649a999214e 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c @@ -305,12 +305,6 @@ static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, #define atiixp_update(chip,reg,mask,val) \ snd_atiixp_update_bits(chip, ATI_REG_##reg, mask, val) -/* delay for one tick */ -#define do_delay() do { \ - schedule_timeout_uninterruptible(1); \ -} while (0) - - /* * handling DMA packets * @@ -495,7 +489,7 @@ static int snd_atiixp_aclink_reset(atiixp_t *chip) atiixp_update(chip, CMD, ATI_REG_CMD_AC_SYNC|ATI_REG_CMD_AC_RESET, ATI_REG_CMD_AC_SYNC); atiixp_read(chip, CMD); - do_delay(); + msleep(1); atiixp_update(chip, CMD, ATI_REG_CMD_AC_RESET, ATI_REG_CMD_AC_RESET); if (--timeout) { snd_printk(KERN_ERR "atiixp-modem: codec reset timeout\n"); @@ -543,9 +537,9 @@ static int snd_atiixp_codec_detect(atiixp_t *chip) chip->codec_not_ready_bits = 0; atiixp_write(chip, IER, CODEC_CHECK_BITS); /* wait for the interrupts */ - timeout = HZ / 10; + timeout = 50; while (timeout-- > 0) { - do_delay(); + msleep(1); if (chip->codec_not_ready_bits) break; } -- cgit v1.2.3-70-g09d2 From c9a49bb1957f45e0146c17a865f1444fd06c0f97 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:36:57 +0100 Subject: [ALSA] cs4281 - Clean up delay function Modules: CS4281 driver Remove the own delay function. Call appropriate functions directly. Signed-off-by: Takashi Iwai --- sound/pci/cs4281.c | 41 ++++++++++------------------------------- 1 file changed, 10 insertions(+), 31 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index a4b4608034b..c99bb1f2bfa 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c @@ -514,27 +514,6 @@ MODULE_DEVICE_TABLE(pci, snd_cs4281_ids); * common I/O routines */ -static void snd_cs4281_delay(unsigned int delay) -{ - if (delay > 999) { - unsigned long end_time; - delay = (delay * HZ) / 1000000; - if (delay < 1) - delay = 1; - end_time = jiffies + delay; - do { - schedule_timeout_uninterruptible(1); - } while (time_after_eq(end_time, jiffies)); - } else { - udelay(delay); - } -} - -static inline void snd_cs4281_delay_long(void) -{ - schedule_timeout_uninterruptible(1); -} - static inline void snd_cs4281_pokeBA0(cs4281_t *chip, unsigned long offset, unsigned int val) { writel(val, chip->ba0 + offset); @@ -1493,7 +1472,7 @@ static int snd_cs4281_chip_init(cs4281_t *chip) snd_cs4281_pokeBA0(chip, BA0_SPMC, 0); udelay(50); snd_cs4281_pokeBA0(chip, BA0_SPMC, BA0_SPMC_RSTN); - snd_cs4281_delay(50000); + msleep(50); if (chip->dual_codec) snd_cs4281_pokeBA0(chip, BA0_SPMC, BA0_SPMC_RSTN | BA0_SPMC_ASDI2E); @@ -1509,13 +1488,13 @@ static int snd_cs4281_chip_init(cs4281_t *chip) * Start the DLL Clock logic. */ snd_cs4281_pokeBA0(chip, BA0_CLKCR1, BA0_CLKCR1_DLLP); - snd_cs4281_delay(50000); + msleep(50); snd_cs4281_pokeBA0(chip, BA0_CLKCR1, BA0_CLKCR1_SWCE | BA0_CLKCR1_DLLP); /* * Wait for the DLL ready signal from the clock logic. */ - timeout = HZ; + timeout = 100; do { /* * Read the AC97 status register to see if we've seen a CODEC @@ -1523,7 +1502,7 @@ static int snd_cs4281_chip_init(cs4281_t *chip) */ if (snd_cs4281_peekBA0(chip, BA0_CLKCR1) & BA0_CLKCR1_DLLRDY) goto __ok0; - snd_cs4281_delay_long(); + msleep(1); } while (timeout-- > 0); snd_printk(KERN_ERR "DLLRDY not seen\n"); @@ -1541,7 +1520,7 @@ static int snd_cs4281_chip_init(cs4281_t *chip) /* * Wait for the codec ready signal from the AC97 codec. */ - timeout = HZ; + timeout = 100; do { /* * Read the AC97 status register to see if we've seen a CODEC @@ -1549,7 +1528,7 @@ static int snd_cs4281_chip_init(cs4281_t *chip) */ if (snd_cs4281_peekBA0(chip, BA0_ACSTS) & BA0_ACSTS_CRDY) goto __ok1; - snd_cs4281_delay_long(); + msleep(1); } while (timeout-- > 0); snd_printk(KERN_ERR "never read codec ready from AC'97 (0x%x)\n", snd_cs4281_peekBA0(chip, BA0_ACSTS)); @@ -1557,11 +1536,11 @@ static int snd_cs4281_chip_init(cs4281_t *chip) __ok1: if (chip->dual_codec) { - timeout = HZ; + timeout = 100; do { if (snd_cs4281_peekBA0(chip, BA0_ACSTS2) & BA0_ACSTS_CRDY) goto __codec2_ok; - snd_cs4281_delay_long(); + msleep(1); } while (timeout-- > 0); snd_printk(KERN_INFO "secondary codec doesn't respond. disable it...\n"); chip->dual_codec = 0; @@ -1580,7 +1559,7 @@ static int snd_cs4281_chip_init(cs4281_t *chip) * the codec is pumping ADC data across the AC-link. */ - timeout = HZ; + timeout = 100; do { /* * Read the input slot valid register and see if input slots 3 @@ -1588,7 +1567,7 @@ static int snd_cs4281_chip_init(cs4281_t *chip) */ if ((snd_cs4281_peekBA0(chip, BA0_ACISV) & (BA0_ACISV_SLV(3) | BA0_ACISV_SLV(4))) == (BA0_ACISV_SLV(3) | BA0_ACISV_SLV(4))) goto __ok2; - snd_cs4281_delay_long(); + msleep(1); } while (timeout-- > 0); if (--retry_count > 0) -- cgit v1.2.3-70-g09d2 From 954bea35571461b083390a82b03f077f901fe678 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:37:40 +0100 Subject: [ALSA] intel8x0 - Clean up delay function Modules: Intel8x0 driver,Intel8x0-modem driver Remove superfluous delay macro. Call appropriate functions directly. Signed-off-by: Takashi Iwai --- sound/pci/intel8x0.c | 16 ++++++---------- sound/pci/intel8x0m.c | 12 ++++-------- 2 files changed, 10 insertions(+), 18 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index cf7801d2dd1..af2b1435e63 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -2149,10 +2149,6 @@ static void do_ali_reset(intel8x0_t *chip) iputdword(chip, ICHREG(ALI_INTERRUPTSR), 0x00000000); } -#define do_delay(chip) do {\ - schedule_timeout_uninterruptible(1);\ -} while (0) - static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) { unsigned long end_time; @@ -2176,7 +2172,7 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) do { if ((igetdword(chip, ICHREG(GLOB_CNT)) & ICH_AC97WARM) == 0) goto __ok; - do_delay(chip); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); snd_printk(KERN_ERR "AC'97 warm reset still in progress? [0x%x]\n", igetdword(chip, ICHREG(GLOB_CNT))); return -EIO; @@ -2192,7 +2188,7 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) status = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); if (status) break; - do_delay(chip); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); if (! status) { /* no codec is found */ @@ -2210,7 +2206,7 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) /* wait for other codecs ready status. */ end_time = jiffies + HZ / 4; while (status != nstatus && time_after_eq(end_time, jiffies)) { - do_delay(chip); + schedule_timeout_uninterruptible(1); status |= igetdword(chip, ICHREG(GLOB_STA)) & nstatus; } @@ -2227,7 +2223,7 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) nstatus = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); if (status == nstatus) break; - do_delay(chip); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); } @@ -2261,7 +2257,7 @@ static int snd_intel8x0_ali_chip_init(intel8x0_t *chip, int probing) for (i = 0; i < HZ / 2; i++) { if (! (igetdword(chip, ICHREG(ALI_INTERRUPTSR)) & ALI_INT_GPIO)) goto __ok; - do_delay(chip); + schedule_timeout_uninterruptible(1); } snd_printk(KERN_ERR "AC'97 reset failed.\n"); if (probing) @@ -2273,7 +2269,7 @@ static int snd_intel8x0_ali_chip_init(intel8x0_t *chip, int probing) if (reg & 0x80) /* primary codec */ break; iputdword(chip, ICHREG(ALI_RTSR), reg | 0x80); - do_delay(chip); + schedule_timeout_uninterruptible(1); } do_ali_reset(chip); diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c index a42091860da..3244df9c1e9 100644 --- a/sound/pci/intel8x0m.c +++ b/sound/pci/intel8x0m.c @@ -889,10 +889,6 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock) * */ -#define do_delay(chip) do {\ - schedule_timeout_uninterruptible(1);\ -} while (0) - static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) { unsigned long end_time; @@ -914,7 +910,7 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) do { if ((igetdword(chip, ICHREG(GLOB_CNT)) & ICH_AC97WARM) == 0) goto __ok; - do_delay(chip); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); snd_printk(KERN_ERR "AC'97 warm reset still in progress? [0x%x]\n", igetdword(chip, ICHREG(GLOB_CNT))); return -EIO; @@ -930,7 +926,7 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) status = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); if (status) break; - do_delay(chip); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); if (! status) { /* no codec is found */ @@ -944,7 +940,7 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) /* wait for other codecs ready status. */ end_time = jiffies + HZ / 4; while (status != nstatus && time_after_eq(end_time, jiffies)) { - do_delay(chip); + schedule_timeout_uninterruptible(1); status |= igetdword(chip, ICHREG(GLOB_STA)) & nstatus; } @@ -959,7 +955,7 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) nstatus = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); if (status == nstatus) break; - do_delay(chip); + schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); } -- cgit v1.2.3-70-g09d2 From 95a98265eb7b112b3268761053d643635171e219 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:40:18 +0100 Subject: [ALSA] ca0106 - Code clean up Modules: CA0106 driver Clean up snd-ca0106 driver code: - Fix spaces and indents - Remove unnecessary spinlocks - Clean up the mixer callbacks using private_value - Clean up mixer constructors using an array Signed-off-by: Takashi Iwai --- sound/pci/ca0106/ca0106_main.c | 74 +++---- sound/pci/ca0106/ca0106_mixer.c | 417 ++++++++++------------------------------ 2 files changed, 131 insertions(+), 360 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index a89eed25509..0120c4683c7 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -207,7 +207,8 @@ static snd_pcm_hardware_t snd_ca0106_playback_hw = { SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE, - .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000, + .rates = (SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_192000), .rate_min = 48000, .rate_max = 192000, .channels_min = 2, //1, @@ -226,7 +227,8 @@ static snd_pcm_hardware_t snd_ca0106_capture_hw = { SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE, - .rates = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000, + .rates = (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000), .rate_min = 44100, .rate_max = 192000, .channels_min = 2, @@ -276,11 +278,10 @@ int snd_ca0106_i2c_write(ca0106_t *emu, u32 value) { u32 tmp; - int timeout=0; + int timeout = 0; int status; int retry; - if ((reg > 0x7f) || (value > 0x1ff)) - { + if ((reg > 0x7f) || (value > 0x1ff)) { snd_printk(KERN_ERR "i2c_write: invalid values.\n"); return -EINVAL; } @@ -292,8 +293,7 @@ int snd_ca0106_i2c_write(ca0106_t *emu, /* This controls the I2C connected to the WM8775 ADC Codec */ snd_ca0106_ptr_write(emu, I2C_D1, 0, tmp); - for(retry=0;retry<10;retry++) - { + for (retry = 0; retry < 10; retry++) { /* Send the data to i2c */ tmp = snd_ca0106_ptr_read(emu, I2C_A, 0); tmp = tmp & ~(I2C_A_ADC_READ|I2C_A_ADC_LAST|I2C_A_ADC_START|I2C_A_ADC_ADD_MASK); @@ -301,24 +301,22 @@ int snd_ca0106_i2c_write(ca0106_t *emu, snd_ca0106_ptr_write(emu, I2C_A, 0, tmp); /* Wait till the transaction ends */ - while(1) - { + while (1) { status = snd_ca0106_ptr_read(emu, I2C_A, 0); //snd_printk("I2C:status=0x%x\n", status); timeout++; - if((status & I2C_A_ADC_START)==0) + if ((status & I2C_A_ADC_START) == 0) break; - if(timeout>1000) + if (timeout > 1000) break; } //Read back and see if the transaction is successful - if((status & I2C_A_ADC_ABORT)==0) + if ((status & I2C_A_ADC_ABORT) == 0) break; } - if(retry==10) - { + if (retry == 10) { snd_printk(KERN_ERR "Writing to ADC failed!\n"); return -EINVAL; } @@ -380,10 +378,10 @@ static int snd_ca0106_pcm_open_playback_channel(snd_pcm_substream_t *substream, channel->emu = chip; channel->number = channel_id; - channel->use=1; + channel->use = 1; //printk("open:channel_id=%d, chip=%p, channel=%p\n",channel_id, chip, channel); //channel->interrupt = snd_ca0106_pcm_channel_interrupt; - channel->epcm=epcm; + channel->epcm = epcm; if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; if ((err = snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 64)) < 0) @@ -448,10 +446,10 @@ static int snd_ca0106_pcm_open_capture_channel(snd_pcm_substream_t *substream, i channel->emu = chip; channel->number = channel_id; - channel->use=1; + channel->use = 1; //printk("open:channel_id=%d, chip=%p, channel=%p\n",channel_id, chip, channel); //channel->interrupt = snd_ca0106_pcm_channel_interrupt; - channel->epcm=epcm; + channel->epcm = epcm; if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; //snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, &hw_constraints_capture_period_sizes); @@ -593,8 +591,8 @@ static int snd_ca0106_pcm_prepare_playback(snd_pcm_substream_t *substream) /* FIXME: Check emu->buffer.size before actually writing to it. */ for(i=0; i < runtime->periods; i++) { - table_base[i*2]=runtime->dma_addr+(i*period_size_bytes); - table_base[(i*2)+1]=period_size_bytes<<16; + table_base[i*2] = runtime->dma_addr + (i * period_size_bytes); + table_base[i*2+1] = period_size_bytes << 16; } snd_ca0106_ptr_write(emu, PLAYBACK_LIST_ADDR, channel, emu->buffer.addr+(8*16*channel)); @@ -1008,13 +1006,8 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, unsigned int stat76; ca0106_channel_t *pchannel; - spin_lock(&chip->emu_lock); - status = inl(chip->port + IPR); - // call updater, unlock before it - spin_unlock(&chip->emu_lock); - if (! status) return IRQ_NONE; @@ -1024,11 +1017,11 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, mask = 0x11; /* 0x1 for one half, 0x10 for the other half period. */ for(i = 0; i < 4; i++) { pchannel = &(chip->playback_channels[i]); - if(stat76 & mask) { + if (stat76 & mask) { /* FIXME: Select the correct substream for period elapsed */ if(pchannel->use) { - snd_pcm_period_elapsed(pchannel->epcm->substream); - //printk(KERN_INFO "interrupt [%d] used\n", i); + snd_pcm_period_elapsed(pchannel->epcm->substream); + //printk(KERN_INFO "interrupt [%d] used\n", i); } } //printk(KERN_INFO "channel=%p\n",pchannel); @@ -1038,11 +1031,11 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, mask = 0x110000; /* 0x1 for one half, 0x10 for the other half period. */ for(i = 0; i < 4; i++) { pchannel = &(chip->capture_channels[i]); - if(stat76 & mask) { + if (stat76 & mask) { /* FIXME: Select the correct substream for period elapsed */ if(pchannel->use) { - snd_pcm_period_elapsed(pchannel->epcm->substream); - //printk(KERN_INFO "interrupt [%d] used\n", i); + snd_pcm_period_elapsed(pchannel->epcm->substream); + //printk(KERN_INFO "interrupt [%d] used\n", i); } } //printk(KERN_INFO "channel=%p\n",pchannel); @@ -1051,10 +1044,9 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, } snd_ca0106_ptr_write(chip, EXTENDED_INT, 0, stat76); - spin_lock(&chip->emu_lock); if (chip->midi.dev_id && - (status & (chip->midi.ipr_tx|chip->midi.ipr_rx))) { + (status & (chip->midi.ipr_tx|chip->midi.ipr_rx))) { if (chip->midi.interrupt) chip->midi.interrupt(&chip->midi, status); else @@ -1064,8 +1056,6 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, // acknowledge the interrupt if necessary outl(status, chip->port+IPR); - spin_unlock(&chip->emu_lock); - return IRQ_HANDLED; } @@ -1202,8 +1192,9 @@ static int __devinit snd_ca0106_create(snd_card_t *card, strcpy(card->driver, "CA0106"); strcpy(card->shortname, "CA0106"); - for (c=ca0106_chip_details; c->serial; c++) { - if (c->serial == chip->serial) break; + for (c = ca0106_chip_details; c->serial; c++) { + if (c->serial == chip->serial) + break; } chip->details = c; sprintf(card->longname, "%s at 0x%lx irq %i", @@ -1359,7 +1350,7 @@ static int __devinit snd_ca0106_midi(ca0106_t *chip, unsigned int channel) char *name; int err; - if(channel==CA0106_MIDI_CHAN_B) { + if (channel == CA0106_MIDI_CHAN_B) { name = "CA0106 MPU-401 (UART) B"; midi = &chip->midi2; midi->tx_enable = INTE_MIDI_TX_B; @@ -1499,12 +1490,7 @@ static struct pci_driver driver = { // initialization of the module static int __init alsa_card_ca0106_init(void) { - int err; - - if ((err = pci_register_driver(&driver)) > 0) - return err; - - return 0; + return pci_register_driver(&driver); } // clean up the module diff --git a/sound/pci/ca0106/ca0106_mixer.c b/sound/pci/ca0106/ca0106_mixer.c index c10e4a54301..0730dc7c66e 100644 --- a/sound/pci/ca0106/ca0106_mixer.c +++ b/sound/pci/ca0106/ca0106_mixer.c @@ -125,18 +125,11 @@ static int snd_ca0106_shared_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_ca0106_shared_spdif __devinitdata = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "SPDIF Out", - .info = snd_ca0106_shared_spdif_info, - .get = snd_ca0106_shared_spdif_get, - .put = snd_ca0106_shared_spdif_put -}; - static int snd_ca0106_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) { - static char *texts[6] = { "SPDIF out", "i2s mixer out", "SPDIF in", "i2s in", "AC97 in", "SRC out" }; + static char *texts[6] = { + "SPDIF out", "i2s mixer out", "SPDIF in", "i2s in", "AC97 in", "SRC out" + }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -176,15 +169,6 @@ static int snd_ca0106_capture_source_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_ca0106_capture_source __devinitdata = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Capture Source", - .info = snd_ca0106_capture_source_info, - .get = snd_ca0106_capture_source_get, - .put = snd_ca0106_capture_source_put -}; - static int snd_ca0106_capture_mic_line_in_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) { static char *texts[2] = { "Line in", "Mic in" }; @@ -294,26 +278,6 @@ static int snd_ca0106_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_ca0106_spdif_mask_control = -{ - .access = SNDRV_CTL_ELEM_ACCESS_READ, - .iface = SNDRV_CTL_ELEM_IFACE_PCM, - .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), - .count = 4, - .info = snd_ca0106_spdif_info, - .get = snd_ca0106_spdif_get_mask -}; - -static snd_kcontrol_new_t snd_ca0106_spdif_control = -{ - .iface = SNDRV_CTL_ELEM_IFACE_PCM, - .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), - .count = 4, - .info = snd_ca0106_spdif_info, - .get = snd_ca0106_spdif_get, - .put = snd_ca0106_spdif_put -}; - static int snd_ca0106_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -324,10 +288,14 @@ static int snd_ca0106_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t } static int snd_ca0106_volume_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol, int reg, int channel_id) + snd_ctl_elem_value_t * ucontrol) { ca0106_t *emu = snd_kcontrol_chip(kcontrol); unsigned int value; + int channel_id, reg; + + channel_id = (kcontrol->private_value >> 8) & 0xff; + reg = kcontrol->private_value & 0xff; value = snd_ca0106_ptr_read(emu, reg, channel_id); ucontrol->value.integer.value[0] = 0xff - ((value >> 24) & 0xff); /* Left */ @@ -335,226 +303,92 @@ static int snd_ca0106_volume_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ca0106_volume_get_spdif_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_FRONT_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} - -static int snd_ca0106_volume_get_spdif_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_CENTER_LFE_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_get_spdif_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_UNKNOWN_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_get_spdif_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_REAR_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_get_analog_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_FRONT_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} - -static int snd_ca0106_volume_get_analog_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_CENTER_LFE_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_get_analog_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_UNKNOWN_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_get_analog_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_REAR_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} - -static int snd_ca0106_volume_get_feedback(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = 1; - int reg = CAPTURE_CONTROL; - return snd_ca0106_volume_get(kcontrol, ucontrol, reg, channel_id); -} - static int snd_ca0106_volume_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol, int reg, int channel_id) + snd_ctl_elem_value_t * ucontrol) { ca0106_t *emu = snd_kcontrol_chip(kcontrol); - unsigned int value; - //value = snd_ca0106_ptr_read(emu, reg, channel_id); - //value = value & 0xffff; - value = ((0xff - ucontrol->value.integer.value[0]) << 24) | ((0xff - ucontrol->value.integer.value[1]) << 16); - value = value | ((0xff - ucontrol->value.integer.value[0]) << 8) | ((0xff - ucontrol->value.integer.value[1]) ); - snd_ca0106_ptr_write(emu, reg, channel_id, value); - return 1; -} -static int snd_ca0106_volume_put_spdif_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_FRONT_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_put_spdif_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_CENTER_LFE_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_put_spdif_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_UNKNOWN_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_put_spdif_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_REAR_CHANNEL; - int reg = PLAYBACK_VOLUME1; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_put_analog_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_FRONT_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_put_analog_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_CENTER_LFE_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_put_analog_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_UNKNOWN_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} -static int snd_ca0106_volume_put_analog_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = CONTROL_REAR_CHANNEL; - int reg = PLAYBACK_VOLUME2; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} - -static int snd_ca0106_volume_put_feedback(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) -{ - int channel_id = 1; - int reg = CAPTURE_CONTROL; - return snd_ca0106_volume_put(kcontrol, ucontrol, reg, channel_id); -} - -static snd_kcontrol_new_t snd_ca0106_volume_control_analog_front = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Analog Front Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_analog_front, - .put = snd_ca0106_volume_put_analog_front -}; -static snd_kcontrol_new_t snd_ca0106_volume_control_analog_center_lfe = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Analog Center/LFE Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_analog_center_lfe, - .put = snd_ca0106_volume_put_analog_center_lfe -}; -static snd_kcontrol_new_t snd_ca0106_volume_control_analog_unknown = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Analog Side Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_analog_unknown, - .put = snd_ca0106_volume_put_analog_unknown -}; -static snd_kcontrol_new_t snd_ca0106_volume_control_analog_rear = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Analog Rear Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_analog_rear, - .put = snd_ca0106_volume_put_analog_rear -}; -static snd_kcontrol_new_t snd_ca0106_volume_control_spdif_front = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "SPDIF Front Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_spdif_front, - .put = snd_ca0106_volume_put_spdif_front -}; -static snd_kcontrol_new_t snd_ca0106_volume_control_spdif_center_lfe = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "SPDIF Center/LFE Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_spdif_center_lfe, - .put = snd_ca0106_volume_put_spdif_center_lfe -}; -static snd_kcontrol_new_t snd_ca0106_volume_control_spdif_unknown = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "SPDIF Unknown Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_spdif_unknown, - .put = snd_ca0106_volume_put_spdif_unknown -}; -static snd_kcontrol_new_t snd_ca0106_volume_control_spdif_rear = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "SPDIF Rear Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_spdif_rear, - .put = snd_ca0106_volume_put_spdif_rear -}; - -static snd_kcontrol_new_t snd_ca0106_volume_control_feedback = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "CAPTURE feedback Playback Volume", - .info = snd_ca0106_volume_info, - .get = snd_ca0106_volume_get_feedback, - .put = snd_ca0106_volume_put_feedback + unsigned int oval, nval; + int channel_id, reg; + + channel_id = (kcontrol->private_value >> 8) & 0xff; + reg = kcontrol->private_value & 0xff; + + oval = snd_ca0106_ptr_read(emu, reg, channel_id); + nval = ((0xff - ucontrol->value.integer.value[0]) << 24) | + ((0xff - ucontrol->value.integer.value[1]) << 16); + nval |= ((0xff - ucontrol->value.integer.value[0]) << 8) | + ((0xff - ucontrol->value.integer.value[1]) ); + if (oval == nval) + return 0; + snd_ca0106_ptr_write(emu, reg, channel_id, nval); + return 1; +} + +#define CA_VOLUME(xname,chid,reg) \ +{ \ + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ + .info = snd_ca0106_volume_info, \ + .get = snd_ca0106_volume_get, \ + .put = snd_ca0106_volume_put, \ + .private_value = ((chid) << 8) | (reg) \ +} + + +static snd_kcontrol_new_t snd_ca0106_volume_ctls[] __devinitdata = { + CA_VOLUME("Analog Front Playback Volume", + CONTROL_FRONT_CHANNEL, PLAYBACK_VOLUME2), + CA_VOLUME("Analog Rear Playback Volume", + CONTROL_REAR_CHANNEL, PLAYBACK_VOLUME2), + CA_VOLUME("Analog Center/LFE Playback Volume", + CONTROL_CENTER_LFE_CHANNEL, PLAYBACK_VOLUME2), + CA_VOLUME("Analog Side Playback Volume", + CONTROL_UNKNOWN_CHANNEL, PLAYBACK_VOLUME2), + + CA_VOLUME("SPDIF Front Playback Volume", + CONTROL_FRONT_CHANNEL, PLAYBACK_VOLUME1), + CA_VOLUME("SPDIF Rear Playback Volume", + CONTROL_REAR_CHANNEL, PLAYBACK_VOLUME1), + CA_VOLUME("SPDIF Center/LFE Playback Volume", + CONTROL_CENTER_LFE_CHANNEL, PLAYBACK_VOLUME1), + CA_VOLUME("SPDIF Unknown Playback Volume", + CONTROL_UNKNOWN_CHANNEL, PLAYBACK_VOLUME1), + + CA_VOLUME("CAPTURE feedback Playback Volume", + 1, CAPTURE_CONTROL), + + { + .access = SNDRV_CTL_ELEM_ACCESS_READ, + .iface = SNDRV_CTL_ELEM_IFACE_PCM, + .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), + .count = 4, + .info = snd_ca0106_spdif_info, + .get = snd_ca0106_spdif_get_mask + }, + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "SPDIF Out", + .info = snd_ca0106_shared_spdif_info, + .get = snd_ca0106_shared_spdif_get, + .put = snd_ca0106_shared_spdif_put + }, + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .info = snd_ca0106_capture_source_info, + .get = snd_ca0106_capture_source_get, + .put = snd_ca0106_capture_source_put + }, + { + .iface = SNDRV_CTL_ELEM_IFACE_PCM, + .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), + .count = 4, + .info = snd_ca0106_spdif_info, + .get = snd_ca0106_spdif_get, + .put = snd_ca0106_spdif_put + }, }; - -static int remove_ctl(snd_card_t *card, const char *name) +static int __devinit remove_ctl(snd_card_t *card, const char *name) { snd_ctl_elem_id_t id; memset(&id, 0, sizeof(id)); @@ -563,7 +397,7 @@ static int remove_ctl(snd_card_t *card, const char *name) return snd_ctl_remove_id(card, &id); } -static snd_kcontrol_t *ctl_find(snd_card_t *card, const char *name) +static snd_kcontrol_t __devinit *ctl_find(snd_card_t *card, const char *name) { snd_ctl_elem_id_t sid; memset(&sid, 0, sizeof(sid)); @@ -573,7 +407,7 @@ static snd_kcontrol_t *ctl_find(snd_card_t *card, const char *name) return snd_ctl_find_id(card, &sid); } -static int rename_ctl(snd_card_t *card, const char *src, const char *dst) +static int __devinit rename_ctl(snd_card_t *card, const char *src, const char *dst) { snd_kcontrol_t *kctl = ctl_find(card, src); if (kctl) { @@ -585,8 +419,7 @@ static int rename_ctl(snd_card_t *card, const char *src, const char *dst) int __devinit snd_ca0106_mixer(ca0106_t *emu) { - int err; - snd_kcontrol_t *kctl; + int i, err; snd_card_t *card = emu->card; char **c; static char *ca0106_remove_ctls[] = { @@ -627,70 +460,22 @@ int __devinit snd_ca0106_mixer(ca0106_t *emu) NULL }; #if 1 - for (c=ca0106_remove_ctls; *c; c++) + for (c = ca0106_remove_ctls; *c; c++) remove_ctl(card, *c); - for (c=ca0106_rename_ctls; *c; c += 2) + for (c = ca0106_rename_ctls; *c; c += 2) rename_ctl(card, c[0], c[1]); #endif - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_analog_front, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_analog_rear, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_analog_center_lfe, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_analog_unknown, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_spdif_front, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_spdif_rear, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_spdif_center_lfe, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_spdif_unknown, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_volume_control_feedback, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_spdif_mask_control, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_shared_spdif, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_ca0106_capture_source, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; + for (i = 0; i < ARRAY_SIZE(snd_ca0106_volume_ctls); i++) { + err = snd_ctl_add(card, snd_ctl_new1(&snd_ca0106_volume_ctls[i], emu)); + if (err < 0) + return err; + } if (emu->details->i2c_adc == 1) { - if ((kctl = snd_ctl_new1(&snd_ca0106_capture_mic_line_in, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) + err = snd_ctl_add(card, snd_ctl_new1(&snd_ca0106_capture_mic_line_in, emu)); + if (err < 0) return err; } - if ((kctl = snd_ctl_new1(&snd_ca0106_spdif_control, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; return 0; } -- cgit v1.2.3-70-g09d2 From b9b4bdd9f1c98388f13591608d574650a9873717 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:42:40 +0100 Subject: [ALSA] ac97 - Remove ac9_enum definition from public header Modules: AC97 Codec Remove the definition of ac97_enum struct from the public ac97_codec.h. It's used only in the module. The location of struct ac97_pcm is moved closer to its accessor to improve readability. Signed-off-by: Takashi Iwai --- include/sound/ac97_codec.h | 65 +++++++++++++++++++++------------------------ sound/pci/ac97/ac97_local.h | 9 +++++++ 2 files changed, 39 insertions(+), 35 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index 7f0ca79d6c9..6f1e6ba2a19 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h @@ -396,33 +396,6 @@ typedef struct _snd_ac97_bus_ops ac97_bus_ops_t; typedef struct _snd_ac97_template ac97_template_t; typedef struct _snd_ac97 ac97_t; -enum ac97_pcm_cfg { - AC97_PCM_CFG_FRONT = 2, - AC97_PCM_CFG_REAR = 10, /* alias surround */ - AC97_PCM_CFG_LFE = 11, /* center + lfe */ - AC97_PCM_CFG_40 = 4, /* front + rear */ - AC97_PCM_CFG_51 = 6, /* front + rear + center/lfe */ - AC97_PCM_CFG_SPDIF = 20 -}; - -/* PCM allocation */ -struct ac97_pcm { - ac97_bus_t *bus; - unsigned int stream: 1, /* stream type: 1 = capture */ - exclusive: 1, /* exclusive mode, don't override with other pcms */ - copy_flag: 1, /* lowlevel driver must fill all entries */ - spdif: 1; /* spdif pcm */ - unsigned short aslots; /* active slots */ - unsigned int rates; /* available rates */ - struct { - unsigned short slots; /* driver input: requested AC97 slot numbers */ - unsigned short rslots[4]; /* allocated slots per codecs */ - unsigned char rate_table[4]; - ac97_t *codec[4]; /* allocated codecs */ - } r[2]; /* 0 = standard rates, 1 = double rates */ - unsigned long private_value; /* used by the hardware driver */ -}; - struct snd_ac97_build_ops { int (*build_3d) (ac97_t *ac97); int (*build_specific) (ac97_t *ac97); @@ -581,6 +554,36 @@ struct ac97_quirk { int snd_ac97_tune_hardware(ac97_t *ac97, struct ac97_quirk *quirk, const char *override); int snd_ac97_set_rate(ac97_t *ac97, int reg, unsigned int rate); +/* + * PCM allocation + */ + +enum ac97_pcm_cfg { + AC97_PCM_CFG_FRONT = 2, + AC97_PCM_CFG_REAR = 10, /* alias surround */ + AC97_PCM_CFG_LFE = 11, /* center + lfe */ + AC97_PCM_CFG_40 = 4, /* front + rear */ + AC97_PCM_CFG_51 = 6, /* front + rear + center/lfe */ + AC97_PCM_CFG_SPDIF = 20 +}; + +struct ac97_pcm { + ac97_bus_t *bus; + unsigned int stream: 1, /* stream type: 1 = capture */ + exclusive: 1, /* exclusive mode, don't override with other pcms */ + copy_flag: 1, /* lowlevel driver must fill all entries */ + spdif: 1; /* spdif pcm */ + unsigned short aslots; /* active slots */ + unsigned int rates; /* available rates */ + struct { + unsigned short slots; /* driver input: requested AC97 slot numbers */ + unsigned short rslots[4]; /* allocated slots per codecs */ + unsigned char rate_table[4]; + ac97_t *codec[4]; /* allocated codecs */ + } r[2]; /* 0 = standard rates, 1 = double rates */ + unsigned long private_value; /* used by the hardware driver */ +}; + int snd_ac97_pcm_assign(ac97_bus_t *ac97, unsigned short pcms_count, const struct ac97_pcm *pcms); @@ -589,14 +592,6 @@ int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, int snd_ac97_pcm_close(struct ac97_pcm *pcm); int snd_ac97_pcm_double_rate_rules(snd_pcm_runtime_t *runtime); -struct ac97_enum { - unsigned char reg; - unsigned char shift_l; - unsigned char shift_r; - unsigned short mask; - const char **texts; -}; - /* ad hoc AC97 device driver access */ extern struct bus_type ac97_bus_type; diff --git a/sound/pci/ac97/ac97_local.h b/sound/pci/ac97/ac97_local.h index 536a4d4793a..5ff3ef2cae3 100644 --- a/sound/pci/ac97/ac97_local.h +++ b/sound/pci/ac97/ac97_local.h @@ -36,6 +36,15 @@ { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), .info = snd_ac97_info_volsw, \ .get = snd_ac97_get_volsw, .put = snd_ac97_put_volsw, \ .private_value = (reg) | ((shift_left) << 8) | ((shift_right) << 12) | ((mask) << 16) | ((invert) << 24) } + +struct ac97_enum { + unsigned char reg; + unsigned char shift_l; + unsigned char shift_r; + unsigned short mask; + const char **texts; +}; + #define AC97_ENUM_DOUBLE(xreg, xshift_l, xshift_r, xmask, xtexts) \ { .reg = xreg, .shift_l = xshift_l, .shift_r = xshift_r, \ .mask = xmask, .texts = xtexts } -- cgit v1.2.3-70-g09d2 From 89173bd41439bc6304e3e20f742e52266208ccad Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:43:53 +0100 Subject: [ALSA] emu10k1x - Minor clean up Modules: EMU10K1/EMU10K2 driver Minor clean up of the emu10k1x interrupt handler code. Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/emu10k1x.c | 65 ++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 33 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index ca402e99469..6c61ac60afd 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c @@ -795,44 +795,43 @@ static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, status = inl(chip->port + IPR); - if(status) { - // capture interrupt - if(status & (IPR_CAP_0_LOOP | IPR_CAP_0_HALF_LOOP)) { - emu10k1x_voice_t *pvoice = &chip->capture_voice; - if(pvoice->use) - snd_emu10k1x_pcm_interrupt(chip, pvoice); - else - snd_emu10k1x_intr_disable(chip, - INTE_CAP_0_LOOP | - INTE_CAP_0_HALF_LOOP); - } - - mask = IPR_CH_0_LOOP|IPR_CH_0_HALF_LOOP; - for(i = 0; i < 3; i++) { - if(status & mask) { - if(pvoice->use) - snd_emu10k1x_pcm_interrupt(chip, pvoice); - else - snd_emu10k1x_intr_disable(chip, mask); - } - pvoice++; - mask <<= 1; - } + if (! status) + return IRQ_NONE; + + // capture interrupt + if (status & (IPR_CAP_0_LOOP | IPR_CAP_0_HALF_LOOP)) { + emu10k1x_voice_t *pvoice = &chip->capture_voice; + if(pvoice->use) + snd_emu10k1x_pcm_interrupt(chip, pvoice); + else + snd_emu10k1x_intr_disable(chip, + INTE_CAP_0_LOOP | + INTE_CAP_0_HALF_LOOP); + } - if (status & (IPR_MIDITRANSBUFEMPTY|IPR_MIDIRECVBUFEMPTY)) { - if (chip->midi.interrupt) - chip->midi.interrupt(chip, status); - else - snd_emu10k1x_intr_disable(chip, INTE_MIDITXENABLE|INTE_MIDIRXENABLE); + mask = IPR_CH_0_LOOP|IPR_CH_0_HALF_LOOP; + for (i = 0; i < 3; i++) { + if (status & mask) { + if (pvoice->use) + snd_emu10k1x_pcm_interrupt(chip, pvoice); + else + snd_emu10k1x_intr_disable(chip, mask); } + pvoice++; + mask <<= 1; + } - // acknowledge the interrupt if necessary - if(status) - outl(status, chip->port+IPR); - -// snd_printk(KERN_INFO "interrupt %08x\n", status); + if (status & (IPR_MIDITRANSBUFEMPTY|IPR_MIDIRECVBUFEMPTY)) { + if (chip->midi.interrupt) + chip->midi.interrupt(chip, status); + else + snd_emu10k1x_intr_disable(chip, INTE_MIDITXENABLE|INTE_MIDIRXENABLE); } + + // acknowledge the interrupt if necessary + outl(status, chip->port + IPR); + // snd_printk(KERN_INFO "interrupt %08x\n", status); return IRQ_HANDLED; } -- cgit v1.2.3-70-g09d2 From e017fa5772cd2536b2b2fb210f5a6e86cceaa633 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:44:51 +0100 Subject: [ALSA] emu10k1 - Minor clean up of memory block handling Modules: EMU10K1/EMU10K2 driver Minor clean up of emu10k1 memory block allocation. Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/emupcm.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c index 90d3a0b50d1..166f7c4d28c 100644 --- a/sound/pci/emu10k1/emupcm.c +++ b/sound/pci/emu10k1/emupcm.c @@ -405,15 +405,17 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0) return err; if (err > 0) { /* change */ - snd_util_memblk_t *memblk; + int mapped; if (epcm->memblk != NULL) snd_emu10k1_free_pages(emu, epcm->memblk); - memblk = snd_emu10k1_alloc_pages(emu, substream); - if ((epcm->memblk = memblk) == NULL || ((emu10k1_memblk_t *)memblk)->mapped_page < 0) { - epcm->start_addr = 0; + epcm->memblk = snd_emu10k1_alloc_pages(emu, substream); + epcm->start_addr = 0; + if (! epcm->memblk) return -ENOMEM; - } - epcm->start_addr = ((emu10k1_memblk_t *)memblk)->mapped_page << PAGE_SHIFT; + mapped = ((emu10k1_memblk_t *)epcm->memblk)->mapped_page; + if (mapped < 0) + return -ENOMEM; + epcm->start_addr = mapped << PAGE_SHIFT; } return 0; } -- cgit v1.2.3-70-g09d2 From 9fd9156c6b0dfb8630f68d11dc48a3e824aa64e6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:45:48 +0100 Subject: [ALSA] korg1212 - Clean up debug prints Modules: KORG1212 driver Clean up debug prints in korg1212 driver. Also, clean up spaces/indents in some places. Signed-off-by: Takashi Iwai --- sound/pci/korg1212/korg1212.c | 574 ++++++++++++++++++------------------------ 1 file changed, 247 insertions(+), 327 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c index a110d664f62..ec716133ec3 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c @@ -41,8 +41,16 @@ // Debug Stuff // ---------------------------------------------------------------------------- #define K1212_DEBUG_LEVEL 0 -#define K1212_DEBUG_PRINTK printk -//#define K1212_DEBUG_PRINTK(x...) printk("<0>" x) +#if K1212_DEBUG_LEVEL > 0 +#define K1212_DEBUG_PRINTK(fmt,args...) printk(KERN_DEBUG fmt,##args) +#else +#define K1212_DEBUG_PRINTK(fmt,...) +#endif +#if K1212_DEBUG_LEVEL > 1 +#define K1212_DEBUG_PRINTK_VERBOSE(fmt,args...) printk(KERN_DEBUG fmt,##args) +#else +#define K1212_DEBUG_PRINTK_VERBOSE(fmt,...) +#endif // ---------------------------------------------------------------------------- // Record/Play Buffer Allocation Method. If K1212_LARGEALLOC is defined all @@ -432,54 +440,54 @@ static struct pci_device_id snd_korg1212_ids[] = { { 0, }, }; -static char* stateName[] = { - "Non-existent", - "Uninitialized", - "DSP download in process", - "DSP download complete", - "Ready", - "Open", - "Setup for play", - "Playing", - "Monitor mode on", - "Calibrating", - "Invalid" +static char *stateName[] = { + "Non-existent", + "Uninitialized", + "DSP download in process", + "DSP download complete", + "Ready", + "Open", + "Setup for play", + "Playing", + "Monitor mode on", + "Calibrating", + "Invalid" }; -static char* clockSourceTypeName[] = { "ADAT", "S/PDIF", "local" }; +static char *clockSourceTypeName[] = { "ADAT", "S/PDIF", "local" }; -static char* clockSourceName[] = { - "ADAT at 44.1 kHz", - "ADAT at 48 kHz", - "S/PDIF at 44.1 kHz", - "S/PDIF at 48 kHz", - "local clock at 44.1 kHz", - "local clock at 48 kHz" +static char *clockSourceName[] = { + "ADAT at 44.1 kHz", + "ADAT at 48 kHz", + "S/PDIF at 44.1 kHz", + "S/PDIF at 48 kHz", + "local clock at 44.1 kHz", + "local clock at 48 kHz" }; -static char* channelName[] = { - "ADAT-1", - "ADAT-2", - "ADAT-3", - "ADAT-4", - "ADAT-5", - "ADAT-6", - "ADAT-7", - "ADAT-8", - "Analog-L", - "Analog-R", - "SPDIF-L", - "SPDIF-R", +static char *channelName[] = { + "ADAT-1", + "ADAT-2", + "ADAT-3", + "ADAT-4", + "ADAT-5", + "ADAT-6", + "ADAT-7", + "ADAT-8", + "Analog-L", + "Analog-R", + "SPDIF-L", + "SPDIF-R", }; -static u16 ClockSourceSelector[] = - {0x8000, // selects source as ADAT at 44.1 kHz - 0x0000, // selects source as ADAT at 48 kHz - 0x8001, // selects source as S/PDIF at 44.1 kHz - 0x0001, // selects source as S/PDIF at 48 kHz - 0x8002, // selects source as local clock at 44.1 kHz - 0x0002 // selects source as local clock at 48 kHz - }; +static u16 ClockSourceSelector[] = { + 0x8000, // selects source as ADAT at 44.1 kHz + 0x0000, // selects source as ADAT at 48 kHz + 0x8001, // selects source as S/PDIF at 44.1 kHz + 0x0001, // selects source as S/PDIF at 48 kHz + 0x8002, // selects source as local clock at 44.1 kHz + 0x0002 // selects source as local clock at 48 kHz +}; static snd_korg1212rc rc; @@ -521,23 +529,6 @@ static u32 LowerWordSwap(u32 swappee) return retVal.i; } -#if 0 /* not used */ - -static u32 EndianSwap(u32 swappee) -{ - swap_u32 retVal, swapper; - - swapper.i = swappee; - retVal.c[0] = swapper.c[3]; - retVal.c[1] = swapper.c[2]; - retVal.c[2] = swapper.c[1]; - retVal.c[3] = swapper.c[0]; - - return retVal.i; -} - -#endif /* not used */ - #define SetBitInWord(theWord,bitPosition) (*theWord) |= (0x0001 << bitPosition) #define SetBitInDWord(theWord,bitPosition) (*theWord) |= (0x00000001 << bitPosition) #define ClearBitInWord(theWord,bitPosition) (*theWord) &= ~(0x0001 << bitPosition) @@ -551,15 +542,12 @@ static snd_korg1212rc snd_korg1212_Send1212Command(korg1212_t *korg1212, korg121 snd_korg1212rc rc = K1212_CMDRET_Success; if (!korg1212->outDoorbellPtr) { -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: CardUninitialized\n"); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: CardUninitialized\n"); return K1212_CMDRET_CardUninitialized; } -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: Card <- 0x%08x 0x%08x [%s]\n", doorbellVal, mailBox0Val, stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: Card <- 0x%08x 0x%08x [%s]\n", + doorbellVal, mailBox0Val, stateName[korg1212->cardState]); for (retryCount = 0; retryCount < MAX_COMMAND_RETRIES; retryCount++) { writel(mailBox3Val, korg1212->mailbox3Ptr); writel(mailBox2Val, korg1212->mailbox2Ptr); @@ -586,9 +574,7 @@ static snd_korg1212rc snd_korg1212_Send1212Command(korg1212_t *korg1212, korg121 mailBox3Lo = readl(korg1212->mailbox3Ptr); if (mailBox3Lo & COMMAND_ACK_MASK) { if ((mailBox3Lo & DOORBELL_VAL_MASK) == (doorbellVal & DOORBELL_VAL_MASK)) { -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: Card <- Success\n"); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: Card <- Success\n"); rc = K1212_CMDRET_Success; break; } @@ -597,9 +583,7 @@ static snd_korg1212rc snd_korg1212_Send1212Command(korg1212_t *korg1212, korg121 korg1212->cmdRetryCount += retryCount; if (retryCount >= MAX_COMMAND_RETRIES) { -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: Card <- NoAckFromCard\n"); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: Card <- NoAckFromCard\n"); rc = K1212_CMDRET_NoAckFromCard; } @@ -639,9 +623,8 @@ static void snd_korg1212_timer_func(unsigned long data) korg1212->stop_pending_cnt = 0; korg1212->dsp_stop_is_processed = 1; wake_up(&korg1212->wait); -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: Stop ack'ed [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: Stop ack'ed [%s]\n", + stateName[korg1212->cardState]); } else { if (--korg1212->stop_pending_cnt > 0) { /* reprogram timer */ @@ -652,17 +635,17 @@ static void snd_korg1212_timer_func(unsigned long data) korg1212->sharedBufferPtr->cardCommand = 0; korg1212->dsp_stop_is_processed = 1; wake_up(&korg1212->wait); -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: Stop timeout [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: Stop timeout [%s]\n", + stateName[korg1212->cardState]); } } spin_unlock(&korg1212->lock); } -static void snd_korg1212_TurnOnIdleMonitor(korg1212_t *korg1212) +static int snd_korg1212_TurnOnIdleMonitor(korg1212_t *korg1212) { unsigned long flags; + int rc; udelay(INTERCOMMAND_DELAY); spin_lock_irqsave(&korg1212->lock, flags); @@ -670,6 +653,7 @@ static void snd_korg1212_TurnOnIdleMonitor(korg1212_t *korg1212) rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, K1212_MODE_MonitorOn, 0, 0, 0); spin_unlock_irqrestore(&korg1212->lock, flags); + return rc; } static void snd_korg1212_TurnOffIdleMonitor(korg1212_t *korg1212) @@ -687,9 +671,8 @@ static inline void snd_korg1212_setCardState(korg1212_t * korg1212, CardState cs static int snd_korg1212_OpenCard(korg1212_t * korg1212) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: OpenCard [%s] %d\n", stateName[korg1212->cardState], korg1212->opencnt); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: OpenCard [%s] %d\n", + stateName[korg1212->cardState], korg1212->opencnt); down(&korg1212->open_mutex); if (korg1212->opencnt++ == 0) { snd_korg1212_TurnOffIdleMonitor(korg1212); @@ -702,9 +685,8 @@ static int snd_korg1212_OpenCard(korg1212_t * korg1212) static int snd_korg1212_CloseCard(korg1212_t * korg1212) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: CloseCard [%s] %d\n", stateName[korg1212->cardState], korg1212->opencnt); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: CloseCard [%s] %d\n", + stateName[korg1212->cardState], korg1212->opencnt); down(&korg1212->open_mutex); if (--(korg1212->opencnt)) { @@ -713,12 +695,11 @@ static int snd_korg1212_CloseCard(korg1212_t * korg1212) } if (korg1212->cardState == K1212_STATE_SETUP) { - rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, + int rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, K1212_MODE_StopPlay, 0, 0, 0); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: CloseCard - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif - + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: CloseCard - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); if (rc != K1212_CMDRET_Success) { up(&korg1212->open_mutex); return 0; @@ -739,9 +720,10 @@ static int snd_korg1212_CloseCard(korg1212_t * korg1212) /* spinlock already held */ static int snd_korg1212_SetupForPlay(korg1212_t * korg1212) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: SetupForPlay [%s] %d\n", stateName[korg1212->cardState], korg1212->setcnt); -#endif + int rc; + + K1212_DEBUG_PRINTK("K1212_DEBUG: SetupForPlay [%s] %d\n", + stateName[korg1212->cardState], korg1212->setcnt); if (korg1212->setcnt++) return 0; @@ -749,10 +731,9 @@ static int snd_korg1212_SetupForPlay(korg1212_t * korg1212) snd_korg1212_setCardState(korg1212, K1212_STATE_SETUP); rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, K1212_MODE_SetupPlay, 0, 0, 0); - -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: SetupForPlay - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: SetupForPlay - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); if (rc != K1212_CMDRET_Success) { return 1; } @@ -762,20 +743,19 @@ static int snd_korg1212_SetupForPlay(korg1212_t * korg1212) /* spinlock already held */ static int snd_korg1212_TriggerPlay(korg1212_t * korg1212) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: TriggerPlay [%s] %d\n", stateName[korg1212->cardState], korg1212->playcnt); -#endif + int rc; + + K1212_DEBUG_PRINTK("K1212_DEBUG: TriggerPlay [%s] %d\n", + stateName[korg1212->cardState], korg1212->playcnt); if (korg1212->playcnt++) return 0; snd_korg1212_setCardState(korg1212, K1212_STATE_PLAYING); rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_TriggerPlay, 0, 0, 0, 0); - -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: TriggerPlay - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif - + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: TriggerPlay - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); if (rc != K1212_CMDRET_Success) { return 1; } @@ -785,9 +765,8 @@ static int snd_korg1212_TriggerPlay(korg1212_t * korg1212) /* spinlock already held */ static int snd_korg1212_StopPlay(korg1212_t * korg1212) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: StopPlay [%s] %d\n", stateName[korg1212->cardState], korg1212->playcnt); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: StopPlay [%s] %d\n", + stateName[korg1212->cardState], korg1212->playcnt); if (--(korg1212->playcnt)) return 0; @@ -815,35 +794,34 @@ static void snd_korg1212_EnableCardInterrupts(korg1212_t * korg1212) static int snd_korg1212_SetMonitorMode(korg1212_t *korg1212, MonitorModeSelector mode) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: SetMonitorMode [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: SetMonitorMode [%s]\n", + stateName[korg1212->cardState]); switch (mode) { - case K1212_MONMODE_Off: - if (korg1212->cardState != K1212_STATE_MONITOR) { - return 0; - } else { - snd_korg1212_SendStopAndWait(korg1212); - snd_korg1212_setCardState(korg1212, K1212_STATE_OPEN); - } - break; - - case K1212_MONMODE_On: - if (korg1212->cardState != K1212_STATE_OPEN) { - return 0; - } else { - snd_korg1212_setCardState(korg1212, K1212_STATE_MONITOR); - rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, - K1212_MODE_MonitorOn, 0, 0, 0); - if (rc != K1212_CMDRET_Success) { - return 0; - } - } - break; + case K1212_MONMODE_Off: + if (korg1212->cardState != K1212_STATE_MONITOR) + return 0; + else { + snd_korg1212_SendStopAndWait(korg1212); + snd_korg1212_setCardState(korg1212, K1212_STATE_OPEN); + } + break; + + case K1212_MONMODE_On: + if (korg1212->cardState != K1212_STATE_OPEN) + return 0; + else { + int rc; + snd_korg1212_setCardState(korg1212, K1212_STATE_MONITOR); + rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, + K1212_MODE_MonitorOn, 0, 0, 0); + if (rc != K1212_CMDRET_Success) + return 0; + } + break; - default: - return 0; + default: + return 0; } return 1; @@ -853,42 +831,42 @@ static int snd_korg1212_SetMonitorMode(korg1212_t *korg1212, MonitorModeSelector static inline int snd_korg1212_use_is_exclusive(korg1212_t *korg1212) { - int ret = 1; + if (korg1212->playback_pid != korg1212->capture_pid && + korg1212->playback_pid >= 0 && korg1212->capture_pid >= 0) + return 0; - if ((korg1212->playback_pid != korg1212->capture_pid) && - (korg1212->playback_pid >= 0) && (korg1212->capture_pid >= 0)) { - ret = 0; - } - return ret; + return 1; } static int snd_korg1212_SetRate(korg1212_t *korg1212, int rate) { - static ClockSourceIndex s44[] = { K1212_CLKIDX_AdatAt44_1K, - K1212_CLKIDX_WordAt44_1K, - K1212_CLKIDX_LocalAt44_1K }; + static ClockSourceIndex s44[] = { + K1212_CLKIDX_AdatAt44_1K, + K1212_CLKIDX_WordAt44_1K, + K1212_CLKIDX_LocalAt44_1K + }; static ClockSourceIndex s48[] = { - K1212_CLKIDX_AdatAt48K, - K1212_CLKIDX_WordAt48K, - K1212_CLKIDX_LocalAt48K }; - int parm; + K1212_CLKIDX_AdatAt48K, + K1212_CLKIDX_WordAt48K, + K1212_CLKIDX_LocalAt48K + }; + int parm, rc; - if (!snd_korg1212_use_is_exclusive (korg1212)) { - return -EBUSY; - } + if (!snd_korg1212_use_is_exclusive (korg1212)) + return -EBUSY; switch(rate) { - case 44100: - parm = s44[korg1212->clkSource]; - break; + case 44100: + parm = s44[korg1212->clkSource]; + break; - case 48000: - parm = s48[korg1212->clkSource]; - break; + case 48000: + parm = s48[korg1212->clkSource]; + break; - default: - return -EINVAL; - } + default: + return -EINVAL; + } korg1212->clkSrcRate = parm; korg1212->clkRate = rate; @@ -898,9 +876,9 @@ static int snd_korg1212_SetRate(korg1212_t *korg1212, int rate) ClockSourceSelector[korg1212->clkSrcRate], 0, 0, 0); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Set Clock Source Selector - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Set Clock Source Selector - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); return 0; } @@ -908,8 +886,8 @@ static int snd_korg1212_SetRate(korg1212_t *korg1212, int rate) static int snd_korg1212_SetClockSource(korg1212_t *korg1212, int source) { - if (source<0 || source >2) - return -EINVAL; + if (source < 0 || source > 2) + return -EINVAL; korg1212->clkSource = source; @@ -935,9 +913,8 @@ static int snd_korg1212_WriteADCSensitivity(korg1212_t *korg1212) u16 count; unsigned long flags; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: WriteADCSensivity [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: WriteADCSensivity [%s]\n", + stateName[korg1212->cardState]); // ---------------------------------------------------------------------------- // initialize things. The local init bit is always set when writing to the @@ -1006,19 +983,17 @@ static int snd_korg1212_WriteADCSensitivity(korg1212_t *korg1212) udelay(LOADSHIFT_DELAY); for (bitPosition = 15; bitPosition >= 0; bitPosition--) { // for all the bits - if (channel == 0) { - if (sensVals.l.leftSensBits & (0x0001 << bitPosition)) { - SetBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set high - } else { - ClearBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set low - } - } else { - if (sensVals.r.rightSensBits & (0x0001 << bitPosition)) { - SetBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set high - } else { - ClearBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set low - } - } + if (channel == 0) { + if (sensVals.l.leftSensBits & (0x0001 << bitPosition)) + SetBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set high + else + ClearBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set low + } else { + if (sensVals.r.rightSensBits & (0x0001 << bitPosition)) + SetBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set high + else + ClearBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set low + } ClearBitInWord(&controlValue, SET_SENS_CLOCK_BITPOS); writew(controlValue, korg1212->sensRegPtr); // clock goes low @@ -1061,10 +1036,9 @@ static int snd_korg1212_WriteADCSensitivity(korg1212_t *korg1212) if (monModeSet) { rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, K1212_MODE_MonitorOn, 0, 0, 0); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: WriteADCSensivity - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif - + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: WriteADCSensivity - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); } spin_unlock_irqrestore(&korg1212->lock, flags); @@ -1076,19 +1050,18 @@ static void snd_korg1212_OnDSPDownloadComplete(korg1212_t *korg1212) { int channel; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: DSP download is complete. [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: DSP download is complete. [%s]\n", + stateName[korg1212->cardState]); // ---------------------------------------------------- // tell the card to boot // ---------------------------------------------------- rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_BootFromDSPPage4, 0, 0, 0, 0); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Boot from Page 4 - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif - mdelay(DSP_BOOT_DELAY_IN_MS); + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Boot from Page 4 - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); + msleep(DSP_BOOT_DELAY_IN_MS); // -------------------------------------------------------------------------------- // Let the card know where all the buffers are. @@ -1102,9 +1075,9 @@ static void snd_korg1212_OnDSPDownloadComplete(korg1212_t *korg1212) 0 ); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Configure Buffer Memory - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Configure Buffer Memory - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); udelay(INTERCOMMAND_DELAY); @@ -1116,10 +1089,9 @@ static void snd_korg1212_OnDSPDownloadComplete(korg1212_t *korg1212) 0 ); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Configure Misc Memory - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif - + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Configure Misc Memory - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); // -------------------------------------------------------------------------------- // Initialize the routing and volume tables, then update the card's state. @@ -1138,16 +1110,16 @@ static void snd_korg1212_OnDSPDownloadComplete(korg1212_t *korg1212) rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SetClockSourceRate, ClockSourceSelector[korg1212->clkSrcRate], 0, 0, 0); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Set Clock Source Selector - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Set Clock Source Selector - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); - snd_korg1212_TurnOnIdleMonitor(korg1212); + rc = snd_korg1212_TurnOnIdleMonitor(korg1212); snd_korg1212_setCardState(korg1212, K1212_STATE_READY); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Set Monitor On - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Set Monitor On - RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_COMPLETE); } @@ -1176,9 +1148,9 @@ static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs switch (doorbellValue) { case K1212_DB_DSPDownloadDone: -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: IRQ DNLD count - %ld, %x, [%s].\n", korg1212->irqcount, doorbellValue, stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: IRQ DNLD count - %ld, %x, [%s].\n", + korg1212->irqcount, doorbellValue, + stateName[korg1212->cardState]); if (korg1212->cardState == K1212_STATE_DSP_IN_PROCESS) { korg1212->dsp_is_loaded = 1; wake_up(&korg1212->wait); @@ -1189,10 +1161,10 @@ static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs // an error occurred - stop the card // ------------------------------------------------------------------------ case K1212_DB_DMAERROR: -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: IRQ DMAE count - %ld, %x, [%s].\n", korg1212->irqcount, doorbellValue, stateName[korg1212->cardState]); -#endif - snd_printk(KERN_ERR "korg1212: DMA Error\n"); + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: IRQ DMAE count - %ld, %x, [%s].\n", + korg1212->irqcount, doorbellValue, + stateName[korg1212->cardState]); + snd_printk(KERN_ERR "korg1212: DMA Error\n"); korg1212->errorcnt++; korg1212->totalerrorcnt++; korg1212->sharedBufferPtr->cardCommand = 0; @@ -1204,17 +1176,17 @@ static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs // the semaphore in case someone is waiting for this. // ------------------------------------------------------------------------ case K1212_DB_CARDSTOPPED: -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: IRQ CSTP count - %ld, %x, [%s].\n", korg1212->irqcount, doorbellValue, stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK_VEROBSE("K1212_DEBUG: IRQ CSTP count - %ld, %x, [%s].\n", + korg1212->irqcount, doorbellValue, + stateName[korg1212->cardState]); korg1212->sharedBufferPtr->cardCommand = 0; break; default: -#if K1212_DEBUG_LEVEL > 3 - K1212_DEBUG_PRINTK("K1212_DEBUG: IRQ DFLT count - %ld, %x, cpos=%d [%s].\n", korg1212->irqcount, doorbellValue, - korg1212->currentBuffer, stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: IRQ DFLT count - %ld, %x, cpos=%d [%s].\n", + korg1212->irqcount, doorbellValue, + korg1212->currentBuffer, + stateName[korg1212->cardState]); if ((korg1212->cardState > K1212_STATE_SETUP) || korg1212->idleMonitorOn) { korg1212->currentBuffer++; @@ -1249,16 +1221,14 @@ static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs static int snd_korg1212_downloadDSPCode(korg1212_t *korg1212) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: DSP download is starting... [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: DSP download is starting... [%s]\n", + stateName[korg1212->cardState]); // --------------------------------------------------------------- // verify the state of the card before proceeding. // --------------------------------------------------------------- - if (korg1212->cardState >= K1212_STATE_DSP_IN_PROCESS) { + if (korg1212->cardState >= K1212_STATE_DSP_IN_PROCESS) return 1; - } snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_IN_PROCESS); @@ -1267,10 +1237,9 @@ static int snd_korg1212_downloadDSPCode(korg1212_t *korg1212) rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_StartDSPDownload, UpperWordSwap(korg1212->dma_dsp.addr), 0, 0, 0); - -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Start DSP Download RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Start DSP Download RC = %d [%s]\n", + rc, stateName[korg1212->cardState]); korg1212->dsp_is_loaded = 0; wait_event_timeout(korg1212->wait, korg1212->dsp_is_loaded, HZ * CARD_BOOT_TIMEOUT); @@ -1327,16 +1296,16 @@ static int snd_korg1212_silence(korg1212_t *korg1212, int pos, int count, int of KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; int i; -#if K1212_DEBUG_LEVEL > 2 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_silence pos=%d offset=%d size=%d count=%d\n", pos, offset, size, count); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_silence pos=%d offset=%d size=%d count=%d\n", + pos, offset, size, count); snd_assert(pos + count <= K1212_MAX_SAMPLES, return -EINVAL); for (i=0; i < count; i++) { #if K1212_DEBUG_LEVEL > 0 if ( (void *) dst < (void *) korg1212->playDataBufsPtr || (void *) dst > (void *) korg1212->playDataBufsPtr[8].bufferData ) { - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_silence KERNEL EFAULT dst=%p iter=%d\n", dst, i); + printk(KERN_DEBUG "K1212_DEBUG: snd_korg1212_silence KERNEL EFAULT dst=%p iter=%d\n", + dst, i); return -EFAULT; } #endif @@ -1352,24 +1321,21 @@ static int snd_korg1212_copy_to(korg1212_t *korg1212, void __user *dst, int pos, KorgAudioFrame * src = korg1212->recordDataBufsPtr[0].bufferData + pos; int i, rc; -#if K1212_DEBUG_LEVEL > 2 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_to pos=%d offset=%d size=%d\n", pos, offset, size); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_copy_to pos=%d offset=%d size=%d\n", + pos, offset, size); snd_assert(pos + count <= K1212_MAX_SAMPLES, return -EINVAL); for (i=0; i < count; i++) { #if K1212_DEBUG_LEVEL > 0 if ( (void *) src < (void *) korg1212->recordDataBufsPtr || (void *) src > (void *) korg1212->recordDataBufsPtr[8].bufferData ) { - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_to KERNEL EFAULT, src=%p dst=%p iter=%d\n", src, dst, i); + printk(KERN_DEBUG "K1212_DEBUG: snd_korg1212_copy_to KERNEL EFAULT, src=%p dst=%p iter=%d\n", src, dst, i); return -EFAULT; } #endif rc = copy_to_user(dst + offset, src, size); if (rc) { -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_to USER EFAULT src=%p dst=%p iter=%d\n", src, dst, i); -#endif return -EFAULT; } src++; @@ -1384,9 +1350,8 @@ static int snd_korg1212_copy_from(korg1212_t *korg1212, void __user *src, int po KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; int i, rc; -#if K1212_DEBUG_LEVEL > 2 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_from pos=%d offset=%d size=%d count=%d\n", pos, offset, size, count); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_copy_from pos=%d offset=%d size=%d count=%d\n", + pos, offset, size, count); snd_assert(pos + count <= K1212_MAX_SAMPLES, return -EINVAL); @@ -1394,15 +1359,15 @@ static int snd_korg1212_copy_from(korg1212_t *korg1212, void __user *src, int po #if K1212_DEBUG_LEVEL > 0 if ( (void *) dst < (void *) korg1212->playDataBufsPtr || (void *) dst > (void *) korg1212->playDataBufsPtr[8].bufferData ) { - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_from KERNEL EFAULT, src=%p dst=%p iter=%d\n", src, dst, i); + printk(KERN_DEBUG "K1212_DEBUG: snd_korg1212_copy_from KERNEL EFAULT, src=%p dst=%p iter=%d\n", + src, dst, i); return -EFAULT; } #endif rc = copy_from_user((void*) dst + offset, src, size); if (rc) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_from USER EFAULT src=%p dst=%p iter=%d\n", src, dst, i); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_from USER EFAULT src=%p dst=%p iter=%d\n", + src, dst, i); return -EFAULT; } dst++; @@ -1416,9 +1381,8 @@ static void snd_korg1212_free_pcm(snd_pcm_t *pcm) { korg1212_t *korg1212 = (korg1212_t *) pcm->private_data; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_free_pcm [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_free_pcm [%s]\n", + stateName[korg1212->cardState]); korg1212->pcm = NULL; } @@ -1429,9 +1393,8 @@ static int snd_korg1212_playback_open(snd_pcm_substream_t *substream) korg1212_t *korg1212 = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_open [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_open [%s]\n", + stateName[korg1212->cardState]); snd_pcm_set_sync(substream); // ??? @@ -1461,9 +1424,8 @@ static int snd_korg1212_capture_open(snd_pcm_substream_t *substream) korg1212_t *korg1212 = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_open [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_open [%s]\n", + stateName[korg1212->cardState]); snd_pcm_set_sync(substream); @@ -1490,9 +1452,8 @@ static int snd_korg1212_playback_close(snd_pcm_substream_t *substream) unsigned long flags; korg1212_t *korg1212 = snd_pcm_substream_chip(substream); -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_close [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_close [%s]\n", + stateName[korg1212->cardState]); snd_korg1212_silence(korg1212, 0, K1212_MAX_SAMPLES, 0, korg1212->channels * 2); @@ -1513,9 +1474,8 @@ static int snd_korg1212_capture_close(snd_pcm_substream_t *substream) unsigned long flags; korg1212_t *korg1212 = snd_pcm_substream_chip(substream); -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_close [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_close [%s]\n", + stateName[korg1212->cardState]); spin_lock_irqsave(&korg1212->lock, flags); @@ -1532,18 +1492,14 @@ static int snd_korg1212_capture_close(snd_pcm_substream_t *substream) static int snd_korg1212_ioctl(snd_pcm_substream_t *substream, unsigned int cmd, void *arg) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_ioctl: cmd=%d\n", cmd); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_ioctl: cmd=%d\n", cmd); if (cmd == SNDRV_PCM_IOCTL1_CHANNEL_INFO ) { snd_pcm_channel_info_t *info = arg; info->offset = 0; info->first = info->channel * 16; info->step = 256; -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: channel_info %d:, offset=%ld, first=%d, step=%d\n", info->channel, info->offset, info->first, info->step); -#endif return 0; } @@ -1559,9 +1515,8 @@ static int snd_korg1212_hw_params(snd_pcm_substream_t *substream, pid_t this_pid; pid_t other_pid; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_hw_params [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_hw_params [%s]\n", + stateName[korg1212->cardState]); spin_lock_irqsave(&korg1212->lock, flags); @@ -1608,17 +1563,15 @@ static int snd_korg1212_prepare(snd_pcm_substream_t *substream) korg1212_t *korg1212 = snd_pcm_substream_chip(substream); int rc; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare [%s]\n", + stateName[korg1212->cardState]); spin_lock_irq(&korg1212->lock); /* FIXME: we should wait for ack! */ if (korg1212->stop_pending_cnt > 0) { -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare - Stop is pending... [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare - Stop is pending... [%s]\n", + stateName[korg1212->cardState]); spin_unlock_irq(&korg1212->lock); return -EAGAIN; /* @@ -1643,18 +1596,15 @@ static int snd_korg1212_trigger(snd_pcm_substream_t *substream, korg1212_t *korg1212 = snd_pcm_substream_chip(substream); int rc; -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger [%s] cmd=%d\n", stateName[korg1212->cardState], cmd); -#endif + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger [%s] cmd=%d\n", + stateName[korg1212->cardState], cmd); spin_lock(&korg1212->lock); switch (cmd) { case SNDRV_PCM_TRIGGER_START: /* if (korg1212->running) { -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger: Already running?\n"); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_trigger: Already running?\n"); break; } */ @@ -1665,9 +1615,7 @@ static int snd_korg1212_trigger(snd_pcm_substream_t *substream, case SNDRV_PCM_TRIGGER_STOP: /* if (!korg1212->running) { -#if K1212_DEBUG_LEVEL > 1 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger: Already stopped?\n"); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_trigger: Already stopped?\n"); break; } */ @@ -1690,10 +1638,8 @@ static snd_pcm_uframes_t snd_korg1212_playback_pointer(snd_pcm_substream_t *subs pos = korg1212->currentBuffer * kPlayBufferFrames; -#if K1212_DEBUG_LEVEL > 2 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_pointer [%s] %ld\n", - stateName[korg1212->cardState], pos); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_playback_pointer [%s] %ld\n", + stateName[korg1212->cardState], pos); return pos; } @@ -1705,10 +1651,8 @@ static snd_pcm_uframes_t snd_korg1212_capture_pointer(snd_pcm_substream_t *subst pos = korg1212->currentBuffer * kPlayBufferFrames; -#if K1212_DEBUG_LEVEL > 2 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_pointer [%s] %ld\n", - stateName[korg1212->cardState], pos); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_capture_pointer [%s] %ld\n", + stateName[korg1212->cardState], pos); return pos; } @@ -1721,9 +1665,8 @@ static int snd_korg1212_playback_copy(snd_pcm_substream_t *substream, { korg1212_t *korg1212 = snd_pcm_substream_chip(substream); -#if K1212_DEBUG_LEVEL > 2 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_playback_copy [%s] %ld %ld\n", + stateName[korg1212->cardState], pos, count); return snd_korg1212_copy_from(korg1212, src, pos, count, 0, korg1212->channels * 2); @@ -1736,9 +1679,8 @@ static int snd_korg1212_playback_silence(snd_pcm_substream_t *substream, { korg1212_t *korg1212 = snd_pcm_substream_chip(substream); -#if K1212_DEBUG_LEVEL > 0 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_silence [%s]\n", stateName[korg1212->cardState]); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_playback_silence [%s]\n", + stateName[korg1212->cardState]); return snd_korg1212_silence(korg1212, pos, count, 0, korg1212->channels * 2); } @@ -1751,9 +1693,8 @@ static int snd_korg1212_capture_copy(snd_pcm_substream_t *substream, { korg1212_t *korg1212 = snd_pcm_substream_chip(substream); -#if K1212_DEBUG_LEVEL > 2 - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count); -#endif + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_capture_copy [%s] %ld %ld\n", + stateName[korg1212->cardState], pos, count); return snd_korg1212_copy_to(korg1212, dst, pos, count, 0, korg1212->channels * 2); } @@ -2145,7 +2086,7 @@ snd_korg1212_free(korg1212_t *korg1212) if (korg1212->irq >= 0) { synchronize_irq(korg1212->irq); snd_korg1212_DisableCardInterrupts(korg1212); - free_irq(korg1212->irq, (void *)korg1212); + free_irq(korg1212->irq, korg1212); korg1212->irq = -1; } @@ -2197,9 +2138,7 @@ snd_korg1212_free(korg1212_t *korg1212) static int snd_korg1212_dev_free(snd_device_t *device) { korg1212_t *korg1212 = device->device_data; -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: Freeing device\n"); -#endif return snd_korg1212_free(korg1212); } @@ -2207,7 +2146,7 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212_t ** rchip) { - int err; + int err, rc; unsigned int i; unsigned ioport_size, iomem_size, iomem2_size; korg1212_t * korg1212; @@ -2270,7 +2209,6 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, ioport_size = pci_resource_len(korg1212->pci, 1); iomem2_size = pci_resource_len(korg1212->pci, 2); -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: resources:\n" " iomem = 0x%lx (%d)\n" " ioport = 0x%lx (%d)\n" @@ -2280,7 +2218,6 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->ioport, ioport_size, korg1212->iomem2, iomem2_size, stateName[korg1212->cardState]); -#endif if ((korg1212->iobase = ioremap(korg1212->iomem, iomem_size)) == NULL) { snd_printk(KERN_ERR "korg1212: unable to remap memory region 0x%lx-0x%lx\n", korg1212->iomem, @@ -2291,7 +2228,7 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, err = request_irq(pci->irq, snd_korg1212_interrupt, SA_INTERRUPT|SA_SHIRQ, - "korg1212", (void *) korg1212); + "korg1212", korg1212); if (err) { snd_printk(KERN_ERR "korg1212: unable to grab IRQ %d\n", pci->irq); @@ -2314,7 +2251,6 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->sensRegPtr = (u16 __iomem *) (korg1212->iobase + SENS_CONTROL_OFFSET); korg1212->idRegPtr = (u32 __iomem *) (korg1212->iobase + DEV_VEND_ID_OFFSET); -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: card registers:\n" " Status register = 0x%p\n" " OutDoorbell = 0x%p\n" @@ -2338,7 +2274,6 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->sensRegPtr, korg1212->idRegPtr, stateName[korg1212->cardState]); -#endif if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), sizeof(KorgSharedBuffer), &korg1212->dma_shared) < 0) { @@ -2349,9 +2284,7 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->sharedBufferPtr = (KorgSharedBuffer *)korg1212->dma_shared.area; korg1212->sharedBufferPhy = korg1212->dma_shared.addr; -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: Shared Buffer Area = 0x%p (0x%08lx), %d bytes\n", korg1212->sharedBufferPtr, korg1212->sharedBufferPhy, sizeof(KorgSharedBuffer)); -#endif #ifndef K1212_LARGEALLOC @@ -2366,10 +2299,8 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->playDataBufsPtr = (KorgAudioBuffer *)korg1212->dma_play.area; korg1212->PlayDataPhy = korg1212->dma_play.addr; -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: Play Data Area = 0x%p (0x%08x), %d bytes\n", korg1212->playDataBufsPtr, korg1212->PlayDataPhy, korg1212->DataBufsSize); -#endif if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), korg1212->DataBufsSize, &korg1212->dma_rec) < 0) { @@ -2380,10 +2311,8 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->recordDataBufsPtr = (KorgAudioBuffer *)korg1212->dma_rec.area; korg1212->RecDataPhy = korg1212->dma_rec.addr; -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: Record Data Area = 0x%p (0x%08x), %d bytes\n", korg1212->recordDataBufsPtr, korg1212->RecDataPhy, korg1212->DataBufsSize); -#endif #else // K1212_LARGEALLOC @@ -2410,17 +2339,14 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, return -ENOMEM; } -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: DSP Code area = 0x%p (0x%08x) %d bytes [%s]\n", korg1212->dma_dsp.area, korg1212->dma_dsp.addr, korg1212->dspCodeSize, stateName[korg1212->cardState]); -#endif rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_RebootCard, 0, 0, 0, 0); -#if K1212_DEBUG_LEVEL > 0 - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Reboot Card - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); -#endif + if (rc) + K1212_DEBUG_PRINTK("K1212_DEBUG: Reboot Card - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, korg1212, &ops)) < 0) { snd_korg1212_free(korg1212); @@ -2434,8 +2360,7 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, if (snd_korg1212_downloadDSPCode(korg1212)) return -EBUSY; - snd_printk(KERN_ERR - "korg1212: dspMemPhy = %08x U[%08x], " + K1212_DEBUG_PRINTK("korg1212: dspMemPhy = %08x U[%08x], " "PlayDataPhy = %08x L[%08x]\n" "korg1212: RecDataPhy = %08x L[%08x], " "VolumeTablePhy = %08x L[%08x]\n" @@ -2461,9 +2386,6 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; - //snd_pcm_lib_preallocate_pages_for_all(korg1212->pcm, - // K1212_MAX_BUF_SIZE, K1212_MAX_BUF_SIZE, GFP_KERNEL); - for (i = 0; i < ARRAY_SIZE(snd_korg1212_controls); i++) { err = snd_ctl_add(korg1212->card, snd_ctl_new1(&snd_korg1212_controls[i], korg1212)); if (err < 0) @@ -2513,9 +2435,7 @@ snd_korg1212_probe(struct pci_dev *pci, sprintf(card->longname, "%s at 0x%lx, irq %d", card->shortname, korg1212->iomem, korg1212->irq); -#if K1212_DEBUG_LEVEL > 0 K1212_DEBUG_PRINTK("K1212_DEBUG: %s\n", card->longname); -#endif if ((err = snd_card_register(card)) < 0) { snd_card_free(card); -- cgit v1.2.3-70-g09d2 From ba7301c7d985d206a5688c69d0a74de3988f6d6c Mon Sep 17 00:00:00 2001 From: Andreas Mohr Date: Thu, 17 Nov 2005 11:03:31 +0100 Subject: [ALSA] ALS4000 update Modules: SB drivers,ALS4000 driver some update for the ALS4000 driver (tested with hardware in my PC): - use common control names according to ControlNames.txt - add some controls (Master Mono, 3D control) - optimize struct snd_card_als4000_t layout (performance/size) - save some bytes via unified error path - constify some read-only data - add ToDo list - move GPL license text to top - add comments Signed-off-by: Andreas Mohr Signed-off-by: Takashi Iwai --- sound/isa/sb/sb_mixer.c | 57 ++++++++++++++++++------------- sound/pci/als4000.c | 89 ++++++++++++++++++++++++++++++------------------- 2 files changed, 88 insertions(+), 58 deletions(-) (limited to 'sound/pci') diff --git a/sound/isa/sb/sb_mixer.c b/sound/isa/sb/sb_mixer.c index 5a926a452d3..23cfa6a6a0a 100644 --- a/sound/isa/sb/sb_mixer.c +++ b/sound/isa/sb/sb_mixer.c @@ -669,25 +669,34 @@ static unsigned char snd_dt019x_init_values[][2] = { /* * ALS4000 specific mixer elements */ -/* FIXME: SB_ALS4000_MONO_IO_CTRL needs output select ctrl ! */ -static struct sbmix_elem snd_als4000_ctl_mono_output_switch = - SB_SINGLE("Mono Output Switch", SB_ALS4000_MONO_IO_CTRL, 5, 1); -/* FIXME: mono input switch also available on DT019X ? */ -static struct sbmix_elem snd_als4000_ctl_mono_input_switch = - SB_SINGLE("Mono Input Switch", SB_DT019X_OUTPUT_SW2, 0, 1); +/* FIXME: SB_ALS4000_MONO_IO_CTRL needs output select ctrl! */ +static struct sbmix_elem snd_als4000_ctl_master_mono_playback_switch = + SB_SINGLE("Master Mono Playback Switch", SB_ALS4000_MONO_IO_CTRL, 5, 1); +static struct sbmix_elem snd_als4000_ctl_master_mono_capture_route = + SB_SINGLE("Master Mono Capture Route", SB_ALS4000_MONO_IO_CTRL, 6, 0x03); +/* FIXME: mono playback switch also available on DT019X? */ +static struct sbmix_elem snd_als4000_ctl_mono_playback_switch = + SB_SINGLE("Mono Playback Switch", SB_DT019X_OUTPUT_SW2, 0, 1); static struct sbmix_elem snd_als4000_ctl_mic_20db_boost = SB_SINGLE("Mic Boost (+20dB)", SB_ALS4000_MIC_IN_GAIN, 0, 0x03); -static struct sbmix_elem snd_als4000_ctl_mixer_out_to_in = - SB_SINGLE("Mixer Out To In", SB_ALS4000_MIC_IN_GAIN, 7, 0x01); -/* FIXME: 3D needs much more sophisticated controls, many more features ! */ -static struct sbmix_elem snd_als4000_ctl_3d_output_switch = - SB_SINGLE("3D Output Switch", SB_ALS4000_3D_SND_FX, 6, 0x01); -static struct sbmix_elem snd_als4000_ctl_3d_output_ratio = - SB_SINGLE("3D Output Ratio", SB_ALS4000_3D_SND_FX, 0, 0x07); -static struct sbmix_elem snd_als4000_ctl_3d_poweroff_switch = +static struct sbmix_elem snd_als4000_ctl_mixer_loopback = + SB_SINGLE("Analog Loopback", SB_ALS4000_MIC_IN_GAIN, 7, 0x01); +/* FIXME: functionality of 3D controls might be swapped, I didn't find + * a description of how to identify what is supposed to be what */ +static struct sbmix_elem snd_als4000_3d_control_switch = + SB_SINGLE("3D Control - Switch", SB_ALS4000_3D_SND_FX, 6, 0x01); +static struct sbmix_elem snd_als4000_3d_control_ratio = + SB_SINGLE("3D Control - Level", SB_ALS4000_3D_SND_FX, 0, 0x07); +static struct sbmix_elem snd_als4000_3d_control_freq = + /* FIXME: maybe there's actually some standard 3D ctrl name for it?? */ + SB_SINGLE("3D Control - Freq", SB_ALS4000_3D_SND_FX, 4, 0x03); +static struct sbmix_elem snd_als4000_3d_control_delay = + /* FIXME: ALS4000a.pdf mentions BBD (Bucket Brigade Device) time delay, + * but what ALSA 3D attribute is that actually? "Center", "Depth", + * "Wide" or "Space" or even "Level"? Assuming "Wide" for now... */ + SB_SINGLE("3D Control - Wide", SB_ALS4000_3D_TIME_DELAY, 0, 0x0f); +static struct sbmix_elem snd_als4000_3d_control_poweroff_switch = SB_SINGLE("3D PowerOff Switch", SB_ALS4000_3D_TIME_DELAY, 4, 0x01); -static struct sbmix_elem snd_als4000_ctl_3d_delay = - SB_SINGLE("3D Delay", SB_ALS4000_3D_TIME_DELAY, 0, 0x0f); #ifdef NOT_AVAILABLE static struct sbmix_elem snd_als4000_ctl_fmdac = SB_SINGLE("FMDAC Switch (Option ?)", SB_ALS4000_FMDAC, 0, 0x01); @@ -716,13 +725,15 @@ static struct sbmix_elem *snd_als4000_controls[] = { &snd_sb16_ctl_pc_speaker_vol, &snd_sb16_ctl_capture_vol, &snd_sb16_ctl_play_vol, - &snd_als4000_ctl_mono_output_switch, - &snd_als4000_ctl_mono_input_switch, - &snd_als4000_ctl_mixer_out_to_in, - &snd_als4000_ctl_3d_output_switch, - &snd_als4000_ctl_3d_output_ratio, - &snd_als4000_ctl_3d_delay, - &snd_als4000_ctl_3d_poweroff_switch, + &snd_als4000_ctl_master_mono_playback_switch, + &snd_als4000_ctl_master_mono_capture_route, + &snd_als4000_ctl_mono_playback_switch, + &snd_als4000_ctl_mixer_loopback, + &snd_als4000_3d_control_switch, + &snd_als4000_3d_control_ratio, + &snd_als4000_3d_control_freq, + &snd_als4000_3d_control_delay, + &snd_als4000_3d_control_poweroff_switch, #ifdef NOT_AVAILABLE &snd_als4000_ctl_fmdac, &snd_als4000_ctl_qsound, diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c index d496cc5ab35..48b5175c59c 100644 --- a/sound/pci/als4000.c +++ b/sound/pci/als4000.c @@ -6,6 +6,21 @@ * * Framework borrowed from Massimo Piccioni's card-als100.c. * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * * NOTES * * Since Avance does not provide any meaningful documentation, and I @@ -43,19 +58,9 @@ * Set KSound: * - value -> some port 0x0c0d * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * ToDo: + * - Proper shared IRQ handling? + * - power management? (card can do voice wakeup according to datasheet!!) */ #include @@ -101,8 +106,9 @@ MODULE_PARM_DESC(joystick_port, "Joystick port address for ALS4000 soundcard. (0 #endif typedef struct { - struct pci_dev *pci; + /* most frequent access first */ unsigned long gcr; + struct pci_dev *pci; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; #endif @@ -146,13 +152,13 @@ static void snd_als4000_set_rate(sb_t *chip, unsigned int rate) } } -static void snd_als4000_set_capture_dma(sb_t *chip, dma_addr_t addr, unsigned size) +static inline void snd_als4000_set_capture_dma(sb_t *chip, dma_addr_t addr, unsigned size) { snd_als4000_gcr_write(chip, 0xa2, addr); snd_als4000_gcr_write(chip, 0xa3, (size-1)); } -static void snd_als4000_set_playback_dma(sb_t *chip, dma_addr_t addr, unsigned size) +static inline void snd_als4000_set_playback_dma(sb_t *chip, dma_addr_t addr, unsigned size) { snd_als4000_gcr_write(chip, 0x91, addr); snd_als4000_gcr_write(chip, 0x92, (size-1)|0x180000); @@ -177,7 +183,7 @@ static int snd_als4000_get_format(snd_pcm_runtime_t *runtime) } /* structure for setting up playback */ -static struct { +static const struct { unsigned char dsp_cmd, dma_on, dma_off, format; } playback_cmd_vals[]={ /* ALS4000_FORMAT_U8_MONO */ @@ -201,7 +207,7 @@ static struct { /* structure for setting up capture */ enum { CMD_WIDTH8=0x04, CMD_SIGNED=0x10, CMD_MONO=0x80, CMD_STEREO=0xA0 }; -static unsigned char capture_cmd_vals[]= +static const unsigned char capture_cmd_vals[]= { CMD_WIDTH8|CMD_MONO, /* ALS4000_FORMAT_U8_MONO */ CMD_WIDTH8|CMD_SIGNED|CMD_MONO, /* ALS4000_FORMAT_S8_MONO */ @@ -228,9 +234,9 @@ static int snd_als4000_hw_free(snd_pcm_substream_t * substream) static int snd_als4000_capture_prepare(snd_pcm_substream_t * substream) { - unsigned long flags; sb_t *chip = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; + unsigned long flags; unsigned long size; unsigned count; @@ -256,9 +262,9 @@ static int snd_als4000_capture_prepare(snd_pcm_substream_t * substream) static int snd_als4000_playback_prepare(snd_pcm_substream_t *substream) { - unsigned long flags; sb_t *chip = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; + unsigned long flags; unsigned long size; unsigned count; @@ -353,6 +359,18 @@ static snd_pcm_uframes_t snd_als4000_playback_pointer(snd_pcm_substream_t * subs return bytes_to_frames( substream->runtime, result ); } +/* FIXME: this IRQ routine doesn't really support IRQ sharing (we always + * return IRQ_HANDLED no matter whether we actually had an IRQ flag or not). + * ALS4000a.PDF writes that while ACKing IRQ in PCI block will *not* ACK + * the IRQ in the SB core, ACKing IRQ in SB block *will* ACK the PCI IRQ + * register (alt_port + 0x0e). Probably something could be optimized here to + * query/write one register only... + * And even if both registers need to be queried, then there's still the + * question of whether it's actually correct to ACK PCI IRQ before reading + * SB IRQ like we do now, since ALS4000a.PDF mentions that PCI IRQ will *clear* + * SB IRQ status. + * And do we *really* need the lock here for *reading* SB_DSP4_IRQSTATUS?? + * */ static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs *regs) { sb_t *chip = dev_id; @@ -698,8 +716,7 @@ static int __devinit snd_card_als4000_probe(struct pci_dev *pci, -1, SB_HW_ALS4000, &chip)) < 0) { - snd_card_free(card); - return err; + goto out_err; } chip->pci = pci; @@ -716,40 +733,42 @@ static int __devinit snd_card_als4000_probe(struct pci_dev *pci, if ((err = snd_mpu401_uart_new( card, 0, MPU401_HW_ALS4000, gcr+0x30, 1, pci->irq, 0, &chip->rmidi)) < 0) { - snd_card_free(card); - printk(KERN_ERR "als4000: no MPU-401device at 0x%lx ?\n", gcr+0x30); - return err; + printk(KERN_ERR "als4000: no MPU-401 device at 0x%lx?\n", gcr+0x30); + goto out_err; } if ((err = snd_als4000_pcm(chip, 0)) < 0) { - snd_card_free(card); - return err; + goto out_err; } if ((err = snd_sbmixer_new(chip)) < 0) { - snd_card_free(card); - return err; + goto out_err; } if (snd_opl3_create(card, gcr+0x10, gcr+0x12, OPL3_HW_AUTO, 1, &opl3) < 0) { - printk(KERN_ERR "als4000: no OPL device at 0x%lx-0x%lx ?\n", + printk(KERN_ERR "als4000: no OPL device at 0x%lx-0x%lx?\n", gcr+0x10, gcr+0x12 ); } else { if ((err = snd_opl3_hwdep_new(opl3, 0, 1, NULL)) < 0) { - snd_card_free(card); - return err; + goto out_err; } } snd_als4000_create_gameport(acard, dev); if ((err = snd_card_register(card)) < 0) { - snd_card_free(card); - return err; + goto out_err; } pci_set_drvdata(pci, card); dev++; - return 0; + err = 0; + goto out; + +out_err: + snd_card_free(card); + +out: + return err; } static void __devexit snd_card_als4000_remove(struct pci_dev *pci) -- cgit v1.2.3-70-g09d2 From d2a6d7dc757da6b57d77bd8b460cf4faa9fd152d Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 11:06:29 +0100 Subject: [ALSA] hda-codec - Add channel-mode helper Modules: HDA Codec driver,HDA generic driver Add common channel-mode helper functions for all codec patches. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 48 +++++++++++++++++++++++++++++++ sound/pci/hda/hda_local.h | 17 +++++++++++ sound/pci/hda/patch_analog.c | 2 +- sound/pci/hda/patch_cmedia.c | 62 +++++++++++---------------------------- sound/pci/hda/patch_realtek.c | 67 +++++++++++-------------------------------- 5 files changed, 99 insertions(+), 97 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index e7fb182f90e..14a6f546327 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -1662,6 +1662,54 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, snd_kcontrol_new_t *knew) } + /* + * Channel mode helper + */ +int snd_hda_ch_mode_info(struct hda_codec *codec, snd_ctl_elem_info_t *uinfo, + const struct hda_channel_mode *chmode, int num_chmodes) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; + uinfo->count = 1; + uinfo->value.enumerated.items = num_chmodes; + if (uinfo->value.enumerated.item >= num_chmodes) + uinfo->value.enumerated.item = num_chmodes - 1; + sprintf(uinfo->value.enumerated.name, "%dch", + chmode[uinfo->value.enumerated.item].channels); + return 0; +} + +int snd_hda_ch_mode_get(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, + const struct hda_channel_mode *chmode, int num_chmodes, + int max_channels) +{ + int i; + + for (i = 0; i < num_chmodes; i++) { + if (max_channels == chmode[i].channels) { + ucontrol->value.enumerated.item[0] = i; + break; + } + } + return 0; +} + +int snd_hda_ch_mode_put(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, + const struct hda_channel_mode *chmode, int num_chmodes, + int *max_channelsp) +{ + unsigned int mode; + + mode = ucontrol->value.enumerated.item[0]; + snd_assert(mode < num_chmodes, return -EINVAL); + if (*max_channelsp && ! codec->in_resume) + return 0; + /* change the current channel setting */ + *max_channelsp = chmode[mode].channels; + if (chmode[mode].sequence) + snd_hda_sequence_write(codec, chmode[mode].sequence); + return 1; +} + /* * input MUX helper */ diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index f51a56f813c..05a88fb1d65 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -102,6 +102,23 @@ int snd_hda_input_mux_put(struct hda_codec *codec, const struct hda_input_mux *i snd_ctl_elem_value_t *ucontrol, hda_nid_t nid, unsigned int *cur_val); + /* + * Channel mode helper + */ +struct hda_channel_mode { + int channels; + const struct hda_verb *sequence; +}; + +int snd_hda_ch_mode_info(struct hda_codec *codec, snd_ctl_elem_info_t *uinfo, + const struct hda_channel_mode *chmode, int num_chmodes); +int snd_hda_ch_mode_get(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, + const struct hda_channel_mode *chmode, int num_chmodes, + int max_channels); +int snd_hda_ch_mode_put(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, + const struct hda_channel_mode *chmode, int num_chmodes, + int *max_channelsp); + /* * Multi-channel / digital-out PCM helper */ diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index d7d636decef..4687736aa0d 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -52,7 +52,7 @@ struct ad198x_spec { unsigned int cur_mux[3]; /* channel model */ - const struct alc_channel_mode *channel_mode; + const struct hda_channel_mode *channel_mode; int num_channel_mode; /* PCM information */ diff --git a/sound/pci/hda/patch_cmedia.c b/sound/pci/hda/patch_cmedia.c index 523c362ec44..6e0fd92a2be 100644 --- a/sound/pci/hda/patch_cmedia.c +++ b/sound/pci/hda/patch_cmedia.c @@ -44,7 +44,6 @@ enum { struct cmi_spec { int board_config; - unsigned int surr_switch: 1; /* switchable line,mic */ unsigned int no_line_in: 1; /* no line-in (5-jack) */ unsigned int front_panel: 1; /* has front-panel 2-jack */ @@ -62,9 +61,8 @@ struct cmi_spec { unsigned int cur_mux[2]; /* channel mode */ - unsigned int num_ch_modes; - unsigned int cur_ch_mode; - const struct cmi_channel_mode *channel_modes; + int num_channel_modes; + const struct hda_channel_mode *channel_modes; struct hda_pcm pcm_rec[2]; /* PCM information */ @@ -158,12 +156,7 @@ static struct hda_verb cmi9880_ch8_init[] = { {} }; -struct cmi_channel_mode { - unsigned int channels; - const struct hda_verb *sequence; -}; - -static struct cmi_channel_mode cmi9880_channel_modes[3] = { +static struct hda_channel_mode cmi9880_channel_modes[3] = { { 2, cmi9880_ch2_init }, { 6, cmi9880_ch6_init }, { 8, cmi9880_ch8_init }, @@ -173,43 +166,24 @@ static int cmi_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; - - snd_assert(spec->channel_modes, return -EINVAL); - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; - uinfo->count = 1; - uinfo->value.enumerated.items = spec->num_ch_modes; - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) - uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; - sprintf(uinfo->value.enumerated.name, "%dch", - spec->channel_modes[uinfo->value.enumerated.item].channels); - return 0; + return snd_hda_ch_mode_info(codec, uinfo, spec->channel_modes, + spec->num_channel_modes); } static int cmi_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; - - ucontrol->value.enumerated.item[0] = spec->cur_ch_mode; - return 0; + return snd_hda_ch_mode_get(codec, ucontrol, spec->channel_modes, + spec->num_channel_modes, spec->multiout.max_channels); } static int cmi_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; - - snd_assert(spec->channel_modes, return -EINVAL); - if (ucontrol->value.enumerated.item[0] >= spec->num_ch_modes) - ucontrol->value.enumerated.item[0] = spec->num_ch_modes; - if (ucontrol->value.enumerated.item[0] == spec->cur_ch_mode && - ! codec->in_resume) - return 0; - - spec->cur_ch_mode = ucontrol->value.enumerated.item[0]; - snd_hda_sequence_write(codec, spec->channel_modes[spec->cur_ch_mode].sequence); - spec->multiout.max_channels = spec->channel_modes[spec->cur_ch_mode].channels; - return 1; + return snd_hda_ch_mode_put(codec, ucontrol, spec->channel_modes, + spec->num_channel_modes, &spec->multiout.max_channels); } /* @@ -361,7 +335,7 @@ static int cmi9880_build_controls(struct hda_codec *codec) err = snd_hda_add_new_ctls(codec, cmi9880_basic_mixer); if (err < 0) return err; - if (spec->surr_switch) { + if (spec->channel_modes) { err = snd_hda_add_new_ctls(codec, cmi9880_ch_mode_mixer); if (err < 0) return err; @@ -475,7 +449,7 @@ static int cmi9880_resume(struct hda_codec *codec) cmi9880_init(codec); snd_hda_resume_ctls(codec, cmi9880_basic_mixer); - if (spec->surr_switch) + if (spec->channel_modes) snd_hda_resume_ctls(codec, cmi9880_ch_mode_mixer); if (spec->multiout.dig_out_nid) snd_hda_resume_spdif_out(codec); @@ -685,14 +659,13 @@ static int patch_cmi9880(struct hda_codec *codec) switch (spec->board_config) { case CMI_MINIMAL: case CMI_MIN_FP: - spec->surr_switch = 1; + spec->channel_modes = cmi9880_channel_modes; if (spec->board_config == CMI_MINIMAL) - spec->num_ch_modes = 2; + spec->num_channel_modes = 2; else { spec->front_panel = 1; - spec->num_ch_modes = 3; + spec->num_channel_modes = 3; } - spec->channel_modes = cmi9880_channel_modes; spec->multiout.max_channels = cmi9880_channel_modes[0].channels; spec->input_mux = &cmi9880_basic_mux; break; @@ -727,19 +700,18 @@ static int patch_cmi9880(struct hda_codec *codec) get_defcfg_connect(port_f) == AC_JACK_PORT_NONE) { port_g = snd_hda_codec_read(codec, 0x1f, 0, AC_VERB_GET_CONFIG_DEFAULT, 0); port_h = snd_hda_codec_read(codec, 0x20, 0, AC_VERB_GET_CONFIG_DEFAULT, 0); - spec->surr_switch = 1; + spec->channel_modes = cmi9880_channel_modes; /* no front panel */ if (get_defcfg_connect(port_g) == AC_JACK_PORT_NONE || get_defcfg_connect(port_h) == AC_JACK_PORT_NONE) { /* no optional rear panel */ spec->board_config = CMI_MINIMAL; spec->front_panel = 0; - spec->num_ch_modes = 2; + spec->num_channel_modes = 2; } else { spec->board_config = CMI_MIN_FP; - spec->num_ch_modes = 3; + spec->num_channel_modes = 3; } - spec->channel_modes = cmi9880_channel_modes; spec->input_mux = &cmi9880_basic_mux; spec->multiout.max_channels = cmi9880_channel_modes[0].channels; } else { diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index cffb83fdcff..a213c19ab06 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -109,7 +109,7 @@ struct alc_spec { unsigned int cur_mux[3]; /* channel model */ - const struct alc_channel_mode *channel_mode; + const struct hda_channel_mode *channel_mode; int num_channel_mode; /* PCM information */ @@ -157,63 +157,28 @@ static int alc_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon /* * channel mode setting */ -struct alc_channel_mode { - int channels; - const struct hda_verb *sequence; -}; - static int alc880_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; - int items = kcontrol->private_value ? (int)kcontrol->private_value : 2; - - snd_assert(spec->channel_mode, return -ENXIO); - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; - uinfo->count = 1; - uinfo->value.enumerated.items = items; - if (uinfo->value.enumerated.item >= items) - uinfo->value.enumerated.item = items - 1; - sprintf(uinfo->value.enumerated.name, "%dch", - spec->channel_mode[uinfo->value.enumerated.item].channels); - return 0; + return snd_hda_ch_mode_info(codec, uinfo, spec->channel_mode, + spec->num_channel_mode); } static int alc880_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; - int items = kcontrol->private_value ? (int)kcontrol->private_value : 2; - int i; - - snd_assert(spec->channel_mode, return -ENXIO); - for (i = 0; i < items; i++) { - if (spec->multiout.max_channels == spec->channel_mode[i].channels) { - ucontrol->value.enumerated.item[0] = i; - break; - } - } - return 0; + return snd_hda_ch_mode_get(codec, ucontrol, spec->channel_mode, + spec->num_channel_mode, spec->multiout.max_channels); } static int alc880_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; - int mode; - - snd_assert(spec->channel_mode, return -ENXIO); - mode = ucontrol->value.enumerated.item[0] ? 1 : 0; - if (spec->multiout.max_channels == spec->channel_mode[mode].channels && - ! codec->in_resume) - return 0; - - /* change the current channel setting */ - spec->multiout.max_channels = spec->channel_mode[mode].channels; - if (spec->channel_mode[mode].sequence) - snd_hda_sequence_write(codec, spec->channel_mode[mode].sequence); - - return 1; + return snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode, + spec->num_channel_mode, &spec->multiout.max_channels); } @@ -328,7 +293,7 @@ static struct hda_verb alc880_threestack_ch6_init[] = { { } /* end */ }; -static struct alc_channel_mode alc880_threestack_modes[2] = { +static struct hda_channel_mode alc880_threestack_modes[2] = { { 2, alc880_threestack_ch2_init }, { 6, alc880_threestack_ch6_init }, }; @@ -443,7 +408,7 @@ static struct hda_verb alc880_fivestack_ch8_init[] = { { } /* end */ }; -static struct alc_channel_mode alc880_fivestack_modes[2] = { +static struct hda_channel_mode alc880_fivestack_modes[2] = { { 6, alc880_fivestack_ch6_init }, { 8, alc880_fivestack_ch8_init }, }; @@ -473,7 +438,7 @@ static struct hda_input_mux alc880_6stack_capture_source = { }; /* fixed 8-channels */ -static struct alc_channel_mode alc880_sixstack_modes[1] = { +static struct hda_channel_mode alc880_sixstack_modes[1] = { { 8, NULL }, }; @@ -540,7 +505,7 @@ static hda_nid_t alc880_w810_dac_nids[3] = { }; /* fixed 6 channels */ -static struct alc_channel_mode alc880_w810_modes[1] = { +static struct hda_channel_mode alc880_w810_modes[1] = { { 6, NULL } }; @@ -572,7 +537,7 @@ static hda_nid_t alc880_z71v_dac_nids[1] = { #define ALC880_Z71V_HP_DAC 0x03 /* fixed 2 channels */ -static struct alc_channel_mode alc880_2_jack_modes[1] = { +static struct hda_channel_mode alc880_2_jack_modes[1] = { { 2, NULL } }; @@ -1227,7 +1192,7 @@ static struct hda_input_mux alc880_test_capture_source = { }, }; -static struct alc_channel_mode alc880_test_modes[4] = { +static struct hda_channel_mode alc880_test_modes[4] = { { 2, NULL }, { 4, NULL }, { 6, NULL }, @@ -1585,7 +1550,7 @@ struct alc_config_preset { unsigned int num_adc_nids; hda_nid_t *adc_nids; unsigned int num_channel_mode; - const struct alc_channel_mode *channel_mode; + const struct hda_channel_mode *channel_mode; const struct hda_input_mux *input_mux; }; @@ -2202,7 +2167,7 @@ static struct hda_input_mux alc260_fujitsu_capture_source = { * element which allows changing the channel mode, so the verb list is * never used. */ -static struct alc_channel_mode alc260_modes[1] = { +static struct hda_channel_mode alc260_modes[1] = { { 2, NULL }, }; @@ -2506,7 +2471,7 @@ static int patch_alc260(struct hda_codec *codec) * driver yet). */ -static struct alc_channel_mode alc882_ch_modes[1] = { +static struct hda_channel_mode alc882_ch_modes[1] = { { 8, NULL } }; -- cgit v1.2.3-70-g09d2 From 9f146bb6e68610ab2b62c76e7485900545515613 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 11:07:49 +0100 Subject: [ALSA] hda-codec - Prepare unsol workqueue on demand Modules: HDA Codec driver Prepare unsol workqueue only when a codec really supports. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 14a6f546327..cfd50b56187 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -288,6 +288,9 @@ static int init_unsol_queue(struct hda_bus *bus) { struct hda_bus_unsolicited *unsol; + if (bus->unsol) /* already initialized */ + return 0; + unsol = kzalloc(sizeof(*unsol), GFP_KERNEL); if (! unsol) { snd_printk(KERN_ERR "hda_codec: can't allocate unsolicited queue\n"); @@ -373,8 +376,6 @@ int snd_hda_bus_new(snd_card_t *card, const struct hda_bus_template *temp, init_MUTEX(&bus->cmd_mutex); INIT_LIST_HEAD(&bus->codec_list); - init_unsol_queue(bus); - if ((err = snd_device_new(card, SNDRV_DEV_BUS, bus, &dev_ops)) < 0) { snd_hda_bus_free(bus); return err; @@ -540,6 +541,9 @@ int snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr, return err; } + if (codec->patch_ops.unsol_event) + init_unsol_queue(bus); + snd_hda_codec_proc_new(codec); sprintf(component, "HDA:%08x", codec->vendor_id); -- cgit v1.2.3-70-g09d2 From a2a20939b1cc82222eb67a4631009338791f1acd Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 11:08:23 +0100 Subject: [ALSA] hda-codec - Fix a typo Modules: HDA Codec driver Fix a typo in hda_codec.h. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index b0123adc569..58b9949aca4 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h @@ -98,7 +98,7 @@ enum { #define AC_VERB_SET_UNSOLICITED_ENABLE 0x708 #define AC_VERB_SET_PIN_SENSE 0x709 #define AC_VERB_SET_BEEP_CONTROL 0x70a -#define AC_VERB_SET_EAPD_BTLENALBE 0x70c +#define AC_VERB_SET_EAPD_BTLENABLE 0x70c #define AC_VERB_SET_DIGI_CONVERT_1 0x70d #define AC_VERB_SET_DIGI_CONVERT_2 0x70e #define AC_VERB_SET_VOLUME_KNOB_CONTROL 0x70f -- cgit v1.2.3-70-g09d2 From 8d88bc3d361bdd81a214eb9c5d06b291d06c603a Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 11:09:23 +0100 Subject: [ALSA] hda-codec - Fix assignment of speaker pin Modules: HDA Codec driver,HDA generic driver Fix the auto-assignment of speaker pin. Handle it independently from line-out pins. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 4 +++- sound/pci/hda/hda_local.h | 15 ++++++++++++++ sound/pci/hda/patch_cmedia.c | 13 ------------ sound/pci/hda/patch_realtek.c | 47 ++++++++++++++++++++----------------------- 4 files changed, 40 insertions(+), 39 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index cfd50b56187..2e9f5877386 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -1889,7 +1889,6 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *c loc = get_defcfg_location(def_conf); switch (get_defcfg_device(def_conf)) { case AC_JACK_LINE_OUT: - case AC_JACK_SPEAKER: seq = get_defcfg_sequence(def_conf); assoc = get_defcfg_association(def_conf); if (! assoc) @@ -1904,6 +1903,9 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *c sequences[cfg->line_outs] = seq; cfg->line_outs++; break; + case AC_JACK_SPEAKER: + cfg->speaker_pin = nid; + break; case AC_JACK_HP_OUT: cfg->hp_pin = nid; break; diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index 05a88fb1d65..31d3c7ef584 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -214,6 +214,7 @@ enum { struct auto_pin_cfg { int line_outs; hda_nid_t line_out_pins[4]; /* sorted in the order of Front/Surr/CLFE/Side */ + hda_nid_t speaker_pin; hda_nid_t hp_pin; hda_nid_t input_pins[AUTO_PIN_LAST]; hda_nid_t dig_out_pin; @@ -228,4 +229,18 @@ struct auto_pin_cfg { int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *cfg); +/* amp values */ +#define AMP_IN_MUTE(idx) (0x7080 | ((idx)<<8)) +#define AMP_IN_UNMUTE(idx) (0x7000 | ((idx)<<8)) +#define AMP_OUT_MUTE 0xb080 +#define AMP_OUT_UNMUTE 0xb000 +#define AMP_OUT_ZERO 0xb000 +/* pinctl values */ +#define PIN_IN 0x20 +#define PIN_VREF80 0x24 +#define PIN_VREF50 0x21 +#define PIN_OUT 0x40 +#define PIN_HP 0xc0 +#define PIN_HP_AMP 0x80 + #endif /* __SOUND_HDA_LOCAL_H */ diff --git a/sound/pci/hda/patch_cmedia.c b/sound/pci/hda/patch_cmedia.c index 6e0fd92a2be..37ee1246b2d 100644 --- a/sound/pci/hda/patch_cmedia.c +++ b/sound/pci/hda/patch_cmedia.c @@ -76,19 +76,6 @@ struct cmi_spec { struct hda_verb multi_init[9]; /* 2 verbs for each pin + terminator */ }; -/* amp values */ -#define AMP_IN_MUTE(idx) (0x7080 | ((idx)<<8)) -#define AMP_IN_UNMUTE(idx) (0x7000 | ((idx)<<8)) -#define AMP_OUT_MUTE 0xb080 -#define AMP_OUT_UNMUTE 0xb000 -#define AMP_OUT_ZERO 0xb000 -/* pinctl values */ -#define PIN_IN 0x20 -#define PIN_VREF80 0x24 -#define PIN_VREF50 0x21 -#define PIN_OUT 0x40 -#define PIN_HP 0xc0 - /* * input MUX */ diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a213c19ab06..3ff72c49cd2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -61,20 +61,6 @@ enum { ALC260_MODEL_LAST /* last tag */ }; -/* amp values */ -#define AMP_IN_MUTE(idx) (0x7080 | ((idx)<<8)) -#define AMP_IN_UNMUTE(idx) (0x7000 | ((idx)<<8)) -#define AMP_OUT_MUTE 0xb080 -#define AMP_OUT_UNMUTE 0xb000 -#define AMP_OUT_ZERO 0xb000 -/* pinctl values */ -#define PIN_IN 0x20 -#define PIN_VREF80 0x24 -#define PIN_VREF50 0x21 -#define PIN_OUT 0x40 -#define PIN_HP 0xc0 -#define PIN_HP_AMP 0x80 - struct alc_spec { /* codec parameterization */ snd_kcontrol_new_t *mixers[3]; /* mixer arrays */ @@ -1833,15 +1819,16 @@ static int alc880_auto_create_multi_out_ctls(struct alc_spec *spec, const struct return err; } } - return 0; } -/* add playback controls for HP output */ -static int alc880_auto_create_hp_ctls(struct alc_spec *spec, hda_nid_t pin) +/* add playback controls for speaker and HP outputs */ +static int alc880_auto_create_extra_out(struct alc_spec *spec, hda_nid_t pin, + const char *pfx) { hda_nid_t nid; int err; + char name[32]; if (! pin) return 0; @@ -1854,14 +1841,16 @@ static int alc880_auto_create_hp_ctls(struct alc_spec *spec, hda_nid_t pin) if (! spec->multiout.num_dacs) spec->multiout.num_dacs = 1; } else - /* specify the DAC as the extra HP output */ + /* specify the DAC as the extra output */ spec->multiout.hp_nid = nid; /* control HP volume/switch on the output mixer amp */ nid = alc880_idx_to_mixer(alc880_fixed_pin_idx(pin)); - if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, "Headphone Playback Volume", + sprintf(name, "%s Playback Volume", pfx); + if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, name, HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) return err; - if ((err = add_control(spec, ALC_CTL_BIND_MUTE, "Headphone Playback Switch", + sprintf(name, "%s Playback Switch", pfx); + if ((err = add_control(spec, ALC_CTL_BIND_MUTE, name, HDA_COMPOSE_AMP_VAL(nid, 3, 2, HDA_INPUT))) < 0) return err; } else if (alc880_is_multi_pin(pin)) { @@ -1873,7 +1862,8 @@ static int alc880_auto_create_hp_ctls(struct alc_spec *spec, hda_nid_t pin) spec->multiout.num_dacs = 1; } /* we have only a switch on HP-out PIN */ - if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, "Headphone Playback Switch", + sprintf(name, "%s Playback Switch", pfx); + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, name, HDA_COMPOSE_AMP_VAL(pin, 3, 0, HDA_OUTPUT))) < 0) return err; } @@ -1947,11 +1937,14 @@ static void alc880_auto_init_multi_out(struct hda_codec *codec) } } -static void alc880_auto_init_hp_out(struct hda_codec *codec) +static void alc880_auto_init_extra_out(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; hda_nid_t pin; + pin = spec->autocfg.speaker_pin; + if (pin) /* connect to front */ + alc880_auto_set_output_and_unmute(codec, pin, PIN_OUT, 0); pin = spec->autocfg.hp_pin; if (pin) /* connect to front */ alc880_auto_set_output_and_unmute(codec, pin, PIN_HP, 0); @@ -1985,10 +1978,14 @@ static int alc880_parse_auto_config(struct hda_codec *codec) return err; if ((err = alc880_auto_fill_dac_nids(spec, &spec->autocfg)) < 0) return err; - if (! spec->autocfg.line_outs && ! spec->autocfg.hp_pin) + if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && + ! spec->autocfg.hp_pin) return 0; /* can't find valid BIOS pin config */ if ((err = alc880_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || - (err = alc880_auto_create_hp_ctls(spec, spec->autocfg.hp_pin)) < 0 || + (err = alc880_auto_create_extra_out(spec, spec->autocfg.speaker_pin, + "Speaker")) < 0 || + (err = alc880_auto_create_extra_out(spec, spec->autocfg.speaker_pin, + "Headphone")) < 0 || (err = alc880_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) return err; @@ -2014,7 +2011,7 @@ static int alc880_auto_init(struct hda_codec *codec) { alc_init(codec); alc880_auto_init_multi_out(codec); - alc880_auto_init_hp_out(codec); + alc880_auto_init_extra_out(codec); alc880_auto_init_analog_input(codec); return 0; } -- cgit v1.2.3-70-g09d2 From 3f05f868f1112b970e7fb9c0aa42cc99370098fe Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 11:12:06 +0100 Subject: [ALSA] nm256 - Code clean up Modules: NM256 driver Clean up snd-nm256 driver code: - Simplify chip constructor function Signed-off-by: Takashi Iwai --- sound/pci/nm256/nm256.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c index 089d23b4a00..a01b3e57796 100644 --- a/sound/pci/nm256/nm256.c +++ b/sound/pci/nm256/nm256.c @@ -1375,10 +1375,6 @@ static int snd_nm256_dev_free(snd_device_t *device) static int __devinit snd_nm256_create(snd_card_t *card, struct pci_dev *pci, - int play_bufsize, int capt_bufsize, - int force_load, - u32 buffertop, - int usecache, nm256_t **chip_ret) { nm256_t *chip; @@ -1401,13 +1397,14 @@ snd_nm256_create(snd_card_t *card, struct pci_dev *pci, chip->card = card; chip->pci = pci; - chip->use_cache = usecache; + chip->use_cache = use_cache; spin_lock_init(&chip->reg_lock); chip->irq = -1; init_MUTEX(&chip->irq_mutex); - chip->streams[SNDRV_PCM_STREAM_PLAYBACK].bufsize = play_bufsize; - chip->streams[SNDRV_PCM_STREAM_CAPTURE].bufsize = capt_bufsize; + /* store buffer sizes in bytes */ + chip->streams[SNDRV_PCM_STREAM_PLAYBACK].bufsize = playback_bufsize * 1024; + chip->streams[SNDRV_PCM_STREAM_CAPTURE].bufsize = capture_bufsize * 1024; /* * The NM256 has two memory ports. The first port is nothing @@ -1440,7 +1437,7 @@ snd_nm256_create(snd_card_t *card, struct pci_dev *pci, /* Ok, try to see if this is a non-AC97 version of the hardware. */ pval = snd_nm256_readw(chip, NM_MIXER_PRESENCE); if ((pval & NM_PRESENCE_MASK) != NM_PRESENCE_VALUE) { - if (! force_load) { + if (! force_ac97) { printk(KERN_ERR "nm256: no ac97 is found!\n"); printk(KERN_ERR " force the driver to load by passing in the module parameter\n"); printk(KERN_ERR " force_ac97=1\n"); @@ -1471,8 +1468,8 @@ snd_nm256_create(snd_card_t *card, struct pci_dev *pci, else chip->buffer_size += NM_MAX_PLAYBACK_COEF_SIZE + NM_MAX_RECORD_COEF_SIZE; - if (buffertop >= chip->buffer_size && buffertop < chip->buffer_end) - chip->buffer_end = buffertop; + if (buffer_top >= chip->buffer_size && buffer_top < chip->buffer_end) + chip->buffer_end = buffer_top; else { /* get buffer end pointer from signature */ if ((err = snd_nm256_peek_for_sig(chip)) < 0) @@ -1567,7 +1564,6 @@ static int __devinit snd_nm256_probe(struct pci_dev *pci, snd_card_t *card; nm256_t *chip; int err; - unsigned int xbuffer_top; struct nm256_quirk *q; u16 subsystem_vendor, subsystem_device; @@ -1611,9 +1607,7 @@ static int __devinit snd_nm256_probe(struct pci_dev *pci, } if (vaio_hack) - xbuffer_top = 0x25a800; /* this avoids conflicts with XFree86 server */ - else - xbuffer_top = buffer_top; + buffer_top = 0x25a800; /* this avoids conflicts with XFree86 server */ if (playback_bufsize < 4) playback_bufsize = 4; @@ -1623,13 +1617,7 @@ static int __devinit snd_nm256_probe(struct pci_dev *pci, capture_bufsize = 4; if (capture_bufsize > 128) capture_bufsize = 128; - if ((err = snd_nm256_create(card, pci, - playback_bufsize * 1024, /* in bytes */ - capture_bufsize * 1024, /* in bytes */ - force_ac97, - xbuffer_top, - use_cache, - &chip)) < 0) { + if ((err = snd_nm256_create(card, pci, &chip)) < 0) { snd_card_free(card); return err; } -- cgit v1.2.3-70-g09d2 From ee42381e71c56328db9e9d64d19a4de7a2f09a93 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:21:36 +0100 Subject: [ALSA] Remove xxx_t typedefs: AC97 Modules: AC97 Codec Remove xxx_t typedefs from the AC97 codec support. Signed-off-by: Takashi Iwai --- include/sound/ac97_codec.h | 107 ++++++------ sound/pci/ac97/ac97_bus.c | 2 +- sound/pci/ac97/ac97_codec.c | 313 ++++++++++++++++----------------- sound/pci/ac97/ac97_local.h | 45 ++--- sound/pci/ac97/ac97_patch.c | 408 ++++++++++++++++++++++---------------------- sound/pci/ac97/ac97_patch.h | 74 ++++---- sound/pci/ac97/ac97_pcm.c | 38 ++--- sound/pci/ac97/ac97_proc.c | 33 ++-- 8 files changed, 511 insertions(+), 509 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index 6f1e6ba2a19..a1814cd9549 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h @@ -391,38 +391,35 @@ * */ -typedef struct _snd_ac97_bus ac97_bus_t; -typedef struct _snd_ac97_bus_ops ac97_bus_ops_t; -typedef struct _snd_ac97_template ac97_template_t; -typedef struct _snd_ac97 ac97_t; +struct snd_ac97; struct snd_ac97_build_ops { - int (*build_3d) (ac97_t *ac97); - int (*build_specific) (ac97_t *ac97); - int (*build_spdif) (ac97_t *ac97); - int (*build_post_spdif) (ac97_t *ac97); + int (*build_3d) (struct snd_ac97 *ac97); + int (*build_specific) (struct snd_ac97 *ac97); + int (*build_spdif) (struct snd_ac97 *ac97); + int (*build_post_spdif) (struct snd_ac97 *ac97); #ifdef CONFIG_PM - void (*suspend) (ac97_t *ac97); - void (*resume) (ac97_t *ac97); + void (*suspend) (struct snd_ac97 *ac97); + void (*resume) (struct snd_ac97 *ac97); #endif - void (*update_jacks) (ac97_t *ac97); /* for jack-sharing */ + void (*update_jacks) (struct snd_ac97 *ac97); /* for jack-sharing */ }; -struct _snd_ac97_bus_ops { - void (*reset) (ac97_t *ac97); - void (*write) (ac97_t *ac97, unsigned short reg, unsigned short val); - unsigned short (*read) (ac97_t *ac97, unsigned short reg); - void (*wait) (ac97_t *ac97); - void (*init) (ac97_t *ac97); +struct snd_ac97_bus_ops { + void (*reset) (struct snd_ac97 *ac97); + void (*write) (struct snd_ac97 *ac97, unsigned short reg, unsigned short val); + unsigned short (*read) (struct snd_ac97 *ac97, unsigned short reg); + void (*wait) (struct snd_ac97 *ac97); + void (*init) (struct snd_ac97 *ac97); }; -struct _snd_ac97_bus { +struct snd_ac97_bus { /* -- lowlevel (hardware) driver specific -- */ - ac97_bus_ops_t *ops; + struct snd_ac97_bus_ops *ops; void *private_data; - void (*private_free) (ac97_bus_t *bus); + void (*private_free) (struct snd_ac97_bus *bus); /* --- */ - snd_card_t *card; + struct snd_card *card; unsigned short num; /* bus number */ unsigned short no_vra: 1, /* bridge doesn't support VRA */ dra: 1, /* bridge supports double rate */ @@ -432,13 +429,13 @@ struct _snd_ac97_bus { unsigned short used_slots[2][4]; /* actually used PCM slots */ unsigned short pcms_count; /* count of PCMs */ struct ac97_pcm *pcms; - ac97_t *codec[4]; - snd_info_entry_t *proc; + struct snd_ac97 *codec[4]; + struct snd_info_entry *proc; }; -struct _snd_ac97_template { +struct snd_ac97_template { void *private_data; - void (*private_free) (ac97_t *ac97); + void (*private_free) (struct snd_ac97 *ac97); struct pci_dev *pci; /* assigned PCI device - used for quirks */ unsigned short num; /* number of codec: 0 = primary, 1 = secondary */ unsigned short addr; /* physical address of codec [0-3] */ @@ -447,16 +444,16 @@ struct _snd_ac97_template { DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */ }; -struct _snd_ac97 { +struct snd_ac97 { /* -- lowlevel (hardware) driver specific -- */ struct snd_ac97_build_ops * build_ops; void *private_data; - void (*private_free) (ac97_t *ac97); + void (*private_free) (struct snd_ac97 *ac97); /* --- */ - ac97_bus_t *bus; + struct snd_ac97_bus *bus; struct pci_dev *pci; /* assigned PCI device - used for quirks */ - snd_info_entry_t *proc; - snd_info_entry_t *proc_regs; + struct snd_info_entry *proc; + struct snd_info_entry *proc_regs; unsigned short subsystem_vendor; unsigned short subsystem_device; struct semaphore reg_mutex; @@ -490,43 +487,47 @@ struct _snd_ac97 { struct device dev; }; -#define to_ac97_t(d) container_of(d, struct _snd_ac97, dev) +#define to_ac97_t(d) container_of(d, struct snd_ac97, dev) /* conditions */ -static inline int ac97_is_audio(ac97_t * ac97) +static inline int ac97_is_audio(struct snd_ac97 * ac97) { return (ac97->scaps & AC97_SCAP_AUDIO); } -static inline int ac97_is_modem(ac97_t * ac97) +static inline int ac97_is_modem(struct snd_ac97 * ac97) { return (ac97->scaps & AC97_SCAP_MODEM); } -static inline int ac97_is_rev22(ac97_t * ac97) +static inline int ac97_is_rev22(struct snd_ac97 * ac97) { return (ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_22; } -static inline int ac97_can_amap(ac97_t * ac97) +static inline int ac97_can_amap(struct snd_ac97 * ac97) { return (ac97->ext_id & AC97_EI_AMAP) != 0; } -static inline int ac97_can_spdif(ac97_t * ac97) +static inline int ac97_can_spdif(struct snd_ac97 * ac97) { return (ac97->ext_id & AC97_EI_SPDIF) != 0; } /* functions */ -int snd_ac97_bus(snd_card_t *card, int num, ac97_bus_ops_t *ops, void *private_data, ac97_bus_t **rbus); /* create new AC97 bus */ -int snd_ac97_mixer(ac97_bus_t *bus, ac97_template_t *template, ac97_t **rac97); /* create mixer controls */ -const char *snd_ac97_get_short_name(ac97_t *ac97); - -void snd_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short value); -unsigned short snd_ac97_read(ac97_t *ac97, unsigned short reg); -void snd_ac97_write_cache(ac97_t *ac97, unsigned short reg, unsigned short value); -int snd_ac97_update(ac97_t *ac97, unsigned short reg, unsigned short value); -int snd_ac97_update_bits(ac97_t *ac97, unsigned short reg, unsigned short mask, unsigned short value); +/* create new AC97 bus */ +int snd_ac97_bus(struct snd_card *card, int num, struct snd_ac97_bus_ops *ops, + void *private_data, struct snd_ac97_bus **rbus); +/* create mixer controls */ +int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, + struct snd_ac97 **rac97); +const char *snd_ac97_get_short_name(struct snd_ac97 *ac97); + +void snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value); +unsigned short snd_ac97_read(struct snd_ac97 *ac97, unsigned short reg); +void snd_ac97_write_cache(struct snd_ac97 *ac97, unsigned short reg, unsigned short value); +int snd_ac97_update(struct snd_ac97 *ac97, unsigned short reg, unsigned short value); +int snd_ac97_update_bits(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value); #ifdef CONFIG_PM -void snd_ac97_suspend(ac97_t *ac97); -void snd_ac97_resume(ac97_t *ac97); +void snd_ac97_suspend(struct snd_ac97 *ac97); +void snd_ac97_resume(struct snd_ac97 *ac97); #endif /* quirk types */ @@ -551,8 +552,8 @@ struct ac97_quirk { int type; /* quirk type above */ }; -int snd_ac97_tune_hardware(ac97_t *ac97, struct ac97_quirk *quirk, const char *override); -int snd_ac97_set_rate(ac97_t *ac97, int reg, unsigned int rate); +int snd_ac97_tune_hardware(struct snd_ac97 *ac97, struct ac97_quirk *quirk, const char *override); +int snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate); /* * PCM allocation @@ -568,7 +569,7 @@ enum ac97_pcm_cfg { }; struct ac97_pcm { - ac97_bus_t *bus; + struct snd_ac97_bus *bus; unsigned int stream: 1, /* stream type: 1 = capture */ exclusive: 1, /* exclusive mode, don't override with other pcms */ copy_flag: 1, /* lowlevel driver must fill all entries */ @@ -579,18 +580,18 @@ struct ac97_pcm { unsigned short slots; /* driver input: requested AC97 slot numbers */ unsigned short rslots[4]; /* allocated slots per codecs */ unsigned char rate_table[4]; - ac97_t *codec[4]; /* allocated codecs */ + struct snd_ac97 *codec[4]; /* allocated codecs */ } r[2]; /* 0 = standard rates, 1 = double rates */ unsigned long private_value; /* used by the hardware driver */ }; -int snd_ac97_pcm_assign(ac97_bus_t *ac97, +int snd_ac97_pcm_assign(struct snd_ac97_bus *ac97, unsigned short pcms_count, const struct ac97_pcm *pcms); int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots); int snd_ac97_pcm_close(struct ac97_pcm *pcm); -int snd_ac97_pcm_double_rate_rules(snd_pcm_runtime_t *runtime); +int snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime); /* ad hoc AC97 device driver access */ extern struct bus_type ac97_bus_type; diff --git a/sound/pci/ac97/ac97_bus.c b/sound/pci/ac97/ac97_bus.c index ec70fadde7d..66de2c2f155 100644 --- a/sound/pci/ac97/ac97_bus.c +++ b/sound/pci/ac97/ac97_bus.c @@ -18,7 +18,7 @@ /* * Let drivers decide whether they want to support given codec from their - * probe method. Drivers have direct access to the ac97_t structure and may + * probe method. Drivers have direct access to the struct snd_ac97 structure and may * decide based on the id field amongst other things. */ static int ac97_bus_match(struct device *dev, struct device_driver *drv) diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 9bde76c4c6a..bdb6a8cc0ae 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -50,16 +50,16 @@ MODULE_PARM_DESC(enable_loopback, "Enable AC97 ADC/DAC Loopback Control"); */ -typedef struct { +struct ac97_codec_id { unsigned int id; unsigned int mask; const char *name; - int (*patch)(ac97_t *ac97); - int (*mpatch)(ac97_t *ac97); + int (*patch)(struct snd_ac97 *ac97); + int (*mpatch)(struct snd_ac97 *ac97); unsigned int flags; -} ac97_codec_id_t; +}; -static const ac97_codec_id_t snd_ac97_codec_id_vendors[] = { +static const struct ac97_codec_id snd_ac97_codec_id_vendors[] = { { 0x414b4d00, 0xffffff00, "Asahi Kasei", NULL, NULL }, { 0x41445300, 0xffffff00, "Analog Devices", NULL, NULL }, { 0x414c4300, 0xffffff00, "Realtek", NULL, NULL }, @@ -86,7 +86,7 @@ static const ac97_codec_id_t snd_ac97_codec_id_vendors[] = { { 0, 0, NULL, NULL, NULL } }; -static const ac97_codec_id_t snd_ac97_codec_ids[] = { +static const struct ac97_codec_id snd_ac97_codec_ids[] = { { 0x414b4d00, 0xffffffff, "AK4540", NULL, NULL }, { 0x414b4d01, 0xffffffff, "AK4542", NULL, NULL }, { 0x414b4d02, 0xffffffff, "AK4543", NULL, NULL }, @@ -225,7 +225,7 @@ const char *snd_ac97_stereo_enhancements[] = * I/O routines */ -static int snd_ac97_valid_reg(ac97_t *ac97, unsigned short reg) +static int snd_ac97_valid_reg(struct snd_ac97 *ac97, unsigned short reg) { if (ac97->limited_regs && ! test_bit(reg, ac97->reg_accessed)) return 0; @@ -278,7 +278,7 @@ static int snd_ac97_valid_reg(ac97_t *ac97, unsigned short reg) * #snd_ca97_write_cache(), so use this only when you don't want to * reflect the change to the suspend/resume state. */ -void snd_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short value) +void snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value) { if (!snd_ac97_valid_reg(ac97, reg)) return; @@ -301,7 +301,7 @@ void snd_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short value) * * Returns the read value. */ -unsigned short snd_ac97_read(ac97_t *ac97, unsigned short reg) +unsigned short snd_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { if (!snd_ac97_valid_reg(ac97, reg)) return 0; @@ -309,7 +309,7 @@ unsigned short snd_ac97_read(ac97_t *ac97, unsigned short reg) } /* read a register - return the cached value if already read */ -static inline unsigned short snd_ac97_read_cache(ac97_t *ac97, unsigned short reg) +static inline unsigned short snd_ac97_read_cache(struct snd_ac97 *ac97, unsigned short reg) { if (! test_bit(reg, ac97->reg_accessed)) { ac97->regs[reg] = ac97->bus->ops->read(ac97, reg); @@ -328,7 +328,7 @@ static inline unsigned short snd_ac97_read_cache(ac97_t *ac97, unsigned short re * cache. The cached values are used for the cached-read and the * suspend/resume. */ -void snd_ac97_write_cache(ac97_t *ac97, unsigned short reg, unsigned short value) +void snd_ac97_write_cache(struct snd_ac97 *ac97, unsigned short reg, unsigned short value) { if (!snd_ac97_valid_reg(ac97, reg)) return; @@ -351,7 +351,7 @@ void snd_ac97_write_cache(ac97_t *ac97, unsigned short reg, unsigned short value * Returns 1 if the value is changed, 0 if no change, or a negative * code on failure. */ -int snd_ac97_update(ac97_t *ac97, unsigned short reg, unsigned short value) +int snd_ac97_update(struct snd_ac97 *ac97, unsigned short reg, unsigned short value) { int change; @@ -381,7 +381,7 @@ int snd_ac97_update(ac97_t *ac97, unsigned short reg, unsigned short value) * Returns 1 if the bits are changed, 0 if no change, or a negative * code on failure. */ -int snd_ac97_update_bits(ac97_t *ac97, unsigned short reg, unsigned short mask, unsigned short value) +int snd_ac97_update_bits(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value) { int change; @@ -394,7 +394,7 @@ int snd_ac97_update_bits(ac97_t *ac97, unsigned short reg, unsigned short mask, } /* no lock version - see snd_ac97_updat_bits() */ -int snd_ac97_update_bits_nolock(ac97_t *ac97, unsigned short reg, +int snd_ac97_update_bits_nolock(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value) { int change; @@ -411,7 +411,7 @@ int snd_ac97_update_bits_nolock(ac97_t *ac97, unsigned short reg, return change; } -static int snd_ac97_ad18xx_update_pcm_bits(ac97_t *ac97, int codec, unsigned short mask, unsigned short value) +static int snd_ac97_ad18xx_update_pcm_bits(struct snd_ac97 *ac97, int codec, unsigned short mask, unsigned short value) { int change; unsigned short old, new, cfg; @@ -443,7 +443,7 @@ static int snd_ac97_ad18xx_update_pcm_bits(ac97_t *ac97, int codec, unsigned sho * Controls */ -int snd_ac97_info_enum_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +int snd_ac97_info_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct ac97_enum *e = (struct ac97_enum *)kcontrol->private_value; @@ -457,9 +457,9 @@ int snd_ac97_info_enum_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * ui return 0; } -int snd_ac97_get_enum_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_ac97_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); struct ac97_enum *e = (struct ac97_enum *)kcontrol->private_value; unsigned short val, bitmask; @@ -473,9 +473,9 @@ int snd_ac97_get_enum_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * u return 0; } -int snd_ac97_put_enum_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_ac97_put_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); struct ac97_enum *e = (struct ac97_enum *)kcontrol->private_value; unsigned short val; unsigned short mask, bitmask; @@ -496,7 +496,7 @@ int snd_ac97_put_enum_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * u } /* save/restore ac97 v2.3 paging */ -static int snd_ac97_page_save(ac97_t *ac97, int reg, snd_kcontrol_t *kcontrol) +static int snd_ac97_page_save(struct snd_ac97 *ac97, int reg, struct snd_kcontrol *kcontrol) { int page_save = -1; if ((kcontrol->private_value & (1<<25)) && @@ -510,7 +510,7 @@ static int snd_ac97_page_save(ac97_t *ac97, int reg, snd_kcontrol_t *kcontrol) return page_save; } -static void snd_ac97_page_restore(ac97_t *ac97, int page_save) +static void snd_ac97_page_restore(struct snd_ac97 *ac97, int page_save) { if (page_save >= 0) { snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, page_save); @@ -519,7 +519,7 @@ static void snd_ac97_page_restore(ac97_t *ac97, int page_save) } /* volume and switch controls */ -int snd_ac97_info_volsw(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +int snd_ac97_info_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 16) & 0xff; int shift = (kcontrol->private_value >> 8) & 0x0f; @@ -532,9 +532,9 @@ int snd_ac97_info_volsw(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) return 0; } -int snd_ac97_get_volsw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_ac97_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0x0f; int rshift = (kcontrol->private_value >> 12) & 0x0f; @@ -555,9 +555,9 @@ int snd_ac97_get_volsw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro return 0; } -int snd_ac97_put_volsw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_ac97_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0x0f; int rshift = (kcontrol->private_value >> 12) & 0x0f; @@ -584,22 +584,22 @@ int snd_ac97_put_volsw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro return err; } -static const snd_kcontrol_new_t snd_ac97_controls_master_mono[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_master_mono[2] = { AC97_SINGLE("Master Mono Playback Switch", AC97_MASTER_MONO, 15, 1, 1), AC97_SINGLE("Master Mono Playback Volume", AC97_MASTER_MONO, 0, 31, 1) }; -static const snd_kcontrol_new_t snd_ac97_controls_tone[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_tone[2] = { AC97_SINGLE("Tone Control - Bass", AC97_MASTER_TONE, 8, 15, 1), AC97_SINGLE("Tone Control - Treble", AC97_MASTER_TONE, 0, 15, 1) }; -static const snd_kcontrol_new_t snd_ac97_controls_pc_beep[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_pc_beep[2] = { AC97_SINGLE("PC Speaker Playback Switch", AC97_PC_BEEP, 15, 1, 1), AC97_SINGLE("PC Speaker Playback Volume", AC97_PC_BEEP, 1, 15, 1) }; -static const snd_kcontrol_new_t snd_ac97_controls_mic_boost = +static const struct snd_kcontrol_new snd_ac97_controls_mic_boost = AC97_SINGLE("Mic Boost (+20dB)", AC97_MIC, 6, 1, 0); @@ -615,18 +615,18 @@ AC97_ENUM_SINGLE(AC97_GENERAL_PURPOSE, 9, 2, std_mix), AC97_ENUM_SINGLE(AC97_GENERAL_PURPOSE, 8, 2, std_mic), }; -static const snd_kcontrol_new_t snd_ac97_control_capture_src = +static const struct snd_kcontrol_new snd_ac97_control_capture_src = AC97_ENUM("Capture Source", std_enum[0]); -static const snd_kcontrol_new_t snd_ac97_control_capture_vol = +static const struct snd_kcontrol_new snd_ac97_control_capture_vol = AC97_DOUBLE("Capture Volume", AC97_REC_GAIN, 8, 0, 15, 0); -static const snd_kcontrol_new_t snd_ac97_controls_mic_capture[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_mic_capture[2] = { AC97_SINGLE("Mic Capture Switch", AC97_REC_GAIN_MIC, 15, 1, 1), AC97_SINGLE("Mic Capture Volume", AC97_REC_GAIN_MIC, 0, 15, 0) }; -typedef enum { +enum { AC97_GENERAL_PCM_OUT = 0, AC97_GENERAL_STEREO_ENHANCEMENT, AC97_GENERAL_3D, @@ -634,9 +634,9 @@ typedef enum { AC97_GENERAL_MONO, AC97_GENERAL_MIC, AC97_GENERAL_LOOPBACK -} ac97_general_index_t; +}; -static const snd_kcontrol_new_t snd_ac97_controls_general[7] = { +static const struct snd_kcontrol_new snd_ac97_controls_general[7] = { AC97_ENUM("PCM Out Path & Mute", std_enum[1]), AC97_SINGLE("Simulated Stereo Enhancement", AC97_GENERAL_PURPOSE, 14, 1, 0), AC97_SINGLE("3D Control - Switch", AC97_GENERAL_PURPOSE, 13, 1, 0), @@ -646,45 +646,45 @@ AC97_ENUM("Mic Select", std_enum[3]), AC97_SINGLE("ADC/DAC Loopback", AC97_GENERAL_PURPOSE, 7, 1, 0) }; -const snd_kcontrol_new_t snd_ac97_controls_3d[2] = { +const struct snd_kcontrol_new snd_ac97_controls_3d[2] = { AC97_SINGLE("3D Control - Center", AC97_3D_CONTROL, 8, 15, 0), AC97_SINGLE("3D Control - Depth", AC97_3D_CONTROL, 0, 15, 0) }; -static const snd_kcontrol_new_t snd_ac97_controls_center[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_center[2] = { AC97_SINGLE("Center Playback Switch", AC97_CENTER_LFE_MASTER, 7, 1, 1), AC97_SINGLE("Center Playback Volume", AC97_CENTER_LFE_MASTER, 0, 31, 1) }; -static const snd_kcontrol_new_t snd_ac97_controls_lfe[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_lfe[2] = { AC97_SINGLE("LFE Playback Switch", AC97_CENTER_LFE_MASTER, 15, 1, 1), AC97_SINGLE("LFE Playback Volume", AC97_CENTER_LFE_MASTER, 8, 31, 1) }; -static const snd_kcontrol_new_t snd_ac97_control_eapd = +static const struct snd_kcontrol_new snd_ac97_control_eapd = AC97_SINGLE("External Amplifier", AC97_POWERDOWN, 15, 1, 1); -static const snd_kcontrol_new_t snd_ac97_controls_modem_switches[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_modem_switches[2] = { AC97_SINGLE("Off-hook Switch", AC97_GPIO_STATUS, 0, 1, 0), AC97_SINGLE("Caller ID Switch", AC97_GPIO_STATUS, 2, 1, 0) }; /* change the existing EAPD control as inverted */ -static void set_inv_eapd(ac97_t *ac97, snd_kcontrol_t *kctl) +static void set_inv_eapd(struct snd_ac97 *ac97, struct snd_kcontrol *kctl) { kctl->private_value = AC97_SINGLE_VALUE(AC97_POWERDOWN, 15, 1, 0); snd_ac97_update_bits(ac97, AC97_POWERDOWN, (1<<15), (1<<15)); /* EAPD up */ ac97->scaps |= AC97_SCAP_INV_EAPD; } -static int snd_ac97_spdif_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_spdif_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_ac97_spdif_cmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_spdif_cmask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = IEC958_AES0_PROFESSIONAL | IEC958_AES0_NONAUDIO | @@ -696,7 +696,7 @@ static int snd_ac97_spdif_cmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value return 0; } -static int snd_ac97_spdif_pmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_spdif_pmask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { /* FIXME: AC'97 spec doesn't say which bits are used for what */ ucontrol->value.iec958.status[0] = IEC958_AES0_PROFESSIONAL | @@ -706,9 +706,9 @@ static int snd_ac97_spdif_pmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value return 0; } -static int snd_ac97_spdif_default_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_spdif_default_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); down(&ac97->reg_mutex); ucontrol->value.iec958.status[0] = ac97->spdif_status & 0xff; @@ -719,9 +719,9 @@ static int snd_ac97_spdif_default_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return 0; } -static int snd_ac97_spdif_default_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_spdif_default_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned int new = 0; unsigned short val = 0; int change; @@ -787,9 +787,9 @@ static int snd_ac97_spdif_default_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return change; } -static int snd_ac97_put_spsa(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ac97_put_spsa(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0xff; int mask = (kcontrol->private_value >> 16) & 0xff; @@ -817,7 +817,7 @@ static int snd_ac97_put_spsa(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return change; } -const snd_kcontrol_new_t snd_ac97_controls_spdif[5] = { +const struct snd_kcontrol_new snd_ac97_controls_spdif[5] = { { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_MIXER, @@ -856,9 +856,9 @@ const snd_kcontrol_new_t snd_ac97_controls_spdif[5] = { .get = snd_ac97_ad18xx_pcm_get_bits, .put = snd_ac97_ad18xx_pcm_put_bits, \ .private_value = (codec) | ((lshift) << 8) | ((rshift) << 12) | ((mask) << 16) } -static int snd_ac97_ad18xx_pcm_info_bits(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_ad18xx_pcm_info_bits(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int mask = (kcontrol->private_value >> 16) & 0x0f; int lshift = (kcontrol->private_value >> 8) & 0x0f; int rshift = (kcontrol->private_value >> 12) & 0x0f; @@ -873,9 +873,9 @@ static int snd_ac97_ad18xx_pcm_info_bits(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_ac97_ad18xx_pcm_get_bits(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ad18xx_pcm_get_bits(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int codec = kcontrol->private_value & 3; int lshift = (kcontrol->private_value >> 8) & 0x0f; int rshift = (kcontrol->private_value >> 12) & 0x0f; @@ -887,9 +887,9 @@ static int snd_ac97_ad18xx_pcm_get_bits(snd_kcontrol_t * kcontrol, snd_ctl_elem_ return 0; } -static int snd_ac97_ad18xx_pcm_put_bits(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ad18xx_pcm_put_bits(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int codec = kcontrol->private_value & 3; int lshift = (kcontrol->private_value >> 8) & 0x0f; int rshift = (kcontrol->private_value >> 12) & 0x0f; @@ -910,7 +910,7 @@ static int snd_ac97_ad18xx_pcm_put_bits(snd_kcontrol_t * kcontrol, snd_ctl_elem_ .get = snd_ac97_ad18xx_pcm_get_volume, .put = snd_ac97_ad18xx_pcm_put_volume, \ .private_value = codec } -static int snd_ac97_ad18xx_pcm_info_volume(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_ad18xx_pcm_info_volume(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -919,9 +919,9 @@ static int snd_ac97_ad18xx_pcm_info_volume(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_ac97_ad18xx_pcm_get_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ad18xx_pcm_get_volume(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int codec = kcontrol->private_value & 3; down(&ac97->page_mutex); @@ -931,9 +931,9 @@ static int snd_ac97_ad18xx_pcm_get_volume(snd_kcontrol_t * kcontrol, snd_ctl_ele return 0; } -static int snd_ac97_ad18xx_pcm_put_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ad18xx_pcm_put_volume(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int codec = kcontrol->private_value & 3; unsigned short val1, val2; @@ -942,22 +942,22 @@ static int snd_ac97_ad18xx_pcm_put_volume(snd_kcontrol_t * kcontrol, snd_ctl_ele return snd_ac97_ad18xx_update_pcm_bits(ac97, codec, 0x1f1f, (val1 << 8) | val2); } -static const snd_kcontrol_new_t snd_ac97_controls_ad18xx_pcm[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_ad18xx_pcm[2] = { AD18XX_PCM_BITS("PCM Playback Switch", 0, 15, 7, 1), AD18XX_PCM_VOLUME("PCM Playback Volume", 0) }; -static const snd_kcontrol_new_t snd_ac97_controls_ad18xx_surround[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_ad18xx_surround[2] = { AD18XX_PCM_BITS("Surround Playback Switch", 1, 15, 7, 1), AD18XX_PCM_VOLUME("Surround Playback Volume", 1) }; -static const snd_kcontrol_new_t snd_ac97_controls_ad18xx_center[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_ad18xx_center[2] = { AD18XX_PCM_BITS("Center Playback Switch", 2, 15, 15, 1), AD18XX_PCM_BITS("Center Playback Volume", 2, 8, 8, 31) }; -static const snd_kcontrol_new_t snd_ac97_controls_ad18xx_lfe[2] = { +static const struct snd_kcontrol_new snd_ac97_controls_ad18xx_lfe[2] = { AD18XX_PCM_BITS("LFE Playback Switch", 2, 7, 7, 1), AD18XX_PCM_BITS("LFE Playback Volume", 2, 0, 0, 31) }; @@ -966,9 +966,9 @@ AD18XX_PCM_BITS("LFE Playback Volume", 2, 0, 0, 31) * */ -static void snd_ac97_powerdown(ac97_t *ac97); +static void snd_ac97_powerdown(struct snd_ac97 *ac97); -static int snd_ac97_bus_free(ac97_bus_t *bus) +static int snd_ac97_bus_free(struct snd_ac97_bus *bus) { if (bus) { snd_ac97_bus_proc_done(bus); @@ -980,13 +980,13 @@ static int snd_ac97_bus_free(ac97_bus_t *bus) return 0; } -static int snd_ac97_bus_dev_free(snd_device_t *device) +static int snd_ac97_bus_dev_free(struct snd_device *device) { - ac97_bus_t *bus = device->device_data; + struct snd_ac97_bus *bus = device->device_data; return snd_ac97_bus_free(bus); } -static int snd_ac97_free(ac97_t *ac97) +static int snd_ac97_free(struct snd_ac97 *ac97) { if (ac97) { snd_ac97_proc_done(ac97); @@ -999,14 +999,14 @@ static int snd_ac97_free(ac97_t *ac97) return 0; } -static int snd_ac97_dev_free(snd_device_t *device) +static int snd_ac97_dev_free(struct snd_device *device) { - ac97_t *ac97 = device->device_data; + struct snd_ac97 *ac97 = device->device_data; snd_ac97_powerdown(ac97); /* for avoiding click noises during shut down */ return snd_ac97_free(ac97); } -static int snd_ac97_try_volume_mix(ac97_t * ac97, int reg) +static int snd_ac97_try_volume_mix(struct snd_ac97 * ac97, int reg) { unsigned short val, mask = 0x8000; @@ -1052,13 +1052,14 @@ static int snd_ac97_try_volume_mix(ac97_t * ac97, int reg) /* try another test */ snd_ac97_write_cache(ac97, reg, val | mask); val = snd_ac97_read(ac97, reg); + val = snd_ac97_read(ac97, reg); if (!(val & mask)) return 0; /* nothing here */ } return 1; /* success, useable */ } -static void check_volume_resolution(ac97_t *ac97, int reg, unsigned char *lo_max, unsigned char *hi_max) +static void check_volume_resolution(struct snd_ac97 *ac97, int reg, unsigned char *lo_max, unsigned char *hi_max) { unsigned short cbit[3] = { 0x20, 0x10, 0x01 }; unsigned char max[3] = { 63, 31, 15 }; @@ -1083,7 +1084,7 @@ static void check_volume_resolution(ac97_t *ac97, int reg, unsigned char *lo_max } } -int snd_ac97_try_bit(ac97_t * ac97, int reg, int bit) +int snd_ac97_try_bit(struct snd_ac97 * ac97, int reg, int bit) { unsigned short mask, val, orig, res; @@ -1097,7 +1098,7 @@ int snd_ac97_try_bit(ac97_t * ac97, int reg, int bit) } /* check the volume resolution of center/lfe */ -static void snd_ac97_change_volume_params2(ac97_t * ac97, int reg, int shift, unsigned char *max) +static void snd_ac97_change_volume_params2(struct snd_ac97 * ac97, int reg, int shift, unsigned char *max) { unsigned short val, val1; @@ -1123,9 +1124,9 @@ static inline int printable(unsigned int x) return x; } -snd_kcontrol_t *snd_ac97_cnew(const snd_kcontrol_new_t *_template, ac97_t * ac97) +struct snd_kcontrol *snd_ac97_cnew(const struct snd_kcontrol_new *_template, struct snd_ac97 * ac97) { - snd_kcontrol_new_t template; + struct snd_kcontrol_new template; memcpy(&template, _template, sizeof(template)); template.index = ac97->num; return snd_ctl_new1(&template, ac97); @@ -1134,9 +1135,9 @@ snd_kcontrol_t *snd_ac97_cnew(const snd_kcontrol_new_t *_template, ac97_t * ac97 /* * create mute switch(es) for normal stereo controls */ -static int snd_ac97_cmute_new_stereo(snd_card_t *card, char *name, int reg, int check_stereo, ac97_t *ac97) +static int snd_ac97_cmute_new_stereo(struct snd_card *card, char *name, int reg, int check_stereo, struct snd_ac97 *ac97) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; int err; unsigned short val, val1, mute_mask; @@ -1153,11 +1154,11 @@ static int snd_ac97_cmute_new_stereo(snd_card_t *card, char *name, int reg, int mute_mask = 0x8080; } if (mute_mask == 0x8080) { - snd_kcontrol_new_t tmp = AC97_DOUBLE(name, reg, 15, 7, 1, 1); + struct snd_kcontrol_new tmp = AC97_DOUBLE(name, reg, 15, 7, 1, 1); tmp.index = ac97->num; kctl = snd_ctl_new1(&tmp, ac97); } else { - snd_kcontrol_new_t tmp = AC97_SINGLE(name, reg, 15, 1, 1); + struct snd_kcontrol_new tmp = AC97_SINGLE(name, reg, 15, 1, 1); tmp.index = ac97->num; kctl = snd_ctl_new1(&tmp, ac97); } @@ -1172,22 +1173,22 @@ static int snd_ac97_cmute_new_stereo(snd_card_t *card, char *name, int reg, int /* * create a volume for normal stereo/mono controls */ -static int snd_ac97_cvol_new(snd_card_t *card, char *name, int reg, unsigned int lo_max, - unsigned int hi_max, ac97_t *ac97) +static int snd_ac97_cvol_new(struct snd_card *card, char *name, int reg, unsigned int lo_max, + unsigned int hi_max, struct snd_ac97 *ac97) { int err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; if (! snd_ac97_valid_reg(ac97, reg)) return 0; if (hi_max) { /* invert */ - snd_kcontrol_new_t tmp = AC97_DOUBLE(name, reg, 8, 0, lo_max, 1); + struct snd_kcontrol_new tmp = AC97_DOUBLE(name, reg, 8, 0, lo_max, 1); tmp.index = ac97->num; kctl = snd_ctl_new1(&tmp, ac97); } else { /* invert */ - snd_kcontrol_new_t tmp = AC97_SINGLE(name, reg, 0, lo_max, 1); + struct snd_kcontrol_new tmp = AC97_SINGLE(name, reg, 0, lo_max, 1); tmp.index = ac97->num; kctl = snd_ctl_new1(&tmp, ac97); } @@ -1203,7 +1204,7 @@ static int snd_ac97_cvol_new(snd_card_t *card, char *name, int reg, unsigned int /* * create a mute-switch and a volume for normal stereo/mono controls */ -static int snd_ac97_cmix_new_stereo(snd_card_t *card, const char *pfx, int reg, int check_stereo, ac97_t *ac97) +static int snd_ac97_cmix_new_stereo(struct snd_card *card, const char *pfx, int reg, int check_stereo, struct snd_ac97 *ac97) { int err; char name[44]; @@ -1229,12 +1230,12 @@ static int snd_ac97_cmix_new_stereo(snd_card_t *card, const char *pfx, int reg, #define snd_ac97_cmix_new(card, pfx, reg, ac97) snd_ac97_cmix_new_stereo(card, pfx, reg, 0, ac97) #define snd_ac97_cmute_new(card, name, reg, ac97) snd_ac97_cmute_new_stereo(card, name, reg, 0, ac97) -static unsigned int snd_ac97_determine_spdif_rates(ac97_t *ac97); +static unsigned int snd_ac97_determine_spdif_rates(struct snd_ac97 *ac97); -static int snd_ac97_mixer_build(ac97_t * ac97) +static int snd_ac97_mixer_build(struct snd_ac97 * ac97) { - snd_card_t *card = ac97->bus->card; - snd_kcontrol_t *kctl; + struct snd_card *card = ac97->bus->card; + struct snd_kcontrol *kctl; int err; unsigned int idx; unsigned char max; @@ -1531,7 +1532,7 @@ static int snd_ac97_mixer_build(ac97_t * ac97) return 0; } -static int snd_ac97_modem_build(snd_card_t * card, ac97_t * ac97) +static int snd_ac97_modem_build(struct snd_card *card, struct snd_ac97 * ac97) { int err, idx; @@ -1555,7 +1556,7 @@ static int snd_ac97_modem_build(snd_card_t * card, ac97_t * ac97) return 0; } -static int snd_ac97_test_rate(ac97_t *ac97, int reg, int shadow_reg, int rate) +static int snd_ac97_test_rate(struct snd_ac97 *ac97, int reg, int shadow_reg, int rate) { unsigned short val; unsigned int tmp; @@ -1568,7 +1569,7 @@ static int snd_ac97_test_rate(ac97_t *ac97, int reg, int shadow_reg, int rate) return val == (tmp & 0xffff); } -static void snd_ac97_determine_rates(ac97_t *ac97, int reg, int shadow_reg, unsigned int *r_result) +static void snd_ac97_determine_rates(struct snd_ac97 *ac97, int reg, int shadow_reg, unsigned int *r_result) { unsigned int result = 0; unsigned short saved; @@ -1628,7 +1629,7 @@ static void snd_ac97_determine_rates(ac97_t *ac97, int reg, int shadow_reg, unsi } /* check AC97_SPDIF register to accept which sample rates */ -static unsigned int snd_ac97_determine_spdif_rates(ac97_t *ac97) +static unsigned int snd_ac97_determine_spdif_rates(struct snd_ac97 *ac97) { unsigned int result = 0; int i; @@ -1648,10 +1649,10 @@ static unsigned int snd_ac97_determine_spdif_rates(ac97_t *ac97) } /* look for the codec id table matching with the given id */ -static const ac97_codec_id_t *look_for_codec_id(const ac97_codec_id_t *table, - unsigned int id) +static const struct ac97_codec_id *look_for_codec_id(const struct ac97_codec_id *table, + unsigned int id) { - const ac97_codec_id_t *pid; + const struct ac97_codec_id *pid; for (pid = table; pid->id; pid++) if (pid->id == (id & pid->mask)) @@ -1659,9 +1660,9 @@ static const ac97_codec_id_t *look_for_codec_id(const ac97_codec_id_t *table, return NULL; } -void snd_ac97_get_name(ac97_t *ac97, unsigned int id, char *name, int modem) +void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name, int modem) { - const ac97_codec_id_t *pid; + const struct ac97_codec_id *pid; sprintf(name, "0x%x %c%c%c", id, printable(id >> 24), @@ -1699,9 +1700,9 @@ void snd_ac97_get_name(ac97_t *ac97, unsigned int id, char *name, int modem) * * Returns the short identifying name of the codec. */ -const char *snd_ac97_get_short_name(ac97_t *ac97) +const char *snd_ac97_get_short_name(struct snd_ac97 *ac97) { - const ac97_codec_id_t *pid; + const struct ac97_codec_id *pid; for (pid = snd_ac97_codec_ids; pid->id; pid++) if (pid->id == (ac97->id & pid->mask)) @@ -1713,7 +1714,7 @@ const char *snd_ac97_get_short_name(ac97_t *ac97) /* wait for a while until registers are accessible after RESET * return 0 if ok, negative not ready */ -static int ac97_reset_wait(ac97_t *ac97, int timeout, int with_modem) +static int ac97_reset_wait(struct snd_ac97 *ac97, int timeout, int with_modem) { unsigned long end_time; unsigned short val; @@ -1758,7 +1759,7 @@ static int ac97_reset_wait(ac97_t *ac97, int timeout, int with_modem) * @private_data: private data pointer for the new instance * @rbus: the pointer to store the new AC97 bus instance. * - * Creates an AC97 bus component. An ac97_bus_t instance is newly + * Creates an AC97 bus component. An struct snd_ac97_bus instance is newly * allocated and initialized. * * The ops table must include valid callbacks (at least read and @@ -1772,12 +1773,12 @@ static int ac97_reset_wait(ac97_t *ac97, int timeout, int with_modem) * * Returns zero if successful, or a negative error code on failure. */ -int snd_ac97_bus(snd_card_t *card, int num, ac97_bus_ops_t *ops, - void *private_data, ac97_bus_t **rbus) +int snd_ac97_bus(struct snd_card *card, int num, struct snd_ac97_bus_ops *ops, + void *private_data, struct snd_ac97_bus **rbus) { int err; - ac97_bus_t *bus; - static snd_device_ops_t dev_ops = { + struct snd_ac97_bus *bus; + static struct snd_device_ops dev_ops = { .dev_free = snd_ac97_bus_dev_free, }; @@ -1807,9 +1808,9 @@ static void ac97_device_release(struct device * dev) } /* register ac97 codec to bus */ -static int snd_ac97_dev_register(snd_device_t *device) +static int snd_ac97_dev_register(struct snd_device *device) { - ac97_t *ac97 = device->device_data; + struct snd_ac97 *ac97 = device->device_data; int err; ac97->dev.bus = &ac97_bus_type; @@ -1825,9 +1826,9 @@ static int snd_ac97_dev_register(snd_device_t *device) } /* unregister ac97 codec */ -static int snd_ac97_dev_unregister(snd_device_t *device) +static int snd_ac97_dev_unregister(struct snd_device *device) { - ac97_t *ac97 = device->device_data; + struct snd_ac97 *ac97 = device->device_data; if (ac97->dev.bus) device_unregister(&ac97->dev); return snd_ac97_free(ac97); @@ -1843,7 +1844,7 @@ static struct snd_ac97_build_ops null_build_ops; * the private data. * @rac97: the pointer to store the new ac97 instance. * - * Creates an Codec97 component. An ac97_t instance is newly + * Creates an Codec97 component. An struct snd_ac97 instance is newly * allocated and initialized from the template. The codec * is then initialized by the standard procedure. * @@ -1855,16 +1856,16 @@ static struct snd_ac97_build_ops null_build_ops; * * Returns zero if successful, or a negative error code on failure. */ -int snd_ac97_mixer(ac97_bus_t *bus, ac97_template_t *template, ac97_t **rac97) +int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97) { int err; - ac97_t *ac97; - snd_card_t *card; + struct snd_ac97 *ac97; + struct snd_card *card; char name[64]; unsigned long end_time; unsigned int reg; - const ac97_codec_id_t *pid; - static snd_device_ops_t ops = { + const struct ac97_codec_id *pid; + static struct snd_device_ops ops = { .dev_free = snd_ac97_dev_free, .dev_register = snd_ac97_dev_register, .dev_unregister = snd_ac97_dev_unregister, @@ -2148,7 +2149,7 @@ int snd_ac97_mixer(ac97_bus_t *bus, ac97_template_t *template, ac97_t **rac97) * MASTER and HEADPHONE registers are muted but the register cache values * are not changed, so that the values can be restored in snd_ac97_resume(). */ -static void snd_ac97_powerdown(ac97_t *ac97) +static void snd_ac97_powerdown(struct snd_ac97 *ac97) { unsigned short power; @@ -2181,7 +2182,7 @@ static void snd_ac97_powerdown(ac97_t *ac97) * * Suspends the codec, power down the chip. */ -void snd_ac97_suspend(ac97_t *ac97) +void snd_ac97_suspend(struct snd_ac97 *ac97) { if (ac97->build_ops->suspend) ac97->build_ops->suspend(ac97); @@ -2191,7 +2192,7 @@ void snd_ac97_suspend(ac97_t *ac97) /* * restore ac97 status */ -void snd_ac97_restore_status(ac97_t *ac97) +void snd_ac97_restore_status(struct snd_ac97 *ac97) { int i; @@ -2212,7 +2213,7 @@ void snd_ac97_restore_status(ac97_t *ac97) /* * restore IEC958 status */ -void snd_ac97_restore_iec958(ac97_t *ac97) +void snd_ac97_restore_iec958(struct snd_ac97 *ac97) { if (ac97->ext_id & AC97_EI_SPDIF) { if (ac97->regs[AC97_EXTENDED_STATUS] & AC97_EA_SPDIF) { @@ -2235,7 +2236,7 @@ void snd_ac97_restore_iec958(ac97_t *ac97) * Do the standard resume procedure, power up and restoring the * old register values. */ -void snd_ac97_resume(ac97_t *ac97) +void snd_ac97_resume(struct snd_ac97 *ac97) { unsigned long end_time; @@ -2301,18 +2302,18 @@ static void set_ctl_name(char *dst, const char *src, const char *suffix) } /* remove the control with the given name and optional suffix */ -int snd_ac97_remove_ctl(ac97_t *ac97, const char *name, const char *suffix) +int snd_ac97_remove_ctl(struct snd_ac97 *ac97, const char *name, const char *suffix) { - snd_ctl_elem_id_t id; + struct snd_ctl_elem_id id; memset(&id, 0, sizeof(id)); set_ctl_name(id.name, name, suffix); id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; return snd_ctl_remove_id(ac97->bus->card, &id); } -static snd_kcontrol_t *ctl_find(ac97_t *ac97, const char *name, const char *suffix) +static struct snd_kcontrol *ctl_find(struct snd_ac97 *ac97, const char *name, const char *suffix) { - snd_ctl_elem_id_t sid; + struct snd_ctl_elem_id sid; memset(&sid, 0, sizeof(sid)); set_ctl_name(sid.name, name, suffix); sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER; @@ -2320,9 +2321,9 @@ static snd_kcontrol_t *ctl_find(ac97_t *ac97, const char *name, const char *suff } /* rename the control with the given name and optional suffix */ -int snd_ac97_rename_ctl(ac97_t *ac97, const char *src, const char *dst, const char *suffix) +int snd_ac97_rename_ctl(struct snd_ac97 *ac97, const char *src, const char *dst, const char *suffix) { - snd_kcontrol_t *kctl = ctl_find(ac97, src, suffix); + struct snd_kcontrol *kctl = ctl_find(ac97, src, suffix); if (kctl) { set_ctl_name(kctl->id.name, dst, suffix); return 0; @@ -2331,16 +2332,16 @@ int snd_ac97_rename_ctl(ac97_t *ac97, const char *src, const char *dst, const ch } /* rename both Volume and Switch controls - don't check the return value */ -void snd_ac97_rename_vol_ctl(ac97_t *ac97, const char *src, const char *dst) +void snd_ac97_rename_vol_ctl(struct snd_ac97 *ac97, const char *src, const char *dst) { snd_ac97_rename_ctl(ac97, src, dst, "Switch"); snd_ac97_rename_ctl(ac97, src, dst, "Volume"); } /* swap controls */ -int snd_ac97_swap_ctl(ac97_t *ac97, const char *s1, const char *s2, const char *suffix) +int snd_ac97_swap_ctl(struct snd_ac97 *ac97, const char *s1, const char *s2, const char *suffix) { - snd_kcontrol_t *kctl1, *kctl2; + struct snd_kcontrol *kctl1, *kctl2; kctl1 = ctl_find(ac97, s1, suffix); kctl2 = ctl_find(ac97, s2, suffix); if (kctl1 && kctl2) { @@ -2353,7 +2354,7 @@ int snd_ac97_swap_ctl(ac97_t *ac97, const char *s1, const char *s2, const char * #if 1 /* bind hp and master controls instead of using only hp control */ -static int bind_hp_volsw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int bind_hp_volsw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { int err = snd_ac97_put_volsw(kcontrol, ucontrol); if (err > 0) { @@ -2366,10 +2367,10 @@ static int bind_hp_volsw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco } /* ac97 tune: bind Master and Headphone controls */ -static int tune_hp_only(ac97_t *ac97) +static int tune_hp_only(struct snd_ac97 *ac97) { - snd_kcontrol_t *msw = ctl_find(ac97, "Master Playback Switch", NULL); - snd_kcontrol_t *mvol = ctl_find(ac97, "Master Playback Volume", NULL); + struct snd_kcontrol *msw = ctl_find(ac97, "Master Playback Switch", NULL); + struct snd_kcontrol *mvol = ctl_find(ac97, "Master Playback Volume", NULL); if (! msw || ! mvol) return -ENOENT; msw->put = bind_hp_volsw_put; @@ -2381,7 +2382,7 @@ static int tune_hp_only(ac97_t *ac97) #else /* ac97 tune: use Headphone control as master */ -static int tune_hp_only(ac97_t *ac97) +static int tune_hp_only(struct snd_ac97 *ac97) { if (ctl_find(ac97, "Headphone Playback Switch", NULL) == NULL) return -ENOENT; @@ -2393,7 +2394,7 @@ static int tune_hp_only(ac97_t *ac97) #endif /* ac97 tune: swap Headphone and Master controls */ -static int tune_swap_hp(ac97_t *ac97) +static int tune_swap_hp(struct snd_ac97 *ac97) { if (ctl_find(ac97, "Headphone Playback Switch", NULL) == NULL) return -ENOENT; @@ -2403,7 +2404,7 @@ static int tune_swap_hp(ac97_t *ac97) } /* ac97 tune: swap Surround and Master controls */ -static int tune_swap_surround(ac97_t *ac97) +static int tune_swap_surround(struct snd_ac97 *ac97) { if (snd_ac97_swap_ctl(ac97, "Master Playback", "Surround Playback", "Switch") || snd_ac97_swap_ctl(ac97, "Master Playback", "Surround Playback", "Volume")) @@ -2412,7 +2413,7 @@ static int tune_swap_surround(ac97_t *ac97) } /* ac97 tune: set up mic sharing for AD codecs */ -static int tune_ad_sharing(ac97_t *ac97) +static int tune_ad_sharing(struct snd_ac97 *ac97) { unsigned short scfg; if ((ac97->id & 0xffffff00) != 0x41445300) { @@ -2425,11 +2426,11 @@ static int tune_ad_sharing(ac97_t *ac97) return 0; } -static const snd_kcontrol_new_t snd_ac97_alc_jack_detect = +static const struct snd_kcontrol_new snd_ac97_alc_jack_detect = AC97_SINGLE("Jack Detect", AC97_ALC650_CLOCK, 5, 1, 0); /* ac97 tune: set up ALC jack-select */ -static int tune_alc_jack(ac97_t *ac97) +static int tune_alc_jack(struct snd_ac97 *ac97) { if ((ac97->id & 0xffffff00) != 0x414c4700) { snd_printk(KERN_ERR "ac97_quirk ALC_JACK is only for Realtek codecs\n"); @@ -2441,20 +2442,20 @@ static int tune_alc_jack(ac97_t *ac97) } /* ac97 tune: inversed EAPD bit */ -static int tune_inv_eapd(ac97_t *ac97) +static int tune_inv_eapd(struct snd_ac97 *ac97) { - snd_kcontrol_t *kctl = ctl_find(ac97, "External Amplifier", NULL); + struct snd_kcontrol *kctl = ctl_find(ac97, "External Amplifier", NULL); if (! kctl) return -ENOENT; set_inv_eapd(ac97, kctl); return 0; } -static int master_mute_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int master_mute_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { int err = snd_ac97_put_volsw(kcontrol, ucontrol); if (err > 0) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int shift = (kcontrol->private_value >> 8) & 0x0f; int rshift = (kcontrol->private_value >> 12) & 0x0f; unsigned short mask; @@ -2470,9 +2471,9 @@ static int master_mute_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc } /* ac97 tune: EAPD controls mute LED bound with the master mute */ -static int tune_mute_led(ac97_t *ac97) +static int tune_mute_led(struct snd_ac97 *ac97) { - snd_kcontrol_t *msw = ctl_find(ac97, "Master Playback Switch", NULL); + struct snd_kcontrol *msw = ctl_find(ac97, "Master Playback Switch", NULL); if (! msw) return -ENOENT; msw->put = master_mute_sw_put; @@ -2483,7 +2484,7 @@ static int tune_mute_led(ac97_t *ac97) struct quirk_table { const char *name; - int (*func)(ac97_t *); + int (*func)(struct snd_ac97 *); }; static struct quirk_table applicable_quirks[] = { @@ -2498,7 +2499,7 @@ static struct quirk_table applicable_quirks[] = { }; /* apply the quirk with the given type */ -static int apply_quirk(ac97_t *ac97, int type) +static int apply_quirk(struct snd_ac97 *ac97, int type) { if (type <= 0) return 0; @@ -2510,7 +2511,7 @@ static int apply_quirk(ac97_t *ac97, int type) } /* apply the quirk with the given name */ -static int apply_quirk_str(ac97_t *ac97, const char *typestr) +static int apply_quirk_str(struct snd_ac97 *ac97, const char *typestr) { int i; struct quirk_table *q; @@ -2539,7 +2540,7 @@ static int apply_quirk_str(ac97_t *ac97, const char *typestr) * Returns zero if successful, or a negative error code on failure. */ -int snd_ac97_tune_hardware(ac97_t *ac97, struct ac97_quirk *quirk, const char *override) +int snd_ac97_tune_hardware(struct snd_ac97 *ac97, struct ac97_quirk *quirk, const char *override) { int result; diff --git a/sound/pci/ac97/ac97_local.h b/sound/pci/ac97/ac97_local.h index 5ff3ef2cae3..e98587e027d 100644 --- a/sound/pci/ac97/ac97_local.h +++ b/sound/pci/ac97/ac97_local.h @@ -37,6 +37,7 @@ .get = snd_ac97_get_volsw, .put = snd_ac97_put_volsw, \ .private_value = (reg) | ((shift_left) << 8) | ((shift_right) << 12) | ((mask) << 16) | ((invert) << 24) } +/* enum control */ struct ac97_enum { unsigned char reg; unsigned char shift_l; @@ -57,33 +58,33 @@ struct ac97_enum { /* ac97_codec.c */ extern const char *snd_ac97_stereo_enhancements[]; -extern const snd_kcontrol_new_t snd_ac97_controls_3d[]; -extern const snd_kcontrol_new_t snd_ac97_controls_spdif[]; -snd_kcontrol_t *snd_ac97_cnew(const snd_kcontrol_new_t *_template, ac97_t * ac97); -void snd_ac97_get_name(ac97_t *ac97, unsigned int id, char *name, int modem); -int snd_ac97_info_volsw(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo); -int snd_ac97_get_volsw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol); -int snd_ac97_put_volsw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol); -int snd_ac97_try_bit(ac97_t * ac97, int reg, int bit); -int snd_ac97_remove_ctl(ac97_t *ac97, const char *name, const char *suffix); -int snd_ac97_rename_ctl(ac97_t *ac97, const char *src, const char *dst, const char *suffix); -int snd_ac97_swap_ctl(ac97_t *ac97, const char *s1, const char *s2, const char *suffix); -void snd_ac97_rename_vol_ctl(ac97_t *ac97, const char *src, const char *dst); -void snd_ac97_restore_status(ac97_t *ac97); -void snd_ac97_restore_iec958(ac97_t *ac97); -int snd_ac97_info_enum_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo); -int snd_ac97_get_enum_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol); -int snd_ac97_put_enum_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol); +extern const struct snd_kcontrol_new snd_ac97_controls_3d[]; +extern const struct snd_kcontrol_new snd_ac97_controls_spdif[]; +struct snd_kcontrol *snd_ac97_cnew(const struct snd_kcontrol_new *_template, struct snd_ac97 * ac97); +void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name, int modem); +int snd_ac97_info_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); +int snd_ac97_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_ac97_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_ac97_try_bit(struct snd_ac97 * ac97, int reg, int bit); +int snd_ac97_remove_ctl(struct snd_ac97 *ac97, const char *name, const char *suffix); +int snd_ac97_rename_ctl(struct snd_ac97 *ac97, const char *src, const char *dst, const char *suffix); +int snd_ac97_swap_ctl(struct snd_ac97 *ac97, const char *s1, const char *s2, const char *suffix); +void snd_ac97_rename_vol_ctl(struct snd_ac97 *ac97, const char *src, const char *dst); +void snd_ac97_restore_status(struct snd_ac97 *ac97); +void snd_ac97_restore_iec958(struct snd_ac97 *ac97); +int snd_ac97_info_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); +int snd_ac97_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_ac97_put_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); -int snd_ac97_update_bits_nolock(ac97_t *ac97, unsigned short reg, +int snd_ac97_update_bits_nolock(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value); /* ac97_proc.c */ #ifdef CONFIG_PROC_FS -void snd_ac97_bus_proc_init(ac97_bus_t * ac97); -void snd_ac97_bus_proc_done(ac97_bus_t * ac97); -void snd_ac97_proc_init(ac97_t * ac97); -void snd_ac97_proc_done(ac97_t * ac97); +void snd_ac97_bus_proc_init(struct snd_ac97_bus * ac97); +void snd_ac97_bus_proc_done(struct snd_ac97_bus * ac97); +void snd_ac97_proc_init(struct snd_ac97 * ac97); +void snd_ac97_proc_done(struct snd_ac97 * ac97); #else #define snd_ac97_bus_proc_init(ac97_bus_t) do { } while (0) #define snd_ac97_bus_proc_done(ac97_bus_t) do { } while (0) diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index de1c72ad2c6..c68ee0f3e72 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c @@ -39,7 +39,7 @@ * Chip specific initialization */ -static int patch_build_controls(ac97_t * ac97, const snd_kcontrol_new_t *controls, int count) +static int patch_build_controls(struct snd_ac97 * ac97, const struct snd_kcontrol_new *controls, int count) { int idx, err; @@ -50,7 +50,7 @@ static int patch_build_controls(ac97_t * ac97, const snd_kcontrol_new_t *control } /* set to the page, update bits and restore the page */ -static int ac97_update_bits_page(ac97_t *ac97, unsigned short reg, unsigned short mask, unsigned short value, unsigned short page) +static int ac97_update_bits_page(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value, unsigned short page) { unsigned short page_save; int ret; @@ -67,7 +67,7 @@ static int ac97_update_bits_page(ac97_t *ac97, unsigned short reg, unsigned shor /* * shared line-in/mic controls */ -static int ac97_enum_text_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo, +static int ac97_enum_text_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo, const char **texts, unsigned int nums) { uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -79,23 +79,23 @@ static int ac97_enum_text_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui return 0; } -static int ac97_surround_jack_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int ac97_surround_jack_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static const char *texts[] = { "Shared", "Independent" }; return ac97_enum_text_info(kcontrol, uinfo, texts, 2); } -static int ac97_surround_jack_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ac97_surround_jack_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = ac97->indep_surround; return 0; } -static int ac97_surround_jack_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ac97_surround_jack_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned char indep = !!ucontrol->value.enumerated.item[0]; if (indep != ac97->indep_surround) { @@ -107,7 +107,7 @@ static int ac97_surround_jack_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return 0; } -static int ac97_channel_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int ac97_channel_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static const char *texts[] = { "2ch", "4ch", "6ch" }; if (kcontrol->private_value) @@ -115,17 +115,17 @@ static int ac97_channel_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return ac97_enum_text_info(kcontrol, uinfo, texts, 3); } -static int ac97_channel_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ac97_channel_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = ac97->channel_mode; return 0; } -static int ac97_channel_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ac97_channel_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned char mode = ucontrol->value.enumerated.item[0]; if (mode != ac97->channel_mode) { @@ -163,22 +163,22 @@ static int ac97_channel_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t .private_value = 1, \ } -static inline int is_surround_on(ac97_t *ac97) +static inline int is_surround_on(struct snd_ac97 *ac97) { return ac97->channel_mode >= 1; } -static inline int is_clfe_on(ac97_t *ac97) +static inline int is_clfe_on(struct snd_ac97 *ac97) { return ac97->channel_mode >= 2; } -static inline int is_shared_linein(ac97_t *ac97) +static inline int is_shared_linein(struct snd_ac97 *ac97) { return ! ac97->indep_surround && is_surround_on(ac97); } -static inline int is_shared_micin(ac97_t *ac97) +static inline int is_shared_micin(struct snd_ac97 *ac97) { return ! ac97->indep_surround && is_clfe_on(ac97); } @@ -187,7 +187,7 @@ static inline int is_shared_micin(ac97_t *ac97) /* The following snd_ac97_ymf753_... items added by David Shust (dshust@shustring.com) */ /* It is possible to indicate to the Yamaha YMF753 the type of speakers being used. */ -static int snd_ac97_ymf753_info_speaker(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_ymf753_info_speaker(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = { "Standard", "Small", "Smaller" @@ -202,9 +202,9 @@ static int snd_ac97_ymf753_info_speaker(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_ac97_ymf753_get_speaker(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ymf753_get_speaker(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_YMF753_3D_MODE_SEL]; @@ -215,9 +215,9 @@ static int snd_ac97_ymf753_get_speaker(snd_kcontrol_t * kcontrol, snd_ctl_elem_v return 0; } -static int snd_ac97_ymf753_put_speaker(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ymf753_put_speaker(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; if (ucontrol->value.enumerated.item[0] > 2) @@ -226,7 +226,7 @@ static int snd_ac97_ymf753_put_speaker(snd_kcontrol_t * kcontrol, snd_ctl_elem_v return snd_ac97_update(ac97, AC97_YMF753_3D_MODE_SEL, val); } -static const snd_kcontrol_new_t snd_ac97_ymf753_controls_speaker = +static const struct snd_kcontrol_new snd_ac97_ymf753_controls_speaker = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "3D Control - Speaker", @@ -236,7 +236,7 @@ static const snd_kcontrol_new_t snd_ac97_ymf753_controls_speaker = }; /* It is possible to indicate to the Yamaha YMF753 the source to direct to the S/PDIF output. */ -static int snd_ac97_ymf753_spdif_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_ymf753_spdif_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[2] = { "AC-Link", "A/D Converter" }; @@ -249,9 +249,9 @@ static int snd_ac97_ymf753_spdif_source_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_ac97_ymf753_spdif_source_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ymf753_spdif_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_YMF753_DIT_CTRL2]; @@ -259,9 +259,9 @@ static int snd_ac97_ymf753_spdif_source_get(snd_kcontrol_t * kcontrol, snd_ctl_e return 0; } -static int snd_ac97_ymf753_spdif_source_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ymf753_spdif_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; if (ucontrol->value.enumerated.item[0] > 1) @@ -274,7 +274,7 @@ static int snd_ac97_ymf753_spdif_source_put(snd_kcontrol_t * kcontrol, snd_ctl_e The YMF753 will output the S/PDIF signal to pin 43, 47 (EAPD), or 48. By default, no output pin is selected, and the S/PDIF signal is not output. There is also a bit to mute S/PDIF output in a vendor-specific register. */ -static int snd_ac97_ymf753_spdif_output_pin_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_ymf753_spdif_output_pin_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = { "Disabled", "Pin 43", "Pin 48" }; @@ -287,9 +287,9 @@ static int snd_ac97_ymf753_spdif_output_pin_info(snd_kcontrol_t *kcontrol, snd_c return 0; } -static int snd_ac97_ymf753_spdif_output_pin_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ymf753_spdif_output_pin_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_YMF753_DIT_CTRL2]; @@ -297,9 +297,9 @@ static int snd_ac97_ymf753_spdif_output_pin_get(snd_kcontrol_t * kcontrol, snd_c return 0; } -static int snd_ac97_ymf753_spdif_output_pin_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ymf753_spdif_output_pin_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; if (ucontrol->value.enumerated.item[0] > 2) @@ -311,7 +311,7 @@ static int snd_ac97_ymf753_spdif_output_pin_put(snd_kcontrol_t * kcontrol, snd_c snd_ac97_write_cache(ac97, 0x62, snd_ac97_read(ac97, 0x62) | 0x0008); */ } -static const snd_kcontrol_new_t snd_ac97_ymf753_controls_spdif[3] = { +static const struct snd_kcontrol_new snd_ac97_ymf753_controls_spdif[3] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Source", @@ -329,9 +329,9 @@ static const snd_kcontrol_new_t snd_ac97_ymf753_controls_spdif[3] = { AC97_SINGLE(SNDRV_CTL_NAME_IEC958("",NONE,NONE) "Mute", AC97_YMF753_DIT_CTRL2, 2, 1, 1) }; -static int patch_yamaha_ymf753_3d(ac97_t * ac97) +static int patch_yamaha_ymf753_3d(struct snd_ac97 * ac97) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; int err; if ((err = snd_ctl_add(ac97->bus->card, kctl = snd_ac97_cnew(&snd_ac97_controls_3d[0], ac97))) < 0) @@ -345,7 +345,7 @@ static int patch_yamaha_ymf753_3d(ac97_t * ac97) return 0; } -static int patch_yamaha_ymf753_post_spdif(ac97_t * ac97) +static int patch_yamaha_ymf753_post_spdif(struct snd_ac97 * ac97) { int err; @@ -359,7 +359,7 @@ static struct snd_ac97_build_ops patch_yamaha_ymf753_ops = { .build_post_spdif = patch_yamaha_ymf753_post_spdif }; -int patch_yamaha_ymf753(ac97_t * ac97) +int patch_yamaha_ymf753(struct snd_ac97 * ac97) { /* Patch for Yamaha YMF753, Copyright (c) by David Shust, dshust@shustring.com. This chip has nonstandard and extended behaviour with regard to its S/PDIF output. @@ -380,12 +380,12 @@ int patch_yamaha_ymf753(ac97_t * ac97) * added support for WM9705,WM9708,WM9709,WM9710,WM9711,WM9712 and WM9717. */ -static const snd_kcontrol_new_t wm97xx_snd_ac97_controls[] = { +static const struct snd_kcontrol_new wm97xx_snd_ac97_controls[] = { AC97_DOUBLE("Front Playback Volume", AC97_WM97XX_FMIXER_VOL, 8, 0, 31, 1), AC97_SINGLE("Front Playback Switch", AC97_WM97XX_FMIXER_VOL, 15, 1, 1), }; -static int patch_wolfson_wm9703_specific(ac97_t * ac97) +static int patch_wolfson_wm9703_specific(struct snd_ac97 * ac97) { /* This is known to work for the ViewSonic ViewPad 1000 * Randolph Bentson @@ -405,13 +405,13 @@ static struct snd_ac97_build_ops patch_wolfson_wm9703_ops = { .build_specific = patch_wolfson_wm9703_specific, }; -int patch_wolfson03(ac97_t * ac97) +int patch_wolfson03(struct snd_ac97 * ac97) { ac97->build_ops = &patch_wolfson_wm9703_ops; return 0; } -static const snd_kcontrol_new_t wm9704_snd_ac97_controls[] = { +static const struct snd_kcontrol_new wm9704_snd_ac97_controls[] = { AC97_DOUBLE("Front Playback Volume", AC97_WM97XX_FMIXER_VOL, 8, 0, 31, 1), AC97_SINGLE("Front Playback Switch", AC97_WM97XX_FMIXER_VOL, 15, 1, 1), AC97_DOUBLE("Rear Playback Volume", AC97_WM9704_RMIXER_VOL, 8, 0, 31, 1), @@ -420,7 +420,7 @@ AC97_DOUBLE("Rear DAC Volume", AC97_WM9704_RPCM_VOL, 8, 0, 31, 1), AC97_DOUBLE("Surround Volume", AC97_SURROUND_MASTER, 8, 0, 31, 1), }; -static int patch_wolfson_wm9704_specific(ac97_t * ac97) +static int patch_wolfson_wm9704_specific(struct snd_ac97 * ac97) { int err, i; for (i = 0; i < ARRAY_SIZE(wm9704_snd_ac97_controls); i++) { @@ -436,14 +436,14 @@ static struct snd_ac97_build_ops patch_wolfson_wm9704_ops = { .build_specific = patch_wolfson_wm9704_specific, }; -int patch_wolfson04(ac97_t * ac97) +int patch_wolfson04(struct snd_ac97 * ac97) { /* WM9704M/9704Q */ ac97->build_ops = &patch_wolfson_wm9704_ops; return 0; } -static int patch_wolfson_wm9705_specific(ac97_t * ac97) +static int patch_wolfson_wm9705_specific(struct snd_ac97 * ac97) { int err, i; for (i = 0; i < ARRAY_SIZE(wm97xx_snd_ac97_controls); i++) { @@ -458,7 +458,7 @@ static struct snd_ac97_build_ops patch_wolfson_wm9705_ops = { .build_specific = patch_wolfson_wm9705_specific, }; -int patch_wolfson05(ac97_t * ac97) +int patch_wolfson05(struct snd_ac97 * ac97) { /* WM9705, WM9710 */ ac97->build_ops = &patch_wolfson_wm9705_ops; @@ -490,7 +490,7 @@ AC97_ENUM_DOUBLE(AC97_REC_SEL, 8, 0, 8, wm9711_rec_sel), AC97_ENUM_SINGLE(AC97_PCI_SVID, 5, 2, wm9711_ng_type), }; -static const snd_kcontrol_new_t wm9711_snd_ac97_controls[] = { +static const struct snd_kcontrol_new wm9711_snd_ac97_controls[] = { AC97_SINGLE("ALC Target Volume", AC97_CODEC_CLASS_REV, 12, 15, 0), AC97_SINGLE("ALC Hold Time", AC97_CODEC_CLASS_REV, 8, 15, 0), AC97_SINGLE("ALC Decay Time", AC97_CODEC_CLASS_REV, 4, 15, 0), @@ -568,7 +568,7 @@ AC97_SINGLE("Headphone ZC Switch", AC97_HEADPHONE, 7, 1, 0), AC97_SINGLE("Mono ZC Switch", AC97_MASTER_MONO, 7, 1, 0), }; -static int patch_wolfson_wm9711_specific(ac97_t * ac97) +static int patch_wolfson_wm9711_specific(struct snd_ac97 * ac97) { int err, i; @@ -589,7 +589,7 @@ static struct snd_ac97_build_ops patch_wolfson_wm9711_ops = { .build_specific = patch_wolfson_wm9711_specific, }; -int patch_wolfson11(ac97_t * ac97) +int patch_wolfson11(struct snd_ac97 * ac97) { /* WM9711, WM9712 */ ac97->build_ops = &patch_wolfson_wm9711_ops; @@ -636,7 +636,7 @@ AC97_ENUM_SINGLE(AC97_GENERAL_PURPOSE, 15, 2, wm9713_base), AC97_ENUM_SINGLE(AC97_PCI_SVID, 5, 2, wm9713_ng_type), }; -static const snd_kcontrol_new_t wm13_snd_ac97_controls[] = { +static const struct snd_kcontrol_new wm13_snd_ac97_controls[] = { AC97_DOUBLE("Line In Volume", AC97_PC_BEEP, 8, 0, 31, 1), AC97_SINGLE("Line In to Headphone Switch", AC97_PC_BEEP, 15, 1, 1), AC97_SINGLE("Line In to Master Switch", AC97_PC_BEEP, 14, 1, 1), @@ -728,14 +728,14 @@ AC97_SINGLE("Bass Volume", AC97_GENERAL_PURPOSE, 8, 15, 1), AC97_SINGLE("Tone Volume", AC97_GENERAL_PURPOSE, 0, 15, 1), }; -static const snd_kcontrol_new_t wm13_snd_ac97_controls_3d[] = { +static const struct snd_kcontrol_new wm13_snd_ac97_controls_3d[] = { AC97_ENUM("Inv Input Mux", wm9713_enum[11]), AC97_SINGLE("3D Upper Cut-off Switch", AC97_REC_GAIN_MIC, 5, 1, 0), AC97_SINGLE("3D Lower Cut-off Switch", AC97_REC_GAIN_MIC, 4, 1, 0), AC97_SINGLE("3D Depth", AC97_REC_GAIN_MIC, 0, 15, 1), }; -static int patch_wolfson_wm9713_3d (ac97_t * ac97) +static int patch_wolfson_wm9713_3d (struct snd_ac97 * ac97) { int err, i; @@ -746,7 +746,7 @@ static int patch_wolfson_wm9713_3d (ac97_t * ac97) return 0; } -static int patch_wolfson_wm9713_specific(ac97_t * ac97) +static int patch_wolfson_wm9713_specific(struct snd_ac97 * ac97) { int err, i; @@ -765,13 +765,13 @@ static int patch_wolfson_wm9713_specific(ac97_t * ac97) } #ifdef CONFIG_PM -static void patch_wolfson_wm9713_suspend (ac97_t * ac97) +static void patch_wolfson_wm9713_suspend (struct snd_ac97 * ac97) { snd_ac97_write_cache(ac97, AC97_EXTENDED_MID, 0xfeff); snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0xffff); } -static void patch_wolfson_wm9713_resume (ac97_t * ac97) +static void patch_wolfson_wm9713_resume (struct snd_ac97 * ac97) { snd_ac97_write_cache(ac97, AC97_EXTENDED_MID, 0xda00); snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0x3810); @@ -788,7 +788,7 @@ static struct snd_ac97_build_ops patch_wolfson_wm9713_ops = { #endif }; -int patch_wolfson13(ac97_t * ac97) +int patch_wolfson13(struct snd_ac97 * ac97) { /* WM9713, WM9714 */ ac97->build_ops = &patch_wolfson_wm9713_ops; @@ -808,7 +808,7 @@ int patch_wolfson13(ac97_t * ac97) /* * Tritech codec */ -int patch_tritech_tr28028(ac97_t * ac97) +int patch_tritech_tr28028(struct snd_ac97 * ac97) { snd_ac97_write_cache(ac97, 0x26, 0x0300); snd_ac97_write_cache(ac97, 0x26, 0x0000); @@ -820,9 +820,9 @@ int patch_tritech_tr28028(ac97_t * ac97) /* * Sigmatel STAC97xx codecs */ -static int patch_sigmatel_stac9700_3d(ac97_t * ac97) +static int patch_sigmatel_stac9700_3d(struct snd_ac97 * ac97) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; int err; if ((err = snd_ctl_add(ac97->bus->card, kctl = snd_ac97_cnew(&snd_ac97_controls_3d[0], ac97))) < 0) @@ -833,9 +833,9 @@ static int patch_sigmatel_stac9700_3d(ac97_t * ac97) return 0; } -static int patch_sigmatel_stac9708_3d(ac97_t * ac97) +static int patch_sigmatel_stac9708_3d(struct snd_ac97 * ac97) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; int err; if ((err = snd_ctl_add(ac97->bus->card, kctl = snd_ac97_cnew(&snd_ac97_controls_3d[0], ac97))) < 0) @@ -850,18 +850,18 @@ static int patch_sigmatel_stac9708_3d(ac97_t * ac97) return 0; } -static const snd_kcontrol_new_t snd_ac97_sigmatel_4speaker = +static const struct snd_kcontrol_new snd_ac97_sigmatel_4speaker = AC97_SINGLE("Sigmatel 4-Speaker Stereo Playback Switch", AC97_SIGMATEL_DAC2INVERT, 2, 1, 0); -static const snd_kcontrol_new_t snd_ac97_sigmatel_phaseinvert = +static const struct snd_kcontrol_new snd_ac97_sigmatel_phaseinvert = AC97_SINGLE("Sigmatel Surround Phase Inversion Playback Switch", AC97_SIGMATEL_DAC2INVERT, 3, 1, 0); -static const snd_kcontrol_new_t snd_ac97_sigmatel_controls[] = { +static const struct snd_kcontrol_new snd_ac97_sigmatel_controls[] = { AC97_SINGLE("Sigmatel DAC 6dB Attenuate", AC97_SIGMATEL_ANALOG, 1, 1, 0), AC97_SINGLE("Sigmatel ADC 6dB Attenuate", AC97_SIGMATEL_ANALOG, 0, 1, 0) }; -static int patch_sigmatel_stac97xx_specific(ac97_t * ac97) +static int patch_sigmatel_stac97xx_specific(struct snd_ac97 * ac97) { int err; @@ -886,15 +886,15 @@ static struct snd_ac97_build_ops patch_sigmatel_stac9700_ops = { .build_specific = patch_sigmatel_stac97xx_specific }; -int patch_sigmatel_stac9700(ac97_t * ac97) +int patch_sigmatel_stac9700(struct snd_ac97 * ac97) { ac97->build_ops = &patch_sigmatel_stac9700_ops; return 0; } -static int snd_ac97_stac9708_put_bias(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ac97_stac9708_put_bias(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int err; down(&ac97->page_mutex); @@ -906,7 +906,7 @@ static int snd_ac97_stac9708_put_bias(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return err; } -static const snd_kcontrol_new_t snd_ac97_stac9708_bias_control = { +static const struct snd_kcontrol_new snd_ac97_stac9708_bias_control = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Sigmatel Output Bias Switch", .info = snd_ac97_info_volsw, @@ -915,7 +915,7 @@ static const snd_kcontrol_new_t snd_ac97_stac9708_bias_control = { .private_value = AC97_SINGLE_VALUE(AC97_SIGMATEL_BIAS2, 4, 1, 0), }; -static int patch_sigmatel_stac9708_specific(ac97_t *ac97) +static int patch_sigmatel_stac9708_specific(struct snd_ac97 *ac97) { int err; @@ -930,7 +930,7 @@ static struct snd_ac97_build_ops patch_sigmatel_stac9708_ops = { .build_specific = patch_sigmatel_stac9708_specific }; -int patch_sigmatel_stac9708(ac97_t * ac97) +int patch_sigmatel_stac9708(struct snd_ac97 * ac97) { unsigned int codec72, codec6c; @@ -956,7 +956,7 @@ int patch_sigmatel_stac9708(ac97_t * ac97) return 0; } -int patch_sigmatel_stac9721(ac97_t * ac97) +int patch_sigmatel_stac9721(struct snd_ac97 * ac97) { ac97->build_ops = &patch_sigmatel_stac9700_ops; if (snd_ac97_read(ac97, AC97_SIGMATEL_ANALOG) == 0) { @@ -970,7 +970,7 @@ int patch_sigmatel_stac9721(ac97_t * ac97) return 0; } -int patch_sigmatel_stac9744(ac97_t * ac97) +int patch_sigmatel_stac9744(struct snd_ac97 * ac97) { // patch for SigmaTel ac97->build_ops = &patch_sigmatel_stac9700_ops; @@ -982,7 +982,7 @@ int patch_sigmatel_stac9744(ac97_t * ac97) return 0; } -int patch_sigmatel_stac9756(ac97_t * ac97) +int patch_sigmatel_stac9756(struct snd_ac97 * ac97) { // patch for SigmaTel ac97->build_ops = &patch_sigmatel_stac9700_ops; @@ -994,7 +994,7 @@ int patch_sigmatel_stac9756(ac97_t * ac97) return 0; } -static int snd_ac97_stac9758_output_jack_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ac97_stac9758_output_jack_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[5] = { "Input/Disabled", "Front Output", "Rear Output", "Center/LFE Output", "Mixer Output" }; @@ -1008,9 +1008,9 @@ static int snd_ac97_stac9758_output_jack_info(snd_kcontrol_t *kcontrol, snd_ctl_ return 0; } -static int snd_ac97_stac9758_output_jack_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t* ucontrol) +static int snd_ac97_stac9758_output_jack_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value; unsigned short val; @@ -1022,9 +1022,9 @@ static int snd_ac97_stac9758_output_jack_get(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_ac97_stac9758_output_jack_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ac97_stac9758_output_jack_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value; unsigned short val; @@ -1038,7 +1038,7 @@ static int snd_ac97_stac9758_output_jack_put(snd_kcontrol_t *kcontrol, snd_ctl_e 7 << shift, val << shift, 0); } -static int snd_ac97_stac9758_input_jack_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ac97_stac9758_input_jack_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[7] = { "Mic2 Jack", "Mic1 Jack", "Line In Jack", "Front Jack", "Rear Jack", "Center/LFE Jack", "Mute" }; @@ -1052,9 +1052,9 @@ static int snd_ac97_stac9758_input_jack_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_ac97_stac9758_input_jack_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t* ucontrol) +static int snd_ac97_stac9758_input_jack_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value; unsigned short val; @@ -1063,16 +1063,16 @@ static int snd_ac97_stac9758_input_jack_get(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_ac97_stac9758_input_jack_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ac97_stac9758_input_jack_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value; return ac97_update_bits_page(ac97, AC97_SIGMATEL_INSEL, 7 << shift, ucontrol->value.enumerated.item[0] << shift, 0); } -static int snd_ac97_stac9758_phonesel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ac97_stac9758_phonesel_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = { "None", "Front Jack", "Rear Jack" }; @@ -1085,17 +1085,17 @@ static int snd_ac97_stac9758_phonesel_info(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_ac97_stac9758_phonesel_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t* ucontrol) +static int snd_ac97_stac9758_phonesel_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = ac97->regs[AC97_SIGMATEL_IOMISC] & 3; return 0; } -static int snd_ac97_stac9758_phonesel_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ac97_stac9758_phonesel_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); return ac97_update_bits_page(ac97, AC97_SIGMATEL_IOMISC, 3, ucontrol->value.enumerated.item[0], 0); @@ -1113,7 +1113,7 @@ static int snd_ac97_stac9758_phonesel_put(snd_kcontrol_t *kcontrol, snd_ctl_elem .get = snd_ac97_stac9758_input_jack_get, \ .put = snd_ac97_stac9758_input_jack_put, \ .private_value = shift } -static const snd_kcontrol_new_t snd_ac97_sigmatel_stac9758_controls[] = { +static const struct snd_kcontrol_new snd_ac97_sigmatel_stac9758_controls[] = { STAC9758_OUTPUT_JACK("Mic1 Jack", 1), STAC9758_OUTPUT_JACK("LineIn Jack", 4), STAC9758_OUTPUT_JACK("Front Jack", 7), @@ -1132,7 +1132,7 @@ static const snd_kcontrol_new_t snd_ac97_sigmatel_stac9758_controls[] = { AC97_SINGLE("Headphone +3dB Boost", AC97_SIGMATEL_IOMISC, 8, 1, 0) }; -static int patch_sigmatel_stac9758_specific(ac97_t *ac97) +static int patch_sigmatel_stac9758_specific(struct snd_ac97 *ac97) { int err; @@ -1159,7 +1159,7 @@ static struct snd_ac97_build_ops patch_sigmatel_stac9758_ops = { .build_specific = patch_sigmatel_stac9758_specific }; -int patch_sigmatel_stac9758(ac97_t * ac97) +int patch_sigmatel_stac9758(struct snd_ac97 * ac97) { static unsigned short regs[4] = { AC97_SIGMATEL_OUTSEL, @@ -1202,12 +1202,12 @@ int patch_sigmatel_stac9758(ac97_t * ac97) /* * Cirrus Logic CS42xx codecs */ -static const snd_kcontrol_new_t snd_ac97_cirrus_controls_spdif[2] = { +static const struct snd_kcontrol_new snd_ac97_cirrus_controls_spdif[2] = { AC97_SINGLE(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH), AC97_CSR_SPDIF, 15, 1, 0), AC97_SINGLE(SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "AC97-SPSA", AC97_CSR_ACMODE, 0, 3, 0) }; -static int patch_cirrus_build_spdif(ac97_t * ac97) +static int patch_cirrus_build_spdif(struct snd_ac97 * ac97) { int err; @@ -1233,7 +1233,7 @@ static struct snd_ac97_build_ops patch_cirrus_ops = { .build_spdif = patch_cirrus_build_spdif }; -int patch_cirrus_spdif(ac97_t * ac97) +int patch_cirrus_spdif(struct snd_ac97 * ac97) { /* Basically, the cs4201/cs4205/cs4297a has non-standard sp/dif registers. WHY CAN'T ANYONE FOLLOW THE BLOODY SPEC? *sigh* @@ -1254,7 +1254,7 @@ int patch_cirrus_spdif(ac97_t * ac97) return 0; } -int patch_cirrus_cs4299(ac97_t * ac97) +int patch_cirrus_cs4299(struct snd_ac97 * ac97) { /* force the detection of PC Beep */ ac97->flags |= AC97_HAS_PC_BEEP; @@ -1265,11 +1265,11 @@ int patch_cirrus_cs4299(ac97_t * ac97) /* * Conexant codecs */ -static const snd_kcontrol_new_t snd_ac97_conexant_controls_spdif[1] = { +static const struct snd_kcontrol_new snd_ac97_conexant_controls_spdif[1] = { AC97_SINGLE(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH), AC97_CXR_AUDIO_MISC, 3, 1, 0), }; -static int patch_conexant_build_spdif(ac97_t * ac97) +static int patch_conexant_build_spdif(struct snd_ac97 * ac97) { int err; @@ -1290,7 +1290,7 @@ static struct snd_ac97_build_ops patch_conexant_ops = { .build_spdif = patch_conexant_build_spdif }; -int patch_conexant(ac97_t * ac97) +int patch_conexant(struct snd_ac97 * ac97) { ac97->build_ops = &patch_conexant_ops; ac97->flags |= AC97_CX_SPDIF; @@ -1303,7 +1303,7 @@ int patch_conexant(ac97_t * ac97) * Analog Device AD18xx, AD19xx codecs */ #ifdef CONFIG_PM -static void ad18xx_resume(ac97_t *ac97) +static void ad18xx_resume(struct snd_ac97 *ac97) { static unsigned short setup_regs[] = { AC97_AD_MISC, AC97_AD_SERIAL_CFG, AC97_AD_JACK_SPDIF, @@ -1367,7 +1367,7 @@ static void ad18xx_resume(ac97_t *ac97) } #endif -int patch_ad1819(ac97_t * ac97) +int patch_ad1819(struct snd_ac97 * ac97) { unsigned short scfg; @@ -1377,7 +1377,7 @@ int patch_ad1819(ac97_t * ac97) return 0; } -static unsigned short patch_ad1881_unchained(ac97_t * ac97, int idx, unsigned short mask) +static unsigned short patch_ad1881_unchained(struct snd_ac97 * ac97, int idx, unsigned short mask) { unsigned short val; @@ -1393,7 +1393,7 @@ static unsigned short patch_ad1881_unchained(ac97_t * ac97, int idx, unsigned sh return mask; } -static int patch_ad1881_chained1(ac97_t * ac97, int idx, unsigned short codec_bits) +static int patch_ad1881_chained1(struct snd_ac97 * ac97, int idx, unsigned short codec_bits) { static int cfg_bits[3] = { 1<<12, 1<<14, 1<<13 }; unsigned short val; @@ -1411,7 +1411,7 @@ static int patch_ad1881_chained1(ac97_t * ac97, int idx, unsigned short codec_bi return 1; } -static void patch_ad1881_chained(ac97_t * ac97, int unchained_idx, int cidx1, int cidx2) +static void patch_ad1881_chained(struct snd_ac97 * ac97, int unchained_idx, int cidx1, int cidx2) { // already detected? if (ac97->spec.ad18xx.unchained[cidx1] || ac97->spec.ad18xx.chained[cidx1]) @@ -1441,7 +1441,7 @@ static struct snd_ac97_build_ops patch_ad1881_build_ops = { #endif }; -int patch_ad1881(ac97_t * ac97) +int patch_ad1881(struct snd_ac97 * ac97) { static const char cfg_idxs[3][2] = { {2, 1}, @@ -1500,7 +1500,7 @@ int patch_ad1881(ac97_t * ac97) return 0; } -static const snd_kcontrol_new_t snd_ac97_controls_ad1885[] = { +static const struct snd_kcontrol_new snd_ac97_controls_ad1885[] = { AC97_SINGLE("Digital Mono Direct", AC97_AD_MISC, 11, 1, 0), /* AC97_SINGLE("Digital Audio Mode", AC97_AD_MISC, 12, 1, 0), */ /* seems problematic */ AC97_SINGLE("Low Power Mixer", AC97_AD_MISC, 14, 1, 0), @@ -1509,7 +1509,7 @@ static const snd_kcontrol_new_t snd_ac97_controls_ad1885[] = { AC97_SINGLE("Line Jack Sense", AC97_AD_JACK_SPDIF, 8, 1, 1), /* inverted */ }; -static int patch_ad1885_specific(ac97_t * ac97) +static int patch_ad1885_specific(struct snd_ac97 * ac97) { int err; @@ -1525,7 +1525,7 @@ static struct snd_ac97_build_ops patch_ad1885_build_ops = { #endif }; -int patch_ad1885(ac97_t * ac97) +int patch_ad1885(struct snd_ac97 * ac97) { patch_ad1881(ac97); /* This is required to deal with the Intel D815EEAL2 */ @@ -1538,7 +1538,7 @@ int patch_ad1885(ac97_t * ac97) return 0; } -int patch_ad1886(ac97_t * ac97) +int patch_ad1886(struct snd_ac97 * ac97) { patch_ad1881(ac97); /* Presario700 workaround */ @@ -1569,7 +1569,7 @@ int patch_ad1886(ac97_t * ac97) #define AC97_AD198X_DACZ 0x8000 /* DAC zero-fill mode */ -static int snd_ac97_ad198x_spdif_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_ad198x_spdif_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[2] = { "AC-Link", "A/D Converter" }; @@ -1582,9 +1582,9 @@ static int snd_ac97_ad198x_spdif_source_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_ac97_ad198x_spdif_source_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ad198x_spdif_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_AD_SERIAL_CFG]; @@ -1592,9 +1592,9 @@ static int snd_ac97_ad198x_spdif_source_get(snd_kcontrol_t * kcontrol, snd_ctl_e return 0; } -static int snd_ac97_ad198x_spdif_source_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_ad198x_spdif_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; if (ucontrol->value.enumerated.item[0] > 1) @@ -1603,7 +1603,7 @@ static int snd_ac97_ad198x_spdif_source_put(snd_kcontrol_t * kcontrol, snd_ctl_e return snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x0004, val); } -static const snd_kcontrol_new_t snd_ac97_ad198x_spdif_source = { +static const struct snd_kcontrol_new snd_ac97_ad198x_spdif_source = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Source", .info = snd_ac97_ad198x_spdif_source_info, @@ -1611,17 +1611,17 @@ static const snd_kcontrol_new_t snd_ac97_ad198x_spdif_source = { .put = snd_ac97_ad198x_spdif_source_put, }; -static int patch_ad198x_post_spdif(ac97_t * ac97) +static int patch_ad198x_post_spdif(struct snd_ac97 * ac97) { return patch_build_controls(ac97, &snd_ac97_ad198x_spdif_source, 1); } -static const snd_kcontrol_new_t snd_ac97_ad1981x_jack_sense[] = { +static const struct snd_kcontrol_new snd_ac97_ad1981x_jack_sense[] = { AC97_SINGLE("Headphone Jack Sense", AC97_AD_JACK_SPDIF, 11, 1, 0), AC97_SINGLE("Line Jack Sense", AC97_AD_JACK_SPDIF, 12, 1, 0), }; -static int patch_ad1981a_specific(ac97_t * ac97) +static int patch_ad1981a_specific(struct snd_ac97 * ac97) { return patch_build_controls(ac97, snd_ac97_ad1981x_jack_sense, ARRAY_SIZE(snd_ac97_ad1981x_jack_sense)); @@ -1635,7 +1635,7 @@ static struct snd_ac97_build_ops patch_ad1981a_build_ops = { #endif }; -static void check_ad1981_hp_jack_sense(ac97_t *ac97) +static void check_ad1981_hp_jack_sense(struct snd_ac97 *ac97) { u32 subid = ((u32)ac97->subsystem_vendor << 16) | ac97->subsystem_device; switch (subid) { @@ -1649,7 +1649,7 @@ static void check_ad1981_hp_jack_sense(ac97_t *ac97) } } -int patch_ad1981a(ac97_t *ac97) +int patch_ad1981a(struct snd_ac97 *ac97) { patch_ad1881(ac97); ac97->build_ops = &patch_ad1981a_build_ops; @@ -1659,10 +1659,10 @@ int patch_ad1981a(ac97_t *ac97) return 0; } -static const snd_kcontrol_new_t snd_ac97_ad198x_2cmic = +static const struct snd_kcontrol_new snd_ac97_ad198x_2cmic = AC97_SINGLE("Stereo Mic", AC97_AD_MISC, 6, 1, 0); -static int patch_ad1981b_specific(ac97_t *ac97) +static int patch_ad1981b_specific(struct snd_ac97 *ac97) { int err; @@ -1680,7 +1680,7 @@ static struct snd_ac97_build_ops patch_ad1981b_build_ops = { #endif }; -int patch_ad1981b(ac97_t *ac97) +int patch_ad1981b(struct snd_ac97 *ac97) { patch_ad1881(ac97); ac97->build_ops = &patch_ad1981b_build_ops; @@ -1690,7 +1690,7 @@ int patch_ad1981b(ac97_t *ac97) return 0; } -static int snd_ac97_ad1888_lohpsel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ac97_ad1888_lohpsel_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1699,9 +1699,9 @@ static int snd_ac97_ad1888_lohpsel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_ac97_ad1888_lohpsel_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t* ucontrol) +static int snd_ac97_ad1888_lohpsel_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_AD_MISC]; @@ -1709,9 +1709,9 @@ static int snd_ac97_ad1888_lohpsel_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return 0; } -static int snd_ac97_ad1888_lohpsel_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ac97_ad1888_lohpsel_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = !ucontrol->value.integer.value[0] @@ -1720,7 +1720,7 @@ static int snd_ac97_ad1888_lohpsel_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_va AC97_AD198X_LOSEL | AC97_AD198X_HPSEL, val); } -static int snd_ac97_ad1888_downmix_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ac97_ad1888_downmix_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = {"Off", "6 -> 4", "6 -> 2"}; @@ -1733,9 +1733,9 @@ static int snd_ac97_ad1888_downmix_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_ac97_ad1888_downmix_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t* ucontrol) +static int snd_ac97_ad1888_downmix_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_AD_MISC]; @@ -1746,9 +1746,9 @@ static int snd_ac97_ad1888_downmix_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return 0; } -static int snd_ac97_ad1888_downmix_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ac97_ad1888_downmix_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; if (ucontrol->value.enumerated.item[0] > 2) @@ -1762,7 +1762,7 @@ static int snd_ac97_ad1888_downmix_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_va AC97_AD198X_DMIX0 | AC97_AD198X_DMIX1, val); } -static void ad1888_update_jacks(ac97_t *ac97) +static void ad1888_update_jacks(struct snd_ac97 *ac97) { unsigned short val = 0; if (! is_shared_linein(ac97)) @@ -1773,7 +1773,7 @@ static void ad1888_update_jacks(ac97_t *ac97) snd_ac97_update_bits(ac97, AC97_AD_MISC, (1 << 11) | (1 << 12), val); } -static const snd_kcontrol_new_t snd_ac97_ad1888_controls[] = { +static const struct snd_kcontrol_new snd_ac97_ad1888_controls[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Exchange Front/Surround", @@ -1796,7 +1796,7 @@ static const snd_kcontrol_new_t snd_ac97_ad1888_controls[] = { AC97_SINGLE("Line Jack Sense", AC97_AD_JACK_SPDIF, 12, 1, 0), }; -static int patch_ad1888_specific(ac97_t *ac97) +static int patch_ad1888_specific(struct snd_ac97 *ac97) { /* rename 0x04 as "Master" and 0x02 as "Master Surround" */ snd_ac97_rename_vol_ctl(ac97, "Master Playback", "Master Surround Playback"); @@ -1813,7 +1813,7 @@ static struct snd_ac97_build_ops patch_ad1888_build_ops = { .update_jacks = ad1888_update_jacks, }; -int patch_ad1888(ac97_t * ac97) +int patch_ad1888(struct snd_ac97 * ac97) { unsigned short misc; @@ -1833,7 +1833,7 @@ int patch_ad1888(ac97_t * ac97) return 0; } -static int patch_ad1980_specific(ac97_t *ac97) +static int patch_ad1980_specific(struct snd_ac97 *ac97) { int err; @@ -1851,25 +1851,25 @@ static struct snd_ac97_build_ops patch_ad1980_build_ops = { .update_jacks = ad1888_update_jacks, }; -int patch_ad1980(ac97_t * ac97) +int patch_ad1980(struct snd_ac97 * ac97) { patch_ad1888(ac97); ac97->build_ops = &patch_ad1980_build_ops; return 0; } -static const snd_kcontrol_new_t snd_ac97_ad1985_controls[] = { +static const struct snd_kcontrol_new snd_ac97_ad1985_controls[] = { AC97_SINGLE("Exchange Center/LFE", AC97_AD_SERIAL_CFG, 3, 1, 0) }; -static void ad1985_update_jacks(ac97_t *ac97) +static void ad1985_update_jacks(struct snd_ac97 *ac97) { ad1888_update_jacks(ac97); snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 1 << 9, is_shared_micin(ac97) ? 0 : 1 << 9); } -static int patch_ad1985_specific(ac97_t *ac97) +static int patch_ad1985_specific(struct snd_ac97 *ac97) { int err; @@ -1887,7 +1887,7 @@ static struct snd_ac97_build_ops patch_ad1985_build_ops = { .update_jacks = ad1985_update_jacks, }; -int patch_ad1985(ac97_t * ac97) +int patch_ad1985(struct snd_ac97 * ac97) { unsigned short misc; @@ -1916,7 +1916,7 @@ int patch_ad1985(ac97_t * ac97) /* * realtek ALC65x/850 codecs */ -static void alc650_update_jacks(ac97_t *ac97) +static void alc650_update_jacks(struct snd_ac97 *ac97) { int shared; @@ -1937,7 +1937,7 @@ static void alc650_update_jacks(ac97_t *ac97) shared ? 0 : 0x100); } -static const snd_kcontrol_new_t snd_ac97_controls_alc650[] = { +static const struct snd_kcontrol_new snd_ac97_controls_alc650[] = { AC97_SINGLE("Duplicate Front", AC97_ALC650_MULTICH, 0, 1, 0), AC97_SINGLE("Surround Down Mix", AC97_ALC650_MULTICH, 1, 1, 0), AC97_SINGLE("Center/LFE Down Mix", AC97_ALC650_MULTICH, 2, 1, 0), @@ -1963,14 +1963,14 @@ static const snd_kcontrol_new_t snd_ac97_controls_alc650[] = { AC97_CHANNEL_MODE_CTL, }; -static const snd_kcontrol_new_t snd_ac97_spdif_controls_alc650[] = { +static const struct snd_kcontrol_new snd_ac97_spdif_controls_alc650[] = { AC97_SINGLE(SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), AC97_ALC650_MULTICH, 11, 1, 0), AC97_SINGLE("Analog to IEC958 Output", AC97_ALC650_MULTICH, 12, 1, 0), /* disable this controls since it doesn't work as expected */ /* AC97_SINGLE("IEC958 Input Monitor", AC97_ALC650_MULTICH, 13, 1, 0), */ }; -static int patch_alc650_specific(ac97_t * ac97) +static int patch_alc650_specific(struct snd_ac97 * ac97) { int err; @@ -1988,7 +1988,7 @@ static struct snd_ac97_build_ops patch_alc650_ops = { .update_jacks = alc650_update_jacks }; -int patch_alc650(ac97_t * ac97) +int patch_alc650(struct snd_ac97 * ac97) { unsigned short val; @@ -2043,7 +2043,7 @@ int patch_alc650(ac97_t * ac97) return 0; } -static void alc655_update_jacks(ac97_t *ac97) +static void alc655_update_jacks(struct snd_ac97 *ac97) { int shared; @@ -2060,17 +2060,17 @@ static void alc655_update_jacks(ac97_t *ac97) shared ? (1 << 10) : 0, 0); } -static const snd_kcontrol_new_t snd_ac97_controls_alc655[] = { +static const struct snd_kcontrol_new snd_ac97_controls_alc655[] = { AC97_PAGE_SINGLE("Duplicate Front", AC97_ALC650_MULTICH, 0, 1, 0, 0), AC97_SURROUND_JACK_MODE_CTL, AC97_CHANNEL_MODE_CTL, }; -static int alc655_iec958_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int alc655_iec958_route_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts_655[3] = { "PCM", "Analog In", "IEC958 In" }; static char *texts_658[4] = { "PCM", "Analog1 In", "Analog2 In", "IEC958 In" }; - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -2084,9 +2084,9 @@ static int alc655_iec958_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int alc655_iec958_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc655_iec958_route_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_ALC650_MULTICH]; @@ -2097,16 +2097,16 @@ static int alc655_iec958_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ return 0; } -static int alc655_iec958_route_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc655_iec958_route_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); return ac97_update_bits_page(ac97, AC97_ALC650_MULTICH, 3 << 12, (unsigned short)ucontrol->value.enumerated.item[0] << 12, 0); } -static const snd_kcontrol_new_t snd_ac97_spdif_controls_alc655[] = { +static const struct snd_kcontrol_new snd_ac97_spdif_controls_alc655[] = { AC97_PAGE_SINGLE(SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), AC97_ALC650_MULTICH, 11, 1, 0, 0), /* disable this controls since it doesn't work as expected */ /* AC97_PAGE_SINGLE("IEC958 Input Monitor", AC97_ALC650_MULTICH, 14, 1, 0, 0), */ @@ -2119,7 +2119,7 @@ static const snd_kcontrol_new_t snd_ac97_spdif_controls_alc655[] = { }, }; -static int patch_alc655_specific(ac97_t * ac97) +static int patch_alc655_specific(struct snd_ac97 * ac97) { int err; @@ -2137,7 +2137,7 @@ static struct snd_ac97_build_ops patch_alc655_ops = { .update_jacks = alc655_update_jacks }; -int patch_alc655(ac97_t * ac97) +int patch_alc655(struct snd_ac97 * ac97) { unsigned int val; @@ -2189,7 +2189,7 @@ int patch_alc655(ac97_t * ac97) #define AC97_ALC850_JACK_SELECT 0x76 #define AC97_ALC850_MISC1 0x7a -static void alc850_update_jacks(ac97_t *ac97) +static void alc850_update_jacks(struct snd_ac97 *ac97) { int shared; @@ -2211,14 +2211,14 @@ static void alc850_update_jacks(ac97_t *ac97) shared ? (2<<4) : (1<<4)); } -static const snd_kcontrol_new_t snd_ac97_controls_alc850[] = { +static const struct snd_kcontrol_new snd_ac97_controls_alc850[] = { AC97_PAGE_SINGLE("Duplicate Front", AC97_ALC650_MULTICH, 0, 1, 0, 0), AC97_SINGLE("Mic Front Input Switch", AC97_ALC850_JACK_SELECT, 15, 1, 1), AC97_SURROUND_JACK_MODE_CTL, AC97_CHANNEL_MODE_CTL, }; -static int patch_alc850_specific(ac97_t *ac97) +static int patch_alc850_specific(struct snd_ac97 *ac97) { int err; @@ -2236,7 +2236,7 @@ static struct snd_ac97_build_ops patch_alc850_ops = { .update_jacks = alc850_update_jacks }; -int patch_alc850(ac97_t *ac97) +int patch_alc850(struct snd_ac97 *ac97) { ac97->build_ops = &patch_alc850_ops; @@ -2273,20 +2273,20 @@ int patch_alc850(ac97_t *ac97) /* * C-Media CM97xx codecs */ -static void cm9738_update_jacks(ac97_t *ac97) +static void cm9738_update_jacks(struct snd_ac97 *ac97) { /* shared Line-In */ snd_ac97_update_bits(ac97, AC97_CM9738_VENDOR_CTRL, 1 << 10, is_shared_linein(ac97) ? (1 << 10) : 0); } -static const snd_kcontrol_new_t snd_ac97_cm9738_controls[] = { +static const struct snd_kcontrol_new snd_ac97_cm9738_controls[] = { AC97_SINGLE("Duplicate Front", AC97_CM9738_VENDOR_CTRL, 13, 1, 0), AC97_SURROUND_JACK_MODE_CTL, AC97_CHANNEL_MODE_4CH_CTL, }; -static int patch_cm9738_specific(ac97_t * ac97) +static int patch_cm9738_specific(struct snd_ac97 * ac97) { return patch_build_controls(ac97, snd_ac97_cm9738_controls, ARRAY_SIZE(snd_ac97_cm9738_controls)); } @@ -2296,7 +2296,7 @@ static struct snd_ac97_build_ops patch_cm9738_ops = { .update_jacks = cm9738_update_jacks }; -int patch_cm9738(ac97_t * ac97) +int patch_cm9738(struct snd_ac97 * ac97) { ac97->build_ops = &patch_cm9738_ops; /* FIXME: can anyone confirm below? */ @@ -2307,7 +2307,7 @@ int patch_cm9738(ac97_t * ac97) return 0; } -static int snd_ac97_cmedia_spdif_playback_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ac97_cmedia_spdif_playback_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "Analog", "Digital" }; @@ -2320,9 +2320,9 @@ static int snd_ac97_cmedia_spdif_playback_source_info(snd_kcontrol_t *kcontrol, return 0; } -static int snd_ac97_cmedia_spdif_playback_source_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_cmedia_spdif_playback_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); unsigned short val; val = ac97->regs[AC97_CM9739_SPDIF_CTRL]; @@ -2330,16 +2330,16 @@ static int snd_ac97_cmedia_spdif_playback_source_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ac97_cmedia_spdif_playback_source_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ac97_cmedia_spdif_playback_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); return snd_ac97_update_bits(ac97, AC97_CM9739_SPDIF_CTRL, 0x01 << 1, (ucontrol->value.enumerated.item[0] & 0x01) << 1); } -static const snd_kcontrol_new_t snd_ac97_cm9739_controls_spdif[] = { +static const struct snd_kcontrol_new snd_ac97_cm9739_controls_spdif[] = { /* BIT 0: SPDI_EN - always true */ { /* BIT 1: SPDIFS */ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, @@ -2357,7 +2357,7 @@ static const snd_kcontrol_new_t snd_ac97_cm9739_controls_spdif[] = { /* BIT 8: SPD32 - 32bit SPDIF - not supported yet */ }; -static void cm9739_update_jacks(ac97_t *ac97) +static void cm9739_update_jacks(struct snd_ac97 *ac97) { /* shared Line-In */ snd_ac97_update_bits(ac97, AC97_CM9739_MULTI_CHAN, 1 << 10, @@ -2367,17 +2367,17 @@ static void cm9739_update_jacks(ac97_t *ac97) is_shared_micin(ac97) ? 0x1000 : 0x2000); } -static const snd_kcontrol_new_t snd_ac97_cm9739_controls[] = { +static const struct snd_kcontrol_new snd_ac97_cm9739_controls[] = { AC97_SURROUND_JACK_MODE_CTL, AC97_CHANNEL_MODE_CTL, }; -static int patch_cm9739_specific(ac97_t * ac97) +static int patch_cm9739_specific(struct snd_ac97 * ac97) { return patch_build_controls(ac97, snd_ac97_cm9739_controls, ARRAY_SIZE(snd_ac97_cm9739_controls)); } -static int patch_cm9739_post_spdif(ac97_t * ac97) +static int patch_cm9739_post_spdif(struct snd_ac97 * ac97) { return patch_build_controls(ac97, snd_ac97_cm9739_controls_spdif, ARRAY_SIZE(snd_ac97_cm9739_controls_spdif)); } @@ -2388,7 +2388,7 @@ static struct snd_ac97_build_ops patch_cm9739_ops = { .update_jacks = cm9739_update_jacks }; -int patch_cm9739(ac97_t * ac97) +int patch_cm9739(struct snd_ac97 * ac97) { unsigned short val; @@ -2447,7 +2447,7 @@ int patch_cm9739(ac97_t * ac97) #define AC97_CM9761_FUNC 0x66 #define AC97_CM9761_SPDIF_CTRL 0x6c -static void cm9761_update_jacks(ac97_t *ac97) +static void cm9761_update_jacks(struct snd_ac97 *ac97) { /* FIXME: check the bits for each model * model 83 is confirmed to work @@ -2482,12 +2482,12 @@ static void cm9761_update_jacks(ac97_t *ac97) snd_ac97_update_bits(ac97, AC97_CM9761_MULTI_CHAN, 0x3c88, val); } -static const snd_kcontrol_new_t snd_ac97_cm9761_controls[] = { +static const struct snd_kcontrol_new snd_ac97_cm9761_controls[] = { AC97_SURROUND_JACK_MODE_CTL, AC97_CHANNEL_MODE_CTL, }; -static int cm9761_spdif_out_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int cm9761_spdif_out_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "AC-Link", "ADC", "SPDIF-In" }; @@ -2500,9 +2500,9 @@ static int cm9761_spdif_out_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int cm9761_spdif_out_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cm9761_spdif_out_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); if (ac97->regs[AC97_CM9761_FUNC] & 0x1) ucontrol->value.enumerated.item[0] = 2; /* SPDIF-loopback */ @@ -2513,9 +2513,9 @@ static int cm9761_spdif_out_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return 0; } -static int cm9761_spdif_out_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cm9761_spdif_out_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ac97_t *ac97 = snd_kcontrol_chip(kcontrol); + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); if (ucontrol->value.enumerated.item[0] == 2) return snd_ac97_update_bits(ac97, AC97_CM9761_FUNC, 0x1, 0x1); @@ -2528,7 +2528,7 @@ static const char *cm9761_dac_clock[] = { "AC-Link", "SPDIF-In", "Both" }; static const struct ac97_enum cm9761_dac_clock_enum = AC97_ENUM_SINGLE(AC97_CM9761_SPDIF_CTRL, 9, 3, cm9761_dac_clock); -static const snd_kcontrol_new_t snd_ac97_cm9761_controls_spdif[] = { +static const struct snd_kcontrol_new snd_ac97_cm9761_controls_spdif[] = { { /* BIT 1: SPDIFS */ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Source", @@ -2546,12 +2546,12 @@ static const snd_kcontrol_new_t snd_ac97_cm9761_controls_spdif[] = { AC97_ENUM("DAC Clock Source", cm9761_dac_clock_enum), }; -static int patch_cm9761_post_spdif(ac97_t * ac97) +static int patch_cm9761_post_spdif(struct snd_ac97 * ac97) { return patch_build_controls(ac97, snd_ac97_cm9761_controls_spdif, ARRAY_SIZE(snd_ac97_cm9761_controls_spdif)); } -static int patch_cm9761_specific(ac97_t * ac97) +static int patch_cm9761_specific(struct snd_ac97 * ac97) { return patch_build_controls(ac97, snd_ac97_cm9761_controls, ARRAY_SIZE(snd_ac97_cm9761_controls)); } @@ -2562,7 +2562,7 @@ static struct snd_ac97_build_ops patch_cm9761_ops = { .update_jacks = cm9761_update_jacks }; -int patch_cm9761(ac97_t *ac97) +int patch_cm9761(struct snd_ac97 *ac97) { unsigned short val; @@ -2641,13 +2641,13 @@ int patch_cm9761(ac97_t *ac97) static const char *cm9780_ch_select[] = { "Front", "Side", "Center/LFE", "Rear" }; static const struct ac97_enum cm9780_ch_select_enum = AC97_ENUM_SINGLE(AC97_CM9780_MULTI_CHAN, 6, 4, cm9780_ch_select); -static const snd_kcontrol_new_t cm9780_controls[] = { +static const struct snd_kcontrol_new cm9780_controls[] = { AC97_DOUBLE("Side Playback Switch", AC97_CM9780_SIDE, 15, 7, 1, 1), AC97_DOUBLE("Side Playback Volume", AC97_CM9780_SIDE, 8, 0, 31, 0), AC97_ENUM("Side Playback Route", cm9780_ch_select_enum), }; -static int patch_cm9780_specific(ac97_t *ac97) +static int patch_cm9780_specific(struct snd_ac97 *ac97) { return patch_build_controls(ac97, cm9780_controls, ARRAY_SIZE(cm9780_controls)); } @@ -2657,7 +2657,7 @@ static struct snd_ac97_build_ops patch_cm9780_ops = { .build_post_spdif = patch_cm9761_post_spdif /* identical with CM9761 */ }; -int patch_cm9780(ac97_t *ac97) +int patch_cm9780(struct snd_ac97 *ac97) { unsigned short val; @@ -2677,14 +2677,14 @@ int patch_cm9780(ac97_t *ac97) /* * VIA VT1616 codec */ -static const snd_kcontrol_new_t snd_ac97_controls_vt1616[] = { +static const struct snd_kcontrol_new snd_ac97_controls_vt1616[] = { AC97_SINGLE("DC Offset removal", 0x5a, 10, 1, 0), AC97_SINGLE("Alternate Level to Surround Out", 0x5a, 15, 1, 0), AC97_SINGLE("Downmix LFE and Center to Front", 0x5a, 12, 1, 0), AC97_SINGLE("Downmix Surround to Front", 0x5a, 11, 1, 0), }; -static int patch_vt1616_specific(ac97_t * ac97) +static int patch_vt1616_specific(struct snd_ac97 * ac97) { int err; @@ -2700,7 +2700,7 @@ static struct snd_ac97_build_ops patch_vt1616_ops = { .build_specific = patch_vt1616_specific }; -int patch_vt1616(ac97_t * ac97) +int patch_vt1616(struct snd_ac97 * ac97) { ac97->build_ops = &patch_vt1616_ops; return 0; @@ -2709,7 +2709,7 @@ int patch_vt1616(ac97_t * ac97) /* * VT1617A codec */ -int patch_vt1617a(ac97_t * ac97) +int patch_vt1617a(struct snd_ac97 * ac97) { ac97->ext_id |= AC97_EI_SPDIF; /* force the detection of spdif */ ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000; @@ -2718,7 +2718,7 @@ int patch_vt1617a(ac97_t * ac97) /* */ -static void it2646_update_jacks(ac97_t *ac97) +static void it2646_update_jacks(struct snd_ac97 *ac97) { /* shared Line-In */ snd_ac97_update_bits(ac97, 0x76, 1 << 9, @@ -2728,18 +2728,18 @@ static void it2646_update_jacks(ac97_t *ac97) is_shared_micin(ac97) ? (1<<10) : 0); } -static const snd_kcontrol_new_t snd_ac97_controls_it2646[] = { +static const struct snd_kcontrol_new snd_ac97_controls_it2646[] = { AC97_SURROUND_JACK_MODE_CTL, AC97_CHANNEL_MODE_CTL, }; -static const snd_kcontrol_new_t snd_ac97_spdif_controls_it2646[] = { +static const struct snd_kcontrol_new snd_ac97_spdif_controls_it2646[] = { AC97_SINGLE(SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), 0x76, 11, 1, 0), AC97_SINGLE("Analog to IEC958 Output", 0x76, 12, 1, 0), AC97_SINGLE("IEC958 Input Monitor", 0x76, 13, 1, 0), }; -static int patch_it2646_specific(ac97_t * ac97) +static int patch_it2646_specific(struct snd_ac97 * ac97) { int err; if ((err = patch_build_controls(ac97, snd_ac97_controls_it2646, ARRAY_SIZE(snd_ac97_controls_it2646))) < 0) @@ -2754,7 +2754,7 @@ static struct snd_ac97_build_ops patch_it2646_ops = { .update_jacks = it2646_update_jacks }; -int patch_it2646(ac97_t * ac97) +int patch_it2646(struct snd_ac97 * ac97) { ac97->build_ops = &patch_it2646_ops; /* full DAC volume */ @@ -2770,11 +2770,11 @@ int patch_it2646(ac97_t * ac97) #define AC97_SI3036_CHIP_ID 0x5a #define AC97_SI3036_LINE_CFG 0x5c -static const snd_kcontrol_new_t snd_ac97_controls_si3036[] = { +static const struct snd_kcontrol_new snd_ac97_controls_si3036[] = { AC97_DOUBLE("Modem Speaker Volume", 0x5c, 14, 12, 3, 1) }; -static int patch_si3036_specific(ac97_t * ac97) +static int patch_si3036_specific(struct snd_ac97 * ac97) { int idx, err; for (idx = 0; idx < ARRAY_SIZE(snd_ac97_controls_si3036); idx++) @@ -2787,7 +2787,7 @@ static struct snd_ac97_build_ops patch_si3036_ops = { .build_specific = patch_si3036_specific, }; -int mpatch_si3036(ac97_t * ac97) +int mpatch_si3036(struct snd_ac97 * ac97) { ac97->build_ops = &patch_si3036_ops; snd_ac97_write_cache(ac97, 0x5c, 0xf210 ); diff --git a/sound/pci/ac97/ac97_patch.h b/sound/pci/ac97/ac97_patch.h index ec181132010..5060cb6f2ec 100644 --- a/sound/pci/ac97/ac97_patch.h +++ b/sound/pci/ac97/ac97_patch.h @@ -22,40 +22,40 @@ * */ -int patch_yamaha_ymf753(ac97_t * ac97); -int patch_wolfson00(ac97_t * ac97); -int patch_wolfson03(ac97_t * ac97); -int patch_wolfson04(ac97_t * ac97); -int patch_wolfson05(ac97_t * ac97); -int patch_wolfson11(ac97_t * ac97); -int patch_wolfson13(ac97_t * ac97); -int patch_tritech_tr28028(ac97_t * ac97); -int patch_sigmatel_stac9700(ac97_t * ac97); -int patch_sigmatel_stac9708(ac97_t * ac97); -int patch_sigmatel_stac9721(ac97_t * ac97); -int patch_sigmatel_stac9744(ac97_t * ac97); -int patch_sigmatel_stac9756(ac97_t * ac97); -int patch_sigmatel_stac9758(ac97_t * ac97); -int patch_cirrus_cs4299(ac97_t * ac97); -int patch_cirrus_spdif(ac97_t * ac97); -int patch_conexant(ac97_t * ac97); -int patch_ad1819(ac97_t * ac97); -int patch_ad1881(ac97_t * ac97); -int patch_ad1885(ac97_t * ac97); -int patch_ad1886(ac97_t * ac97); -int patch_ad1888(ac97_t * ac97); -int patch_ad1980(ac97_t * ac97); -int patch_ad1981a(ac97_t * ac97); -int patch_ad1981b(ac97_t * ac97); -int patch_ad1985(ac97_t * ac97); -int patch_alc650(ac97_t * ac97); -int patch_alc655(ac97_t * ac97); -int patch_alc850(ac97_t * ac97); -int patch_cm9738(ac97_t * ac97); -int patch_cm9739(ac97_t * ac97); -int patch_cm9761(ac97_t * ac97); -int patch_cm9780(ac97_t * ac97); -int patch_vt1616(ac97_t * ac97); -int patch_vt1617a(ac97_t * ac97); -int patch_it2646(ac97_t * ac97); -int mpatch_si3036(ac97_t * ac97); +int patch_yamaha_ymf753(struct snd_ac97 * ac97); +int patch_wolfson00(struct snd_ac97 * ac97); +int patch_wolfson03(struct snd_ac97 * ac97); +int patch_wolfson04(struct snd_ac97 * ac97); +int patch_wolfson05(struct snd_ac97 * ac97); +int patch_wolfson11(struct snd_ac97 * ac97); +int patch_wolfson13(struct snd_ac97 * ac97); +int patch_tritech_tr28028(struct snd_ac97 * ac97); +int patch_sigmatel_stac9700(struct snd_ac97 * ac97); +int patch_sigmatel_stac9708(struct snd_ac97 * ac97); +int patch_sigmatel_stac9721(struct snd_ac97 * ac97); +int patch_sigmatel_stac9744(struct snd_ac97 * ac97); +int patch_sigmatel_stac9756(struct snd_ac97 * ac97); +int patch_sigmatel_stac9758(struct snd_ac97 * ac97); +int patch_cirrus_cs4299(struct snd_ac97 * ac97); +int patch_cirrus_spdif(struct snd_ac97 * ac97); +int patch_conexant(struct snd_ac97 * ac97); +int patch_ad1819(struct snd_ac97 * ac97); +int patch_ad1881(struct snd_ac97 * ac97); +int patch_ad1885(struct snd_ac97 * ac97); +int patch_ad1886(struct snd_ac97 * ac97); +int patch_ad1888(struct snd_ac97 * ac97); +int patch_ad1980(struct snd_ac97 * ac97); +int patch_ad1981a(struct snd_ac97 * ac97); +int patch_ad1981b(struct snd_ac97 * ac97); +int patch_ad1985(struct snd_ac97 * ac97); +int patch_alc650(struct snd_ac97 * ac97); +int patch_alc655(struct snd_ac97 * ac97); +int patch_alc850(struct snd_ac97 * ac97); +int patch_cm9738(struct snd_ac97 * ac97); +int patch_cm9739(struct snd_ac97 * ac97); +int patch_cm9761(struct snd_ac97 * ac97); +int patch_cm9780(struct snd_ac97 * ac97); +int patch_vt1616(struct snd_ac97 * ac97); +int patch_vt1617a(struct snd_ac97 * ac97); +int patch_it2646(struct snd_ac97 * ac97); +int mpatch_si3036(struct snd_ac97 * ac97); diff --git a/sound/pci/ac97/ac97_pcm.c b/sound/pci/ac97/ac97_pcm.c index ded13165d63..c3e590bf7a0 100644 --- a/sound/pci/ac97/ac97_pcm.c +++ b/sound/pci/ac97/ac97_pcm.c @@ -170,7 +170,7 @@ static unsigned char get_slot_reg(struct ac97_pcm *pcm, unsigned short cidx, return rate_cregs[slot - 3]; } -static int set_spdif_rate(ac97_t *ac97, unsigned short rate) +static int set_spdif_rate(struct snd_ac97 *ac97, unsigned short rate) { unsigned short old, bits, reg, mask; unsigned int sbits; @@ -254,7 +254,7 @@ static int set_spdif_rate(ac97_t *ac97, unsigned short rate) * * Returns zero if successful, or a negative error code on failure. */ -int snd_ac97_set_rate(ac97_t *ac97, int reg, unsigned int rate) +int snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate) { int dbl; unsigned int tmp; @@ -315,7 +315,7 @@ int snd_ac97_set_rate(ac97_t *ac97, int reg, unsigned int rate) return 0; } -static unsigned short get_pslots(ac97_t *ac97, unsigned char *rate_table, unsigned short *spdif_slots) +static unsigned short get_pslots(struct snd_ac97 *ac97, unsigned char *rate_table, unsigned short *spdif_slots) { if (!ac97_is_audio(ac97)) return 0; @@ -390,7 +390,7 @@ static unsigned short get_pslots(ac97_t *ac97, unsigned char *rate_table, unsign } } -static unsigned short get_cslots(ac97_t *ac97) +static unsigned short get_cslots(struct snd_ac97 *ac97) { unsigned short slots; @@ -437,7 +437,7 @@ static unsigned int get_rates(struct ac97_pcm *pcm, unsigned int cidx, unsigned * some slots are available, pcm->xxx.slots and pcm->xxx.rslots[] members * are reduced and might be zero. */ -int snd_ac97_pcm_assign(ac97_bus_t *bus, +int snd_ac97_pcm_assign(struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms) { @@ -449,7 +449,7 @@ int snd_ac97_pcm_assign(ac97_bus_t *bus, unsigned short tmp, slots; unsigned short spdif_slots[4]; unsigned int rates; - ac97_t *codec; + struct snd_ac97 *codec; rpcms = kcalloc(pcms_count, sizeof(struct ac97_pcm), GFP_KERNEL); if (rpcms == NULL) @@ -560,7 +560,7 @@ int snd_ac97_pcm_assign(ac97_bus_t *bus, int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots) { - ac97_bus_t *bus; + struct snd_ac97_bus *bus; int i, cidx, r, ok_flag; unsigned int reg_ok[4] = {0,0,0,0}; unsigned char reg; @@ -639,7 +639,7 @@ int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, */ int snd_ac97_pcm_close(struct ac97_pcm *pcm) { - ac97_bus_t *bus; + struct snd_ac97_bus *bus; unsigned short slots = pcm->aslots; int i, cidx; @@ -656,31 +656,31 @@ int snd_ac97_pcm_close(struct ac97_pcm *pcm) return 0; } -static int double_rate_hw_constraint_rate(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int double_rate_hw_constraint_rate(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - snd_interval_t *channels = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *channels = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); if (channels->min > 2) { - static const snd_interval_t single_rates = { + static const struct snd_interval single_rates = { .min = 1, .max = 48000, }; - snd_interval_t *rate = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct snd_interval *rate = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); return snd_interval_refine(rate, &single_rates); } return 0; } -static int double_rate_hw_constraint_channels(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int double_rate_hw_constraint_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - snd_interval_t *rate = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct snd_interval *rate = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (rate->min > 48000) { - static const snd_interval_t double_rate_channels = { + static const struct snd_interval double_rate_channels = { .min = 2, .max = 2, }; - snd_interval_t *channels = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *channels = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); return snd_interval_refine(channels, &double_rate_channels); } return 0; @@ -693,7 +693,7 @@ static int double_rate_hw_constraint_channels(snd_pcm_hw_params_t *params, * Installs the hardware constraint rules to prevent using double rates and * more than two channels at the same time. */ -int snd_ac97_pcm_double_rate_rules(snd_pcm_runtime_t *runtime) +int snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime) { int err; diff --git a/sound/pci/ac97/ac97_proc.c b/sound/pci/ac97/ac97_proc.c index f4333b867bd..26607320129 100644 --- a/sound/pci/ac97/ac97_proc.c +++ b/sound/pci/ac97/ac97_proc.c @@ -34,7 +34,7 @@ * proc interface */ -static void snd_ac97_proc_read_functions(ac97_t *ac97, snd_info_buffer_t *buffer) +static void snd_ac97_proc_read_functions(struct snd_ac97 *ac97, struct snd_info_buffer *buffer) { int header = 0, function; unsigned short info, sense_info; @@ -68,7 +68,7 @@ static void snd_ac97_proc_read_functions(ac97_t *ac97, snd_info_buffer_t *buffer } } -static void snd_ac97_proc_read_main(ac97_t *ac97, snd_info_buffer_t * buffer, int subidx) +static void snd_ac97_proc_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx) { char name[64]; unsigned short val, tmp, ext, mext; @@ -80,7 +80,6 @@ static void snd_ac97_proc_read_main(ac97_t *ac97, snd_info_buffer_t * buffer, in snd_ac97_get_name(NULL, ac97->id, name, 0); snd_iprintf(buffer, "%d-%d/%d: %s\n\n", ac97->addr, ac97->num, subidx, name); - if ((ac97->scaps & AC97_SCAP_AUDIO) == 0) goto __modem; @@ -299,9 +298,9 @@ static void snd_ac97_proc_read_main(ac97_t *ac97, snd_info_buffer_t * buffer, in } } -static void snd_ac97_proc_read(snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void snd_ac97_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - ac97_t *ac97 = entry->private_data; + struct snd_ac97 *ac97 = entry->private_data; down(&ac97->page_mutex); if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86 @@ -334,9 +333,9 @@ static void snd_ac97_proc_read(snd_info_entry_t *entry, snd_info_buffer_t * buff #ifdef CONFIG_SND_DEBUG /* direct register write for debugging */ -static void snd_ac97_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void snd_ac97_proc_regs_write(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - ac97_t *ac97 = entry->private_data; + struct snd_ac97 *ac97 = entry->private_data; char line[64]; unsigned int reg, val; down(&ac97->page_mutex); @@ -351,7 +350,7 @@ static void snd_ac97_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t } #endif -static void snd_ac97_proc_regs_read_main(ac97_t *ac97, snd_info_buffer_t * buffer, int subidx) +static void snd_ac97_proc_regs_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx) { int reg, val; @@ -361,10 +360,10 @@ static void snd_ac97_proc_regs_read_main(ac97_t *ac97, snd_info_buffer_t * buffe } } -static void snd_ac97_proc_regs_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ac97_proc_regs_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ac97_t *ac97 = entry->private_data; + struct snd_ac97 *ac97 = entry->private_data; down(&ac97->page_mutex); if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) { // Analog Devices AD1881/85/86 @@ -385,9 +384,9 @@ static void snd_ac97_proc_regs_read(snd_info_entry_t *entry, up(&ac97->page_mutex); } -void snd_ac97_proc_init(ac97_t * ac97) +void snd_ac97_proc_init(struct snd_ac97 * ac97) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; char name[32]; const char *prefix; @@ -419,7 +418,7 @@ void snd_ac97_proc_init(ac97_t * ac97) ac97->proc_regs = entry; } -void snd_ac97_proc_done(ac97_t * ac97) +void snd_ac97_proc_done(struct snd_ac97 * ac97) { if (ac97->proc_regs) { snd_info_unregister(ac97->proc_regs); @@ -431,9 +430,9 @@ void snd_ac97_proc_done(ac97_t * ac97) } } -void snd_ac97_bus_proc_init(ac97_bus_t * bus) +void snd_ac97_bus_proc_init(struct snd_ac97_bus * bus) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; char name[32]; sprintf(name, "codec97#%d", bus->num); @@ -447,7 +446,7 @@ void snd_ac97_bus_proc_init(ac97_bus_t * bus) bus->proc = entry; } -void snd_ac97_bus_proc_done(ac97_bus_t * bus) +void snd_ac97_bus_proc_done(struct snd_ac97_bus * bus) { if (bus->proc) { snd_info_unregister(bus->proc); -- cgit v1.2.3-70-g09d2 From 9f38945fab04a0a0ea50880fa634f9bfa28f6226 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:44:47 +0100 Subject: [ALSA] Remove xxx_t typedefs: AK4531 codec Modules: AK4531 codec Remove xxx_t typedefs from the AK4531 codec support code. Signed-off-by: Takashi Iwai --- include/sound/ak4531_codec.h | 12 ++++----- sound/pci/ac97/ak4531_codec.c | 59 ++++++++++++++++++++++--------------------- 2 files changed, 36 insertions(+), 35 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/ak4531_codec.h b/include/sound/ak4531_codec.h index 8b18992376d..4e7c661af48 100644 --- a/include/sound/ak4531_codec.h +++ b/include/sound/ak4531_codec.h @@ -64,17 +64,17 @@ #define AK4531_AD_IN 0x18 /* AD input select */ #define AK4531_MIC_GAIN 0x19 /* MIC amplified gain */ -typedef struct _snd_ak4531 ak4531_t; - -struct _snd_ak4531 { - void (*write) (ak4531_t *ak4531, unsigned short reg, unsigned short val); +struct snd_ak4531 { + void (*write) (struct snd_ak4531 *ak4531, unsigned short reg, + unsigned short val); void *private_data; - void (*private_free) (ak4531_t *ak4531); + void (*private_free) (struct snd_ak4531 *ak4531); /* --- */ unsigned char regs[0x20]; struct semaphore reg_mutex; }; -int snd_ak4531_mixer(snd_card_t * card, ak4531_t * _ak4531, ak4531_t ** rak4531); +int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531, + struct snd_ak4531 **rak4531); #endif /* __SOUND_AK4531_CODEC_H */ diff --git a/sound/pci/ac97/ak4531_codec.c b/sound/pci/ac97/ak4531_codec.c index 4032c574837..088d8dc336b 100644 --- a/sound/pci/ac97/ak4531_codec.c +++ b/sound/pci/ac97/ak4531_codec.c @@ -30,7 +30,7 @@ MODULE_AUTHOR("Jaroslav Kysela "); MODULE_DESCRIPTION("Universal routines for AK4531 codec"); MODULE_LICENSE("GPL"); -static void snd_ak4531_proc_init(snd_card_t * card, ak4531_t * ak4531); +static void snd_ak4531_proc_init(struct snd_card *card, struct snd_ak4531 *ak4531); /* * @@ -38,7 +38,7 @@ static void snd_ak4531_proc_init(snd_card_t * card, ak4531_t * ak4531); #if 0 -static void snd_ak4531_dump(ak4531_t *ak4531) +static void snd_ak4531_dump(struct snd_ak4531 *ak4531) { int idx; @@ -58,7 +58,7 @@ static void snd_ak4531_dump(ak4531_t *ak4531) .get = snd_ak4531_get_single, .put = snd_ak4531_put_single, \ .private_value = reg | (shift << 16) | (mask << 24) | (invert << 22) } -static int snd_ak4531_info_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ak4531_info_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 24) & 0xff; @@ -69,9 +69,9 @@ static int snd_ak4531_info_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_ak4531_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ak4531_get_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ak4531_t *ak4531 = snd_kcontrol_chip(kcontrol); + struct snd_ak4531 *ak4531 = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 16) & 0x07; int mask = (kcontrol->private_value >> 24) & 0xff; @@ -88,9 +88,9 @@ static int snd_ak4531_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_ak4531_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ak4531_put_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ak4531_t *ak4531 = snd_kcontrol_chip(kcontrol); + struct snd_ak4531 *ak4531 = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 16) & 0x07; int mask = (kcontrol->private_value >> 24) & 0xff; @@ -117,7 +117,7 @@ static int snd_ak4531_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .get = snd_ak4531_get_double, .put = snd_ak4531_put_double, \ .private_value = left_reg | (right_reg << 8) | (left_shift << 16) | (right_shift << 19) | (mask << 24) | (invert << 22) } -static int snd_ak4531_info_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ak4531_info_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 24) & 0xff; @@ -128,9 +128,9 @@ static int snd_ak4531_info_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_ak4531_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ak4531_get_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ak4531_t *ak4531 = snd_kcontrol_chip(kcontrol); + struct snd_ak4531 *ak4531 = snd_kcontrol_chip(kcontrol); int left_reg = kcontrol->private_value & 0xff; int right_reg = (kcontrol->private_value >> 8) & 0xff; int left_shift = (kcontrol->private_value >> 16) & 0x07; @@ -152,9 +152,9 @@ static int snd_ak4531_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_ak4531_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ak4531_put_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ak4531_t *ak4531 = snd_kcontrol_chip(kcontrol); + struct snd_ak4531 *ak4531 = snd_kcontrol_chip(kcontrol); int left_reg = kcontrol->private_value & 0xff; int right_reg = (kcontrol->private_value >> 8) & 0xff; int left_shift = (kcontrol->private_value >> 16) & 0x07; @@ -194,7 +194,7 @@ static int snd_ak4531_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .get = snd_ak4531_get_input_sw, .put = snd_ak4531_put_input_sw, \ .private_value = reg1 | (reg2 << 8) | (left_shift << 16) | (right_shift << 24) } -static int snd_ak4531_info_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ak4531_info_input_sw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 4; @@ -203,9 +203,9 @@ static int snd_ak4531_info_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_info return 0; } -static int snd_ak4531_get_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ak4531_get_input_sw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ak4531_t *ak4531 = snd_kcontrol_chip(kcontrol); + struct snd_ak4531 *ak4531 = snd_kcontrol_chip(kcontrol); int reg1 = kcontrol->private_value & 0xff; int reg2 = (kcontrol->private_value >> 8) & 0xff; int left_shift = (kcontrol->private_value >> 16) & 0x0f; @@ -220,9 +220,9 @@ static int snd_ak4531_get_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value return 0; } -static int snd_ak4531_put_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ak4531_put_input_sw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ak4531_t *ak4531 = snd_kcontrol_chip(kcontrol); + struct snd_ak4531 *ak4531 = snd_kcontrol_chip(kcontrol); int reg1 = kcontrol->private_value & 0xff; int reg2 = (kcontrol->private_value >> 8) & 0xff; int left_shift = (kcontrol->private_value >> 16) & 0x0f; @@ -244,7 +244,7 @@ static int snd_ak4531_put_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value return change; } -static snd_kcontrol_new_t snd_ak4531_controls[] = { +static struct snd_kcontrol_new snd_ak4531_controls[] = { AK4531_DOUBLE("Master Playback Switch", 0, AK4531_LMASTER, AK4531_RMASTER, 7, 7, 1, 1), AK4531_DOUBLE("Master Playback Volume", 0, AK4531_LMASTER, AK4531_RMASTER, 0, 0, 0x1f, 1), @@ -300,7 +300,7 @@ AK4531_SINGLE("AD Input Select", 0, AK4531_AD_IN, 0, 1, 0), AK4531_SINGLE("Mic Boost (+30dB)", 0, AK4531_MIC_GAIN, 0, 1, 0) }; -static int snd_ak4531_free(ak4531_t *ak4531) +static int snd_ak4531_free(struct snd_ak4531 *ak4531) { if (ak4531) { if (ak4531->private_free) @@ -310,9 +310,9 @@ static int snd_ak4531_free(ak4531_t *ak4531) return 0; } -static int snd_ak4531_dev_free(snd_device_t *device) +static int snd_ak4531_dev_free(struct snd_device *device) { - ak4531_t *ak4531 = device->device_data; + struct snd_ak4531 *ak4531 = device->device_data; return snd_ak4531_free(ak4531); } @@ -345,12 +345,13 @@ static u8 snd_ak4531_initial_map[0x19 + 1] = { 0x01 /* 19: Mic Amp Setup */ }; -int snd_ak4531_mixer(snd_card_t * card, ak4531_t * _ak4531, ak4531_t ** rak4531) +int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531, + struct snd_ak4531 **rak4531) { unsigned int idx; int err; - ak4531_t * ak4531; - static snd_device_ops_t ops = { + struct snd_ak4531 *ak4531; + static struct snd_device_ops ops = { .dev_free = snd_ak4531_dev_free, }; @@ -398,10 +399,10 @@ int snd_ak4531_mixer(snd_card_t * card, ak4531_t * _ak4531, ak4531_t ** rak4531) */ -static void snd_ak4531_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ak4531_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ak4531_t *ak4531 = entry->private_data; + struct snd_ak4531 *ak4531 = entry->private_data; snd_iprintf(buffer, "Asahi Kasei AK4531\n\n"); snd_iprintf(buffer, "Recording source : %s\n" @@ -410,9 +411,9 @@ static void snd_ak4531_proc_read(snd_info_entry_t *entry, ak4531->regs[AK4531_MIC_GAIN] & 1 ? "+30dB" : "+0dB"); } -static void snd_ak4531_proc_init(snd_card_t * card, ak4531_t * ak4531) +static void snd_ak4531_proc_init(struct snd_card *card, struct snd_ak4531 *ak4531) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(card, "ak4531", &entry)) snd_info_set_text_ops(entry, ak4531, 1024, snd_ak4531_proc_read); -- cgit v1.2.3-70-g09d2 From af26367f69a474ed809e4a59abb5855b47daaff4 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:46:59 +0100 Subject: [ALSA] Remove xxx_t typedefs: VXdriver Remove xxx_t typedefs from the VXdriver codes (vx_core support, vx222 and vxpocket). Signed-off-by: Takashi Iwai --- include/sound/vx_core.h | 123 ++++++++++++++------------- sound/drivers/vx/vx_core.c | 58 ++++++------- sound/drivers/vx/vx_hwdep.c | 24 +++--- sound/drivers/vx/vx_mixer.c | 162 +++++++++++++++++------------------ sound/drivers/vx/vx_pcm.c | 200 ++++++++++++++++++++++++-------------------- sound/drivers/vx/vx_uer.c | 22 ++--- sound/pci/vx222/vx222.c | 16 ++-- sound/pci/vx222/vx222.h | 2 +- sound/pci/vx222/vx222_ops.c | 84 +++++++++---------- sound/pcmcia/vx/vxp_mixer.c | 26 +++--- sound/pcmcia/vx/vxp_ops.c | 48 +++++------ sound/pcmcia/vx/vxpocket.c | 26 +++--- sound/pcmcia/vx/vxpocket.h | 8 +- 13 files changed, 410 insertions(+), 389 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h index 43c901bf7c1..0a85c37d1bc 100644 --- a/include/sound/vx_core.h +++ b/include/sound/vx_core.h @@ -36,9 +36,6 @@ struct firmware; struct device; -typedef struct snd_vx_core vx_core_t; -typedef struct vx_pipe vx_pipe_t; - #define VX_DRIVER_VERSION 0x010000 /* 1.0.0 */ /* @@ -76,7 +73,7 @@ struct vx_pipe { int channels; unsigned int differed_type; pcx_time_t pcx_time; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; int hbuf_size; /* H-buffer size in bytes */ int buffer_bytes; /* the ALSA pcm buffer size in bytes */ @@ -88,36 +85,38 @@ struct vx_pipe { u64 cur_count; /* current sample position (for playback) */ unsigned int references; /* an output pipe may be used for monitoring and/or playback */ - vx_pipe_t *monitoring_pipe; /* pointer to the monitoring pipe (capture pipe only)*/ + struct vx_pipe *monitoring_pipe; /* pointer to the monitoring pipe (capture pipe only)*/ struct tasklet_struct start_tq; }; +struct vx_core; + struct snd_vx_ops { /* low-level i/o */ - unsigned char (*in8)(vx_core_t *chip, int reg); - unsigned int (*in32)(vx_core_t *chip, int reg); - void (*out8)(vx_core_t *chip, int reg, unsigned char val); - void (*out32)(vx_core_t *chip, int reg, unsigned int val); + unsigned char (*in8)(struct vx_core *chip, int reg); + unsigned int (*in32)(struct vx_core *chip, int reg); + void (*out8)(struct vx_core *chip, int reg, unsigned char val); + void (*out32)(struct vx_core *chip, int reg, unsigned int val); /* irq */ - int (*test_and_ack)(vx_core_t *chip); - void (*validate_irq)(vx_core_t *chip, int enable); + int (*test_and_ack)(struct vx_core *chip); + void (*validate_irq)(struct vx_core *chip, int enable); /* codec */ - void (*write_codec)(vx_core_t *chip, int codec, unsigned int data); - void (*akm_write)(vx_core_t *chip, int reg, unsigned int data); - void (*reset_codec)(vx_core_t *chip); - void (*change_audio_source)(vx_core_t *chip, int src); - void (*set_clock_source)(vx_core_t *chp, int src); + void (*write_codec)(struct vx_core *chip, int codec, unsigned int data); + void (*akm_write)(struct vx_core *chip, int reg, unsigned int data); + void (*reset_codec)(struct vx_core *chip); + void (*change_audio_source)(struct vx_core *chip, int src); + void (*set_clock_source)(struct vx_core *chp, int src); /* chip init */ - int (*load_dsp)(vx_core_t *chip, int idx, const struct firmware *fw); - void (*reset_dsp)(vx_core_t *chip); - void (*reset_board)(vx_core_t *chip, int cold_reset); - int (*add_controls)(vx_core_t *chip); + int (*load_dsp)(struct vx_core *chip, int idx, const struct firmware *fw); + void (*reset_dsp)(struct vx_core *chip); + void (*reset_board)(struct vx_core *chip, int cold_reset); + int (*add_controls)(struct vx_core *chip); /* pcm */ - void (*dma_write)(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count); - void (*dma_read)(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count); + void (*dma_write)(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count); + void (*dma_read)(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count); }; struct snd_vx_hardware { @@ -158,10 +157,10 @@ enum { /* min/max values for analog output for old codecs */ #define VX_ANALOG_OUT_LEVEL_MAX 0xe3 -struct snd_vx_core { +struct vx_core { /* ALSA stuff */ - snd_card_t *card; - snd_pcm_t *pcm[VX_MAX_CODECS]; + struct snd_card *card; + struct snd_pcm *pcm[VX_MAX_CODECS]; int type; /* VX_TYPE_XXX */ int irq; @@ -179,7 +178,7 @@ struct snd_vx_core { unsigned int pcm_running; struct device *dev; - snd_hwdep_t *hwdep; + struct snd_hwdep *hwdep; struct vx_rmh irq_rmh; /* RMH used in interrupts */ @@ -216,14 +215,14 @@ struct snd_vx_core { /* * constructor */ -vx_core_t *snd_vx_create(snd_card_t *card, struct snd_vx_hardware *hw, - struct snd_vx_ops *ops, int extra_size); -int snd_vx_setup_firmware(vx_core_t *chip); -int snd_vx_load_boot_image(vx_core_t *chip, const struct firmware *dsp); -int snd_vx_dsp_boot(vx_core_t *chip, const struct firmware *dsp); -int snd_vx_dsp_load(vx_core_t *chip, const struct firmware *dsp); +struct vx_core *snd_vx_create(struct snd_card *card, struct snd_vx_hardware *hw, + struct snd_vx_ops *ops, int extra_size); +int snd_vx_setup_firmware(struct vx_core *chip); +int snd_vx_load_boot_image(struct vx_core *chip, const struct firmware *dsp); +int snd_vx_dsp_boot(struct vx_core *chip, const struct firmware *dsp); +int snd_vx_dsp_load(struct vx_core *chip, const struct firmware *dsp); -void snd_vx_free_firmware(vx_core_t *chip); +void snd_vx_free_firmware(struct vx_core *chip); /* * interrupt handler; exported for pcmcia @@ -233,37 +232,37 @@ irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs); /* * lowlevel functions */ -static inline int vx_test_and_ack(vx_core_t *chip) +static inline int vx_test_and_ack(struct vx_core *chip) { snd_assert(chip->ops->test_and_ack, return -ENXIO); return chip->ops->test_and_ack(chip); } -static inline void vx_validate_irq(vx_core_t *chip, int enable) +static inline void vx_validate_irq(struct vx_core *chip, int enable) { snd_assert(chip->ops->validate_irq, return); chip->ops->validate_irq(chip, enable); } -static inline unsigned char snd_vx_inb(vx_core_t *chip, int reg) +static inline unsigned char snd_vx_inb(struct vx_core *chip, int reg) { snd_assert(chip->ops->in8, return 0); return chip->ops->in8(chip, reg); } -static inline unsigned int snd_vx_inl(vx_core_t *chip, int reg) +static inline unsigned int snd_vx_inl(struct vx_core *chip, int reg) { snd_assert(chip->ops->in32, return 0); return chip->ops->in32(chip, reg); } -static inline void snd_vx_outb(vx_core_t *chip, int reg, unsigned char val) +static inline void snd_vx_outb(struct vx_core *chip, int reg, unsigned char val) { snd_assert(chip->ops->out8, return); chip->ops->out8(chip, reg, val); } -static inline void snd_vx_outl(vx_core_t *chip, int reg, unsigned int val) +static inline void snd_vx_outl(struct vx_core *chip, int reg, unsigned int val) { snd_assert(chip->ops->out32, return); chip->ops->out32(chip, reg, val); @@ -274,25 +273,25 @@ static inline void snd_vx_outl(vx_core_t *chip, int reg, unsigned int val) #define vx_inl(chip,reg) snd_vx_inl(chip, VX_##reg) #define vx_outl(chip,reg,val) snd_vx_outl(chip, VX_##reg,val) -static inline void vx_reset_dsp(vx_core_t *chip) +static inline void vx_reset_dsp(struct vx_core *chip) { snd_assert(chip->ops->reset_dsp, return); chip->ops->reset_dsp(chip); } -int vx_send_msg(vx_core_t *chip, struct vx_rmh *rmh); -int vx_send_msg_nolock(vx_core_t *chip, struct vx_rmh *rmh); -int vx_send_rih(vx_core_t *chip, int cmd); -int vx_send_rih_nolock(vx_core_t *chip, int cmd); +int vx_send_msg(struct vx_core *chip, struct vx_rmh *rmh); +int vx_send_msg_nolock(struct vx_core *chip, struct vx_rmh *rmh); +int vx_send_rih(struct vx_core *chip, int cmd); +int vx_send_rih_nolock(struct vx_core *chip, int cmd); -void vx_reset_codec(vx_core_t *chip, int cold_reset); +void vx_reset_codec(struct vx_core *chip, int cold_reset); /* * check the bit on the specified register * returns zero if a bit matches, or a negative error code. * exported for vxpocket driver */ -int snd_vx_check_reg_bit(vx_core_t *chip, int reg, int mask, int bit, int time); +int snd_vx_check_reg_bit(struct vx_core *chip, int reg, int mask, int bit, int time); #define vx_check_isr(chip,mask,bit,time) snd_vx_check_reg_bit(chip, VX_ISR, mask, bit, time) #define vx_wait_isr_bit(chip,bit) vx_check_isr(chip, bit, bit, 200) #define vx_wait_for_rx_full(chip) vx_wait_isr_bit(chip, ISR_RX_FULL) @@ -301,15 +300,15 @@ int snd_vx_check_reg_bit(vx_core_t *chip, int reg, int mask, int bit, int time); /* * pseudo-DMA transfer */ -static inline void vx_pseudo_dma_write(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count) +static inline void vx_pseudo_dma_write(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count) { snd_assert(chip->ops->dma_write, return); chip->ops->dma_write(chip, runtime, pipe, count); } -static inline void vx_pseudo_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count) +static inline void vx_pseudo_dma_read(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count) { snd_assert(chip->ops->dma_read, return); chip->ops->dma_read(chip, runtime, pipe, count); @@ -327,24 +326,24 @@ static inline void vx_pseudo_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtim /* * pcm stuff */ -int snd_vx_pcm_new(vx_core_t *chip); -void vx_pcm_update_intr(vx_core_t *chip, unsigned int events); +int snd_vx_pcm_new(struct vx_core *chip); +void vx_pcm_update_intr(struct vx_core *chip, unsigned int events); /* * mixer stuff */ -int snd_vx_mixer_new(vx_core_t *chip); -void vx_toggle_dac_mute(vx_core_t *chip, int mute); -int vx_sync_audio_source(vx_core_t *chip); -int vx_set_monitor_level(vx_core_t *chip, int audio, int level, int active); +int snd_vx_mixer_new(struct vx_core *chip); +void vx_toggle_dac_mute(struct vx_core *chip, int mute); +int vx_sync_audio_source(struct vx_core *chip); +int vx_set_monitor_level(struct vx_core *chip, int audio, int level, int active); /* * IEC958 & clock stuff */ -void vx_set_iec958_status(vx_core_t *chip, unsigned int bits); -int vx_set_clock(vx_core_t *chip, unsigned int freq); -void vx_set_internal_clock(vx_core_t *chip, unsigned int freq); -int vx_change_frequency(vx_core_t *chip); +void vx_set_iec958_status(struct vx_core *chip, unsigned int bits); +int vx_set_clock(struct vx_core *chip, unsigned int freq); +void vx_set_internal_clock(struct vx_core *chip, unsigned int freq); +int vx_change_frequency(struct vx_core *chip); /* diff --git a/sound/drivers/vx/vx_core.c b/sound/drivers/vx/vx_core.c index e6e4cf99741..5abf4235177 100644 --- a/sound/drivers/vx/vx_core.c +++ b/sound/drivers/vx/vx_core.c @@ -49,7 +49,7 @@ MODULE_LICENSE("GPL"); * * returns zero if a bit matches, or a negative error code. */ -int snd_vx_check_reg_bit(vx_core_t *chip, int reg, int mask, int bit, int time) +int snd_vx_check_reg_bit(struct vx_core *chip, int reg, int mask, int bit, int time) { unsigned long end_time = jiffies + (time * HZ + 999) / 1000; #ifdef CONFIG_SND_DEBUG @@ -78,7 +78,7 @@ int snd_vx_check_reg_bit(vx_core_t *chip, int reg, int mask, int bit, int time) * returns 0 if successful, or a negative error code. * */ -static int vx_send_irq_dsp(vx_core_t *chip, int num) +static int vx_send_irq_dsp(struct vx_core *chip, int num) { int nirq; @@ -99,7 +99,7 @@ static int vx_send_irq_dsp(vx_core_t *chip, int num) * * returns 0 if successful, or a negative error code. */ -static int vx_reset_chk(vx_core_t *chip) +static int vx_reset_chk(struct vx_core *chip) { /* Reset irq CHK */ if (vx_send_irq_dsp(chip, IRQ_RESET_CHK) < 0) @@ -118,7 +118,7 @@ static int vx_reset_chk(vx_core_t *chip) * the error code can be VX-specific, retrieved via vx_get_error(). * NB: call with spinlock held! */ -static int vx_transfer_end(vx_core_t *chip, int cmd) +static int vx_transfer_end(struct vx_core *chip, int cmd) { int err; @@ -156,7 +156,7 @@ static int vx_transfer_end(vx_core_t *chip, int cmd) * the error code can be VX-specific, retrieved via vx_get_error(). * NB: call with spinlock held! */ -static int vx_read_status(vx_core_t *chip, struct vx_rmh *rmh) +static int vx_read_status(struct vx_core *chip, struct vx_rmh *rmh) { int i, err, val, size; @@ -236,7 +236,7 @@ static int vx_read_status(vx_core_t *chip, struct vx_rmh *rmh) * * this function doesn't call spinlock at all. */ -int vx_send_msg_nolock(vx_core_t *chip, struct vx_rmh *rmh) +int vx_send_msg_nolock(struct vx_core *chip, struct vx_rmh *rmh) { int i, err; @@ -341,7 +341,7 @@ int vx_send_msg_nolock(vx_core_t *chip, struct vx_rmh *rmh) * returns 0 if successful, or a negative error code. * see vx_send_msg_nolock(). */ -int vx_send_msg(vx_core_t *chip, struct vx_rmh *rmh) +int vx_send_msg(struct vx_core *chip, struct vx_rmh *rmh) { unsigned long flags; int err; @@ -364,7 +364,7 @@ int vx_send_msg(vx_core_t *chip, struct vx_rmh *rmh) * * unlike RMH, no command is sent to DSP. */ -int vx_send_rih_nolock(vx_core_t *chip, int cmd) +int vx_send_rih_nolock(struct vx_core *chip, int cmd) { int err; @@ -401,7 +401,7 @@ int vx_send_rih_nolock(vx_core_t *chip, int cmd) * * see vx_send_rih_nolock(). */ -int vx_send_rih(vx_core_t *chip, int cmd) +int vx_send_rih(struct vx_core *chip, int cmd) { unsigned long flags; int err; @@ -418,7 +418,7 @@ int vx_send_rih(vx_core_t *chip, int cmd) * snd_vx_boot_xilinx - boot up the xilinx interface * @boot: the boot record to load */ -int snd_vx_load_boot_image(vx_core_t *chip, const struct firmware *boot) +int snd_vx_load_boot_image(struct vx_core *chip, const struct firmware *boot) { unsigned int i; int no_fillup = vx_has_new_dsp(chip); @@ -470,7 +470,7 @@ int snd_vx_load_boot_image(vx_core_t *chip, const struct firmware *boot) * * called from irq handler only */ -static int vx_test_irq_src(vx_core_t *chip, unsigned int *ret) +static int vx_test_irq_src(struct vx_core *chip, unsigned int *ret) { int err; @@ -491,7 +491,7 @@ static int vx_test_irq_src(vx_core_t *chip, unsigned int *ret) */ static void vx_interrupt(unsigned long private_data) { - vx_core_t *chip = (vx_core_t *) private_data; + struct vx_core *chip = (struct vx_core *) private_data; unsigned int events; if (chip->chip_status & VX_STAT_IS_STALE) @@ -535,7 +535,7 @@ static void vx_interrupt(unsigned long private_data) */ irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs) { - vx_core_t *chip = dev; + struct vx_core *chip = dev; if (! (chip->chip_status & VX_STAT_CHIP_INIT) || (chip->chip_status & VX_STAT_IS_STALE)) @@ -548,7 +548,7 @@ irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs) /* */ -static void vx_reset_board(vx_core_t *chip, int cold_reset) +static void vx_reset_board(struct vx_core *chip, int cold_reset) { snd_assert(chip->ops->reset_board, return); @@ -587,9 +587,9 @@ static void vx_reset_board(vx_core_t *chip, int cold_reset) * proc interface */ -static void vx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void vx_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - vx_core_t *chip = entry->private_data; + struct vx_core *chip = entry->private_data; static char *audio_src_vxp[] = { "Line", "Mic", "Digital" }; static char *audio_src_vx2[] = { "Analog", "Analog", "Digital" }; static char *clock_mode[] = { "Auto", "Internal", "External" }; @@ -630,9 +630,9 @@ static void vx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) chip->ibl.granularity); } -static void vx_proc_init(vx_core_t *chip) +static void vx_proc_init(struct vx_core *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "vx-status", &entry)) snd_info_set_text_ops(entry, chip, 1024, vx_proc_read); @@ -642,7 +642,7 @@ static void vx_proc_init(vx_core_t *chip) /** * snd_vx_dsp_boot - load the DSP boot */ -int snd_vx_dsp_boot(vx_core_t *chip, const struct firmware *boot) +int snd_vx_dsp_boot(struct vx_core *chip, const struct firmware *boot) { int err; int cold_reset = !(chip->chip_status & VX_STAT_DEVICE_INIT); @@ -660,7 +660,7 @@ int snd_vx_dsp_boot(vx_core_t *chip, const struct firmware *boot) /** * snd_vx_dsp_load - load the DSP image */ -int snd_vx_dsp_load(vx_core_t *chip, const struct firmware *dsp) +int snd_vx_dsp_load(struct vx_core *chip, const struct firmware *dsp) { unsigned int i; int err; @@ -709,9 +709,9 @@ int snd_vx_dsp_load(vx_core_t *chip, const struct firmware *dsp) /* * suspend */ -static int snd_vx_suspend(snd_card_t *card, pm_message_t state) +static int snd_vx_suspend(struct snd_card *card, pm_message_t state) { - vx_core_t *chip = card->pm_private_data; + struct vx_core *chip = card->pm_private_data; unsigned int i; snd_assert(chip, return -EINVAL); @@ -726,9 +726,9 @@ static int snd_vx_suspend(snd_card_t *card, pm_message_t state) /* * resume */ -static int snd_vx_resume(snd_card_t *card) +static int snd_vx_resume(struct snd_card *card) { - vx_core_t *chip = card->pm_private_data; + struct vx_core *chip = card->pm_private_data; int i, err; snd_assert(chip, return -EINVAL); @@ -754,7 +754,7 @@ static int snd_vx_resume(snd_card_t *card) #endif /** - * snd_vx_create - constructor for vx_core_t + * snd_vx_create - constructor for struct vx_core * @hw: hardware specific record * * this function allocates the instance and prepare for the hardware @@ -762,11 +762,11 @@ static int snd_vx_resume(snd_card_t *card) * * return the instance pointer if successful, NULL in error. */ -vx_core_t *snd_vx_create(snd_card_t *card, struct snd_vx_hardware *hw, - struct snd_vx_ops *ops, - int extra_size) +struct vx_core *snd_vx_create(struct snd_card *card, struct snd_vx_hardware *hw, + struct snd_vx_ops *ops, + int extra_size) { - vx_core_t *chip; + struct vx_core *chip; snd_assert(card && hw && ops, return NULL); diff --git a/sound/drivers/vx/vx_hwdep.c b/sound/drivers/vx/vx_hwdep.c index c4993b004c4..d837783fb53 100644 --- a/sound/drivers/vx/vx_hwdep.c +++ b/sound/drivers/vx/vx_hwdep.c @@ -30,7 +30,7 @@ #ifdef SND_VX_FW_LOADER -int snd_vx_setup_firmware(vx_core_t *chip) +int snd_vx_setup_firmware(struct vx_core *chip) { static char *fw_files[VX_TYPE_NUMS][4] = { [VX_TYPE_BOARD] = { @@ -95,7 +95,7 @@ int snd_vx_setup_firmware(vx_core_t *chip) } /* exported */ -void snd_vx_free_firmware(vx_core_t *chip) +void snd_vx_free_firmware(struct vx_core *chip) { #ifdef CONFIG_PM int i; @@ -106,17 +106,18 @@ void snd_vx_free_firmware(vx_core_t *chip) #else /* old style firmware loading */ -static int vx_hwdep_open(snd_hwdep_t *hw, struct file *file) +static int vx_hwdep_open(struct snd_hwdep *hw, struct file *file) { return 0; } -static int vx_hwdep_release(snd_hwdep_t *hw, struct file *file) +static int vx_hwdep_release(struct snd_hwdep *hw, struct file *file) { return 0; } -static int vx_hwdep_dsp_status(snd_hwdep_t *hw, snd_hwdep_dsp_status_t *info) +static int vx_hwdep_dsp_status(struct snd_hwdep *hw, + struct snd_hwdep_dsp_status *info) { static char *type_ids[VX_TYPE_NUMS] = { [VX_TYPE_BOARD] = "vxboard", @@ -125,7 +126,7 @@ static int vx_hwdep_dsp_status(snd_hwdep_t *hw, snd_hwdep_dsp_status_t *info) [VX_TYPE_VXPOCKET] = "vxpocket", [VX_TYPE_VXP440] = "vxp440", }; - vx_core_t *vx = hw->private_data; + struct vx_core *vx = hw->private_data; snd_assert(type_ids[vx->type], return -EINVAL); strcpy(info->id, type_ids[vx->type]); @@ -147,9 +148,10 @@ static void free_fw(const struct firmware *fw) } } -static int vx_hwdep_dsp_load(snd_hwdep_t *hw, snd_hwdep_dsp_image_t *dsp) +static int vx_hwdep_dsp_load(struct snd_hwdep *hw, + struct snd_hwdep_dsp_image *dsp) { - vx_core_t *vx = hw->private_data; + struct vx_core *vx = hw->private_data; int index, err; struct firmware *fw; @@ -216,10 +218,10 @@ static int vx_hwdep_dsp_load(snd_hwdep_t *hw, snd_hwdep_dsp_image_t *dsp) /* exported */ -int snd_vx_setup_firmware(vx_core_t *chip) +int snd_vx_setup_firmware(struct vx_core *chip) { int err; - snd_hwdep_t *hw; + struct snd_hwdep *hw; if ((err = snd_hwdep_new(chip->card, SND_VX_HWDEP_ID, 0, &hw)) < 0) return err; @@ -238,7 +240,7 @@ int snd_vx_setup_firmware(vx_core_t *chip) } /* exported */ -void snd_vx_free_firmware(vx_core_t *chip) +void snd_vx_free_firmware(struct vx_core *chip) { #ifdef CONFIG_PM int i; diff --git a/sound/drivers/vx/vx_mixer.c b/sound/drivers/vx/vx_mixer.c index 19fc68c2337..8ec2c605d2f 100644 --- a/sound/drivers/vx/vx_mixer.c +++ b/sound/drivers/vx/vx_mixer.c @@ -30,7 +30,7 @@ /* * write a codec data (24bit) */ -static void vx_write_codec_reg(vx_core_t *chip, int codec, unsigned int data) +static void vx_write_codec_reg(struct vx_core *chip, int codec, unsigned int data) { unsigned long flags; @@ -47,7 +47,7 @@ static void vx_write_codec_reg(vx_core_t *chip, int codec, unsigned int data) /* * Data type used to access the Codec */ -typedef union { +union vx_codec_data { u32 l; #ifdef SNDRV_BIG_ENDIAN struct w { @@ -72,7 +72,7 @@ typedef union { u8 hh; } b; #endif -} vx_codec_data_t; +}; #define SET_CDC_DATA_SEL(di,s) ((di).b.mh = (u8) (s)) #define SET_CDC_DATA_REG(di,r) ((di).b.ml = (u8) (r)) @@ -85,9 +85,9 @@ typedef union { * @reg: register index * @val: data value */ -static void vx_set_codec_reg(vx_core_t *chip, int codec, int reg, int val) +static void vx_set_codec_reg(struct vx_core *chip, int codec, int reg, int val) { - vx_codec_data_t data; + union vx_codec_data data; /* DAC control register */ SET_CDC_DATA_INIT(data); SET_CDC_DATA_REG(data, reg); @@ -102,7 +102,7 @@ static void vx_set_codec_reg(vx_core_t *chip, int codec, int reg, int val) * @left: left output level, 0 = mute * @right: right output level */ -static void vx_set_analog_output_level(vx_core_t *chip, int codec, int left, int right) +static void vx_set_analog_output_level(struct vx_core *chip, int codec, int left, int right) { left = chip->hw->output_level_max - left; right = chip->hw->output_level_max - right; @@ -126,7 +126,7 @@ static void vx_set_analog_output_level(vx_core_t *chip, int codec, int left, int #define DAC_ATTEN_MIN 0x08 #define DAC_ATTEN_MAX 0x38 -void vx_toggle_dac_mute(vx_core_t *chip, int mute) +void vx_toggle_dac_mute(struct vx_core *chip, int mute) { unsigned int i; for (i = 0; i < chip->hw->num_codecs; i++) { @@ -141,7 +141,7 @@ void vx_toggle_dac_mute(vx_core_t *chip, int mute) /* * vx_reset_codec - reset and initialize the codecs */ -void vx_reset_codec(vx_core_t *chip, int cold_reset) +void vx_reset_codec(struct vx_core *chip, int cold_reset) { unsigned int i; int port = chip->type >= VX_TYPE_VXPOCKET ? 0x75 : 0x65; @@ -175,7 +175,7 @@ void vx_reset_codec(vx_core_t *chip, int cold_reset) * change the audio input source * @src: the target source (VX_AUDIO_SRC_XXX) */ -static void vx_change_audio_source(vx_core_t *chip, int src) +static void vx_change_audio_source(struct vx_core *chip, int src) { unsigned long flags; @@ -192,7 +192,7 @@ static void vx_change_audio_source(vx_core_t *chip, int src) * change the audio source if necessary and possible * returns 1 if the source is actually changed. */ -int vx_sync_audio_source(vx_core_t *chip) +int vx_sync_audio_source(struct vx_core *chip) { if (chip->audio_source_target == chip->audio_source || chip->pcm_running) @@ -217,7 +217,7 @@ struct vx_audio_level { short monitor_level; }; -static int vx_adjust_audio_level(vx_core_t *chip, int audio, int capture, +static int vx_adjust_audio_level(struct vx_core *chip, int audio, int capture, struct vx_audio_level *info) { struct vx_rmh rmh; @@ -256,7 +256,7 @@ static int vx_adjust_audio_level(vx_core_t *chip, int audio, int capture, #if 0 // not used -static int vx_read_audio_level(vx_core_t *chip, int audio, int capture, +static int vx_read_audio_level(struct vx_core *chip, int audio, int capture, struct vx_audio_level *info) { int err; @@ -283,7 +283,7 @@ static int vx_read_audio_level(vx_core_t *chip, int audio, int capture, * set the monitoring level and mute state of the given audio * no more static, because must be called from vx_pcm to demute monitoring */ -int vx_set_monitor_level(vx_core_t *chip, int audio, int level, int active) +int vx_set_monitor_level(struct vx_core *chip, int audio, int level, int active) { struct vx_audio_level info; @@ -301,7 +301,7 @@ int vx_set_monitor_level(vx_core_t *chip, int audio, int level, int active) /* * set the mute status of the given audio */ -static int vx_set_audio_switch(vx_core_t *chip, int audio, int active) +static int vx_set_audio_switch(struct vx_core *chip, int audio, int active) { struct vx_audio_level info; @@ -315,7 +315,7 @@ static int vx_set_audio_switch(vx_core_t *chip, int audio, int active) /* * set the mute status of the given audio */ -static int vx_set_audio_gain(vx_core_t *chip, int audio, int capture, int level) +static int vx_set_audio_gain(struct vx_core *chip, int audio, int capture, int level) { struct vx_audio_level info; @@ -329,7 +329,7 @@ static int vx_set_audio_gain(vx_core_t *chip, int audio, int capture, int level) /* * reset all audio levels */ -static void vx_reset_audio_levels(vx_core_t *chip) +static void vx_reset_audio_levels(struct vx_core *chip) { unsigned int i, c; struct vx_audio_level info; @@ -375,7 +375,7 @@ struct vx_vu_meter { * @capture: 0 = playback, 1 = capture operation * @info: the array of vx_vu_meter records (size = 2). */ -static int vx_get_audio_vu_meter(vx_core_t *chip, int audio, int capture, struct vx_vu_meter *info) +static int vx_get_audio_vu_meter(struct vx_core *chip, int audio, int capture, struct vx_vu_meter *info) { struct vx_rmh rmh; int i, err; @@ -413,9 +413,9 @@ static int vx_get_audio_vu_meter(vx_core_t *chip, int audio, int capture, struct /* * output level control */ -static int vx_output_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_output_level_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; uinfo->value.integer.min = 0; @@ -423,9 +423,9 @@ static int vx_output_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *u return 0; } -static int vx_output_level_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_output_level_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int codec = kcontrol->id.index; down(&chip->mixer_mutex); ucontrol->value.integer.value[0] = chip->output_level[codec][0]; @@ -434,9 +434,9 @@ static int vx_output_level_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u return 0; } -static int vx_output_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_output_level_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int codec = kcontrol->id.index; down(&chip->mixer_mutex); if (ucontrol->value.integer.value[0] != chip->output_level[codec][0] || @@ -453,7 +453,7 @@ static int vx_output_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u return 0; } -static snd_kcontrol_new_t vx_control_output_level = { +static struct snd_kcontrol_new vx_control_output_level = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Master Playback Volume", .info = vx_output_level_info, @@ -464,7 +464,7 @@ static snd_kcontrol_new_t vx_control_output_level = { /* * audio source select */ -static int vx_audio_src_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_audio_src_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts_mic[3] = { "Digital", "Line", "Mic" @@ -472,7 +472,7 @@ static int vx_audio_src_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinf static char *texts_vx2[2] = { "Digital", "Analog" }; - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -492,16 +492,16 @@ static int vx_audio_src_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinf return 0; } -static int vx_audio_src_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_src_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = chip->audio_source_target; return 0; } -static int vx_audio_src_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_src_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); down(&chip->mixer_mutex); if (chip->audio_source_target != ucontrol->value.enumerated.item[0]) { chip->audio_source_target = ucontrol->value.enumerated.item[0]; @@ -513,7 +513,7 @@ static int vx_audio_src_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon return 0; } -static snd_kcontrol_new_t vx_control_audio_src = { +static struct snd_kcontrol_new vx_control_audio_src = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Capture Source", .info = vx_audio_src_info, @@ -524,7 +524,7 @@ static snd_kcontrol_new_t vx_control_audio_src = { /* * clock mode selection */ -static int vx_clock_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_clock_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = { "Auto", "Internal", "External" @@ -540,16 +540,16 @@ static int vx_clock_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin return 0; } -static int vx_clock_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_clock_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = chip->clock_mode; return 0; } -static int vx_clock_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_clock_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); down(&chip->mixer_mutex); if (chip->clock_mode != ucontrol->value.enumerated.item[0]) { chip->clock_mode = ucontrol->value.enumerated.item[0]; @@ -561,7 +561,7 @@ static int vx_clock_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static snd_kcontrol_new_t vx_control_clock_mode = { +static struct snd_kcontrol_new vx_control_clock_mode = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Clock Mode", .info = vx_clock_mode_info, @@ -572,7 +572,7 @@ static snd_kcontrol_new_t vx_control_clock_mode = { /* * Audio Gain */ -static int vx_audio_gain_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_audio_gain_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -581,9 +581,9 @@ static int vx_audio_gain_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin return 0; } -static int vx_audio_gain_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_gain_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; int capture = (kcontrol->private_value >> 8) & 1; @@ -594,9 +594,9 @@ static int vx_audio_gain_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static int vx_audio_gain_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_gain_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; int capture = (kcontrol->private_value >> 8) & 1; @@ -612,9 +612,9 @@ static int vx_audio_gain_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static int vx_audio_monitor_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_monitor_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; down(&chip->mixer_mutex); @@ -624,9 +624,9 @@ static int vx_audio_monitor_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int vx_audio_monitor_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_monitor_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; down(&chip->mixer_mutex); @@ -643,7 +643,7 @@ static int vx_audio_monitor_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int vx_audio_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_audio_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; @@ -652,9 +652,9 @@ static int vx_audio_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo return 0; } -static int vx_audio_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; down(&chip->mixer_mutex); @@ -664,9 +664,9 @@ static int vx_audio_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int vx_audio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_audio_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; down(&chip->mixer_mutex); @@ -681,9 +681,9 @@ static int vx_audio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int vx_monitor_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_monitor_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; down(&chip->mixer_mutex); @@ -693,9 +693,9 @@ static int vx_monitor_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static int vx_monitor_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_monitor_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); int audio = kcontrol->private_value & 0xff; down(&chip->mixer_mutex); @@ -712,28 +712,28 @@ static int vx_monitor_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static snd_kcontrol_new_t vx_control_audio_gain = { +static struct snd_kcontrol_new vx_control_audio_gain = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, /* name will be filled later */ .info = vx_audio_gain_info, .get = vx_audio_gain_get, .put = vx_audio_gain_put }; -static snd_kcontrol_new_t vx_control_output_switch = { +static struct snd_kcontrol_new vx_control_output_switch = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Playback Switch", .info = vx_audio_sw_info, .get = vx_audio_sw_get, .put = vx_audio_sw_put }; -static snd_kcontrol_new_t vx_control_monitor_gain = { +static struct snd_kcontrol_new vx_control_monitor_gain = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Monitoring Volume", .info = vx_audio_gain_info, /* shared */ .get = vx_audio_monitor_get, .put = vx_audio_monitor_put }; -static snd_kcontrol_new_t vx_control_monitor_switch = { +static struct snd_kcontrol_new vx_control_monitor_switch = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Monitoring Switch", .info = vx_audio_sw_info, /* shared */ @@ -745,16 +745,16 @@ static snd_kcontrol_new_t vx_control_monitor_switch = { /* * IEC958 status bits */ -static int vx_iec958_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_iec958_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int vx_iec958_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_iec958_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); down(&chip->mixer_mutex); ucontrol->value.iec958.status[0] = (chip->uer_bits >> 0) & 0xff; @@ -765,7 +765,7 @@ static int vx_iec958_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro return 0; } -static int vx_iec958_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_iec958_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -774,9 +774,9 @@ static int vx_iec958_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *u return 0; } -static int vx_iec958_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_iec958_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); unsigned int val; val = (ucontrol->value.iec958.status[0] << 0) | @@ -794,7 +794,7 @@ static int vx_iec958_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro return 0; } -static snd_kcontrol_new_t vx_control_iec958_mask = { +static struct snd_kcontrol_new vx_control_iec958_mask = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), @@ -802,7 +802,7 @@ static snd_kcontrol_new_t vx_control_iec958_mask = { .get = vx_iec958_mask_get, }; -static snd_kcontrol_new_t vx_control_iec958 = { +static struct snd_kcontrol_new vx_control_iec958 = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .info = vx_iec958_info, @@ -818,7 +818,7 @@ static snd_kcontrol_new_t vx_control_iec958 = { #define METER_MAX 0xff #define METER_SHIFT 16 -static int vx_vu_meter_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_vu_meter_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -827,9 +827,9 @@ static int vx_vu_meter_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo return 0; } -static int vx_vu_meter_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_vu_meter_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); struct vx_vu_meter meter[2]; int audio = kcontrol->private_value & 0xff; int capture = (kcontrol->private_value >> 8) & 1; @@ -840,9 +840,9 @@ static int vx_vu_meter_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int vx_peak_meter_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_peak_meter_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); struct vx_vu_meter meter[2]; int audio = kcontrol->private_value & 0xff; int capture = (kcontrol->private_value >> 8) & 1; @@ -853,7 +853,7 @@ static int vx_peak_meter_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static int vx_saturation_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_saturation_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; @@ -862,9 +862,9 @@ static int vx_saturation_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin return 0; } -static int vx_saturation_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_saturation_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *chip = snd_kcontrol_chip(kcontrol); + struct vx_core *chip = snd_kcontrol_chip(kcontrol); struct vx_vu_meter meter[2]; int audio = kcontrol->private_value & 0xff; @@ -874,7 +874,7 @@ static int vx_saturation_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static snd_kcontrol_new_t vx_control_vu_meter = { +static struct snd_kcontrol_new vx_control_vu_meter = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, /* name will be filled later */ @@ -882,7 +882,7 @@ static snd_kcontrol_new_t vx_control_vu_meter = { .get = vx_vu_meter_get, }; -static snd_kcontrol_new_t vx_control_peak_meter = { +static struct snd_kcontrol_new vx_control_peak_meter = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, /* name will be filled later */ @@ -890,7 +890,7 @@ static snd_kcontrol_new_t vx_control_peak_meter = { .get = vx_peak_meter_get, }; -static snd_kcontrol_new_t vx_control_saturation = { +static struct snd_kcontrol_new vx_control_saturation = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Input Saturation", .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, @@ -904,12 +904,12 @@ static snd_kcontrol_new_t vx_control_saturation = { * */ -int snd_vx_mixer_new(vx_core_t *chip) +int snd_vx_mixer_new(struct vx_core *chip) { unsigned int i, c; int err; - snd_kcontrol_new_t temp; - snd_card_t *card = chip->card; + struct snd_kcontrol_new temp; + struct snd_card *card = chip->card; char name[32]; strcpy(card->mixername, card->driver); diff --git a/sound/drivers/vx/vx_pcm.c b/sound/drivers/vx/vx_pcm.c index 2b46758fe86..464109e421d 100644 --- a/sound/drivers/vx/vx_pcm.c +++ b/sound/drivers/vx/vx_pcm.c @@ -61,7 +61,8 @@ */ /* get the physical page pointer on the given offset */ -static struct page *snd_pcm_get_vmalloc_page(snd_pcm_substream_t *subs, unsigned long offset) +static struct page *snd_pcm_get_vmalloc_page(struct snd_pcm_substream *subs, + unsigned long offset) { void *pageptr = subs->runtime->dma_area + offset; return vmalloc_to_page(pageptr); @@ -72,9 +73,9 @@ static struct page *snd_pcm_get_vmalloc_page(snd_pcm_substream_t *subs, unsigned * called from hw_params * NOTE: this may be called not only once per pcm open! */ -static int snd_pcm_alloc_vmalloc_buffer(snd_pcm_substream_t *subs, size_t size) +static int snd_pcm_alloc_vmalloc_buffer(struct snd_pcm_substream *subs, size_t size) { - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_pcm_runtime *runtime = subs->runtime; if (runtime->dma_area) { /* already allocated */ if (runtime->dma_bytes >= size) @@ -94,9 +95,9 @@ static int snd_pcm_alloc_vmalloc_buffer(snd_pcm_substream_t *subs, size_t size) * called from hw_free callback * NOTE: this may be called not only once per pcm open! */ -static int snd_pcm_free_vmalloc_buffer(snd_pcm_substream_t *subs) +static int snd_pcm_free_vmalloc_buffer(struct snd_pcm_substream *subs) { - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_pcm_runtime *runtime = subs->runtime; if (runtime->dma_area) { vfree(runtime->dma_area); runtime->dma_area = NULL; @@ -108,7 +109,8 @@ static int snd_pcm_free_vmalloc_buffer(snd_pcm_substream_t *subs) /* * read three pending pcm bytes via inb() */ -static void vx_pcm_read_per_bytes(vx_core_t *chip, snd_pcm_runtime_t *runtime, vx_pipe_t *pipe) +static void vx_pcm_read_per_bytes(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe) { int offset = pipe->hw_ptr; unsigned char *buf = (unsigned char *)(runtime->dma_area + offset); @@ -135,7 +137,8 @@ static void vx_pcm_read_per_bytes(vx_core_t *chip, snd_pcm_runtime_t *runtime, v * @pc_time: the pointer for the PC-time to set * @dsp_time: the pointer for RMH status time array */ -static void vx_set_pcx_time(vx_core_t *chip, pcx_time_t *pc_time, unsigned int *dsp_time) +static void vx_set_pcx_time(struct vx_core *chip, pcx_time_t *pc_time, + unsigned int *dsp_time) { dsp_time[0] = (unsigned int)((*pc_time) >> 24) & PCX_TIME_HI_MASK; dsp_time[1] = (unsigned int)(*pc_time) & MASK_DSP_WORD; @@ -151,7 +154,8 @@ static void vx_set_pcx_time(vx_core_t *chip, pcx_time_t *pc_time, unsigned int * * * returns the increase of the command length. */ -static int vx_set_differed_time(vx_core_t *chip, struct vx_rmh *rmh, vx_pipe_t *pipe) +static int vx_set_differed_time(struct vx_core *chip, struct vx_rmh *rmh, + struct vx_pipe *pipe) { /* Update The length added to the RMH command by the timestamp */ if (! (pipe->differed_type & DC_DIFFERED_DELAY)) @@ -184,7 +188,8 @@ static int vx_set_differed_time(vx_core_t *chip, struct vx_rmh *rmh, vx_pipe_t * * @pipe: the affected pipe * @data: format bitmask */ -static int vx_set_stream_format(vx_core_t *chip, vx_pipe_t *pipe, unsigned int data) +static int vx_set_stream_format(struct vx_core *chip, struct vx_pipe *pipe, + unsigned int data) { struct vx_rmh rmh; @@ -210,8 +215,8 @@ static int vx_set_stream_format(vx_core_t *chip, vx_pipe_t *pipe, unsigned int d * * returns 0 if successful, or a negative error code. */ -static int vx_set_format(vx_core_t *chip, vx_pipe_t *pipe, - snd_pcm_runtime_t *runtime) +static int vx_set_format(struct vx_core *chip, struct vx_pipe *pipe, + struct snd_pcm_runtime *runtime) { unsigned int header = HEADER_FMT_BASE; @@ -239,7 +244,7 @@ static int vx_set_format(vx_core_t *chip, vx_pipe_t *pipe, /* * set / query the IBL size */ -static int vx_set_ibl(vx_core_t *chip, struct vx_ibl_info *info) +static int vx_set_ibl(struct vx_core *chip, struct vx_ibl_info *info) { int err; struct vx_rmh rmh; @@ -269,7 +274,7 @@ static int vx_set_ibl(vx_core_t *chip, struct vx_ibl_info *info) * * called from trigger callback only */ -static int vx_get_pipe_state(vx_core_t *chip, vx_pipe_t *pipe, int *state) +static int vx_get_pipe_state(struct vx_core *chip, struct vx_pipe *pipe, int *state) { int err; struct vx_rmh rmh; @@ -294,7 +299,7 @@ static int vx_get_pipe_state(vx_core_t *chip, vx_pipe_t *pipe, int *state) * you'll need to disconnect the host to get back to the * normal mode. */ -static int vx_query_hbuffer_size(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_query_hbuffer_size(struct vx_core *chip, struct vx_pipe *pipe) { int result; struct vx_rmh rmh; @@ -318,7 +323,7 @@ static int vx_query_hbuffer_size(vx_core_t *chip, vx_pipe_t *pipe) * * called from trigger callback only */ -static int vx_pipe_can_start(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_pipe_can_start(struct vx_core *chip, struct vx_pipe *pipe) { int err; struct vx_rmh rmh; @@ -339,7 +344,7 @@ static int vx_pipe_can_start(vx_core_t *chip, vx_pipe_t *pipe) * vx_conf_pipe - tell the pipe to stand by and wait for IRQA. * @pipe: the pipe to be configured */ -static int vx_conf_pipe(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_conf_pipe(struct vx_core *chip, struct vx_pipe *pipe) { struct vx_rmh rmh; @@ -353,7 +358,7 @@ static int vx_conf_pipe(vx_core_t *chip, vx_pipe_t *pipe) /* * vx_send_irqa - trigger IRQA */ -static int vx_send_irqa(vx_core_t *chip) +static int vx_send_irqa(struct vx_core *chip) { struct vx_rmh rmh; @@ -378,7 +383,7 @@ static int vx_send_irqa(vx_core_t *chip) * called from trigger callback only * */ -static int vx_toggle_pipe(vx_core_t *chip, vx_pipe_t *pipe, int state) +static int vx_toggle_pipe(struct vx_core *chip, struct vx_pipe *pipe, int state) { int err, i, cur_state; @@ -431,7 +436,7 @@ static int vx_toggle_pipe(vx_core_t *chip, vx_pipe_t *pipe, int state) * * called from trigger callback only */ -static int vx_stop_pipe(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_stop_pipe(struct vx_core *chip, struct vx_pipe *pipe) { struct vx_rmh rmh; vx_init_rmh(&rmh, CMD_STOP_PIPE); @@ -449,12 +454,12 @@ static int vx_stop_pipe(vx_core_t *chip, vx_pipe_t *pipe) * * return 0 on success, or a negative error code. */ -static int vx_alloc_pipe(vx_core_t *chip, int capture, +static int vx_alloc_pipe(struct vx_core *chip, int capture, int audioid, int num_audio, - vx_pipe_t **pipep) + struct vx_pipe **pipep) { int err; - vx_pipe_t *pipe; + struct vx_pipe *pipe; struct vx_rmh rmh; int data_mode; @@ -499,7 +504,7 @@ static int vx_alloc_pipe(vx_core_t *chip, int capture, * vx_free_pipe - release a pipe * @pipe: pipe to be released */ -static int vx_free_pipe(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_free_pipe(struct vx_core *chip, struct vx_pipe *pipe) { struct vx_rmh rmh; @@ -517,7 +522,7 @@ static int vx_free_pipe(vx_core_t *chip, vx_pipe_t *pipe) * * called from trigger callback only */ -static int vx_start_stream(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_start_stream(struct vx_core *chip, struct vx_pipe *pipe) { struct vx_rmh rmh; @@ -533,7 +538,7 @@ static int vx_start_stream(vx_core_t *chip, vx_pipe_t *pipe) * * called from trigger callback only */ -static int vx_stop_stream(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_stop_stream(struct vx_core *chip, struct vx_pipe *pipe) { struct vx_rmh rmh; @@ -547,11 +552,12 @@ static int vx_stop_stream(vx_core_t *chip, vx_pipe_t *pipe) * playback hw information */ -static snd_pcm_hardware_t vx_pcm_playback_hw = { +static struct snd_pcm_hardware vx_pcm_playback_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_MMAP_VALID /*|*/ /*SNDRV_PCM_INFO_RESUME*/), - .formats = /*SNDRV_PCM_FMTBIT_U8 |*/ SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_3LE, + .formats = (/*SNDRV_PCM_FMTBIT_U8 |*/ + SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_3LE), .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000, .rate_min = 5000, .rate_max = 48000, @@ -571,11 +577,11 @@ static void vx_pcm_delayed_start(unsigned long arg); /* * vx_pcm_playback_open - open callback for playback */ -static int vx_pcm_playback_open(snd_pcm_substream_t *subs) +static int vx_pcm_playback_open(struct snd_pcm_substream *subs) { - snd_pcm_runtime_t *runtime = subs->runtime; - vx_core_t *chip = snd_pcm_substream_chip(subs); - vx_pipe_t *pipe = NULL; + struct snd_pcm_runtime *runtime = subs->runtime; + struct vx_core *chip = snd_pcm_substream_chip(subs); + struct vx_pipe *pipe = NULL; unsigned int audio; int err; @@ -615,10 +621,10 @@ static int vx_pcm_playback_open(snd_pcm_substream_t *subs) /* * vx_pcm_playback_close - close callback for playback */ -static int vx_pcm_playback_close(snd_pcm_substream_t *subs) +static int vx_pcm_playback_close(struct snd_pcm_substream *subs) { - vx_core_t *chip = snd_pcm_substream_chip(subs); - vx_pipe_t *pipe; + struct vx_core *chip = snd_pcm_substream_chip(subs); + struct vx_pipe *pipe; if (! subs->runtime->private_data) return -EINVAL; @@ -641,7 +647,7 @@ static int vx_pcm_playback_close(snd_pcm_substream_t *subs) * * NB: call with a certain lock. */ -static int vx_notify_end_of_buffer(vx_core_t *chip, vx_pipe_t *pipe) +static int vx_notify_end_of_buffer(struct vx_core *chip, struct vx_pipe *pipe) { int err; struct vx_rmh rmh; /* use a temporary rmh here */ @@ -669,7 +675,9 @@ static int vx_notify_end_of_buffer(vx_core_t *chip, vx_pipe_t *pipe) * * return 0 if ok. */ -static int vx_pcm_playback_transfer_chunk(vx_core_t *chip, snd_pcm_runtime_t *runtime, vx_pipe_t *pipe, int size) +static int vx_pcm_playback_transfer_chunk(struct vx_core *chip, + struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int size) { int space, err = 0; @@ -705,7 +713,9 @@ static int vx_pcm_playback_transfer_chunk(vx_core_t *chip, snd_pcm_runtime_t *ru * so that the caller can check the total transferred size later * (to call snd_pcm_period_elapsed). */ -static int vx_update_pipe_position(vx_core_t *chip, snd_pcm_runtime_t *runtime, vx_pipe_t *pipe) +static int vx_update_pipe_position(struct vx_core *chip, + struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe) { struct vx_rmh rmh; int err, update; @@ -731,10 +741,12 @@ static int vx_update_pipe_position(vx_core_t *chip, snd_pcm_runtime_t *runtime, * transfer the pending playback buffer data to DSP * called from interrupt handler */ -static void vx_pcm_playback_transfer(vx_core_t *chip, snd_pcm_substream_t *subs, vx_pipe_t *pipe, int nchunks) +static void vx_pcm_playback_transfer(struct vx_core *chip, + struct snd_pcm_substream *subs, + struct vx_pipe *pipe, int nchunks) { int i, err; - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_pcm_runtime *runtime = subs->runtime; if (! pipe->prepared || (chip->chip_status & VX_STAT_IS_STALE)) return; @@ -749,10 +761,12 @@ static void vx_pcm_playback_transfer(vx_core_t *chip, snd_pcm_substream_t *subs, * update the playback position and call snd_pcm_period_elapsed() if necessary * called from interrupt handler */ -static void vx_pcm_playback_update(vx_core_t *chip, snd_pcm_substream_t *subs, vx_pipe_t *pipe) +static void vx_pcm_playback_update(struct vx_core *chip, + struct snd_pcm_substream *subs, + struct vx_pipe *pipe) { int err; - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_pcm_runtime *runtime = subs->runtime; if (pipe->running && ! (chip->chip_status & VX_STAT_IS_STALE)) { if ((err = vx_update_pipe_position(chip, runtime, pipe)) < 0) @@ -771,9 +785,9 @@ static void vx_pcm_playback_update(vx_core_t *chip, snd_pcm_substream_t *subs, v */ static void vx_pcm_delayed_start(unsigned long arg) { - snd_pcm_substream_t *subs = (snd_pcm_substream_t *)arg; - vx_core_t *chip = subs->pcm->private_data; - vx_pipe_t *pipe = subs->runtime->private_data; + struct snd_pcm_substream *subs = (struct snd_pcm_substream *)arg; + struct vx_core *chip = subs->pcm->private_data; + struct vx_pipe *pipe = subs->runtime->private_data; int err; /* printk( KERN_DEBUG "DDDD tasklet delayed start jiffies = %ld\n", jiffies);*/ @@ -792,10 +806,10 @@ static void vx_pcm_delayed_start(unsigned long arg) /* * vx_pcm_playback_trigger - trigger callback for playback */ -static int vx_pcm_trigger(snd_pcm_substream_t *subs, int cmd) +static int vx_pcm_trigger(struct snd_pcm_substream *subs, int cmd) { - vx_core_t *chip = snd_pcm_substream_chip(subs); - vx_pipe_t *pipe = subs->runtime->private_data; + struct vx_core *chip = snd_pcm_substream_chip(subs); + struct vx_pipe *pipe = subs->runtime->private_data; int err; if (chip->chip_status & VX_STAT_IS_STALE) @@ -839,18 +853,18 @@ static int vx_pcm_trigger(snd_pcm_substream_t *subs, int cmd) /* * vx_pcm_playback_pointer - pointer callback for playback */ -static snd_pcm_uframes_t vx_pcm_playback_pointer(snd_pcm_substream_t *subs) +static snd_pcm_uframes_t vx_pcm_playback_pointer(struct snd_pcm_substream *subs) { - snd_pcm_runtime_t *runtime = subs->runtime; - vx_pipe_t *pipe = runtime->private_data; + struct snd_pcm_runtime *runtime = subs->runtime; + struct vx_pipe *pipe = runtime->private_data; return pipe->position; } /* * vx_pcm_hw_params - hw_params callback for playback and capture */ -static int vx_pcm_hw_params(snd_pcm_substream_t *subs, - snd_pcm_hw_params_t *hw_params) +static int vx_pcm_hw_params(struct snd_pcm_substream *subs, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_alloc_vmalloc_buffer(subs, params_buffer_bytes(hw_params)); } @@ -858,7 +872,7 @@ static int vx_pcm_hw_params(snd_pcm_substream_t *subs, /* * vx_pcm_hw_free - hw_free callback for playback and capture */ -static int vx_pcm_hw_free(snd_pcm_substream_t *subs) +static int vx_pcm_hw_free(struct snd_pcm_substream *subs) { return snd_pcm_free_vmalloc_buffer(subs); } @@ -866,11 +880,11 @@ static int vx_pcm_hw_free(snd_pcm_substream_t *subs) /* * vx_pcm_prepare - prepare callback for playback and capture */ -static int vx_pcm_prepare(snd_pcm_substream_t *subs) +static int vx_pcm_prepare(struct snd_pcm_substream *subs) { - vx_core_t *chip = snd_pcm_substream_chip(subs); - snd_pcm_runtime_t *runtime = subs->runtime; - vx_pipe_t *pipe = runtime->private_data; + struct vx_core *chip = snd_pcm_substream_chip(subs); + struct snd_pcm_runtime *runtime = subs->runtime; + struct vx_pipe *pipe = runtime->private_data; int err, data_mode; // int max_size, nchunks; @@ -897,7 +911,8 @@ static int vx_pcm_prepare(snd_pcm_substream_t *subs) } if (chip->pcm_running && chip->freq != runtime->rate) { - snd_printk(KERN_ERR "vx: cannot set different clock %d from the current %d\n", runtime->rate, chip->freq); + snd_printk(KERN_ERR "vx: cannot set different clock %d " + "from the current %d\n", runtime->rate, chip->freq); return -EINVAL; } vx_set_clock(chip, runtime->rate); @@ -930,7 +945,7 @@ static int vx_pcm_prepare(snd_pcm_substream_t *subs) /* * operators for PCM playback */ -static snd_pcm_ops_t vx_pcm_playback_ops = { +static struct snd_pcm_ops vx_pcm_playback_ops = { .open = vx_pcm_playback_open, .close = vx_pcm_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -947,11 +962,12 @@ static snd_pcm_ops_t vx_pcm_playback_ops = { * playback hw information */ -static snd_pcm_hardware_t vx_pcm_capture_hw = { +static struct snd_pcm_hardware vx_pcm_capture_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_MMAP_VALID /*|*/ /*SNDRV_PCM_INFO_RESUME*/), - .formats = /*SNDRV_PCM_FMTBIT_U8 |*/ SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_3LE, + .formats = (/*SNDRV_PCM_FMTBIT_U8 |*/ + SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_3LE), .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000, .rate_min = 5000, .rate_max = 48000, @@ -969,12 +985,12 @@ static snd_pcm_hardware_t vx_pcm_capture_hw = { /* * vx_pcm_capture_open - open callback for capture */ -static int vx_pcm_capture_open(snd_pcm_substream_t *subs) +static int vx_pcm_capture_open(struct snd_pcm_substream *subs) { - snd_pcm_runtime_t *runtime = subs->runtime; - vx_core_t *chip = snd_pcm_substream_chip(subs); - vx_pipe_t *pipe; - vx_pipe_t *pipe_out_monitoring = NULL; + struct snd_pcm_runtime *runtime = subs->runtime; + struct vx_core *chip = snd_pcm_substream_chip(subs); + struct vx_pipe *pipe; + struct vx_pipe *pipe_out_monitoring = NULL; unsigned int audio; int err; @@ -1005,9 +1021,11 @@ static int vx_pcm_capture_open(snd_pcm_substream_t *subs) if an output pipe is available, it's audios still may need to be unmuted. hence we'll have to call a mixer entry point. */ - vx_set_monitor_level(chip, audio, chip->audio_monitor[audio], chip->audio_monitor_active[audio]); + vx_set_monitor_level(chip, audio, chip->audio_monitor[audio], + chip->audio_monitor_active[audio]); /* assuming stereo */ - vx_set_monitor_level(chip, audio+1, chip->audio_monitor[audio+1], chip->audio_monitor_active[audio+1]); + vx_set_monitor_level(chip, audio+1, chip->audio_monitor[audio+1], + chip->audio_monitor_active[audio+1]); } pipe->monitoring_pipe = pipe_out_monitoring; /* default value NULL */ @@ -1026,11 +1044,11 @@ static int vx_pcm_capture_open(snd_pcm_substream_t *subs) /* * vx_pcm_capture_close - close callback for capture */ -static int vx_pcm_capture_close(snd_pcm_substream_t *subs) +static int vx_pcm_capture_close(struct snd_pcm_substream *subs) { - vx_core_t *chip = snd_pcm_substream_chip(subs); - vx_pipe_t *pipe; - vx_pipe_t *pipe_out_monitoring; + struct vx_core *chip = snd_pcm_substream_chip(subs); + struct vx_pipe *pipe; + struct vx_pipe *pipe_out_monitoring; if (! subs->runtime->private_data) return -EINVAL; @@ -1062,10 +1080,11 @@ static int vx_pcm_capture_close(snd_pcm_substream_t *subs) /* * vx_pcm_capture_update - update the capture buffer */ -static void vx_pcm_capture_update(vx_core_t *chip, snd_pcm_substream_t *subs, vx_pipe_t *pipe) +static void vx_pcm_capture_update(struct vx_core *chip, struct snd_pcm_substream *subs, + struct vx_pipe *pipe) { int size, space, count; - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_pcm_runtime *runtime = subs->runtime; if (! pipe->prepared || (chip->chip_status & VX_STAT_IS_STALE)) return; @@ -1135,17 +1154,17 @@ static void vx_pcm_capture_update(vx_core_t *chip, snd_pcm_substream_t *subs, vx /* * vx_pcm_capture_pointer - pointer callback for capture */ -static snd_pcm_uframes_t vx_pcm_capture_pointer(snd_pcm_substream_t *subs) +static snd_pcm_uframes_t vx_pcm_capture_pointer(struct snd_pcm_substream *subs) { - snd_pcm_runtime_t *runtime = subs->runtime; - vx_pipe_t *pipe = runtime->private_data; + struct snd_pcm_runtime *runtime = subs->runtime; + struct vx_pipe *pipe = runtime->private_data; return bytes_to_frames(runtime, pipe->hw_ptr); } /* * operators for PCM capture */ -static snd_pcm_ops_t vx_pcm_capture_ops = { +static struct snd_pcm_ops vx_pcm_capture_ops = { .open = vx_pcm_capture_open, .close = vx_pcm_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1161,10 +1180,10 @@ static snd_pcm_ops_t vx_pcm_capture_ops = { /* * interrupt handler for pcm streams */ -void vx_pcm_update_intr(vx_core_t *chip, unsigned int events) +void vx_pcm_update_intr(struct vx_core *chip, unsigned int events) { unsigned int i; - vx_pipe_t *pipe; + struct vx_pipe *pipe; #define EVENT_MASK (END_OF_BUFFER_EVENTS_PENDING|ASYNC_EVENTS_PENDING) @@ -1218,7 +1237,7 @@ void vx_pcm_update_intr(vx_core_t *chip, unsigned int events) /* * vx_init_audio_io - check the availabe audio i/o and allocate pipe arrays */ -static int vx_init_audio_io(vx_core_t *chip) +static int vx_init_audio_io(struct vx_core *chip) { struct vx_rmh rmh; int preferred; @@ -1234,19 +1253,20 @@ static int vx_init_audio_io(vx_core_t *chip) chip->audio_info = rmh.Stat[1]; /* allocate pipes */ - chip->playback_pipes = kmalloc(sizeof(vx_pipe_t *) * chip->audio_outs, GFP_KERNEL); - chip->capture_pipes = kmalloc(sizeof(vx_pipe_t *) * chip->audio_ins, GFP_KERNEL); + chip->playback_pipes = kmalloc(sizeof(struct vx_pipe *) * chip->audio_outs, GFP_KERNEL); + chip->capture_pipes = kmalloc(sizeof(struct vx_pipe *) * chip->audio_ins, GFP_KERNEL); if (! chip->playback_pipes || ! chip->capture_pipes) return -ENOMEM; - memset(chip->playback_pipes, 0, sizeof(vx_pipe_t *) * chip->audio_outs); - memset(chip->capture_pipes, 0, sizeof(vx_pipe_t *) * chip->audio_ins); + memset(chip->playback_pipes, 0, sizeof(struct vx_pipe *) * chip->audio_outs); + memset(chip->capture_pipes, 0, sizeof(struct vx_pipe *) * chip->audio_ins); preferred = chip->ibl.size; chip->ibl.size = 0; vx_set_ibl(chip, &chip->ibl); /* query the info */ if (preferred > 0) { - chip->ibl.size = ((preferred + chip->ibl.granularity - 1) / chip->ibl.granularity) * chip->ibl.granularity; + chip->ibl.size = ((preferred + chip->ibl.granularity - 1) / + chip->ibl.granularity) * chip->ibl.granularity; if (chip->ibl.size > chip->ibl.max_size) chip->ibl.size = chip->ibl.max_size; } else @@ -1260,9 +1280,9 @@ static int vx_init_audio_io(vx_core_t *chip) /* * free callback for pcm */ -static void snd_vx_pcm_free(snd_pcm_t *pcm) +static void snd_vx_pcm_free(struct snd_pcm *pcm) { - vx_core_t *chip = pcm->private_data; + struct vx_core *chip = pcm->private_data; chip->pcm[pcm->device] = NULL; kfree(chip->playback_pipes); chip->playback_pipes = NULL; @@ -1273,9 +1293,9 @@ static void snd_vx_pcm_free(snd_pcm_t *pcm) /* * snd_vx_pcm_new - create and initialize a pcm */ -int snd_vx_pcm_new(vx_core_t *chip) +int snd_vx_pcm_new(struct vx_core *chip) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; unsigned int i; int err; diff --git a/sound/drivers/vx/vx_uer.c b/sound/drivers/vx/vx_uer.c index 4fc38bde34f..7400306b7f2 100644 --- a/sound/drivers/vx/vx_uer.c +++ b/sound/drivers/vx/vx_uer.c @@ -31,7 +31,7 @@ * vx_modify_board_clock - tell the board that its clock has been modified * @sync: DSP needs to resynchronize its FIFO */ -static int vx_modify_board_clock(vx_core_t *chip, int sync) +static int vx_modify_board_clock(struct vx_core *chip, int sync) { struct vx_rmh rmh; @@ -45,7 +45,7 @@ static int vx_modify_board_clock(vx_core_t *chip, int sync) /* * vx_modify_board_inputs - resync audio inputs */ -static int vx_modify_board_inputs(vx_core_t *chip) +static int vx_modify_board_inputs(struct vx_core *chip) { struct vx_rmh rmh; @@ -59,7 +59,7 @@ static int vx_modify_board_inputs(vx_core_t *chip) * @index: the bit index * returns 0 or 1. */ -static int vx_read_one_cbit(vx_core_t *chip, int index) +static int vx_read_one_cbit(struct vx_core *chip, int index) { unsigned long flags; int val; @@ -82,7 +82,7 @@ static int vx_read_one_cbit(vx_core_t *chip, int index) * @index: the bit index * @val: bit value, 0 or 1 */ -static void vx_write_one_cbit(vx_core_t *chip, int index, int val) +static void vx_write_one_cbit(struct vx_core *chip, int index, int val) { unsigned long flags; val = !!val; /* 0 or 1 */ @@ -104,7 +104,7 @@ static void vx_write_one_cbit(vx_core_t *chip, int index, int val) * returns the frequency of UER, or 0 if not sync, * or a negative error code. */ -static int vx_read_uer_status(vx_core_t *chip, int *mode) +static int vx_read_uer_status(struct vx_core *chip, int *mode) { int val, freq; @@ -160,7 +160,7 @@ static int vx_read_uer_status(vx_core_t *chip, int *mode) * default : HexFreq = (dword) ((double) 28224000 / (double) (Frequency*4)) - 0x000001FF */ -static int vx_calc_clock_from_freq(vx_core_t *chip, int freq) +static int vx_calc_clock_from_freq(struct vx_core *chip, int freq) { int hexfreq; @@ -187,7 +187,7 @@ static int vx_calc_clock_from_freq(vx_core_t *chip, int freq) * vx_change_clock_source - change the clock source * @source: the new source */ -static void vx_change_clock_source(vx_core_t *chip, int source) +static void vx_change_clock_source(struct vx_core *chip, int source) { unsigned long flags; @@ -205,7 +205,7 @@ static void vx_change_clock_source(vx_core_t *chip, int source) /* * set the internal clock */ -void vx_set_internal_clock(vx_core_t *chip, unsigned int freq) +void vx_set_internal_clock(struct vx_core *chip, unsigned int freq) { int clock; unsigned long flags; @@ -228,7 +228,7 @@ void vx_set_internal_clock(vx_core_t *chip, unsigned int freq) * set the iec958 status bits * @bits: 32-bit status bits */ -void vx_set_iec958_status(vx_core_t *chip, unsigned int bits) +void vx_set_iec958_status(struct vx_core *chip, unsigned int bits) { int i; @@ -243,7 +243,7 @@ void vx_set_iec958_status(vx_core_t *chip, unsigned int bits) /* * vx_set_clock - change the clock and audio source if necessary */ -int vx_set_clock(vx_core_t *chip, unsigned int freq) +int vx_set_clock(struct vx_core *chip, unsigned int freq) { int src_changed = 0; @@ -285,7 +285,7 @@ int vx_set_clock(vx_core_t *chip, unsigned int freq) /* * vx_change_frequency - called from interrupt handler */ -int vx_change_frequency(vx_core_t *chip) +int vx_change_frequency(struct vx_core *chip) { int freq; diff --git a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c index dca6bd2c758..4ebbabedb3c 100644 --- a/sound/pci/vx222/vx222.c +++ b/sound/pci/vx222/vx222.c @@ -108,7 +108,7 @@ static struct snd_vx_hardware vx222_mic_hw = { /* */ -static int snd_vx222_free(vx_core_t *chip) +static int snd_vx222_free(struct vx_core *chip) { struct snd_vx222 *vx = (struct snd_vx222 *)chip; @@ -121,21 +121,21 @@ static int snd_vx222_free(vx_core_t *chip) return 0; } -static int snd_vx222_dev_free(snd_device_t *device) +static int snd_vx222_dev_free(struct snd_device *device) { - vx_core_t *chip = device->device_data; + struct vx_core *chip = device->device_data; return snd_vx222_free(chip); } -static int __devinit snd_vx222_create(snd_card_t *card, struct pci_dev *pci, +static int __devinit snd_vx222_create(struct snd_card *card, struct pci_dev *pci, struct snd_vx_hardware *hw, struct snd_vx222 **rchip) { - vx_core_t *chip; + struct vx_core *chip; struct snd_vx222 *vx; int i, err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_vx222_dev_free, }; struct snd_vx_ops *vx_ops; @@ -147,7 +147,7 @@ static int __devinit snd_vx222_create(snd_card_t *card, struct pci_dev *pci, vx_ops = hw->type == VX_TYPE_BOARD ? &vx222_old_ops : &vx222_ops; chip = snd_vx_create(card, hw, vx_ops, - sizeof(struct snd_vx222) - sizeof(vx_core_t)); + sizeof(struct snd_vx222) - sizeof(struct vx_core)); if (! chip) { pci_disable_device(pci); return -ENOMEM; @@ -186,7 +186,7 @@ static int __devinit snd_vx222_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; + struct snd_card *card; struct snd_vx_hardware *hw; struct snd_vx222 *vx; int err; diff --git a/sound/pci/vx222/vx222.h b/sound/pci/vx222/vx222.h index 18478ae124a..2f0d78f609a 100644 --- a/sound/pci/vx222/vx222.h +++ b/sound/pci/vx222/vx222.h @@ -25,7 +25,7 @@ struct snd_vx222 { - vx_core_t core; + struct vx_core core; /* h/w config; for PLX and for DSP */ struct pci_dev *pci; diff --git a/sound/pci/vx222/vx222_ops.c b/sound/pci/vx222/vx222_ops.c index 2d4d0c29b4c..c705af409b0 100644 --- a/sound/pci/vx222/vx222_ops.c +++ b/sound/pci/vx222/vx222_ops.c @@ -82,7 +82,7 @@ static int vx2_reg_index[VX_REG_MAX] = { [VX_GPIOC] = 0, /* on the PLX */ }; -static inline unsigned long vx2_reg_addr(vx_core_t *_chip, int reg) +static inline unsigned long vx2_reg_addr(struct vx_core *_chip, int reg) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; return chip->port[vx2_reg_index[reg]] + vx2_reg_offset[reg]; @@ -92,7 +92,7 @@ static inline unsigned long vx2_reg_addr(vx_core_t *_chip, int reg) * snd_vx_inb - read a byte from the register * @offset: register enum */ -static unsigned char vx2_inb(vx_core_t *chip, int offset) +static unsigned char vx2_inb(struct vx_core *chip, int offset) { return inb(vx2_reg_addr(chip, offset)); } @@ -102,7 +102,7 @@ static unsigned char vx2_inb(vx_core_t *chip, int offset) * @offset: the register offset * @val: the value to write */ -static void vx2_outb(vx_core_t *chip, int offset, unsigned char val) +static void vx2_outb(struct vx_core *chip, int offset, unsigned char val) { outb(val, vx2_reg_addr(chip, offset)); //printk("outb: %x -> %x\n", val, vx2_reg_addr(chip, offset)); @@ -112,7 +112,7 @@ static void vx2_outb(vx_core_t *chip, int offset, unsigned char val) * snd_vx_inl - read a 32bit word from the register * @offset: register enum */ -static unsigned int vx2_inl(vx_core_t *chip, int offset) +static unsigned int vx2_inl(struct vx_core *chip, int offset) { return inl(vx2_reg_addr(chip, offset)); } @@ -122,7 +122,7 @@ static unsigned int vx2_inl(vx_core_t *chip, int offset) * @offset: the register enum * @val: the value to write */ -static void vx2_outl(vx_core_t *chip, int offset, unsigned int val) +static void vx2_outl(struct vx_core *chip, int offset, unsigned int val) { // printk("outl: %x -> %x\n", val, vx2_reg_addr(chip, offset)); outl(val, vx2_reg_addr(chip, offset)); @@ -132,13 +132,13 @@ static void vx2_outl(vx_core_t *chip, int offset, unsigned int val) * redefine macros to call directly */ #undef vx_inb -#define vx_inb(chip,reg) vx2_inb((vx_core_t*)(chip), VX_##reg) +#define vx_inb(chip,reg) vx2_inb((struct vx_core*)(chip), VX_##reg) #undef vx_outb -#define vx_outb(chip,reg,val) vx2_outb((vx_core_t*)(chip), VX_##reg, val) +#define vx_outb(chip,reg,val) vx2_outb((struct vx_core*)(chip), VX_##reg, val) #undef vx_inl -#define vx_inl(chip,reg) vx2_inl((vx_core_t*)(chip), VX_##reg) +#define vx_inl(chip,reg) vx2_inl((struct vx_core*)(chip), VX_##reg) #undef vx_outl -#define vx_outl(chip,reg,val) vx2_outl((vx_core_t*)(chip), VX_##reg, val) +#define vx_outl(chip,reg,val) vx2_outl((struct vx_core*)(chip), VX_##reg, val) /* @@ -147,7 +147,7 @@ static void vx2_outl(vx_core_t *chip, int offset, unsigned int val) #define XX_DSP_RESET_WAIT_TIME 2 /* ms */ -static void vx2_reset_dsp(vx_core_t *_chip) +static void vx2_reset_dsp(struct vx_core *_chip) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; @@ -162,7 +162,7 @@ static void vx2_reset_dsp(vx_core_t *_chip) } -static int vx2_test_xilinx(vx_core_t *_chip) +static int vx2_test_xilinx(struct vx_core *_chip) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; unsigned int data; @@ -219,7 +219,7 @@ static int vx2_test_xilinx(vx_core_t *_chip) * vx_setup_pseudo_dma - set up the pseudo dma read/write mode. * @do_write: 0 = read, 1 = set up for DMA write */ -static void vx2_setup_pseudo_dma(vx_core_t *chip, int do_write) +static void vx2_setup_pseudo_dma(struct vx_core *chip, int do_write) { /* Interrupt mode and HREQ pin enabled for host transmit data transfers * (in case of the use of the pseudo-dma facility). @@ -235,7 +235,7 @@ static void vx2_setup_pseudo_dma(vx_core_t *chip, int do_write) /* * vx_release_pseudo_dma - disable the pseudo-DMA mode */ -static inline void vx2_release_pseudo_dma(vx_core_t *chip) +static inline void vx2_release_pseudo_dma(struct vx_core *chip) { /* HREQ pin disabled. */ vx_outl(chip, ICR, 0); @@ -244,8 +244,8 @@ static inline void vx2_release_pseudo_dma(vx_core_t *chip) /* pseudo-dma write */ -static void vx2_dma_write(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count) +static void vx2_dma_write(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count) { unsigned long port = vx2_reg_addr(chip, VX_DMA); int offset = pipe->hw_ptr; @@ -282,8 +282,8 @@ static void vx2_dma_write(vx_core_t *chip, snd_pcm_runtime_t *runtime, /* pseudo dma read */ -static void vx2_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count) +static void vx2_dma_read(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count) { int offset = pipe->hw_ptr; u32 *addr = (u32 *)(runtime->dma_area + offset); @@ -321,7 +321,7 @@ static void vx2_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtime, /* * transfer counts bits to PLX */ -static int put_xilinx_data(vx_core_t *chip, unsigned int port, unsigned int counts, unsigned char data) +static int put_xilinx_data(struct vx_core *chip, unsigned int port, unsigned int counts, unsigned char data) { unsigned int i; @@ -353,7 +353,7 @@ static int put_xilinx_data(vx_core_t *chip, unsigned int port, unsigned int coun /* * load the xilinx image */ -static int vx2_load_xilinx_binary(vx_core_t *chip, const struct firmware *xilinx) +static int vx2_load_xilinx_binary(struct vx_core *chip, const struct firmware *xilinx) { unsigned int i; unsigned int port; @@ -400,7 +400,7 @@ static int vx2_load_xilinx_binary(vx_core_t *chip, const struct firmware *xilinx /* * load the boot/dsp images */ -static int vx2_load_dsp(vx_core_t *vx, int index, const struct firmware *dsp) +static int vx2_load_dsp(struct vx_core *vx, int index, const struct firmware *dsp) { int err; @@ -432,7 +432,7 @@ static int vx2_load_dsp(vx_core_t *vx, int index, const struct firmware *dsp) * * spinlock held! */ -static int vx2_test_and_ack(vx_core_t *chip) +static int vx2_test_and_ack(struct vx_core *chip) { /* not booted yet? */ if (! (chip->chip_status & VX_STAT_XILINX_LOADED)) @@ -463,7 +463,7 @@ static int vx2_test_and_ack(vx_core_t *chip) /* * vx_validate_irq - enable/disable IRQ */ -static void vx2_validate_irq(vx_core_t *_chip, int enable) +static void vx2_validate_irq(struct vx_core *_chip, int enable) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; @@ -484,7 +484,7 @@ static void vx2_validate_irq(vx_core_t *_chip, int enable) /* * write an AKM codec data (24bit) */ -static void vx2_write_codec_reg(vx_core_t *chip, unsigned int data) +static void vx2_write_codec_reg(struct vx_core *chip, unsigned int data) { unsigned int i; @@ -660,7 +660,7 @@ static const u8 vx2_akm_gains_lut[VX2_AKM_LEVEL_MAX+1] = { /* * pseudo-codec write entry */ -static void vx2_write_akm(vx_core_t *chip, int reg, unsigned int data) +static void vx2_write_akm(struct vx_core *chip, int reg, unsigned int data) { unsigned int val; @@ -695,7 +695,7 @@ static void vx2_write_akm(vx_core_t *chip, int reg, unsigned int data) /* * write codec bit for old VX222 board */ -static void vx2_old_write_codec_bit(vx_core_t *chip, int codec, unsigned int data) +static void vx2_old_write_codec_bit(struct vx_core *chip, int codec, unsigned int data) { int i; @@ -713,7 +713,7 @@ static void vx2_old_write_codec_bit(vx_core_t *chip, int codec, unsigned int dat /* * reset codec bit */ -static void vx2_reset_codec(vx_core_t *_chip) +static void vx2_reset_codec(struct vx_core *_chip) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; @@ -755,7 +755,7 @@ static void vx2_reset_codec(vx_core_t *_chip) /* * change the audio source */ -static void vx2_change_audio_source(vx_core_t *_chip, int src) +static void vx2_change_audio_source(struct vx_core *_chip, int src) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; @@ -774,7 +774,7 @@ static void vx2_change_audio_source(vx_core_t *_chip, int src) /* * set the clock source */ -static void vx2_set_clock_source(vx_core_t *_chip, int source) +static void vx2_set_clock_source(struct vx_core *_chip, int source) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; @@ -788,7 +788,7 @@ static void vx2_set_clock_source(vx_core_t *_chip, int source) /* * reset the board */ -static void vx2_reset_board(vx_core_t *_chip, int cold_reset) +static void vx2_reset_board(struct vx_core *_chip, int cold_reset) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; @@ -848,7 +848,7 @@ static void vx2_set_input_level(struct snd_vx222 *chip) */ /* input levels */ -static int vx_input_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_input_level_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -857,9 +857,9 @@ static int vx_input_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui return 0; } -static int vx_input_level_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_input_level_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vx222 *chip = (struct snd_vx222 *)_chip; down(&_chip->mixer_mutex); ucontrol->value.integer.value[0] = chip->input_level[0]; @@ -868,9 +868,9 @@ static int vx_input_level_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc return 0; } -static int vx_input_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_input_level_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vx222 *chip = (struct snd_vx222 *)_chip; down(&_chip->mixer_mutex); if (chip->input_level[0] != ucontrol->value.integer.value[0] || @@ -886,7 +886,7 @@ static int vx_input_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc } /* mic level */ -static int vx_mic_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_mic_level_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -895,17 +895,17 @@ static int vx_mic_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinf return 0; } -static int vx_mic_level_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_mic_level_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vx222 *chip = (struct snd_vx222 *)_chip; ucontrol->value.integer.value[0] = chip->mic_level; return 0; } -static int vx_mic_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_mic_level_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vx222 *chip = (struct snd_vx222 *)_chip; down(&_chip->mixer_mutex); if (chip->mic_level != ucontrol->value.integer.value[0]) { @@ -918,7 +918,7 @@ static int vx_mic_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon return 0; } -static snd_kcontrol_new_t vx_control_input_level = { +static struct snd_kcontrol_new vx_control_input_level = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Capture Volume", .info = vx_input_level_info, @@ -926,7 +926,7 @@ static snd_kcontrol_new_t vx_control_input_level = { .put = vx_input_level_put, }; -static snd_kcontrol_new_t vx_control_mic_level = { +static struct snd_kcontrol_new vx_control_mic_level = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Mic Capture Volume", .info = vx_mic_level_info, @@ -938,7 +938,7 @@ static snd_kcontrol_new_t vx_control_mic_level = { * FIXME: compressor/limiter implementation is missing yet... */ -static int vx2_add_mic_controls(vx_core_t *_chip) +static int vx2_add_mic_controls(struct vx_core *_chip) { struct snd_vx222 *chip = (struct snd_vx222 *)_chip; int err; diff --git a/sound/pcmcia/vx/vxp_mixer.c b/sound/pcmcia/vx/vxp_mixer.c index aeaef3d8180..9450149b931 100644 --- a/sound/pcmcia/vx/vxp_mixer.c +++ b/sound/pcmcia/vx/vxp_mixer.c @@ -31,7 +31,7 @@ /* * mic level control (for VXPocket) */ -static int vx_mic_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_mic_level_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -40,17 +40,17 @@ static int vx_mic_level_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinf return 0; } -static int vx_mic_level_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_mic_level_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; ucontrol->value.integer.value[0] = chip->mic_level; return 0; } -static int vx_mic_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_mic_level_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; down(&_chip->mixer_mutex); if (chip->mic_level != ucontrol->value.integer.value[0]) { @@ -63,7 +63,7 @@ static int vx_mic_level_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon return 0; } -static snd_kcontrol_new_t vx_control_mic_level = { +static struct snd_kcontrol_new vx_control_mic_level = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Mic Capture Volume", .info = vx_mic_level_info, @@ -74,7 +74,7 @@ static snd_kcontrol_new_t vx_control_mic_level = { /* * mic boost level control (for VXP440) */ -static int vx_mic_boost_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int vx_mic_boost_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -83,17 +83,17 @@ static int vx_mic_boost_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinf return 0; } -static int vx_mic_boost_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_mic_boost_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; ucontrol->value.integer.value[0] = chip->mic_level; return 0; } -static int vx_mic_boost_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int vx_mic_boost_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - vx_core_t *_chip = snd_kcontrol_chip(kcontrol); + struct vx_core *_chip = snd_kcontrol_chip(kcontrol); struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; down(&_chip->mixer_mutex); if (chip->mic_level != ucontrol->value.integer.value[0]) { @@ -106,7 +106,7 @@ static int vx_mic_boost_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon return 0; } -static snd_kcontrol_new_t vx_control_mic_boost = { +static struct snd_kcontrol_new vx_control_mic_boost = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Mic Boost", .info = vx_mic_boost_info, @@ -115,7 +115,7 @@ static snd_kcontrol_new_t vx_control_mic_boost = { }; -int vxp_add_mic_controls(vx_core_t *_chip) +int vxp_add_mic_controls(struct vx_core *_chip) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; int err; diff --git a/sound/pcmcia/vx/vxp_ops.c b/sound/pcmcia/vx/vxp_ops.c index 2754d657a4d..7f82f619f9f 100644 --- a/sound/pcmcia/vx/vxp_ops.c +++ b/sound/pcmcia/vx/vxp_ops.c @@ -49,7 +49,7 @@ static int vxp_reg_offset[VX_REG_MAX] = { }; -static inline unsigned long vxp_reg_addr(vx_core_t *_chip, int reg) +static inline unsigned long vxp_reg_addr(struct vx_core *_chip, int reg) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; return chip->port + vxp_reg_offset[reg]; @@ -59,7 +59,7 @@ static inline unsigned long vxp_reg_addr(vx_core_t *_chip, int reg) * snd_vx_inb - read a byte from the register * @offset: register offset */ -static unsigned char vxp_inb(vx_core_t *chip, int offset) +static unsigned char vxp_inb(struct vx_core *chip, int offset) { return inb(vxp_reg_addr(chip, offset)); } @@ -69,7 +69,7 @@ static unsigned char vxp_inb(vx_core_t *chip, int offset) * @offset: the register offset * @val: the value to write */ -static void vxp_outb(vx_core_t *chip, int offset, unsigned char val) +static void vxp_outb(struct vx_core *chip, int offset, unsigned char val) { outb(val, vxp_reg_addr(chip, offset)); } @@ -78,9 +78,9 @@ static void vxp_outb(vx_core_t *chip, int offset, unsigned char val) * redefine macros to call directly */ #undef vx_inb -#define vx_inb(chip,reg) vxp_inb((vx_core_t*)(chip), VX_##reg) +#define vx_inb(chip,reg) vxp_inb((struct vx_core *)(chip), VX_##reg) #undef vx_outb -#define vx_outb(chip,reg,val) vxp_outb((vx_core_t*)(chip), VX_##reg,val) +#define vx_outb(chip,reg,val) vxp_outb((struct vx_core *)(chip), VX_##reg,val) /* @@ -88,7 +88,7 @@ static void vxp_outb(vx_core_t *chip, int offset, unsigned char val) * * returns zero if a magic word is detected, or a negative error code. */ -static int vx_check_magic(vx_core_t *chip) +static int vx_check_magic(struct vx_core *chip) { unsigned long end_time = jiffies + HZ / 5; int c; @@ -109,7 +109,7 @@ static int vx_check_magic(vx_core_t *chip) #define XX_DSP_RESET_WAIT_TIME 2 /* ms */ -static void vxp_reset_dsp(vx_core_t *_chip) +static void vxp_reset_dsp(struct vx_core *_chip) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -127,7 +127,7 @@ static void vxp_reset_dsp(vx_core_t *_chip) /* * reset codec bit */ -static void vxp_reset_codec(vx_core_t *_chip) +static void vxp_reset_codec(struct vx_core *_chip) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -146,7 +146,7 @@ static void vxp_reset_codec(vx_core_t *_chip) * vx_load_xilinx_binary - load the xilinx binary image * the binary image is the binary array converted from the bitstream file. */ -static int vxp_load_xilinx_binary(vx_core_t *_chip, const struct firmware *fw) +static int vxp_load_xilinx_binary(struct vx_core *_chip, const struct firmware *fw) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; unsigned int i; @@ -244,7 +244,7 @@ static int vxp_load_xilinx_binary(vx_core_t *_chip, const struct firmware *fw) /* * vxp_load_dsp - load_dsp callback */ -static int vxp_load_dsp(vx_core_t *vx, int index, const struct firmware *fw) +static int vxp_load_dsp(struct vx_core *vx, int index, const struct firmware *fw) { int err; @@ -279,7 +279,7 @@ static int vxp_load_dsp(vx_core_t *vx, int index, const struct firmware *fw) * * spinlock held! */ -static int vxp_test_and_ack(vx_core_t *_chip) +static int vxp_test_and_ack(struct vx_core *_chip) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -306,7 +306,7 @@ static int vxp_test_and_ack(vx_core_t *_chip) /* * vx_validate_irq - enable/disable IRQ */ -static void vxp_validate_irq(vx_core_t *_chip, int enable) +static void vxp_validate_irq(struct vx_core *_chip, int enable) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -322,7 +322,7 @@ static void vxp_validate_irq(vx_core_t *_chip, int enable) * vx_setup_pseudo_dma - set up the pseudo dma read/write mode. * @do_write: 0 = read, 1 = set up for DMA write */ -static void vx_setup_pseudo_dma(vx_core_t *_chip, int do_write) +static void vx_setup_pseudo_dma(struct vx_core *_chip, int do_write) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -342,7 +342,7 @@ static void vx_setup_pseudo_dma(vx_core_t *_chip, int do_write) /* * vx_release_pseudo_dma - disable the pseudo-DMA mode */ -static void vx_release_pseudo_dma(vx_core_t *_chip) +static void vx_release_pseudo_dma(struct vx_core *_chip) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -362,8 +362,8 @@ static void vx_release_pseudo_dma(vx_core_t *_chip) * data size must be aligned to 6 bytes to ensure the 24bit alignment on DSP. * NB: call with a certain lock! */ -static void vxp_dma_write(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count) +static void vxp_dma_write(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count) { long port = vxp_reg_addr(chip, VX_DMA); int offset = pipe->hw_ptr; @@ -401,8 +401,8 @@ static void vxp_dma_write(vx_core_t *chip, snd_pcm_runtime_t *runtime, * the read length must be aligned to 6 bytes, as well as write. * NB: call with a certain lock! */ -static void vxp_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtime, - vx_pipe_t *pipe, int count) +static void vxp_dma_read(struct vx_core *chip, struct snd_pcm_runtime *runtime, + struct vx_pipe *pipe, int count) { struct snd_vxpocket *pchip = (struct snd_vxpocket *)chip; long port = vxp_reg_addr(chip, VX_DMA); @@ -442,7 +442,7 @@ static void vxp_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtime, /* * write a codec data (24bit) */ -static void vxp_write_codec_reg(vx_core_t *chip, int codec, unsigned int data) +static void vxp_write_codec_reg(struct vx_core *chip, int codec, unsigned int data) { int i; @@ -465,7 +465,7 @@ static void vxp_write_codec_reg(vx_core_t *chip, int codec, unsigned int data) * vx_set_mic_boost - set mic boost level (on vxp440 only) * @boost: 0 = 20dB, 1 = +38dB */ -void vx_set_mic_boost(vx_core_t *chip, int boost) +void vx_set_mic_boost(struct vx_core *chip, int boost) { struct snd_vxpocket *pchip = (struct snd_vxpocket *)chip; unsigned long flags; @@ -508,7 +508,7 @@ static int vx_compute_mic_level(int level) * vx_set_mic_level - set mic level (on vxpocket only) * @level: the mic level = 0 - 8 (max) */ -void vx_set_mic_level(vx_core_t *chip, int level) +void vx_set_mic_level(struct vx_core *chip, int level) { struct snd_vxpocket *pchip = (struct snd_vxpocket *)chip; unsigned long flags; @@ -528,7 +528,7 @@ void vx_set_mic_level(vx_core_t *chip, int level) /* * change the input audio source */ -static void vxp_change_audio_source(vx_core_t *_chip, int src) +static void vxp_change_audio_source(struct vx_core *_chip, int src) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -568,7 +568,7 @@ static void vxp_change_audio_source(vx_core_t *_chip, int src) * change the clock source * source = INTERNAL_QUARTZ or UER_SYNC */ -static void vxp_set_clock_source(vx_core_t *_chip, int source) +static void vxp_set_clock_source(struct vx_core *_chip, int source) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; @@ -583,7 +583,7 @@ static void vxp_set_clock_source(vx_core_t *_chip, int source) /* * reset the board */ -static void vxp_reset_board(vx_core_t *_chip, int cold_reset) +static void vxp_reset_board(struct vx_core *_chip, int cold_reset) { struct snd_vxpocket *chip = (struct snd_vxpocket *)_chip; diff --git a/sound/pcmcia/vx/vxpocket.c b/sound/pcmcia/vx/vxpocket.c index 1e8f16b4c07..00962971414 100644 --- a/sound/pcmcia/vx/vxpocket.c +++ b/sound/pcmcia/vx/vxpocket.c @@ -83,9 +83,9 @@ static void vxpocket_release(dev_link_t *link) /* * destructor, called from snd_card_free_in_thread() */ -static int snd_vxpocket_dev_free(snd_device_t *device) +static int snd_vxpocket_dev_free(struct snd_device *device) { - vx_core_t *chip = device->device_data; + struct vx_core *chip = device->device_data; snd_vx_free_firmware(chip); kfree(chip); @@ -142,19 +142,19 @@ static struct snd_vx_hardware vxp440_hw = { /* * create vxpocket instance */ -static struct snd_vxpocket *snd_vxpocket_new(snd_card_t *card, int ibl) +static struct snd_vxpocket *snd_vxpocket_new(struct snd_card *card, int ibl) { client_reg_t client_reg; /* Register with cardmgr */ dev_link_t *link; /* Info for cardmgr */ - vx_core_t *chip; + struct vx_core *chip; struct snd_vxpocket *vxp; int ret; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_vxpocket_dev_free, }; chip = snd_vx_create(card, &vxpocket_hw, &snd_vxpocket_ops, - sizeof(struct snd_vxpocket) - sizeof(vx_core_t)); + sizeof(struct snd_vxpocket) - sizeof(struct vx_core)); if (! chip) return NULL; @@ -218,10 +218,10 @@ static struct snd_vxpocket *snd_vxpocket_new(snd_card_t *card, int ibl) * * returns 0 if successful, or a negative error code. */ -static int snd_vxpocket_assign_resources(vx_core_t *chip, int port, int irq) +static int snd_vxpocket_assign_resources(struct vx_core *chip, int port, int irq) { int err; - snd_card_t *card = chip->card; + struct snd_card *card = chip->card; struct snd_vxpocket *vxp = (struct snd_vxpocket *)chip; snd_printdd(KERN_DEBUG "vxpocket assign resources: port = 0x%x, irq = %d\n", port, irq); @@ -250,7 +250,7 @@ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) static void vxpocket_config(dev_link_t *link) { client_handle_t handle = link->handle; - vx_core_t *chip = link->priv; + struct vx_core *chip = link->priv; struct snd_vxpocket *vxp = (struct snd_vxpocket *)chip; tuple_t tuple; cisparse_t *parse; @@ -324,7 +324,7 @@ failed: static int vxpocket_event(event_t event, int priority, event_callback_args_t *args) { dev_link_t *link = args->client_data; - vx_core_t *chip = link->priv; + struct vx_core *chip = link->priv; switch (event) { case CS_EVENT_CARD_REMOVAL: @@ -379,7 +379,7 @@ static int vxpocket_event(event_t event, int priority, event_callback_args_t *ar */ static dev_link_t *vxpocket_attach(void) { - snd_card_t *card; + struct snd_card *card; struct snd_vxpocket *vxp; int i; @@ -421,14 +421,14 @@ static dev_link_t *vxpocket_attach(void) static void vxpocket_detach(dev_link_t *link) { struct snd_vxpocket *vxp; - vx_core_t *chip; + struct vx_core *chip; dev_link_t **linkp; if (! link) return; vxp = link->priv; - chip = (vx_core_t *)vxp; + chip = (struct vx_core *)vxp; card_alloc &= ~(1 << vxp->index); /* Remove the interface data from the linked list */ diff --git a/sound/pcmcia/vx/vxpocket.h b/sound/pcmcia/vx/vxpocket.h index 70754aa3dd1..67efae3f6c8 100644 --- a/sound/pcmcia/vx/vxpocket.h +++ b/sound/pcmcia/vx/vxpocket.h @@ -30,7 +30,7 @@ struct snd_vxpocket { - vx_core_t core; + struct vx_core core; unsigned long port; @@ -48,10 +48,10 @@ struct snd_vxpocket { extern struct snd_vx_ops snd_vxpocket_ops; -void vx_set_mic_boost(vx_core_t *chip, int boost); -void vx_set_mic_level(vx_core_t *chip, int level); +void vx_set_mic_boost(struct vx_core *chip, int boost); +void vx_set_mic_level(struct vx_core *chip, int level); -int vxp_add_mic_controls(vx_core_t *chip); +int vxp_add_mic_controls(struct vx_core *chip); /* Constants used to access the CDSP register (0x08). */ #define CDSP_MAGIC 0xA7 /* magic value (for read) */ -- cgit v1.2.3-70-g09d2 From 3d19f804ef5f1d15fe001fc8d1ed58fac9d591fb Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:48:14 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI CS46xx Modules: CS46xx driver Remove xxx_t typedefs from the PCI CS46xx driver. Signed-off-by: Takashi Iwai --- include/sound/cs46xx.h | 87 +++-- include/sound/cs46xx_dsp_scb_types.h | 145 +++++---- include/sound/cs46xx_dsp_spos.h | 119 ++++--- include/sound/cs46xx_dsp_task_types.h | 35 +- sound/pci/cs46xx/cs46xx.c | 4 +- sound/pci/cs46xx/cs46xx_lib.c | 584 +++++++++++++++++----------------- sound/pci/cs46xx/cs46xx_lib.h | 211 ++++++------ sound/pci/cs46xx/dsp_spos.c | 264 ++++++++------- sound/pci/cs46xx/dsp_spos.h | 18 +- sound/pci/cs46xx/dsp_spos_scb_lib.c | 338 ++++++++++---------- sound/pci/cs46xx/imgs/cwc4630.h | 6 +- sound/pci/cs46xx/imgs/cwcasync.h | 6 +- sound/pci/cs46xx/imgs/cwcbinhack.h | 6 +- sound/pci/cs46xx/imgs/cwcdma.h | 6 +- sound/pci/cs46xx/imgs/cwcemb80.h | 6 +- sound/pci/cs46xx/imgs/cwcsnoop.h | 6 +- 16 files changed, 938 insertions(+), 903 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/cs46xx.h b/include/sound/cs46xx.h index b0c0e192eb5..b33ca2a3630 100644 --- a/include/sound/cs46xx.h +++ b/include/sound/cs46xx.h @@ -1631,42 +1631,41 @@ #define CS46XX_MIXER_SPDIF_INPUT_ELEMENT 1 #define CS46XX_MIXER_SPDIF_OUTPUT_ELEMENT 2 -typedef struct _snd_cs46xx cs46xx_t; -typedef struct _snd_cs46xx_pcm_t { +struct snd_cs46xx_pcm { struct snd_dma_buffer hw_buf; unsigned int ctl; unsigned int shift; /* Shift count to trasform frames in bytes */ - snd_pcm_indirect_t pcm_rec; - snd_pcm_substream_t *substream; + struct snd_pcm_indirect pcm_rec; + struct snd_pcm_substream *substream; - pcm_channel_descriptor_t * pcm_channel; + struct dsp_pcm_channel_descriptor * pcm_channel; int pcm_channel_id; /* Fron Rear, Center Lfe ... */ -} cs46xx_pcm_t; +}; -typedef struct { +struct snd_cs46xx_region { char name[24]; unsigned long base; void __iomem *remap_addr; unsigned long size; struct resource *resource; -} snd_cs46xx_region_t; +}; -struct _snd_cs46xx { +struct snd_cs46xx { int irq; unsigned long ba0_addr; unsigned long ba1_addr; union { struct { - snd_cs46xx_region_t ba0; - snd_cs46xx_region_t data0; - snd_cs46xx_region_t data1; - snd_cs46xx_region_t pmem; - snd_cs46xx_region_t reg; + struct snd_cs46xx_region ba0; + struct snd_cs46xx_region data0; + struct snd_cs46xx_region data1; + struct snd_cs46xx_region pmem; + struct snd_cs46xx_region reg; } name; - snd_cs46xx_region_t idx[5]; + struct snd_cs46xx_region idx[5]; } region; unsigned int mode; @@ -1676,34 +1675,34 @@ struct _snd_cs46xx { unsigned int ctl; unsigned int shift; /* Shift count to trasform frames in bytes */ - snd_pcm_indirect_t pcm_rec; - snd_pcm_substream_t *substream; + struct snd_pcm_indirect pcm_rec; + struct snd_pcm_substream *substream; } capt; int nr_ac97_codecs; - ac97_bus_t *ac97_bus; - ac97_t *ac97[MAX_NR_AC97]; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97[MAX_NR_AC97]; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; + struct snd_card *card; + struct snd_pcm *pcm; - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *midi_input; - snd_rawmidi_substream_t *midi_output; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *midi_input; + struct snd_rawmidi_substream *midi_output; spinlock_t reg_lock; unsigned int midcr; unsigned int uartm; int amplifier; - void (*amplifier_ctrl)(cs46xx_t *, int); - void (*active_ctrl)(cs46xx_t *, int); - void (*mixer_init)(cs46xx_t *); + void (*amplifier_ctrl)(struct snd_cs46xx *, int); + void (*active_ctrl)(struct snd_cs46xx *, int); + void (*mixer_init)(struct snd_cs46xx *); int acpi_port; - snd_kcontrol_t *eapd_switch; /* for amplifier hack */ + struct snd_kcontrol *eapd_switch; /* for amplifier hack */ int accept_valid; /* accept mmap valid (for OSS) */ struct gameport *gameport; @@ -1714,29 +1713,29 @@ struct _snd_cs46xx { #ifdef CONFIG_SND_CS46XX_NEW_DSP struct semaphore spos_mutex; - dsp_spos_instance_t * dsp_spos_instance; + struct dsp_spos_instance * dsp_spos_instance; - snd_pcm_t *pcm_rear; - snd_pcm_t *pcm_center_lfe; - snd_pcm_t *pcm_iec958; + struct snd_pcm *pcm_rear; + struct snd_pcm *pcm_center_lfe; + struct snd_pcm *pcm_iec958; #else /* for compatibility */ - cs46xx_pcm_t *playback_pcm; + struct snd_cs46xx_pcm *playback_pcm; unsigned int play_ctl; #endif }; -int snd_cs46xx_create(snd_card_t *card, +int snd_cs46xx_create(struct snd_card *card, struct pci_dev *pci, int external_amp, int thinkpad, - cs46xx_t **rcodec); - -int snd_cs46xx_pcm(cs46xx_t *chip, int device, snd_pcm_t **rpcm); -int snd_cs46xx_pcm_rear(cs46xx_t *chip, int device, snd_pcm_t **rpcm); -int snd_cs46xx_pcm_iec958(cs46xx_t *chip, int device, snd_pcm_t **rpcm); -int snd_cs46xx_pcm_center_lfe(cs46xx_t *chip, int device, snd_pcm_t **rpcm); -int snd_cs46xx_mixer(cs46xx_t *chip, int spdif_device); -int snd_cs46xx_midi(cs46xx_t *chip, int device, snd_rawmidi_t **rmidi); -int snd_cs46xx_start_dsp(cs46xx_t *chip); -int snd_cs46xx_gameport(cs46xx_t *chip); + struct snd_cs46xx **rcodec); + +int snd_cs46xx_pcm(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm); +int snd_cs46xx_pcm_rear(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm); +int snd_cs46xx_pcm_iec958(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm); +int snd_cs46xx_pcm_center_lfe(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm); +int snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device); +int snd_cs46xx_midi(struct snd_cs46xx *chip, int device, struct snd_rawmidi **rmidi); +int snd_cs46xx_start_dsp(struct snd_cs46xx *chip); +int snd_cs46xx_gameport(struct snd_cs46xx *chip); #endif /* __SOUND_CS46XX_H */ diff --git a/include/sound/cs46xx_dsp_scb_types.h b/include/sound/cs46xx_dsp_scb_types.h index 3f990a3a690..9cb6c7d0956 100644 --- a/include/sound/cs46xx_dsp_scb_types.h +++ b/include/sound/cs46xx_dsp_scb_types.h @@ -41,7 +41,7 @@ /* This structs are used internally by the SP */ -typedef struct _basic_dma_req_t { +struct dsp_basic_dma_req { /* DMA Requestor Word 0 (DCW) fields: 31 [30-28]27 [26:24] 23 22 21 20 [19:18] [17:16] 15 14 13 12 11 10 9 8 7 6 [5:0] @@ -53,9 +53,9 @@ typedef struct _basic_dma_req_t { u32 dmw; /* DMA Mode Word */ u32 saw; /* Source Address Word */ u32 daw; /* Destination Address Word */ -} basic_dma_req_t; +}; -typedef struct _scatter_gather_ext_t { +struct dsp_scatter_gather_ext { u32 npaw; /* Next-Page Address Word */ /* DMA Requestor Word 5 (NPCW) fields: @@ -69,9 +69,9 @@ typedef struct _scatter_gather_ext_t { u32 lbaw; /* Loop-Begin Address Word */ u32 nplbaw; /* Next-Page after Loop-Begin Address Word */ u32 sgaw; /* Scatter/Gather Address Word */ -} scatter_gather_ext_t; +}; -typedef struct _volume_control_t { +struct dsp_volume_control { ___DSP_DUAL_16BIT_ALLOC( rightTarg, /* Target volume for left & right channels */ leftTarg @@ -80,10 +80,10 @@ typedef struct _volume_control_t { rightVol, /* Current left & right channel volumes */ leftVol ) -} volume_control_t; +}; /* Generic stream control block (SCB) structure definition */ -typedef struct _generic_scb_t { +struct dsp_generic_scb { /* For streaming I/O, the DSP should never alter any words in the DMA requestor or the scatter/gather extension. Only ad hoc DMA request streams are free to alter the requestor (currently only occur in the @@ -99,13 +99,13 @@ typedef struct _generic_scb_t { /* Initialized by the host, only modified by DMA R/O for the DSP task */ - basic_dma_req_t basic_req; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ /* Scatter/gather DMA requestor extension (5 ints) Initialized by the host, only modified by DMA DSP task never needs to even read these. */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ /* Sublist pointer & next stream control block (SCB) link. Initialized & modified by the host R/O for the DSP task @@ -179,11 +179,11 @@ typedef struct _generic_scb_t { These two 32-bit words are redefined for wavetable & 3-D voices. */ - volume_control_t vol_ctrl_t; /* Optional */ -} generic_scb_t; + struct dsp_volume_control vol_ctrl_t; /* Optional */ +}; -typedef struct _spos_control_block_t { +struct dsp_spos_control_block { /* WARNING: Certain items in this structure are modified by the host Any dword that can be modified by the host, must not be modified by the SP as the host can only do atomic dword @@ -273,10 +273,10 @@ typedef struct _spos_control_block_t { u32 r32_save_for_spurious_int; u32 r32_save_for_trap; u32 r32_save_for_HFG; -} spos_control_block_t; +}; /* SPB for MIX_TO_OSTREAM algorithm family */ -typedef struct _mix2_ostream_spb_t +struct dsp_mix2_ostream_spb { /* 16b.16b integer.frac approximation to the number of 3 sample triplets to output each @@ -290,13 +290,13 @@ typedef struct _mix2_ostream_spb_t output triplets since the start of group */ u32 accumOutTriplets; -} mix2_ostream_spb_t; +}; /* SCB for Timing master algorithm */ -typedef struct _timing_master_scb_t { +struct dsp_timing_master_scb { /* First 12 dwords from generic_scb_t */ - basic_dma_req_t basic_req; /* Optional */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ ___DSP_DUAL_16BIT_ALLOC( next_scb, /* REQUIRED */ sub_list_ptr /* REQUIRED */ @@ -358,13 +358,13 @@ typedef struct _timing_master_scb_t { number of samples to output each frame. (approximation must be floor, to insure */ u32 nsamp_per_frm_q15; -} timing_master_scb_t; +}; /* SCB for CODEC output algorithm */ -typedef struct _codec_output_scb_t { +struct dsp_codec_output_scb { /* First 13 dwords from generic_scb_t */ - basic_dma_req_t basic_req; /* Optional */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ ___DSP_DUAL_16BIT_ALLOC( next_scb, /* REQUIRED */ sub_list_ptr /* REQUIRED */ @@ -422,13 +422,13 @@ typedef struct _codec_output_scb_t { reserved, last_sub_ptr ) -} codec_output_scb_t; +}; /* SCB for CODEC input algorithm */ -typedef struct _codec_input_scb_t { +struct dsp_codec_input_scb { /* First 13 dwords from generic_scb_t */ - basic_dma_req_t basic_req; /* Optional */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ ___DSP_DUAL_16BIT_ALLOC( next_scb, /* REQUIRED */ sub_list_ptr /* REQUIRED */ @@ -479,13 +479,13 @@ typedef struct _codec_input_scb_t { ) u32 reserved2; -} codec_input_scb_t; +}; -typedef struct _pcm_serial_input_scb_t { +struct dsp_pcm_serial_input_scb { /* First 13 dwords from generic_scb_t */ - basic_dma_req_t basic_req; /* Optional */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ ___DSP_DUAL_16BIT_ALLOC( next_scb, /* REQUIRED */ sub_list_ptr /* REQUIRED */ @@ -512,11 +512,11 @@ typedef struct _pcm_serial_input_scb_t { ) /* Initialized by the host (host updates target volumes) */ - volume_control_t psi_vol_ctrl; + struct dsp_volume_control psi_vol_ctrl; -} pcm_serial_input_scb_t; +}; -typedef struct _src_task_scb_t { +struct dsp_src_task_scb { ___DSP_DUAL_16BIT_ALLOC( frames_left_in_gof, gofs_left_in_sec @@ -571,10 +571,10 @@ typedef struct _src_task_scb_t { u32 phiIncr6int_26frac; - volume_control_t src_vol_ctrl; -} src_task_scb_t; + struct dsp_volume_control src_vol_ctrl; +}; -typedef struct _decimate_by_pow2_scb_t { +struct dsp_decimate_by_pow2_scb { /* decimationFactor = 2, 4, or 8 (larger factors waste too much memory when compared to cascading decimators) */ @@ -648,10 +648,10 @@ typedef struct _decimate_by_pow2_scb_t { u32 dec2_reserved4; - volume_control_t dec2_vol_ctrl; /* Not used! */ -} decimate_by_pow2_scb_t; + struct dsp_volume_control dec2_vol_ctrl; /* Not used! */ +}; -typedef struct _vari_decimate_scb_t { +struct dsp_vari_decimate_scb { ___DSP_DUAL_16BIT_ALLOC( vdec_frames_left_in_gof, vdec_gofs_left_in_sec @@ -711,15 +711,15 @@ typedef struct _vari_decimate_scb_t { u32 vdec_phi_incr_6int_26frac; - volume_control_t vdec_vol_ctrl; -} vari_decimate_scb_t; + struct dsp_volume_control vdec_vol_ctrl; +}; /* SCB for MIX_TO_OSTREAM algorithm family */ -typedef struct _mix2_ostream_scb_t { +struct dsp_mix2_ostream_scb { /* First 13 dwords from generic_scb_t */ - basic_dma_req_t basic_req; /* Optional */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ ___DSP_DUAL_16BIT_ALLOC( next_scb, /* REQUIRED */ sub_list_ptr /* REQUIRED */ @@ -758,14 +758,14 @@ typedef struct _mix2_ostream_scb_t { const_FFFF, const_zero ) -} mix2_ostream_scb_t; +}; /* SCB for S16_MIX algorithm */ -typedef struct _mix_only_scb_t { +struct dsp_mix_only_scb { /* First 13 dwords from generic_scb_t */ - basic_dma_req_t basic_req; /* Optional */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ ___DSP_DUAL_16BIT_ALLOC( next_scb, /* REQUIRED */ sub_list_ptr /* REQUIRED */ @@ -780,11 +780,11 @@ typedef struct _mix_only_scb_t { u32 strm_buf_ptr; /* REQUIRED */ u32 reserved; - volume_control_t vol_ctrl; -} mix_only_scb_t; + struct dsp_volume_control vol_ctrl; +}; /* SCB for the async. CODEC input algorithm */ -typedef struct _async_codec_input_scb_t { +struct dsp_async_codec_input_scb { u32 io_free2; u32 io_current_total; @@ -837,11 +837,11 @@ typedef struct _async_codec_input_scb_t { ) u32 i_free; -} async_codec_input_scb_t; +}; /* SCB for the SP/DIF CODEC input and output */ -typedef struct _spdifiscb_t { +struct dsp_spdifiscb { ___DSP_DUAL_16BIT_ALLOC( status_ptr, status_start_ptr @@ -895,12 +895,11 @@ typedef struct _spdifiscb_t { ) u32 free1; -} spdifiscb_t; +}; /* SCB for the SP/DIF CODEC input and output */ -typedef struct _spdifoscb_t { - +struct dsp_spdifoscb { u32 free2; @@ -941,11 +940,10 @@ typedef struct _spdifoscb_t { ) u32 free1; -} spdifoscb_t; - +}; -typedef struct _asynch_fg_rx_scb_t { +struct dsp_asynch_fg_rx_scb { ___DSP_DUAL_16BIT_ALLOC( bot_buf_mask, buf_Mask @@ -993,11 +991,10 @@ typedef struct _asynch_fg_rx_scb_t { right_vol, left_vol ) -} asynch_fg_rx_scb_t; - +}; -typedef struct _asynch_fg_tx_scb_t { +struct dsp_asynch_fg_tx_scb { ___DSP_DUAL_16BIT_ALLOC( not_buf_mask, buf_mask @@ -1052,13 +1049,13 @@ typedef struct _asynch_fg_tx_scb_t { unused_right_vol, unused_left_vol ) -} asynch_fg_tx_scb_t; +}; -typedef struct _output_snoop_scb_t { +struct dsp_output_snoop_scb { /* First 13 dwords from generic_scb_t */ - basic_dma_req_t basic_req; /* Optional */ - scatter_gather_ext_t sg_ext; /* Optional */ + struct dsp_basic_dma_req basic_req; /* Optional */ + struct dsp_scatter_gather_ext sg_ext; /* Optional */ ___DSP_DUAL_16BIT_ALLOC( next_scb, /* REQUIRED */ sub_list_ptr /* REQUIRED */ @@ -1083,9 +1080,9 @@ typedef struct _output_snoop_scb_t { reserved, input_scb ) -} output_snoop_scb_t; +}; -typedef struct _spio_write_scb_t { +struct dsp_spio_write_scb { ___DSP_DUAL_16BIT_ALLOC( address1, address2 @@ -1122,9 +1119,9 @@ typedef struct _spio_write_scb_t { ) u32 unused3[5]; -} spio_write_scb_t; +}; -typedef struct _magic_snoop_task_t { +struct dsp_magic_snoop_task { u32 i0; u32 i1; @@ -1155,11 +1152,11 @@ typedef struct _magic_snoop_task_t { u32 i8; - volume_control_t vdec_vol_ctrl; -} magic_snoop_task_t; + struct dsp_volume_control vdec_vol_ctrl; +}; -typedef struct _filter_scb_t { +struct dsp_filter_scb { ___DSP_DUAL_16BIT_ALLOC( a0_right, /* 0x00 */ a0_left @@ -1212,5 +1209,5 @@ typedef struct _filter_scb_t { b2_right, /* 0x0F */ b2_left ) -} filter_scb_t; +}; #endif /* __DSP_SCB_TYPES_H__ */ diff --git a/include/sound/cs46xx_dsp_spos.h b/include/sound/cs46xx_dsp_spos.h index 10014cb6242..da934def31e 100644 --- a/include/sound/cs46xx_dsp_spos.h +++ b/include/sound/cs46xx_dsp_spos.h @@ -65,133 +65,130 @@ #define DSP_SPDIF_STATUS_HW_ENABLED 4 #define DSP_SPDIF_STATUS_INPUT_CTRL_ENABLED 8 -struct _dsp_module_desc_t; - -typedef struct _symbol_entry_t { +struct dsp_symbol_entry { u32 address; char symbol_name[DSP_MAX_SYMBOL_NAME]; int symbol_type; /* initialized by driver */ - struct _dsp_module_desc_t * module; + struct dsp_module_desc * module; int deleted; -} symbol_entry_t; +}; -typedef struct _symbol_desc_t { +struct dsp_symbol_desc { int nsymbols; - symbol_entry_t * symbols; + struct dsp_symbol_entry *symbols; /* initialized by driver */ int highest_frag_index; -} symbol_desc_t; - +}; -typedef struct _segment_desc_t { +struct dsp_segment_desc { int segment_type; u32 offset; u32 size; u32 * data; -} segment_desc_t; +}; -typedef struct _dsp_module_desc_t { +struct dsp_module_desc { char * module_name; - symbol_desc_t symbol_table; + struct dsp_symbol_desc symbol_table; int nsegments; - segment_desc_t * segments; + struct dsp_segment_desc * segments; /* initialized by driver */ u32 overlay_begin_address; u32 load_address; int nfixups; -} dsp_module_desc_t; +}; -typedef struct _dsp_scb_descriptor_t { +struct dsp_scb_descriptor { char scb_name[DSP_MAX_SCB_NAME]; u32 address; int index; - struct _dsp_scb_descriptor_t * sub_list_ptr; - struct _dsp_scb_descriptor_t * next_scb_ptr; - struct _dsp_scb_descriptor_t * parent_scb_ptr; + struct dsp_scb_descriptor * sub_list_ptr; + struct dsp_scb_descriptor * next_scb_ptr; + struct dsp_scb_descriptor * parent_scb_ptr; - symbol_entry_t * task_entry; - symbol_entry_t * scb_symbol; + struct dsp_symbol_entry * task_entry; + struct dsp_symbol_entry * scb_symbol; - snd_info_entry_t *proc_info; + struct snd_info_entry *proc_info; int ref_count; spinlock_t lock; int deleted; -} dsp_scb_descriptor_t; +}; -typedef struct _dsp_task_descriptor_t { +struct dsp_task_descriptor { char task_name[DSP_MAX_TASK_NAME]; int size; u32 address; int index; -} dsp_task_descriptor_t; +}; -typedef struct _pcm_channel_descriptor_t { +struct dsp_pcm_channel_descriptor { int active; int src_slot; int pcm_slot; u32 sample_rate; u32 unlinked; - dsp_scb_descriptor_t * pcm_reader_scb; - dsp_scb_descriptor_t * src_scb; - dsp_scb_descriptor_t * mixer_scb; + struct dsp_scb_descriptor * pcm_reader_scb; + struct dsp_scb_descriptor * src_scb; + struct dsp_scb_descriptor * mixer_scb; void * private_data; -} pcm_channel_descriptor_t; +}; -typedef struct _dsp_spos_instance_t { - symbol_desc_t symbol_table; /* currently availble loaded symbols in SP */ +struct dsp_spos_instance { + struct dsp_symbol_desc symbol_table; /* currently availble loaded symbols in SP */ int nmodules; - dsp_module_desc_t * modules; /* modules loaded into SP */ + struct dsp_module_desc * modules; /* modules loaded into SP */ - segment_desc_t code; + struct dsp_segment_desc code; /* Main PCM playback mixer */ - dsp_scb_descriptor_t * master_mix_scb; + struct dsp_scb_descriptor * master_mix_scb; u16 dac_volume_right; u16 dac_volume_left; /* Rear/surround PCM playback mixer */ - dsp_scb_descriptor_t * rear_mix_scb; + struct dsp_scb_descriptor * rear_mix_scb; /* Center/LFE mixer */ - dsp_scb_descriptor_t * center_lfe_mix_scb; + struct dsp_scb_descriptor * center_lfe_mix_scb; int npcm_channels; int nsrc_scb; - pcm_channel_descriptor_t pcm_channels[DSP_MAX_PCM_CHANNELS]; + struct dsp_pcm_channel_descriptor pcm_channels[DSP_MAX_PCM_CHANNELS]; int src_scb_slots[DSP_MAX_SRC_NR]; /* cache this symbols */ - symbol_entry_t * null_algorithm; /* used by PCMreaderSCB's */ - symbol_entry_t * s16_up; /* used by SRCtaskSCB's */ + struct dsp_symbol_entry * null_algorithm; /* used by PCMreaderSCB's */ + struct dsp_symbol_entry * s16_up; /* used by SRCtaskSCB's */ /* proc fs */ - snd_card_t * snd_card; - snd_info_entry_t * proc_dsp_dir; - snd_info_entry_t * proc_sym_info_entry; - snd_info_entry_t * proc_modules_info_entry; - snd_info_entry_t * proc_parameter_dump_info_entry; - snd_info_entry_t * proc_sample_dump_info_entry; + struct snd_card *snd_card; + struct snd_info_entry * proc_dsp_dir; + struct snd_info_entry * proc_sym_info_entry; + struct snd_info_entry * proc_modules_info_entry; + struct snd_info_entry * proc_parameter_dump_info_entry; + struct snd_info_entry * proc_sample_dump_info_entry; /* SCB's descriptors */ int nscb; int scb_highest_frag_index; - dsp_scb_descriptor_t scbs[DSP_MAX_SCB_DESC]; - snd_info_entry_t * proc_scb_info_entry; - dsp_scb_descriptor_t * the_null_scb; + struct dsp_scb_descriptor scbs[DSP_MAX_SCB_DESC]; + struct snd_info_entry * proc_scb_info_entry; + struct dsp_scb_descriptor * the_null_scb; /* Task's descriptors */ int ntask; - dsp_task_descriptor_t tasks[DSP_MAX_TASK_DESC]; - snd_info_entry_t * proc_task_info_entry; + struct dsp_task_descriptor tasks[DSP_MAX_TASK_DESC]; + struct snd_info_entry * proc_task_info_entry; /* SPDIF status */ int spdif_status_out; @@ -204,30 +201,30 @@ typedef struct _dsp_spos_instance_t { unsigned int spdif_csuv_stream; /* SPDIF input sample rate converter */ - dsp_scb_descriptor_t * spdif_in_src; + struct dsp_scb_descriptor * spdif_in_src; /* SPDIF input asynch. receiver */ - dsp_scb_descriptor_t * asynch_rx_scb; + struct dsp_scb_descriptor * asynch_rx_scb; /* Capture record mixer SCB */ - dsp_scb_descriptor_t * record_mixer_scb; + struct dsp_scb_descriptor * record_mixer_scb; /* CODEC input SCB */ - dsp_scb_descriptor_t * codec_in_scb; + struct dsp_scb_descriptor * codec_in_scb; /* reference snooper */ - dsp_scb_descriptor_t * ref_snoop_scb; + struct dsp_scb_descriptor * ref_snoop_scb; /* SPDIF output PCM reference */ - dsp_scb_descriptor_t * spdif_pcm_input_scb; + struct dsp_scb_descriptor * spdif_pcm_input_scb; /* asynch TX task */ - dsp_scb_descriptor_t * asynch_tx_scb; + struct dsp_scb_descriptor * asynch_tx_scb; /* record sources */ - dsp_scb_descriptor_t * pcm_input; - dsp_scb_descriptor_t * adc_input; + struct dsp_scb_descriptor * pcm_input; + struct dsp_scb_descriptor * adc_input; int spdif_in_sample_rate; -} dsp_spos_instance_t; +}; #endif /* __DSP_SPOS_H__ */ diff --git a/include/sound/cs46xx_dsp_task_types.h b/include/sound/cs46xx_dsp_task_types.h index 5dd3bf69cb0..b3076c487de 100644 --- a/include/sound/cs46xx_dsp_task_types.h +++ b/include/sound/cs46xx_dsp_task_types.h @@ -71,7 +71,7 @@ Ptr____Call (c) at the end of BG */ /* Minimal context save area for Hyper Forground */ -typedef struct _hf_save_area_t { +struct dsp_hf_save_area { u32 r10_save; u32 r54_save; u32 r98_save; @@ -96,11 +96,11 @@ typedef struct _hf_save_area_t { rsa2Save ) /* saved as part of HFG context */ -} hf_save_area_t; +}; /* Task link data structure */ -typedef struct _tree_link_t { +struct dsp_tree_link { ___DSP_DUAL_16BIT_ALLOC( /* Pointer to sibling task control block */ next_scb, @@ -114,10 +114,10 @@ typedef struct _tree_link_t { /* Pointer to local data */ this_spb ) -} tree_link_t; +}; -typedef struct _task_tree_data_t { +struct dsp_task_tree_data { ___DSP_DUAL_16BIT_ALLOC( /* Initial tock count; controls task tree execution rate */ tock_count_limit, @@ -155,11 +155,10 @@ typedef struct _task_tree_data_t { data_stack_base_ptr ) -} task_tree_data_t; +}; - -typedef struct _interval_timer_data_t +struct dsp_interval_timer_data { /* These data items have the same relative locations to those */ ___DSP_DUAL_16BIT_ALLOC( @@ -172,12 +171,12 @@ typedef struct _interval_timer_data_t num_FG_ticks_this_interval, num_intervals ) -} interval_timer_data_t; +}; /* This structure contains extra storage for the task tree Currently, this additional data is related only to a full context save */ -typedef struct _task_tree_context_block_t { +struct dsp_task_tree_context_block { /* Up to 10 values are saved onto the stack. 8 for the task tree, 1 for The access to the context switch (call or interrupt), and 1 spare that users should never use. This last may be required by the system */ @@ -238,16 +237,16 @@ typedef struct _task_tree_context_block_t { u32 saveaux2xaux3x; u32 savershouthl; u32 savershoutxmacmode; -} task_tree_context_block_t; +}; -typedef struct _task_tree_control_block_t { - hf_save_area_t context; - tree_link_t links; - task_tree_data_t data; - task_tree_context_block_t context_blk; - interval_timer_data_t int_timer; -} task_tree_control_block_t; +struct dsp_task_tree_control_block { + struct dsp_hf_save_area context; + struct dsp_tree_link links; + struct dsp_task_tree_data data; + struct dsp_task_tree_context_block context_blk; + struct dsp_interval_timer_data int_timer; +}; #endif /* __DSP_TASK_TYPES_H__ */ diff --git a/sound/pci/cs46xx/cs46xx.c b/sound/pci/cs46xx/cs46xx.c index b9fff4ee6f9..7d6b29e5433 100644 --- a/sound/pci/cs46xx/cs46xx.c +++ b/sound/pci/cs46xx/cs46xx.c @@ -78,8 +78,8 @@ static int __devinit snd_card_cs46xx_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - cs46xx_t *chip; + struct snd_card *card; + struct snd_cs46xx *chip; int err; if (dev >= SNDRV_CARDS) diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index 9a86148d718..11d91d08a14 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c @@ -66,23 +66,23 @@ #include "cs46xx_lib.h" #include "dsp_spos.h" -static void amp_voyetra(cs46xx_t *chip, int change); +static void amp_voyetra(struct snd_cs46xx *chip, int change); #ifdef CONFIG_SND_CS46XX_NEW_DSP -static snd_pcm_ops_t snd_cs46xx_playback_rear_ops; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_rear_ops; -static snd_pcm_ops_t snd_cs46xx_playback_clfe_ops; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_clfe_ops; -static snd_pcm_ops_t snd_cs46xx_playback_iec958_ops; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_iec958_ops; +static struct snd_pcm_ops snd_cs46xx_playback_rear_ops; +static struct snd_pcm_ops snd_cs46xx_playback_indirect_rear_ops; +static struct snd_pcm_ops snd_cs46xx_playback_clfe_ops; +static struct snd_pcm_ops snd_cs46xx_playback_indirect_clfe_ops; +static struct snd_pcm_ops snd_cs46xx_playback_iec958_ops; +static struct snd_pcm_ops snd_cs46xx_playback_indirect_iec958_ops; #endif -static snd_pcm_ops_t snd_cs46xx_playback_ops; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_ops; -static snd_pcm_ops_t snd_cs46xx_capture_ops; -static snd_pcm_ops_t snd_cs46xx_capture_indirect_ops; +static struct snd_pcm_ops snd_cs46xx_playback_ops; +static struct snd_pcm_ops snd_cs46xx_playback_indirect_ops; +static struct snd_pcm_ops snd_cs46xx_capture_ops; +static struct snd_pcm_ops snd_cs46xx_capture_indirect_ops; -static unsigned short snd_cs46xx_codec_read(cs46xx_t *chip, +static unsigned short snd_cs46xx_codec_read(struct snd_cs46xx *chip, unsigned short reg, int codec_index) { @@ -204,10 +204,10 @@ static unsigned short snd_cs46xx_codec_read(cs46xx_t *chip, return result; } -static unsigned short snd_cs46xx_ac97_read(ac97_t * ac97, +static unsigned short snd_cs46xx_ac97_read(struct snd_ac97 * ac97, unsigned short reg) { - cs46xx_t *chip = ac97->private_data; + struct snd_cs46xx *chip = ac97->private_data; unsigned short val; int codec_index = ac97->num; @@ -221,7 +221,7 @@ static unsigned short snd_cs46xx_ac97_read(ac97_t * ac97, } -static void snd_cs46xx_codec_write(cs46xx_t *chip, +static void snd_cs46xx_codec_write(struct snd_cs46xx *chip, unsigned short reg, unsigned short val, int codec_index) @@ -286,11 +286,11 @@ static void snd_cs46xx_codec_write(cs46xx_t *chip, chip->active_ctrl(chip, -1); } -static void snd_cs46xx_ac97_write(ac97_t *ac97, +static void snd_cs46xx_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - cs46xx_t *chip = ac97->private_data; + struct snd_cs46xx *chip = ac97->private_data; int codec_index = ac97->num; snd_assert(codec_index == CS46XX_PRIMARY_CODEC_INDEX || @@ -305,7 +305,7 @@ static void snd_cs46xx_ac97_write(ac97_t *ac97, * Chip initialization */ -int snd_cs46xx_download(cs46xx_t *chip, +int snd_cs46xx_download(struct snd_cs46xx *chip, u32 *src, unsigned long offset, unsigned long len) @@ -334,7 +334,7 @@ int snd_cs46xx_download(cs46xx_t *chip, #include "imgs/cwcbinhack.h" #include "imgs/cwcdma.h" -int snd_cs46xx_clear_BA1(cs46xx_t *chip, +int snd_cs46xx_clear_BA1(struct snd_cs46xx *chip, unsigned long offset, unsigned long len) { @@ -358,7 +358,7 @@ int snd_cs46xx_clear_BA1(cs46xx_t *chip, #include "cs46xx_image.h" -int snd_cs46xx_download_image(cs46xx_t *chip) +int snd_cs46xx_download_image(struct snd_cs46xx *chip) { int idx, err; unsigned long offset = 0; @@ -379,7 +379,7 @@ int snd_cs46xx_download_image(cs46xx_t *chip) * Chip reset */ -static void snd_cs46xx_reset(cs46xx_t *chip) +static void snd_cs46xx_reset(struct snd_cs46xx *chip) { int idx; @@ -408,7 +408,7 @@ static void snd_cs46xx_reset(cs46xx_t *chip) snd_cs46xx_poke(chip, BA1_FRMT, 0xadf); } -static int cs46xx_wait_for_fifo(cs46xx_t * chip,int retry_timeout) +static int cs46xx_wait_for_fifo(struct snd_cs46xx * chip,int retry_timeout) { u32 i, status = 0; /* @@ -432,7 +432,7 @@ static int cs46xx_wait_for_fifo(cs46xx_t * chip,int retry_timeout) return 0; } -static void snd_cs46xx_clear_serial_FIFOs(cs46xx_t *chip) +static void snd_cs46xx_clear_serial_FIFOs(struct snd_cs46xx *chip) { int idx, powerdown = 0; unsigned int tmp; @@ -486,7 +486,7 @@ static void snd_cs46xx_clear_serial_FIFOs(cs46xx_t *chip) snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp); } -static void snd_cs46xx_proc_start(cs46xx_t *chip) +static void snd_cs46xx_proc_start(struct snd_cs46xx *chip) { int cnt; @@ -513,7 +513,7 @@ static void snd_cs46xx_proc_start(cs46xx_t *chip) snd_printk(KERN_ERR "SPCR_RUNFR never reset\n"); } -static void snd_cs46xx_proc_stop(cs46xx_t *chip) +static void snd_cs46xx_proc_stop(struct snd_cs46xx *chip) { /* * Turn off the run, run at frame, and DMA enable bits in the local copy of @@ -528,7 +528,7 @@ static void snd_cs46xx_proc_stop(cs46xx_t *chip) #define GOF_PER_SEC 200 -static void snd_cs46xx_set_play_sample_rate(cs46xx_t *chip, unsigned int rate) +static void snd_cs46xx_set_play_sample_rate(struct snd_cs46xx *chip, unsigned int rate) { unsigned long flags; unsigned int tmp1, tmp2; @@ -574,7 +574,7 @@ static void snd_cs46xx_set_play_sample_rate(cs46xx_t *chip, unsigned int rate) spin_unlock_irqrestore(&chip->reg_lock, flags); } -static void snd_cs46xx_set_capture_sample_rate(cs46xx_t *chip, unsigned int rate) +static void snd_cs46xx_set_capture_sample_rate(struct snd_cs46xx *chip, unsigned int rate) { unsigned long flags; unsigned int phiIncr, coeffIncr, tmp1, tmp2; @@ -684,43 +684,43 @@ static void snd_cs46xx_set_capture_sample_rate(cs46xx_t *chip, unsigned int rate * PCM part */ -static void snd_cs46xx_pb_trans_copy(snd_pcm_substream_t *substream, - snd_pcm_indirect_t *rec, size_t bytes) +static void snd_cs46xx_pb_trans_copy(struct snd_pcm_substream *substream, + struct snd_pcm_indirect *rec, size_t bytes) { - snd_pcm_runtime_t *runtime = substream->runtime; - cs46xx_pcm_t * cpcm = runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_cs46xx_pcm * cpcm = runtime->private_data; memcpy(cpcm->hw_buf.area + rec->hw_data, runtime->dma_area + rec->sw_data, bytes); } -static int snd_cs46xx_playback_transfer(snd_pcm_substream_t *substream) +static int snd_cs46xx_playback_transfer(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - cs46xx_pcm_t * cpcm = runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_cs46xx_pcm * cpcm = runtime->private_data; snd_pcm_indirect_playback_transfer(substream, &cpcm->pcm_rec, snd_cs46xx_pb_trans_copy); return 0; } -static void snd_cs46xx_cp_trans_copy(snd_pcm_substream_t *substream, - snd_pcm_indirect_t *rec, size_t bytes) +static void snd_cs46xx_cp_trans_copy(struct snd_pcm_substream *substream, + struct snd_pcm_indirect *rec, size_t bytes) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; memcpy(runtime->dma_area + rec->sw_data, chip->capt.hw_buf.area + rec->hw_data, bytes); } -static int snd_cs46xx_capture_transfer(snd_pcm_substream_t *substream) +static int snd_cs46xx_capture_transfer(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); snd_pcm_indirect_capture_transfer(substream, &chip->capt.pcm_rec, snd_cs46xx_cp_trans_copy); return 0; } -static snd_pcm_uframes_t snd_cs46xx_playback_direct_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_cs46xx_playback_direct_pointer(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); size_t ptr; - cs46xx_pcm_t *cpcm = substream->runtime->private_data; + struct snd_cs46xx_pcm *cpcm = substream->runtime->private_data; snd_assert (cpcm->pcm_channel,return -ENXIO); #ifdef CONFIG_SND_CS46XX_NEW_DSP @@ -732,11 +732,11 @@ static snd_pcm_uframes_t snd_cs46xx_playback_direct_pointer(snd_pcm_substream_t return ptr >> cpcm->shift; } -static snd_pcm_uframes_t snd_cs46xx_playback_indirect_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_cs46xx_playback_indirect_pointer(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); size_t ptr; - cs46xx_pcm_t *cpcm = substream->runtime->private_data; + struct snd_cs46xx_pcm *cpcm = substream->runtime->private_data; #ifdef CONFIG_SND_CS46XX_NEW_DSP snd_assert (cpcm->pcm_channel,return -ENXIO); @@ -748,29 +748,29 @@ static snd_pcm_uframes_t snd_cs46xx_playback_indirect_pointer(snd_pcm_substream_ return snd_pcm_indirect_playback_pointer(substream, &cpcm->pcm_rec, ptr); } -static snd_pcm_uframes_t snd_cs46xx_capture_direct_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_cs46xx_capture_direct_pointer(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); size_t ptr = snd_cs46xx_peek(chip, BA1_CBA) - chip->capt.hw_buf.addr; return ptr >> chip->capt.shift; } -static snd_pcm_uframes_t snd_cs46xx_capture_indirect_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_cs46xx_capture_indirect_pointer(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); size_t ptr = snd_cs46xx_peek(chip, BA1_CBA) - chip->capt.hw_buf.addr; return snd_pcm_indirect_capture_pointer(substream, &chip->capt.pcm_rec, ptr); } -static int snd_cs46xx_playback_trigger(snd_pcm_substream_t * substream, +static int snd_cs46xx_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); - /*snd_pcm_runtime_t *runtime = substream->runtime;*/ + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + /*struct snd_pcm_runtime *runtime = substream->runtime;*/ int result = 0; #ifdef CONFIG_SND_CS46XX_NEW_DSP - cs46xx_pcm_t *cpcm = substream->runtime->private_data; + struct snd_cs46xx_pcm *cpcm = substream->runtime->private_data; if (! cpcm->pcm_channel) { return -ENXIO; } @@ -827,10 +827,10 @@ static int snd_cs46xx_playback_trigger(snd_pcm_substream_t * substream, return result; } -static int snd_cs46xx_capture_trigger(snd_pcm_substream_t * substream, +static int snd_cs46xx_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); unsigned int tmp; int result = 0; @@ -858,7 +858,7 @@ static int snd_cs46xx_capture_trigger(snd_pcm_substream_t * substream, } #ifdef CONFIG_SND_CS46XX_NEW_DSP -static int _cs46xx_adjust_sample_rate (cs46xx_t *chip, cs46xx_pcm_t *cpcm, +static int _cs46xx_adjust_sample_rate (struct snd_cs46xx *chip, struct snd_cs46xx_pcm *cpcm, int sample_rate) { @@ -893,14 +893,14 @@ static int _cs46xx_adjust_sample_rate (cs46xx_t *chip, cs46xx_pcm_t *cpcm, #endif -static int snd_cs46xx_playback_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_cs46xx_playback_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - snd_pcm_runtime_t *runtime = substream->runtime; - cs46xx_pcm_t *cpcm; + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_cs46xx_pcm *cpcm; int err; #ifdef CONFIG_SND_CS46XX_NEW_DSP - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); int sample_rate = params_rate(hw_params); int period_size = params_period_bytes(hw_params); #endif @@ -995,11 +995,11 @@ static int snd_cs46xx_playback_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_cs46xx_playback_hw_free(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_hw_free(struct snd_pcm_substream *substream) { - /*cs46xx_t *chip = snd_pcm_substream_chip(substream);*/ - snd_pcm_runtime_t *runtime = substream->runtime; - cs46xx_pcm_t *cpcm; + /*struct snd_cs46xx *chip = snd_pcm_substream_chip(substream);*/ + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_cs46xx_pcm *cpcm; cpcm = runtime->private_data; @@ -1017,13 +1017,13 @@ static int snd_cs46xx_playback_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_cs46xx_playback_prepare(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_prepare(struct snd_pcm_substream *substream) { unsigned int tmp; unsigned int pfie; - cs46xx_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - cs46xx_pcm_t *cpcm; + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_cs46xx_pcm *cpcm; cpcm = runtime->private_data; @@ -1087,11 +1087,11 @@ static int snd_cs46xx_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_cs46xx_capture_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_cs46xx_capture_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; #ifdef CONFIG_SND_CS46XX_NEW_DSP @@ -1118,10 +1118,10 @@ static int snd_cs46xx_capture_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_cs46xx_capture_hw_free(snd_pcm_substream_t * substream) +static int snd_cs46xx_capture_hw_free(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; if (runtime->dma_area != chip->capt.hw_buf.area) snd_pcm_lib_free_pages(substream); @@ -1132,10 +1132,10 @@ static int snd_cs46xx_capture_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_cs46xx_capture_prepare(snd_pcm_substream_t * substream) +static int snd_cs46xx_capture_prepare(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_cs46xx_poke(chip, BA1_CBA, chip->capt.hw_buf.addr); chip->capt.shift = 2; @@ -1149,13 +1149,13 @@ static int snd_cs46xx_capture_prepare(snd_pcm_substream_t * substream) static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - cs46xx_t *chip = dev_id; + struct snd_cs46xx *chip = dev_id; u32 status1; #ifdef CONFIG_SND_CS46XX_NEW_DSP - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; u32 status2; int i; - cs46xx_pcm_t *cpcm = NULL; + struct snd_cs46xx_pcm *cpcm = NULL; #endif /* @@ -1239,7 +1239,7 @@ static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *r return IRQ_HANDLED; } -static snd_pcm_hardware_t snd_cs46xx_playback = +static struct snd_pcm_hardware snd_cs46xx_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | @@ -1261,7 +1261,7 @@ static snd_pcm_hardware_t snd_cs46xx_playback = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_cs46xx_capture = +static struct snd_pcm_hardware snd_cs46xx_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | @@ -1285,7 +1285,7 @@ static snd_pcm_hardware_t snd_cs46xx_capture = static unsigned int period_sizes[] = { 32, 64, 128, 256, 512, 1024, 2048 }; -static snd_pcm_hw_constraint_list_t hw_constraints_period_sizes = { +static struct snd_pcm_hw_constraint_list hw_constraints_period_sizes = { .count = ARRAY_SIZE(period_sizes), .list = period_sizes, .mask = 0 @@ -1293,16 +1293,16 @@ static snd_pcm_hw_constraint_list_t hw_constraints_period_sizes = { #endif -static void snd_cs46xx_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_cs46xx_pcm_free_substream(struct snd_pcm_runtime *runtime) { kfree(runtime->private_data); } -static int _cs46xx_playback_open_channel (snd_pcm_substream_t * substream,int pcm_channel_id) +static int _cs46xx_playback_open_channel (struct snd_pcm_substream *substream,int pcm_channel_id) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); - cs46xx_pcm_t * cpcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx_pcm * cpcm; + struct snd_pcm_runtime *runtime = substream->runtime; cpcm = kzalloc(sizeof(*cpcm), GFP_KERNEL); if (cpcm == NULL) @@ -1340,30 +1340,30 @@ static int _cs46xx_playback_open_channel (snd_pcm_substream_t * substream,int pc return 0; } -static int snd_cs46xx_playback_open(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_open(struct snd_pcm_substream *substream) { snd_printdd("open front channel\n"); return _cs46xx_playback_open_channel(substream,DSP_PCM_MAIN_CHANNEL); } #ifdef CONFIG_SND_CS46XX_NEW_DSP -static int snd_cs46xx_playback_open_rear(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_open_rear(struct snd_pcm_substream *substream) { snd_printdd("open rear channel\n"); return _cs46xx_playback_open_channel(substream,DSP_PCM_REAR_CHANNEL); } -static int snd_cs46xx_playback_open_clfe(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_open_clfe(struct snd_pcm_substream *substream) { snd_printdd("open center - LFE channel\n"); return _cs46xx_playback_open_channel(substream,DSP_PCM_CENTER_LFE_CHANNEL); } -static int snd_cs46xx_playback_open_iec958(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_open_iec958(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); snd_printdd("open raw iec958 channel\n"); @@ -1374,12 +1374,12 @@ static int snd_cs46xx_playback_open_iec958(snd_pcm_substream_t * substream) return _cs46xx_playback_open_channel(substream,DSP_IEC958_CHANNEL); } -static int snd_cs46xx_playback_close(snd_pcm_substream_t * substream); +static int snd_cs46xx_playback_close(struct snd_pcm_substream *substream); -static int snd_cs46xx_playback_close_iec958(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_close_iec958(struct snd_pcm_substream *substream) { int err; - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); snd_printdd("close raw iec958 channel\n"); @@ -1393,9 +1393,9 @@ static int snd_cs46xx_playback_close_iec958(snd_pcm_substream_t * substream) } #endif -static int snd_cs46xx_capture_open(snd_pcm_substream_t * substream) +static int snd_cs46xx_capture_open(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(chip->pci), PAGE_SIZE, &chip->capt.hw_buf) < 0) @@ -1416,11 +1416,11 @@ static int snd_cs46xx_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_cs46xx_playback_close(snd_pcm_substream_t * substream) +static int snd_cs46xx_playback_close(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - cs46xx_pcm_t * cpcm; + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_cs46xx_pcm * cpcm; cpcm = runtime->private_data; @@ -1445,9 +1445,9 @@ static int snd_cs46xx_playback_close(snd_pcm_substream_t * substream) return 0; } -static int snd_cs46xx_capture_close(snd_pcm_substream_t * substream) +static int snd_cs46xx_capture_close(struct snd_pcm_substream *substream) { - cs46xx_t *chip = snd_pcm_substream_chip(substream); + struct snd_cs46xx *chip = snd_pcm_substream_chip(substream); chip->capt.substream = NULL; snd_dma_free_pages(&chip->capt.hw_buf); @@ -1457,7 +1457,7 @@ static int snd_cs46xx_capture_close(snd_pcm_substream_t * substream) } #ifdef CONFIG_SND_CS46XX_NEW_DSP -static snd_pcm_ops_t snd_cs46xx_playback_rear_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_rear_ops = { .open = snd_cs46xx_playback_open_rear, .close = snd_cs46xx_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1468,7 +1468,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_rear_ops = { .pointer = snd_cs46xx_playback_direct_pointer, }; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_rear_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_indirect_rear_ops = { .open = snd_cs46xx_playback_open_rear, .close = snd_cs46xx_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1480,7 +1480,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_indirect_rear_ops = { .ack = snd_cs46xx_playback_transfer, }; -static snd_pcm_ops_t snd_cs46xx_playback_clfe_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_clfe_ops = { .open = snd_cs46xx_playback_open_clfe, .close = snd_cs46xx_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1491,7 +1491,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_clfe_ops = { .pointer = snd_cs46xx_playback_direct_pointer, }; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_clfe_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_indirect_clfe_ops = { .open = snd_cs46xx_playback_open_clfe, .close = snd_cs46xx_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1503,7 +1503,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_indirect_clfe_ops = { .ack = snd_cs46xx_playback_transfer, }; -static snd_pcm_ops_t snd_cs46xx_playback_iec958_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_iec958_ops = { .open = snd_cs46xx_playback_open_iec958, .close = snd_cs46xx_playback_close_iec958, .ioctl = snd_pcm_lib_ioctl, @@ -1514,7 +1514,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_iec958_ops = { .pointer = snd_cs46xx_playback_direct_pointer, }; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_iec958_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_indirect_iec958_ops = { .open = snd_cs46xx_playback_open_iec958, .close = snd_cs46xx_playback_close_iec958, .ioctl = snd_pcm_lib_ioctl, @@ -1528,7 +1528,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_indirect_iec958_ops = { #endif -static snd_pcm_ops_t snd_cs46xx_playback_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_ops = { .open = snd_cs46xx_playback_open, .close = snd_cs46xx_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1539,7 +1539,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_ops = { .pointer = snd_cs46xx_playback_direct_pointer, }; -static snd_pcm_ops_t snd_cs46xx_playback_indirect_ops = { +static struct snd_pcm_ops snd_cs46xx_playback_indirect_ops = { .open = snd_cs46xx_playback_open, .close = snd_cs46xx_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1551,7 +1551,7 @@ static snd_pcm_ops_t snd_cs46xx_playback_indirect_ops = { .ack = snd_cs46xx_playback_transfer, }; -static snd_pcm_ops_t snd_cs46xx_capture_ops = { +static struct snd_pcm_ops snd_cs46xx_capture_ops = { .open = snd_cs46xx_capture_open, .close = snd_cs46xx_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1562,7 +1562,7 @@ static snd_pcm_ops_t snd_cs46xx_capture_ops = { .pointer = snd_cs46xx_capture_direct_pointer, }; -static snd_pcm_ops_t snd_cs46xx_capture_indirect_ops = { +static struct snd_pcm_ops snd_cs46xx_capture_indirect_ops = { .open = snd_cs46xx_capture_open, .close = snd_cs46xx_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1580,9 +1580,9 @@ static snd_pcm_ops_t snd_cs46xx_capture_indirect_ops = { #define MAX_PLAYBACK_CHANNELS 1 #endif -int __devinit snd_cs46xx_pcm(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_cs46xx_pcm(struct snd_cs46xx *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1611,9 +1611,9 @@ int __devinit snd_cs46xx_pcm(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) #ifdef CONFIG_SND_CS46XX_NEW_DSP -int __devinit snd_cs46xx_pcm_rear(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_cs46xx_pcm_rear(struct snd_cs46xx *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1640,9 +1640,9 @@ int __devinit snd_cs46xx_pcm_rear(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) return 0; } -int __devinit snd_cs46xx_pcm_center_lfe(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_cs46xx_pcm_center_lfe(struct snd_cs46xx *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1669,9 +1669,9 @@ int __devinit snd_cs46xx_pcm_center_lfe(cs46xx_t *chip, int device, snd_pcm_t ** return 0; } -int __devinit snd_cs46xx_pcm_iec958(cs46xx_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_cs46xx_pcm_iec958(struct snd_cs46xx *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1702,16 +1702,16 @@ int __devinit snd_cs46xx_pcm_iec958(cs46xx_t *chip, int device, snd_pcm_t ** rpc /* * Mixer routines */ -static void snd_cs46xx_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_cs46xx_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - cs46xx_t *chip = bus->private_data; + struct snd_cs46xx *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_cs46xx_mixer_free_ac97(ac97_t *ac97) +static void snd_cs46xx_mixer_free_ac97(struct snd_ac97 *ac97) { - cs46xx_t *chip = ac97->private_data; + struct snd_cs46xx *chip = ac97->private_data; snd_assert ((ac97 == chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]) || (ac97 == chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]), @@ -1725,8 +1725,8 @@ static void snd_cs46xx_mixer_free_ac97(ac97_t *ac97) chip->ac97[CS46XX_SECONDARY_CODEC_INDEX] = NULL; } -static int snd_cs46xx_vol_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_cs46xx_vol_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -1735,9 +1735,9 @@ static int snd_cs46xx_vol_info(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cs46xx_vol_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value; unsigned int val = snd_cs46xx_peek(chip, reg); ucontrol->value.integer.value[0] = 0xffff - (val >> 16); @@ -1745,9 +1745,9 @@ static int snd_cs46xx_vol_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return 0; } -static int snd_cs46xx_vol_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value; unsigned int val = ((0xffff - ucontrol->value.integer.value[0]) << 16 | (0xffff - ucontrol->value.integer.value[1])); @@ -1763,9 +1763,9 @@ static int snd_cs46xx_vol_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * #ifdef CONFIG_SND_CS46XX_NEW_DSP -static int snd_cs46xx_vol_dac_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_vol_dac_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = chip->dsp_spos_instance->dac_volume_left; ucontrol->value.integer.value[1] = chip->dsp_spos_instance->dac_volume_right; @@ -1773,9 +1773,9 @@ static int snd_cs46xx_vol_dac_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_ return 0; } -static int snd_cs46xx_vol_dac_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_vol_dac_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int change = 0; if (chip->dsp_spos_instance->dac_volume_right != ucontrol->value.integer.value[0] || @@ -1790,18 +1790,18 @@ static int snd_cs46xx_vol_dac_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_ } #if 0 -static int snd_cs46xx_vol_iec958_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_vol_iec958_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = chip->dsp_spos_instance->spdif_input_volume_left; ucontrol->value.integer.value[1] = chip->dsp_spos_instance->spdif_input_volume_right; return 0; } -static int snd_cs46xx_vol_iec958_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_vol_iec958_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int change = 0; if (chip->dsp_spos_instance->spdif_input_volume_left != ucontrol->value.integer.value[0] || @@ -1816,8 +1816,8 @@ static int snd_cs46xx_vol_iec958_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_val } #endif -static int snd_mixer_boolean_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_mixer_boolean_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1826,10 +1826,10 @@ static int snd_mixer_boolean_info(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cs46xx_iec958_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_iec958_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value; if (reg == CS46XX_MIXER_SPDIF_OUTPUT_ELEMENT) @@ -1840,10 +1840,10 @@ static int snd_cs46xx_iec958_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cs46xx_iec958_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_iec958_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int change, res; switch (kcontrol->private_value) { @@ -1877,11 +1877,11 @@ static int snd_cs46xx_iec958_put(snd_kcontrol_t *kcontrol, return res; } -static int snd_cs46xx_adc_capture_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_adc_capture_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; if (ins->adc_input != NULL) ucontrol->value.integer.value[0] = 1; @@ -1891,11 +1891,11 @@ static int snd_cs46xx_adc_capture_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cs46xx_adc_capture_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_adc_capture_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int change = 0; if (ucontrol->value.integer.value[0] && !ins->adc_input) { @@ -1908,11 +1908,11 @@ static int snd_cs46xx_adc_capture_put(snd_kcontrol_t *kcontrol, return change; } -static int snd_cs46xx_pcm_capture_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_pcm_capture_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; if (ins->pcm_input != NULL) ucontrol->value.integer.value[0] = 1; @@ -1923,11 +1923,11 @@ static int snd_cs46xx_pcm_capture_get(snd_kcontrol_t *kcontrol, } -static int snd_cs46xx_pcm_capture_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_pcm_capture_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int change = 0; if (ucontrol->value.integer.value[0] && !ins->pcm_input) { @@ -1941,10 +1941,10 @@ static int snd_cs46xx_pcm_capture_put(snd_kcontrol_t *kcontrol, return change; } -static int snd_herc_spdif_select_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_herc_spdif_select_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int val1 = snd_cs46xx_peekBA0(chip, BA0_EGPIODR); @@ -1959,10 +1959,10 @@ static int snd_herc_spdif_select_get(snd_kcontrol_t *kcontrol, /* * Game Theatre XP card - EGPIO[0] is used to select SPDIF input optical or coaxial. */ -static int snd_herc_spdif_select_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_herc_spdif_select_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int val1 = snd_cs46xx_peekBA0(chip, BA0_EGPIODR); int val2 = snd_cs46xx_peekBA0(chip, BA0_EGPIOPTR); @@ -1984,18 +1984,18 @@ static int snd_herc_spdif_select_put(snd_kcontrol_t *kcontrol, } -static int snd_cs46xx_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_cs46xx_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_cs46xx_spdif_default_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_spdif_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; down (&chip->spos_mutex); ucontrol->value.iec958.status[0] = _wrap_all_bits((ins->spdif_csuv_default >> 24) & 0xff); @@ -2007,11 +2007,11 @@ static int snd_cs46xx_spdif_default_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_cs46xx_spdif_default_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_spdif_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t * chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx * chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; unsigned int val; int change; @@ -2034,8 +2034,8 @@ static int snd_cs46xx_spdif_default_put(snd_kcontrol_t * kcontrol, return change; } -static int snd_cs46xx_spdif_mask_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_spdif_mask_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -2044,11 +2044,11 @@ static int snd_cs46xx_spdif_mask_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_cs46xx_spdif_stream_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_spdif_stream_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; down (&chip->spos_mutex); ucontrol->value.iec958.status[0] = _wrap_all_bits((ins->spdif_csuv_stream >> 24) & 0xff); @@ -2060,11 +2060,11 @@ static int snd_cs46xx_spdif_stream_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_cs46xx_spdif_stream_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_cs46xx_spdif_stream_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t * chip = snd_kcontrol_chip(kcontrol); - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx * chip = snd_kcontrol_chip(kcontrol); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; unsigned int val; int change; @@ -2091,8 +2091,8 @@ static int snd_cs46xx_spdif_stream_put(snd_kcontrol_t * kcontrol, #ifdef CONFIG_SND_CS46XX_DEBUG_GPIO -static int snd_cs46xx_egpio_select_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_cs46xx_egpio_select_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -2101,19 +2101,19 @@ static int snd_cs46xx_egpio_select_info(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cs46xx_egpio_select_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_egpio_select_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = chip->current_gpio; return 0; } -static int snd_cs46xx_egpio_select_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_egpio_select_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int change = (chip->current_gpio != ucontrol->value.integer.value[0]); chip->current_gpio = ucontrol->value.integer.value[0]; @@ -2121,10 +2121,10 @@ static int snd_cs46xx_egpio_select_put(snd_kcontrol_t *kcontrol, } -static int snd_cs46xx_egpio_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_egpio_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value; snd_printdd ("put: reg = %04x, gpio %02x\n",reg,chip->current_gpio); @@ -2134,10 +2134,10 @@ static int snd_cs46xx_egpio_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cs46xx_egpio_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_egpio_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value; int val = snd_cs46xx_peekBA0(chip, reg); int oldval = val; @@ -2155,7 +2155,7 @@ static int snd_cs46xx_egpio_put(snd_kcontrol_t *kcontrol, } #endif /* CONFIG_SND_CS46XX_DEBUG_GPIO */ -static snd_kcontrol_new_t snd_cs46xx_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_cs46xx_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "DAC Volume", @@ -2285,26 +2285,26 @@ static snd_kcontrol_new_t snd_cs46xx_controls[] __devinitdata = { #ifdef CONFIG_SND_CS46XX_NEW_DSP /* set primary cs4294 codec into Extended Audio Mode */ -static int snd_cs46xx_front_dup_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_front_dup_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); unsigned short val; val = snd_ac97_read(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX], AC97_CSR_ACMODE); ucontrol->value.integer.value[0] = (val & 0x200) ? 0 : 1; return 0; } -static int snd_cs46xx_front_dup_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cs46xx_front_dup_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs46xx_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol); return snd_ac97_update_bits(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX], AC97_CSR_ACMODE, 0x200, ucontrol->value.integer.value[0] ? 0 : 0x200); } -static snd_kcontrol_new_t snd_cs46xx_front_dup_ctl = { +static struct snd_kcontrol_new snd_cs46xx_front_dup_ctl = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Duplicate Front", .info = snd_mixer_boolean_info, @@ -2315,7 +2315,7 @@ static snd_kcontrol_new_t snd_cs46xx_front_dup_ctl = { #ifdef CONFIG_SND_CS46XX_NEW_DSP /* Only available on the Hercules Game Theater XP soundcard */ -static snd_kcontrol_new_t snd_hercules_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_hercules_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Optical/Coaxial SPDIF Input Switch", @@ -2326,7 +2326,7 @@ static snd_kcontrol_new_t snd_hercules_controls[] __devinitdata = { }; -static void snd_cs46xx_codec_reset (ac97_t * ac97) +static void snd_cs46xx_codec_reset (struct snd_ac97 * ac97) { unsigned long end_time; int err; @@ -2375,10 +2375,10 @@ static void snd_cs46xx_codec_reset (ac97_t * ac97) } #endif -static int __devinit cs46xx_detect_codec(cs46xx_t *chip, int codec) +static int __devinit cs46xx_detect_codec(struct snd_cs46xx *chip, int codec) { int idx, err; - ac97_template_t ac97; + struct snd_ac97_template ac97; memset(&ac97, 0, sizeof(ac97)); ac97.private_data = chip; @@ -2408,13 +2408,13 @@ static int __devinit cs46xx_detect_codec(cs46xx_t *chip, int codec) return -ENXIO; } -int __devinit snd_cs46xx_mixer(cs46xx_t *chip, int spdif_device) +int __devinit snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device) { - snd_card_t *card = chip->card; - snd_ctl_elem_id_t id; + struct snd_card *card = chip->card; + struct snd_ctl_elem_id id; int err; unsigned int idx; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { #ifdef CONFIG_SND_CS46XX_NEW_DSP .reset = snd_cs46xx_codec_reset, #endif @@ -2442,7 +2442,7 @@ int __devinit snd_cs46xx_mixer(cs46xx_t *chip, int spdif_device) /* add cs4630 mixer controls */ for (idx = 0; idx < ARRAY_SIZE(snd_cs46xx_controls); idx++) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; kctl = snd_ctl_new1(&snd_cs46xx_controls[idx], chip); if (kctl && kctl->id.iface == SNDRV_CTL_ELEM_IFACE_PCM) kctl->id.device = spdif_device; @@ -2484,16 +2484,16 @@ int __devinit snd_cs46xx_mixer(cs46xx_t *chip, int spdif_device) * RawMIDI interface */ -static void snd_cs46xx_midi_reset(cs46xx_t *chip) +static void snd_cs46xx_midi_reset(struct snd_cs46xx *chip) { snd_cs46xx_pokeBA0(chip, BA0_MIDCR, MIDCR_MRST); udelay(100); snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr); } -static int snd_cs46xx_midi_input_open(snd_rawmidi_substream_t * substream) +static int snd_cs46xx_midi_input_open(struct snd_rawmidi_substream *substream) { - cs46xx_t *chip = substream->rmidi->private_data; + struct snd_cs46xx *chip = substream->rmidi->private_data; chip->active_ctrl(chip, 1); spin_lock_irq(&chip->reg_lock); @@ -2509,9 +2509,9 @@ static int snd_cs46xx_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_cs46xx_midi_input_close(snd_rawmidi_substream_t * substream) +static int snd_cs46xx_midi_input_close(struct snd_rawmidi_substream *substream) { - cs46xx_t *chip = substream->rmidi->private_data; + struct snd_cs46xx *chip = substream->rmidi->private_data; spin_lock_irq(&chip->reg_lock); chip->midcr &= ~(MIDCR_RXE | MIDCR_RIE); @@ -2527,9 +2527,9 @@ static int snd_cs46xx_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int snd_cs46xx_midi_output_open(snd_rawmidi_substream_t * substream) +static int snd_cs46xx_midi_output_open(struct snd_rawmidi_substream *substream) { - cs46xx_t *chip = substream->rmidi->private_data; + struct snd_cs46xx *chip = substream->rmidi->private_data; chip->active_ctrl(chip, 1); @@ -2546,9 +2546,9 @@ static int snd_cs46xx_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_cs46xx_midi_output_close(snd_rawmidi_substream_t * substream) +static int snd_cs46xx_midi_output_close(struct snd_rawmidi_substream *substream) { - cs46xx_t *chip = substream->rmidi->private_data; + struct snd_cs46xx *chip = substream->rmidi->private_data; spin_lock_irq(&chip->reg_lock); chip->midcr &= ~(MIDCR_TXE | MIDCR_TIE); @@ -2564,10 +2564,10 @@ static int snd_cs46xx_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static void snd_cs46xx_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_cs46xx_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { unsigned long flags; - cs46xx_t *chip = substream->rmidi->private_data; + struct snd_cs46xx *chip = substream->rmidi->private_data; spin_lock_irqsave(&chip->reg_lock, flags); if (up) { @@ -2584,10 +2584,10 @@ static void snd_cs46xx_midi_input_trigger(snd_rawmidi_substream_t * substream, i spin_unlock_irqrestore(&chip->reg_lock, flags); } -static void snd_cs46xx_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_cs46xx_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { unsigned long flags; - cs46xx_t *chip = substream->rmidi->private_data; + struct snd_cs46xx *chip = substream->rmidi->private_data; unsigned char byte; spin_lock_irqsave(&chip->reg_lock, flags); @@ -2614,23 +2614,23 @@ static void snd_cs46xx_midi_output_trigger(snd_rawmidi_substream_t * substream, spin_unlock_irqrestore(&chip->reg_lock, flags); } -static snd_rawmidi_ops_t snd_cs46xx_midi_output = +static struct snd_rawmidi_ops snd_cs46xx_midi_output = { .open = snd_cs46xx_midi_output_open, .close = snd_cs46xx_midi_output_close, .trigger = snd_cs46xx_midi_output_trigger, }; -static snd_rawmidi_ops_t snd_cs46xx_midi_input = +static struct snd_rawmidi_ops snd_cs46xx_midi_input = { .open = snd_cs46xx_midi_input_open, .close = snd_cs46xx_midi_input_close, .trigger = snd_cs46xx_midi_input_trigger, }; -int __devinit snd_cs46xx_midi(cs46xx_t *chip, int device, snd_rawmidi_t **rrawmidi) +int __devinit snd_cs46xx_midi(struct snd_cs46xx *chip, int device, struct snd_rawmidi **rrawmidi) { - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; int err; if (rrawmidi) @@ -2657,7 +2657,7 @@ int __devinit snd_cs46xx_midi(cs46xx_t *chip, int device, snd_rawmidi_t **rrawmi static void snd_cs46xx_gameport_trigger(struct gameport *gameport) { - cs46xx_t *chip = gameport_get_port_data(gameport); + struct snd_cs46xx *chip = gameport_get_port_data(gameport); snd_assert(chip, return); snd_cs46xx_pokeBA0(chip, BA0_JSPT, 0xFF); //outb(gameport->io, 0xFF); @@ -2665,7 +2665,7 @@ static void snd_cs46xx_gameport_trigger(struct gameport *gameport) static unsigned char snd_cs46xx_gameport_read(struct gameport *gameport) { - cs46xx_t *chip = gameport_get_port_data(gameport); + struct snd_cs46xx *chip = gameport_get_port_data(gameport); snd_assert(chip, return 0); return snd_cs46xx_peekBA0(chip, BA0_JSPT); //inb(gameport->io); @@ -2673,7 +2673,7 @@ static unsigned char snd_cs46xx_gameport_read(struct gameport *gameport) static int snd_cs46xx_gameport_cooked_read(struct gameport *gameport, int *axes, int *buttons) { - cs46xx_t *chip = gameport_get_port_data(gameport); + struct snd_cs46xx *chip = gameport_get_port_data(gameport); unsigned js1, js2, jst; snd_assert(chip, return 0); @@ -2707,7 +2707,7 @@ static int snd_cs46xx_gameport_open(struct gameport *gameport, int mode) return 0; } -int __devinit snd_cs46xx_gameport(cs46xx_t *chip) +int __devinit snd_cs46xx_gameport(struct snd_cs46xx *chip) { struct gameport *gp; @@ -2735,7 +2735,7 @@ int __devinit snd_cs46xx_gameport(cs46xx_t *chip) return 0; } -static inline void snd_cs46xx_remove_gameport(cs46xx_t *chip) +static inline void snd_cs46xx_remove_gameport(struct snd_cs46xx *chip) { if (chip->gameport) { gameport_unregister_port(chip->gameport); @@ -2743,20 +2743,20 @@ static inline void snd_cs46xx_remove_gameport(cs46xx_t *chip) } } #else -int __devinit snd_cs46xx_gameport(cs46xx_t *chip) { return -ENOSYS; } -static inline void snd_cs46xx_remove_gameport(cs46xx_t *chip) { } +int __devinit snd_cs46xx_gameport(struct snd_cs46xx *chip) { return -ENOSYS; } +static inline void snd_cs46xx_remove_gameport(struct snd_cs46xx *chip) { } #endif /* CONFIG_GAMEPORT */ /* * proc interface */ -static long snd_cs46xx_io_read(snd_info_entry_t *entry, void *file_private_data, +static long snd_cs46xx_io_read(struct snd_info_entry *entry, void *file_private_data, struct file *file, char __user *buf, unsigned long count, unsigned long pos) { long size; - snd_cs46xx_region_t *region = (snd_cs46xx_region_t *)entry->private_data; + struct snd_cs46xx_region *region = entry->private_data; size = count; if (pos + (size_t)size > region->size) @@ -2772,13 +2772,13 @@ static struct snd_info_entry_ops snd_cs46xx_proc_io_ops = { .read = snd_cs46xx_io_read, }; -static int __devinit snd_cs46xx_proc_init(snd_card_t * card, cs46xx_t *chip) +static int __devinit snd_cs46xx_proc_init(struct snd_card *card, struct snd_cs46xx *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; int idx; for (idx = 0; idx < 5; idx++) { - snd_cs46xx_region_t *region = &chip->region.idx[idx]; + struct snd_cs46xx_region *region = &chip->region.idx[idx]; if (! snd_card_proc_new(card, region->name, &entry)) { entry->content = SNDRV_INFO_CONTENT_DATA; entry->private_data = chip; @@ -2793,7 +2793,7 @@ static int __devinit snd_cs46xx_proc_init(snd_card_t * card, cs46xx_t *chip) return 0; } -static int snd_cs46xx_proc_done(cs46xx_t *chip) +static int snd_cs46xx_proc_done(struct snd_cs46xx *chip) { #ifdef CONFIG_SND_CS46XX_NEW_DSP cs46xx_dsp_proc_done(chip); @@ -2804,7 +2804,7 @@ static int snd_cs46xx_proc_done(cs46xx_t *chip) /* * stop the h/w */ -static void snd_cs46xx_hw_stop(cs46xx_t *chip) +static void snd_cs46xx_hw_stop(struct snd_cs46xx *chip) { unsigned int tmp; @@ -2851,7 +2851,7 @@ static void snd_cs46xx_hw_stop(cs46xx_t *chip) } -static int snd_cs46xx_free(cs46xx_t *chip) +static int snd_cs46xx_free(struct snd_cs46xx *chip) { int idx; @@ -2871,13 +2871,13 @@ static int snd_cs46xx_free(cs46xx_t *chip) snd_cs46xx_hw_stop(chip); for (idx = 0; idx < 5; idx++) { - snd_cs46xx_region_t *region = &chip->region.idx[idx]; + struct snd_cs46xx_region *region = &chip->region.idx[idx]; if (region->remap_addr) iounmap(region->remap_addr); release_and_free_resource(region->resource); } if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); if (chip->active_ctrl) chip->active_ctrl(chip, -chip->amplifier); @@ -2894,16 +2894,16 @@ static int snd_cs46xx_free(cs46xx_t *chip) return 0; } -static int snd_cs46xx_dev_free(snd_device_t *device) +static int snd_cs46xx_dev_free(struct snd_device *device) { - cs46xx_t *chip = device->device_data; + struct snd_cs46xx *chip = device->device_data; return snd_cs46xx_free(chip); } /* * initialize chip */ -static int snd_cs46xx_chip_init(cs46xx_t *chip) +static int snd_cs46xx_chip_init(struct snd_cs46xx *chip) { int timeout; @@ -3132,7 +3132,7 @@ static int snd_cs46xx_chip_init(cs46xx_t *chip) /* * start and load DSP */ -int __devinit snd_cs46xx_start_dsp(cs46xx_t *chip) +int __devinit snd_cs46xx_start_dsp(struct snd_cs46xx *chip) { unsigned int tmp; /* @@ -3234,12 +3234,12 @@ int __devinit snd_cs46xx_start_dsp(cs46xx_t *chip) * AMP control - null AMP */ -static void amp_none(cs46xx_t *chip, int change) +static void amp_none(struct snd_cs46xx *chip, int change) { } #ifdef CONFIG_SND_CS46XX_NEW_DSP -static int voyetra_setup_eapd_slot(cs46xx_t *chip) +static int voyetra_setup_eapd_slot(struct snd_cs46xx *chip) { u32 idx, valid_slots,tmp,powerdown = 0; @@ -3359,7 +3359,7 @@ static int voyetra_setup_eapd_slot(cs46xx_t *chip) * Crystal EAPD mode */ -static void amp_voyetra(cs46xx_t *chip, int change) +static void amp_voyetra(struct snd_cs46xx *chip, int change) { /* Manage the EAPD bit on the Crystal 4297 and the Analog AD1885 */ @@ -3395,7 +3395,7 @@ static void amp_voyetra(cs46xx_t *chip, int change) #endif } -static void hercules_init(cs46xx_t *chip) +static void hercules_init(struct snd_cs46xx *chip) { /* default: AMP off, and SPDIF input optical */ snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, EGPIODR_GPOE0); @@ -3406,7 +3406,7 @@ static void hercules_init(cs46xx_t *chip) /* * Game Theatre XP card - EGPIO[2] is used to enable the external amp. */ -static void amp_hercules(cs46xx_t *chip, int change) +static void amp_hercules(struct snd_cs46xx *chip, int change) { int old = chip->amplifier; int val1 = snd_cs46xx_peekBA0(chip, BA0_EGPIODR); @@ -3427,7 +3427,7 @@ static void amp_hercules(cs46xx_t *chip, int change) } } -static void voyetra_mixer_init (cs46xx_t *chip) +static void voyetra_mixer_init (struct snd_cs46xx *chip) { snd_printdd ("initializing Voyetra mixer\n"); @@ -3436,12 +3436,12 @@ static void voyetra_mixer_init (cs46xx_t *chip) snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR, EGPIODR_GPOE0); } -static void hercules_mixer_init (cs46xx_t *chip) +static void hercules_mixer_init (struct snd_cs46xx *chip) { #ifdef CONFIG_SND_CS46XX_NEW_DSP unsigned int idx; int err; - snd_card_t *card = chip->card; + struct snd_card *card = chip->card; #endif /* set EGPIO to default */ @@ -3451,7 +3451,7 @@ static void hercules_mixer_init (cs46xx_t *chip) #ifdef CONFIG_SND_CS46XX_NEW_DSP for (idx = 0 ; idx < ARRAY_SIZE(snd_hercules_controls); idx++) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; kctl = snd_ctl_new1(&snd_hercules_controls[idx], chip); if ((err = snd_ctl_add(card, kctl)) < 0) { @@ -3468,7 +3468,7 @@ static void hercules_mixer_init (cs46xx_t *chip) * Untested */ -static void amp_voyetra_4294(cs46xx_t *chip, int change) +static void amp_voyetra_4294(struct snd_cs46xx *chip, int change) { chip->amplifier += change; @@ -3498,7 +3498,7 @@ static void amp_voyetra_4294(cs46xx_t *chip, int change) * enough to make them useful. */ -static void clkrun_hack(cs46xx_t *chip, int change) +static void clkrun_hack(struct snd_cs46xx *chip, int change) { u16 control, nval; @@ -3523,7 +3523,7 @@ static void clkrun_hack(cs46xx_t *chip, int change) /* * detect intel piix4 */ -static void clkrun_init(cs46xx_t *chip) +static void clkrun_init(struct snd_cs46xx *chip) { struct pci_dev *pdev; u8 pp; @@ -3551,10 +3551,10 @@ struct cs_card_type u16 vendor; u16 id; char *name; - void (*init)(cs46xx_t *); - void (*amp)(cs46xx_t *, int); - void (*active)(cs46xx_t *, int); - void (*mixer_init)(cs46xx_t *); + void (*init)(struct snd_cs46xx *); + void (*amp)(struct snd_cs46xx *, int); + void (*active)(struct snd_cs46xx *, int); + void (*mixer_init)(struct snd_cs46xx *); }; static struct cs_card_type __devinitdata cards[] = { @@ -3654,9 +3654,9 @@ static struct cs_card_type __devinitdata cards[] = { * APM support */ #ifdef CONFIG_PM -static int snd_cs46xx_suspend(snd_card_t *card, pm_message_t state) +static int snd_cs46xx_suspend(struct snd_card *card, pm_message_t state) { - cs46xx_t *chip = card->pm_private_data; + struct snd_cs46xx *chip = card->pm_private_data; int amp_saved; snd_pcm_suspend_all(chip->pcm); @@ -3678,9 +3678,9 @@ static int snd_cs46xx_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int snd_cs46xx_resume(snd_card_t *card) +static int snd_cs46xx_resume(struct snd_card *card) { - cs46xx_t *chip = card->pm_private_data; + struct snd_cs46xx *chip = card->pm_private_data; int amp_saved; pci_enable_device(chip->pci); @@ -3719,17 +3719,17 @@ static int snd_cs46xx_resume(snd_card_t *card) /* */ -int __devinit snd_cs46xx_create(snd_card_t * card, +int __devinit snd_cs46xx_create(struct snd_card *card, struct pci_dev * pci, int external_amp, int thinkpad, - cs46xx_t ** rchip) + struct snd_cs46xx ** rchip) { - cs46xx_t *chip; + struct snd_cs46xx *chip; int err, idx; - snd_cs46xx_region_t *region; + struct snd_cs46xx_region *region; struct cs_card_type *cp; u16 ss_card, ss_vendor; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_cs46xx_dev_free, }; @@ -3755,7 +3755,8 @@ int __devinit snd_cs46xx_create(snd_card_t * card, chip->ba1_addr = pci_resource_start(pci, 1); if (chip->ba0_addr == 0 || chip->ba0_addr == (unsigned long)~0 || chip->ba1_addr == 0 || chip->ba1_addr == (unsigned long)~0) { - snd_printk(KERN_ERR "wrong address(es) - ba0 = 0x%lx, ba1 = 0x%lx\n", chip->ba0_addr, chip->ba1_addr); + snd_printk(KERN_ERR "wrong address(es) - ba0 = 0x%lx, ba1 = 0x%lx\n", + chip->ba0_addr, chip->ba1_addr); snd_cs46xx_free(chip); return -ENOMEM; } @@ -3825,8 +3826,10 @@ int __devinit snd_cs46xx_create(snd_card_t * card, for (idx = 0; idx < 5; idx++) { region = &chip->region.idx[idx]; - if ((region->resource = request_mem_region(region->base, region->size, region->name)) == NULL) { - snd_printk(KERN_ERR "unable to request memory region 0x%lx-0x%lx\n", region->base, region->base + region->size - 1); + if ((region->resource = request_mem_region(region->base, region->size, + region->name)) == NULL) { + snd_printk(KERN_ERR "unable to request memory region 0x%lx-0x%lx\n", + region->base, region->base + region->size - 1); snd_cs46xx_free(chip); return -EBUSY; } @@ -3838,7 +3841,8 @@ int __devinit snd_cs46xx_create(snd_card_t * card, } } - if (request_irq(pci->irq, snd_cs46xx_interrupt, SA_INTERRUPT|SA_SHIRQ, "CS46XX", (void *) chip)) { + if (request_irq(pci->irq, snd_cs46xx_interrupt, SA_INTERRUPT|SA_SHIRQ, + "CS46XX", chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_cs46xx_free(chip); return -EBUSY; diff --git a/sound/pci/cs46xx/cs46xx_lib.h b/sound/pci/cs46xx/cs46xx_lib.h index d7bec096d24..8b4a4aeaf85 100644 --- a/sound/pci/cs46xx/cs46xx_lib.h +++ b/sound/pci/cs46xx/cs46xx_lib.h @@ -57,7 +57,7 @@ * common I/O routines */ -static inline void snd_cs46xx_poke(cs46xx_t *chip, unsigned long reg, unsigned int val) +static inline void snd_cs46xx_poke(struct snd_cs46xx *chip, unsigned long reg, unsigned int val) { unsigned int bank = reg >> 16; unsigned int offset = reg & 0xffff; @@ -66,117 +66,128 @@ static inline void snd_cs46xx_poke(cs46xx_t *chip, unsigned long reg, unsigned i writel(val, chip->region.idx[bank+1].remap_addr + offset); } -static inline unsigned int snd_cs46xx_peek(cs46xx_t *chip, unsigned long reg) +static inline unsigned int snd_cs46xx_peek(struct snd_cs46xx *chip, unsigned long reg) { unsigned int bank = reg >> 16; unsigned int offset = reg & 0xffff; return readl(chip->region.idx[bank+1].remap_addr + offset); } -static inline void snd_cs46xx_pokeBA0(cs46xx_t *chip, unsigned long offset, unsigned int val) +static inline void snd_cs46xx_pokeBA0(struct snd_cs46xx *chip, unsigned long offset, unsigned int val) { writel(val, chip->region.name.ba0.remap_addr + offset); } -static inline unsigned int snd_cs46xx_peekBA0(cs46xx_t *chip, unsigned long offset) +static inline unsigned int snd_cs46xx_peekBA0(struct snd_cs46xx *chip, unsigned long offset) { return readl(chip->region.name.ba0.remap_addr + offset); } -dsp_spos_instance_t * cs46xx_dsp_spos_create (cs46xx_t * chip); -void cs46xx_dsp_spos_destroy (cs46xx_t * chip); -int cs46xx_dsp_load_module (cs46xx_t * chip,dsp_module_desc_t * module); -symbol_entry_t * cs46xx_dsp_lookup_symbol (cs46xx_t * chip,char * symbol_name,int symbol_type); -int cs46xx_dsp_proc_init (snd_card_t * card, cs46xx_t *chip); -int cs46xx_dsp_proc_done (cs46xx_t *chip); -int cs46xx_dsp_scb_and_task_init (cs46xx_t *chip); -int snd_cs46xx_download (cs46xx_t *chip,u32 *src,unsigned long offset, - unsigned long len); -int snd_cs46xx_clear_BA1(cs46xx_t *chip,unsigned long offset,unsigned long len); -int cs46xx_dsp_enable_spdif_out (cs46xx_t *chip); -int cs46xx_dsp_enable_spdif_hw (cs46xx_t *chip); -int cs46xx_dsp_disable_spdif_out (cs46xx_t *chip); -int cs46xx_dsp_enable_spdif_in (cs46xx_t *chip); -int cs46xx_dsp_disable_spdif_in (cs46xx_t *chip); -int cs46xx_dsp_enable_pcm_capture (cs46xx_t *chip); -int cs46xx_dsp_disable_pcm_capture (cs46xx_t *chip); -int cs46xx_dsp_enable_adc_capture (cs46xx_t *chip); -int cs46xx_dsp_disable_adc_capture (cs46xx_t *chip); -int cs46xx_poke_via_dsp (cs46xx_t *chip,u32 address,u32 data); -dsp_scb_descriptor_t * cs46xx_dsp_create_scb (cs46xx_t *chip,char * name, u32 * scb_data,u32 dest); -void cs46xx_dsp_proc_free_scb_desc (dsp_scb_descriptor_t * scb); -void cs46xx_dsp_proc_register_scb_desc (cs46xx_t *chip,dsp_scb_descriptor_t * scb); -dsp_scb_descriptor_t * cs46xx_dsp_create_timing_master_scb (cs46xx_t *chip); -dsp_scb_descriptor_t * cs46xx_dsp_create_codec_out_scb(cs46xx_t * chip,char * codec_name, - u16 channel_disp,u16 fifo_addr, - u16 child_scb_addr, - u32 dest, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -dsp_scb_descriptor_t * cs46xx_dsp_create_codec_in_scb(cs46xx_t * chip,char * codec_name, - u16 channel_disp,u16 fifo_addr, - u16 sample_buffer_addr, - u32 dest, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -void cs46xx_dsp_remove_scb (cs46xx_t *chip,dsp_scb_descriptor_t * scb); -dsp_scb_descriptor_t * cs46xx_dsp_create_codec_in_scb(cs46xx_t * chip,char * codec_name, - u16 channel_disp,u16 fifo_addr, - u16 sample_buffer_addr, - u32 dest,dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -dsp_scb_descriptor_t * cs46xx_dsp_create_src_task_scb(cs46xx_t * chip,char * scb_name, - int sample_rate, - u16 src_buffer_addr, - u16 src_delay_buffer_addr,u32 dest, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type, - int pass_through); -dsp_scb_descriptor_t * cs46xx_dsp_create_mix_only_scb(cs46xx_t * chip,char * scb_name, - u16 mix_buffer_addr,u32 dest, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); - -dsp_scb_descriptor_t * cs46xx_dsp_create_vari_decimate_scb(cs46xx_t * chip,char * scb_name, - u16 vari_buffer_addr0, - u16 vari_buffer_addr1, - u32 dest, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -dsp_scb_descriptor_t * cs46xx_dsp_create_asynch_fg_rx_scb(cs46xx_t * chip,char * scb_name,u32 dest, - u16 hfg_scb_address, - u16 asynch_buffer_address, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -dsp_scb_descriptor_t * cs46xx_dsp_create_spio_write_scb(cs46xx_t * chip,char * scb_name,u32 dest, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -dsp_scb_descriptor_t * cs46xx_dsp_create_mix_to_ostream_scb(cs46xx_t * chip,char * scb_name, - u16 mix_buffer_addr,u16 writeback_spb,u32 dest, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -dsp_scb_descriptor_t * cs46xx_dsp_create_magic_snoop_scb(cs46xx_t * chip,char * scb_name,u32 dest, - u16 snoop_buffer_address, - dsp_scb_descriptor_t * snoop_scb, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type); -pcm_channel_descriptor_t * cs46xx_dsp_create_pcm_channel (cs46xx_t * chip,u32 sample_rate, void * private_data, u32 hw_dma_addr, - int pcm_channel_id); -void cs46xx_dsp_destroy_pcm_channel (cs46xx_t * chip, - pcm_channel_descriptor_t * pcm_channel); -int cs46xx_dsp_pcm_unlink (cs46xx_t * chip,pcm_channel_descriptor_t * pcm_channel); -int cs46xx_dsp_pcm_link (cs46xx_t * chip,pcm_channel_descriptor_t * pcm_channel); -dsp_scb_descriptor_t * cs46xx_add_record_source (cs46xx_t *chip,dsp_scb_descriptor_t * source, - u16 addr,char * scb_name); -int cs46xx_src_unlink(cs46xx_t *chip,dsp_scb_descriptor_t * src); -int cs46xx_src_link(cs46xx_t *chip,dsp_scb_descriptor_t * src); -int cs46xx_iec958_pre_open (cs46xx_t *chip); -int cs46xx_iec958_post_close (cs46xx_t *chip); -int cs46xx_dsp_pcm_channel_set_period (cs46xx_t * chip, - pcm_channel_descriptor_t * pcm_channel, - int period_size); -int cs46xx_dsp_pcm_ostream_set_period (cs46xx_t * chip, - int period_size); -int cs46xx_dsp_set_dac_volume (cs46xx_t * chip,u16 left,u16 right); -int cs46xx_dsp_set_iec958_volume (cs46xx_t * chip,u16 left,u16 right); +struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip); +void cs46xx_dsp_spos_destroy (struct snd_cs46xx * chip); +int cs46xx_dsp_load_module (struct snd_cs46xx * chip, struct dsp_module_desc * module); +struct dsp_symbol_entry *cs46xx_dsp_lookup_symbol (struct snd_cs46xx * chip, char * symbol_name, + int symbol_type); +int cs46xx_dsp_proc_init (struct snd_card *card, struct snd_cs46xx *chip); +int cs46xx_dsp_proc_done (struct snd_cs46xx *chip); +int cs46xx_dsp_scb_and_task_init (struct snd_cs46xx *chip); +int snd_cs46xx_download (struct snd_cs46xx *chip, u32 *src, unsigned long offset, + unsigned long len); +int snd_cs46xx_clear_BA1(struct snd_cs46xx *chip, unsigned long offset, unsigned long len); +int cs46xx_dsp_enable_spdif_out (struct snd_cs46xx *chip); +int cs46xx_dsp_enable_spdif_hw (struct snd_cs46xx *chip); +int cs46xx_dsp_disable_spdif_out (struct snd_cs46xx *chip); +int cs46xx_dsp_enable_spdif_in (struct snd_cs46xx *chip); +int cs46xx_dsp_disable_spdif_in (struct snd_cs46xx *chip); +int cs46xx_dsp_enable_pcm_capture (struct snd_cs46xx *chip); +int cs46xx_dsp_disable_pcm_capture (struct snd_cs46xx *chip); +int cs46xx_dsp_enable_adc_capture (struct snd_cs46xx *chip); +int cs46xx_dsp_disable_adc_capture (struct snd_cs46xx *chip); +int cs46xx_poke_via_dsp (struct snd_cs46xx *chip, u32 address, u32 data); +struct dsp_scb_descriptor * cs46xx_dsp_create_scb (struct snd_cs46xx *chip, char * name, + u32 * scb_data, u32 dest); +void cs46xx_dsp_proc_free_scb_desc (struct dsp_scb_descriptor * scb); +void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip, + struct dsp_scb_descriptor * scb); +struct dsp_scb_descriptor * cs46xx_dsp_create_timing_master_scb (struct snd_cs46xx *chip); +struct dsp_scb_descriptor * +cs46xx_dsp_create_codec_out_scb(struct snd_cs46xx * chip, + char * codec_name, u16 channel_disp, u16 fifo_addr, + u16 child_scb_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +struct dsp_scb_descriptor * +cs46xx_dsp_create_codec_in_scb(struct snd_cs46xx * chip, char * codec_name, + u16 channel_disp, u16 fifo_addr, + u16 sample_buffer_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +void cs46xx_dsp_remove_scb (struct snd_cs46xx *chip, + struct dsp_scb_descriptor * scb); +struct dsp_scb_descriptor * +cs46xx_dsp_create_codec_in_scb(struct snd_cs46xx * chip, char * codec_name, + u16 channel_disp, u16 fifo_addr, + u16 sample_buffer_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +struct dsp_scb_descriptor * +cs46xx_dsp_create_src_task_scb(struct snd_cs46xx * chip, char * scb_name, + int sample_rate, u16 src_buffer_addr, + u16 src_delay_buffer_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type, int pass_through); +struct dsp_scb_descriptor * +cs46xx_dsp_create_mix_only_scb(struct snd_cs46xx * chip, char * scb_name, + u16 mix_buffer_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); + +struct dsp_scb_descriptor * +cs46xx_dsp_create_vari_decimate_scb(struct snd_cs46xx * chip, char * scb_name, + u16 vari_buffer_addr0, u16 vari_buffer_addr1, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +struct dsp_scb_descriptor * +cs46xx_dsp_create_asynch_fg_rx_scb(struct snd_cs46xx * chip, char * scb_name, + u32 dest, u16 hfg_scb_address, u16 asynch_buffer_address, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +struct dsp_scb_descriptor * +cs46xx_dsp_create_spio_write_scb(struct snd_cs46xx * chip, char * scb_name, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +struct dsp_scb_descriptor * +cs46xx_dsp_create_mix_to_ostream_scb(struct snd_cs46xx * chip, char * scb_name, + u16 mix_buffer_addr, u16 writeback_spb, u32 dest, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +struct dsp_scb_descriptor * +cs46xx_dsp_create_magic_snoop_scb(struct snd_cs46xx * chip, char * scb_name, + u32 dest, u16 snoop_buffer_address, + struct dsp_scb_descriptor * snoop_scb, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type); +struct dsp_pcm_channel_descriptor * +cs46xx_dsp_create_pcm_channel (struct snd_cs46xx * chip, u32 sample_rate, + void * private_data, u32 hw_dma_addr, + int pcm_channel_id); +void cs46xx_dsp_destroy_pcm_channel (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel); +int cs46xx_dsp_pcm_unlink (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel); +int cs46xx_dsp_pcm_link (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel); +struct dsp_scb_descriptor * +cs46xx_add_record_source (struct snd_cs46xx *chip, struct dsp_scb_descriptor * source, + u16 addr, char * scb_name); +int cs46xx_src_unlink(struct snd_cs46xx *chip, struct dsp_scb_descriptor * src); +int cs46xx_src_link(struct snd_cs46xx *chip, struct dsp_scb_descriptor * src); +int cs46xx_iec958_pre_open (struct snd_cs46xx *chip); +int cs46xx_iec958_post_close (struct snd_cs46xx *chip); +int cs46xx_dsp_pcm_channel_set_period (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel, + int period_size); +int cs46xx_dsp_pcm_ostream_set_period (struct snd_cs46xx * chip, int period_size); +int cs46xx_dsp_set_dac_volume (struct snd_cs46xx * chip, u16 left, u16 right); +int cs46xx_dsp_set_iec958_volume (struct snd_cs46xx * chip, u16 left, u16 right); #endif /* __CS46XX_LIB_H__ */ diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c index b66304fc4e4..ac98917a147 100644 --- a/sound/pci/cs46xx/dsp_spos.c +++ b/sound/pci/cs46xx/dsp_spos.c @@ -37,9 +37,10 @@ #include "cs46xx_lib.h" #include "dsp_spos.h" -static int cs46xx_dsp_async_init (cs46xx_t *chip, dsp_scb_descriptor_t * fg_entry); +static int cs46xx_dsp_async_init (struct snd_cs46xx *chip, + struct dsp_scb_descriptor * fg_entry); -static wide_opcode_t wide_opcodes[] = { +static enum wide_opcode wide_opcodes[] = { WIDE_FOR_BEGIN_LOOP, WIDE_FOR_BEGIN_LOOP2, WIDE_COND_GOTO_ADDR, @@ -54,12 +55,13 @@ static wide_opcode_t wide_opcodes[] = { WIDE_TBEQ_NCOND_CALL1_ADDR }; -static int shadow_and_reallocate_code (cs46xx_t * chip,u32 * data,u32 size, u32 overlay_begin_address) +static int shadow_and_reallocate_code (struct snd_cs46xx * chip, u32 * data, u32 size, + u32 overlay_begin_address) { unsigned int i = 0, j, nreallocated = 0; u32 hival,loval,address; u32 mop_operands,mop_type,wide_op; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert( ((size % 2) == 0), return -EINVAL); @@ -114,7 +116,7 @@ static int shadow_and_reallocate_code (cs46xx_t * chip,u32 * data,u32 size, u32 return nreallocated; } -static segment_desc_t * get_segment_desc (dsp_module_desc_t * module, int seg_type) +static struct dsp_segment_desc * get_segment_desc (struct dsp_module_desc * module, int seg_type) { int i; for (i = 0;i < module->nsegments; ++i) { @@ -126,7 +128,7 @@ static segment_desc_t * get_segment_desc (dsp_module_desc_t * module, int seg_ty return NULL; }; -static int find_free_symbol_index (dsp_spos_instance_t * ins) +static int find_free_symbol_index (struct dsp_spos_instance * ins) { int index = ins->symbol_table.nsymbols,i; @@ -140,10 +142,10 @@ static int find_free_symbol_index (dsp_spos_instance_t * ins) return index; } -static int add_symbols (cs46xx_t * chip, dsp_module_desc_t * module) +static int add_symbols (struct snd_cs46xx * chip, struct dsp_module_desc * module) { int i; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; if (module->symbol_table.nsymbols > 0) { if (!strcmp(module->symbol_table.symbols[0].symbol_name, "OVERLAYBEGINADDRESS") && @@ -181,10 +183,11 @@ static int add_symbols (cs46xx_t * chip, dsp_module_desc_t * module) return 0; } -static symbol_entry_t * add_symbol (cs46xx_t * chip, char * symbol_name, u32 address, int type) +static struct dsp_symbol_entry * +add_symbol (struct snd_cs46xx * chip, char * symbol_name, u32 address, int type) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - symbol_entry_t * symbol = NULL; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_symbol_entry * symbol = NULL; int index; if (ins->symbol_table.nsymbols == (DSP_MAX_SYMBOLS - 1)) { @@ -217,17 +220,17 @@ static symbol_entry_t * add_symbol (cs46xx_t * chip, char * symbol_name, u32 add return symbol; } -dsp_spos_instance_t * cs46xx_dsp_spos_create (cs46xx_t * chip) +struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip) { - dsp_spos_instance_t * ins = kmalloc(sizeof(dsp_spos_instance_t), GFP_KERNEL); + struct dsp_spos_instance * ins = kzalloc(sizeof(struct dsp_spos_instance), GFP_KERNEL); if (ins == NULL) return NULL; - memset(ins, 0, sizeof(*ins)); /* better to use vmalloc for this big table */ ins->symbol_table.nsymbols = 0; - ins->symbol_table.symbols = vmalloc(sizeof(symbol_entry_t) * DSP_MAX_SYMBOLS); + ins->symbol_table.symbols = vmalloc(sizeof(struct dsp_symbol_entry) * + DSP_MAX_SYMBOLS); ins->symbol_table.highest_frag_index = 0; if (ins->symbol_table.symbols == NULL) { @@ -248,7 +251,7 @@ dsp_spos_instance_t * cs46xx_dsp_spos_create (cs46xx_t * chip) ins->ntask = 0; ins->nmodules = 0; - ins->modules = kmalloc(sizeof(dsp_module_desc_t) * DSP_MAX_MODULES, GFP_KERNEL); + ins->modules = kmalloc(sizeof(struct dsp_module_desc) * DSP_MAX_MODULES, GFP_KERNEL); if (ins->modules == NULL) { cs46xx_dsp_spos_destroy(chip); @@ -277,10 +280,10 @@ dsp_spos_instance_t * cs46xx_dsp_spos_create (cs46xx_t * chip) return ins; } -void cs46xx_dsp_spos_destroy (cs46xx_t * chip) +void cs46xx_dsp_spos_destroy (struct snd_cs46xx * chip) { int i; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert(ins != NULL, return); @@ -298,12 +301,12 @@ void cs46xx_dsp_spos_destroy (cs46xx_t * chip) up(&chip->spos_mutex); } -int cs46xx_dsp_load_module (cs46xx_t * chip, dsp_module_desc_t * module) +int cs46xx_dsp_load_module (struct snd_cs46xx * chip, struct dsp_module_desc * module) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - segment_desc_t * code = get_segment_desc (module,SEGTYPE_SP_PROGRAM); - segment_desc_t * parameter = get_segment_desc (module,SEGTYPE_SP_PARAMETER); - segment_desc_t * sample = get_segment_desc (module,SEGTYPE_SP_SAMPLE); + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_segment_desc * code = get_segment_desc (module,SEGTYPE_SP_PROGRAM); + struct dsp_segment_desc * parameter = get_segment_desc (module,SEGTYPE_SP_PARAMETER); + struct dsp_segment_desc * sample = get_segment_desc (module,SEGTYPE_SP_SAMPLE); u32 doffset, dsize; if (ins->nmodules == DSP_MAX_MODULES - 1) { @@ -410,10 +413,11 @@ int cs46xx_dsp_load_module (cs46xx_t * chip, dsp_module_desc_t * module) return 0; } -symbol_entry_t * cs46xx_dsp_lookup_symbol (cs46xx_t * chip, char * symbol_name, int symbol_type) +struct dsp_symbol_entry * +cs46xx_dsp_lookup_symbol (struct snd_cs46xx * chip, char * symbol_name, int symbol_type) { int i; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; for ( i = 0; i < ins->symbol_table.nsymbols; ++i ) { @@ -435,10 +439,11 @@ symbol_entry_t * cs46xx_dsp_lookup_symbol (cs46xx_t * chip, char * symbol_name, } -static symbol_entry_t * cs46xx_dsp_lookup_symbol_addr (cs46xx_t * chip, u32 address, int symbol_type) +static struct dsp_symbol_entry * +cs46xx_dsp_lookup_symbol_addr (struct snd_cs46xx * chip, u32 address, int symbol_type) { int i; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; for ( i = 0; i < ins->symbol_table.nsymbols; ++i ) { @@ -456,10 +461,11 @@ static symbol_entry_t * cs46xx_dsp_lookup_symbol_addr (cs46xx_t * chip, u32 addr } -static void cs46xx_dsp_proc_symbol_table_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void cs46xx_dsp_proc_symbol_table_read (struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cs46xx_t *chip = entry->private_data; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = entry->private_data; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int i; snd_iprintf(buffer, "SYMBOLS:\n"); @@ -483,10 +489,11 @@ static void cs46xx_dsp_proc_symbol_table_read (snd_info_entry_t *entry, snd_info } -static void cs46xx_dsp_proc_modules_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void cs46xx_dsp_proc_modules_read (struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cs46xx_t *chip = entry->private_data; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = entry->private_data; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int i,j; down(&chip->spos_mutex); @@ -497,7 +504,7 @@ static void cs46xx_dsp_proc_modules_read (snd_info_entry_t *entry, snd_info_buff snd_iprintf(buffer, " %d fixups\n", ins->modules[i].nfixups); for (j = 0; j < ins->modules[i].nsegments; ++ j) { - segment_desc_t * desc = (ins->modules[i].segments + j); + struct dsp_segment_desc * desc = (ins->modules[i].segments + j); snd_iprintf(buffer, " segment %02x offset %08x size %08x\n", desc->segment_type,desc->offset, desc->size); } @@ -505,11 +512,12 @@ static void cs46xx_dsp_proc_modules_read (snd_info_entry_t *entry, snd_info_buff up(&chip->spos_mutex); } -static void cs46xx_dsp_proc_task_tree_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void cs46xx_dsp_proc_task_tree_read (struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cs46xx_t *chip = entry->private_data; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - int i,j,col; + struct snd_cs46xx *chip = entry->private_data; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + int i, j, col; void __iomem *dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET; down(&chip->spos_mutex); @@ -532,10 +540,11 @@ static void cs46xx_dsp_proc_task_tree_read (snd_info_entry_t *entry, snd_info_bu up(&chip->spos_mutex); } -static void cs46xx_dsp_proc_scb_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void cs46xx_dsp_proc_scb_read (struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cs46xx_t *chip = entry->private_data; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_cs46xx *chip = entry->private_data; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int i; down(&chip->spos_mutex); @@ -564,13 +573,14 @@ static void cs46xx_dsp_proc_scb_read (snd_info_entry_t *entry, snd_info_buffer_t up(&chip->spos_mutex); } -static void cs46xx_dsp_proc_parameter_dump_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void cs46xx_dsp_proc_parameter_dump_read (struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cs46xx_t *chip = entry->private_data; - /*dsp_spos_instance_t * ins = chip->dsp_spos_instance; */ - unsigned int i,col = 0; + struct snd_cs46xx *chip = entry->private_data; + /*struct dsp_spos_instance * ins = chip->dsp_spos_instance; */ + unsigned int i, col = 0; void __iomem *dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET; - symbol_entry_t * symbol; + struct dsp_symbol_entry * symbol; for (i = 0;i < DSP_PARAMETER_BYTE_SIZE; i += sizeof(u32),col ++) { if (col == 4) { @@ -591,9 +601,10 @@ static void cs46xx_dsp_proc_parameter_dump_read (snd_info_entry_t *entry, snd_in } } -static void cs46xx_dsp_proc_sample_dump_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void cs46xx_dsp_proc_sample_dump_read (struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cs46xx_t *chip = entry->private_data; + struct snd_cs46xx *chip = entry->private_data; int i,col = 0; void __iomem *dst = chip->region.idx[2].remap_addr; @@ -738,10 +749,10 @@ static void cs46xx_dsp_proc_sample_dump_read (snd_info_entry_t *entry, snd_info_ snd_iprintf(buffer,"\n"); } -int cs46xx_dsp_proc_init (snd_card_t * card, cs46xx_t *chip) +int cs46xx_dsp_proc_init (struct snd_card *card, struct snd_cs46xx *chip) { - snd_info_entry_t *entry; - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct snd_info_entry *entry; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int i; ins->snd_card = card; @@ -852,9 +863,9 @@ int cs46xx_dsp_proc_init (snd_card_t * card, cs46xx_t *chip) return 0; } -int cs46xx_dsp_proc_done (cs46xx_t *chip) +int cs46xx_dsp_proc_done (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int i; if (ins->proc_sym_info_entry) { @@ -903,7 +914,8 @@ int cs46xx_dsp_proc_done (cs46xx_t *chip) } static int debug_tree; -static void _dsp_create_task_tree (cs46xx_t *chip,u32 * task_data, u32 dest, int size) +static void _dsp_create_task_tree (struct snd_cs46xx *chip, u32 * task_data, + u32 dest, int size) { void __iomem *spdst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET + dest * sizeof(u32); @@ -917,7 +929,7 @@ static void _dsp_create_task_tree (cs46xx_t *chip,u32 * task_data, u32 dest, in } static int debug_scb; -static void _dsp_create_scb (cs46xx_t *chip,u32 * scb_data, u32 dest) +static void _dsp_create_scb (struct snd_cs46xx *chip, u32 * scb_data, u32 dest) { void __iomem *spdst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET + dest * sizeof(u32); @@ -930,7 +942,7 @@ static void _dsp_create_scb (cs46xx_t *chip,u32 * scb_data, u32 dest) } } -static int find_free_scb_index (dsp_spos_instance_t * ins) +static int find_free_scb_index (struct dsp_spos_instance * ins) { int index = ins->nscb, i; @@ -944,10 +956,10 @@ static int find_free_scb_index (dsp_spos_instance_t * ins) return index; } -static dsp_scb_descriptor_t * _map_scb (cs46xx_t *chip,char * name,u32 dest) +static struct dsp_scb_descriptor * _map_scb (struct snd_cs46xx *chip, char * name, u32 dest) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * desc = NULL; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * desc = NULL; int index; if (ins->nscb == DSP_MAX_SCB_DESC - 1) { @@ -977,10 +989,11 @@ static dsp_scb_descriptor_t * _map_scb (cs46xx_t *chip,char * name,u32 dest) return desc; } -static dsp_task_descriptor_t * _map_task_tree (cs46xx_t *chip,char * name,u32 dest,u32 size) +static struct dsp_task_descriptor * +_map_task_tree (struct snd_cs46xx *chip, char * name, u32 dest, u32 size) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_task_descriptor_t * desc = NULL; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_task_descriptor * desc = NULL; if (ins->ntask == DSP_MAX_TASK_DESC - 1) { snd_printk(KERN_ERR "dsp_spos: got no place for other TASK\n"); @@ -1000,9 +1013,10 @@ static dsp_task_descriptor_t * _map_task_tree (cs46xx_t *chip,char * name,u32 de return desc; } -dsp_scb_descriptor_t * cs46xx_dsp_create_scb (cs46xx_t *chip,char * name, u32 * scb_data,u32 dest) +struct dsp_scb_descriptor * +cs46xx_dsp_create_scb (struct snd_cs46xx *chip, char * name, u32 * scb_data, u32 dest) { - dsp_scb_descriptor_t * desc; + struct dsp_scb_descriptor * desc; desc = _map_scb (chip,name,dest); if (desc) { @@ -1015,9 +1029,11 @@ dsp_scb_descriptor_t * cs46xx_dsp_create_scb (cs46xx_t *chip,char * name, u32 * } -static dsp_task_descriptor_t * cs46xx_dsp_create_task_tree (cs46xx_t *chip,char * name, u32 * task_data,u32 dest,int size) +static struct dsp_task_descriptor * +cs46xx_dsp_create_task_tree (struct snd_cs46xx *chip, char * name, u32 * task_data, + u32 dest, int size) { - dsp_task_descriptor_t * desc; + struct dsp_task_descriptor * desc; desc = _map_task_tree (chip,name,dest,size); if (desc) { @@ -1029,31 +1045,31 @@ static dsp_task_descriptor_t * cs46xx_dsp_create_task_tree (cs46xx_t *chip,char return desc; } -int cs46xx_dsp_scb_and_task_init (cs46xx_t *chip) +int cs46xx_dsp_scb_and_task_init (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - symbol_entry_t * fg_task_tree_header_code; - symbol_entry_t * task_tree_header_code; - symbol_entry_t * task_tree_thread; - symbol_entry_t * null_algorithm; - symbol_entry_t * magic_snoop_task; - - dsp_scb_descriptor_t * timing_master_scb; - dsp_scb_descriptor_t * codec_out_scb; - dsp_scb_descriptor_t * codec_in_scb; - dsp_scb_descriptor_t * src_task_scb; - dsp_scb_descriptor_t * master_mix_scb; - dsp_scb_descriptor_t * rear_mix_scb; - dsp_scb_descriptor_t * record_mix_scb; - dsp_scb_descriptor_t * write_back_scb; - dsp_scb_descriptor_t * vari_decimate_scb; - dsp_scb_descriptor_t * rear_codec_out_scb; - dsp_scb_descriptor_t * clfe_codec_out_scb; - dsp_scb_descriptor_t * magic_snoop_scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_symbol_entry * fg_task_tree_header_code; + struct dsp_symbol_entry * task_tree_header_code; + struct dsp_symbol_entry * task_tree_thread; + struct dsp_symbol_entry * null_algorithm; + struct dsp_symbol_entry * magic_snoop_task; + + struct dsp_scb_descriptor * timing_master_scb; + struct dsp_scb_descriptor * codec_out_scb; + struct dsp_scb_descriptor * codec_in_scb; + struct dsp_scb_descriptor * src_task_scb; + struct dsp_scb_descriptor * master_mix_scb; + struct dsp_scb_descriptor * rear_mix_scb; + struct dsp_scb_descriptor * record_mix_scb; + struct dsp_scb_descriptor * write_back_scb; + struct dsp_scb_descriptor * vari_decimate_scb; + struct dsp_scb_descriptor * rear_codec_out_scb; + struct dsp_scb_descriptor * clfe_codec_out_scb; + struct dsp_scb_descriptor * magic_snoop_scb; - int fifo_addr,fifo_span,valid_slots; + int fifo_addr, fifo_span, valid_slots; - static spos_control_block_t sposcb = { + static struct dsp_spos_control_block sposcb = { /* 0 */ HFG_TREE_SCB,HFG_STACK, /* 1 */ SPOSCB_ADDR,BG_TREE_SCB_ADDR, /* 2 */ DSP_SPOS_DC,0, @@ -1106,7 +1122,7 @@ int cs46xx_dsp_scb_and_task_init (cs46xx_t *chip) { /* create the null SCB */ - static generic_scb_t null_scb = { + static struct dsp_generic_scb null_scb = { { 0, 0, 0, 0 }, { 0, 0, 0, 0, 0 }, NULL_SCB_ADDR, NULL_SCB_ADDR, @@ -1128,7 +1144,7 @@ int cs46xx_dsp_scb_and_task_init (cs46xx_t *chip) { /* setup foreground task tree */ - static task_tree_control_block_t fg_task_tree_hdr = { + static struct dsp_task_tree_control_block fg_task_tree_hdr = { { FG_TASK_HEADER_ADDR | (DSP_SPOS_DC << 0x10), DSP_SPOS_DC_DC, DSP_SPOS_DC_DC, @@ -1204,7 +1220,7 @@ int cs46xx_dsp_scb_and_task_init (cs46xx_t *chip) { /* setup foreground task tree */ - static task_tree_control_block_t bg_task_tree_hdr = { + static struct dsp_task_tree_control_block bg_task_tree_hdr = { { DSP_SPOS_DC_DC, DSP_SPOS_DC_DC, DSP_SPOS_DC_DC, @@ -1313,7 +1329,7 @@ int cs46xx_dsp_scb_and_task_init (cs46xx_t *chip) if (!write_back_scb) goto _fail_end; { - static mix2_ostream_spb_t mix2_ostream_spb = { + static struct dsp_mix2_ostream_spb mix2_ostream_spb = { 0x00020000, 0x0000ffff }; @@ -1448,13 +1464,14 @@ int cs46xx_dsp_scb_and_task_init (cs46xx_t *chip) return -EINVAL; } -static int cs46xx_dsp_async_init (cs46xx_t *chip, dsp_scb_descriptor_t * fg_entry) +static int cs46xx_dsp_async_init (struct snd_cs46xx *chip, + struct dsp_scb_descriptor * fg_entry) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - symbol_entry_t * s16_async_codec_input_task; - symbol_entry_t * spdifo_task; - symbol_entry_t * spdifi_task; - dsp_scb_descriptor_t * spdifi_scb_desc,* spdifo_scb_desc,* async_codec_scb_desc; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_symbol_entry * s16_async_codec_input_task; + struct dsp_symbol_entry * spdifo_task; + struct dsp_symbol_entry * spdifi_task; + struct dsp_scb_descriptor * spdifi_scb_desc, * spdifo_scb_desc, * async_codec_scb_desc; s16_async_codec_input_task = cs46xx_dsp_lookup_symbol(chip, "S16_ASYNCCODECINPUTTASK", SYMBOL_CODE); if (s16_async_codec_input_task == NULL) { @@ -1475,7 +1492,7 @@ static int cs46xx_dsp_async_init (cs46xx_t *chip, dsp_scb_descriptor_t * fg_entr { /* 0xBC0 */ - spdifoscb_t spdifo_scb = { + struct dsp_spdifoscb spdifo_scb = { /* 0 */ DSP_SPOS_UUUU, { /* 1 */ 0xb0, @@ -1504,7 +1521,7 @@ static int cs46xx_dsp_async_init (cs46xx_t *chip, dsp_scb_descriptor_t * fg_entr }; /* 0xBB0 */ - spdifiscb_t spdifi_scb = { + struct dsp_spdifiscb spdifi_scb = { /* 0 */ DSP_SPOS_UULO,DSP_SPOS_UUHI, /* 1 */ 0, /* 2 */ 0, @@ -1529,7 +1546,7 @@ static int cs46xx_dsp_async_init (cs46xx_t *chip, dsp_scb_descriptor_t * fg_entr }; /* 0xBA0 */ - async_codec_input_scb_t async_codec_input_scb = { + struct dsp_async_codec_input_scb async_codec_input_scb = { /* 0 */ DSP_SPOS_UUUU, /* 1 */ 0, /* 2 */ 0, @@ -1620,9 +1637,9 @@ static int cs46xx_dsp_async_init (cs46xx_t *chip, dsp_scb_descriptor_t * fg_entr } -static void cs46xx_dsp_disable_spdif_hw (cs46xx_t *chip) +static void cs46xx_dsp_disable_spdif_hw (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; /* set SPDIF output FIFO slot */ snd_cs46xx_pokeBA0(chip, BA0_ASER_FADDR, 0); @@ -1641,9 +1658,9 @@ static void cs46xx_dsp_disable_spdif_hw (cs46xx_t *chip) ins->spdif_status_out &= ~DSP_SPDIF_STATUS_HW_ENABLED; } -int cs46xx_dsp_enable_spdif_hw (cs46xx_t *chip) +int cs46xx_dsp_enable_spdif_hw (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; /* if hw-ctrl already enabled, turn off to reset logic ... */ cs46xx_dsp_disable_spdif_hw (chip); @@ -1664,9 +1681,9 @@ int cs46xx_dsp_enable_spdif_hw (cs46xx_t *chip) return 0; } -int cs46xx_dsp_enable_spdif_in (cs46xx_t *chip) +int cs46xx_dsp_enable_spdif_in (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; /* turn on amplifier */ chip->active_ctrl(chip, 1); @@ -1724,9 +1741,9 @@ int cs46xx_dsp_enable_spdif_in (cs46xx_t *chip) return 0; } -int cs46xx_dsp_disable_spdif_in (cs46xx_t *chip) +int cs46xx_dsp_disable_spdif_in (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert (ins->asynch_rx_scb != NULL, return -EINVAL); snd_assert (ins->spdif_in_src != NULL,return -EINVAL); @@ -1750,9 +1767,9 @@ int cs46xx_dsp_disable_spdif_in (cs46xx_t *chip) return 0; } -int cs46xx_dsp_enable_pcm_capture (cs46xx_t *chip) +int cs46xx_dsp_enable_pcm_capture (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert (ins->pcm_input == NULL,return -EINVAL); snd_assert (ins->ref_snoop_scb != NULL,return -EINVAL); @@ -1765,9 +1782,9 @@ int cs46xx_dsp_enable_pcm_capture (cs46xx_t *chip) return 0; } -int cs46xx_dsp_disable_pcm_capture (cs46xx_t *chip) +int cs46xx_dsp_disable_pcm_capture (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert (ins->pcm_input != NULL,return -EINVAL); @@ -1779,9 +1796,9 @@ int cs46xx_dsp_disable_pcm_capture (cs46xx_t *chip) return 0; } -int cs46xx_dsp_enable_adc_capture (cs46xx_t *chip) +int cs46xx_dsp_enable_adc_capture (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert (ins->adc_input == NULL,return -EINVAL); snd_assert (ins->codec_in_scb != NULL,return -EINVAL); @@ -1794,9 +1811,9 @@ int cs46xx_dsp_enable_adc_capture (cs46xx_t *chip) return 0; } -int cs46xx_dsp_disable_adc_capture (cs46xx_t *chip) +int cs46xx_dsp_disable_adc_capture (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert (ins->adc_input != NULL,return -EINVAL); @@ -1808,7 +1825,7 @@ int cs46xx_dsp_disable_adc_capture (cs46xx_t *chip) return 0; } -int cs46xx_poke_via_dsp (cs46xx_t *chip,u32 address,u32 data) +int cs46xx_poke_via_dsp (struct snd_cs46xx *chip, u32 address, u32 data) { u32 temp; int i; @@ -1845,10 +1862,10 @@ int cs46xx_poke_via_dsp (cs46xx_t *chip,u32 address,u32 data) return 0; } -int cs46xx_dsp_set_dac_volume (cs46xx_t * chip,u16 left,u16 right) +int cs46xx_dsp_set_dac_volume (struct snd_cs46xx * chip, u16 left, u16 right) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * scb; down(&chip->spos_mutex); @@ -1874,8 +1891,9 @@ int cs46xx_dsp_set_dac_volume (cs46xx_t * chip,u16 left,u16 right) return 0; } -int cs46xx_dsp_set_iec958_volume (cs46xx_t * chip,u16 left,u16 right) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; +int cs46xx_dsp_set_iec958_volume (struct snd_cs46xx * chip, u16 left, u16 right) +{ + struct dsp_spos_instance * ins = chip->dsp_spos_instance; down(&chip->spos_mutex); diff --git a/sound/pci/cs46xx/dsp_spos.h b/sound/pci/cs46xx/dsp_spos.h index 90871bf9762..0d246bca418 100644 --- a/sound/pci/cs46xx/dsp_spos.h +++ b/sound/pci/cs46xx/dsp_spos.h @@ -43,7 +43,7 @@ /* this instruction types needs to be reallocated when load code into DSP */ -typedef enum { +enum wide_opcode { WIDE_FOR_BEGIN_LOOP = 0x20, WIDE_FOR_BEGIN_LOOP2, @@ -58,7 +58,7 @@ typedef enum { WIDE_TBEQ_COND_CALL1_ADDR, WIDE_TBEQ_NCOND_GOTOI_ADDR, WIDE_TBEQ_NCOND_CALL1_ADDR, -} wide_opcode_t; +}; /* SAMPLE segment */ #define VARI_DECIMATE_BUF1 0x0000 @@ -186,7 +186,8 @@ typedef enum { #define SP_SPDOUT_CONTROL 0x804D #define SP_SPDOUT_CSUV 0x808E -static inline u8 _wrap_all_bits (u8 val) { +static inline u8 _wrap_all_bits (u8 val) +{ u8 wrapped; /* wrap all 8 bits */ @@ -201,11 +202,10 @@ static inline u8 _wrap_all_bits (u8 val) { ((val & 0x80) >> 7); return wrapped; - } - -static inline void cs46xx_dsp_spos_update_scb (cs46xx_t * chip,dsp_scb_descriptor_t * scb) +static inline void cs46xx_dsp_spos_update_scb (struct snd_cs46xx * chip, + struct dsp_scb_descriptor * scb) { /* update nextSCB and subListPtr in SCB */ snd_cs46xx_poke(chip, @@ -214,8 +214,10 @@ static inline void cs46xx_dsp_spos_update_scb (cs46xx_t * chip,dsp_scb_descripto (scb->next_scb_ptr->address)); } -static inline void cs46xx_dsp_scb_set_volume (cs46xx_t * chip,dsp_scb_descriptor_t * scb, - u16 left,u16 right) { +static inline void cs46xx_dsp_scb_set_volume (struct snd_cs46xx * chip, + struct dsp_scb_descriptor * scb, + u16 left, u16 right) +{ unsigned int val = ((0xffff - left) << 16 | (0xffff - right)); snd_cs46xx_poke(chip, (scb->address + SCBVolumeCtrl) << 2, val); diff --git a/sound/pci/cs46xx/dsp_spos_scb_lib.c b/sound/pci/cs46xx/dsp_spos_scb_lib.c index 92849e1340b..6e865005b26 100644 --- a/sound/pci/cs46xx/dsp_spos_scb_lib.c +++ b/sound/pci/cs46xx/dsp_spos_scb_lib.c @@ -36,14 +36,14 @@ #include "cs46xx_lib.h" #include "dsp_spos.h" -typedef struct _proc_scb_info_t { - dsp_scb_descriptor_t * scb_desc; - cs46xx_t *chip; -} proc_scb_info_t; +struct proc_scb_info { + struct dsp_scb_descriptor * scb_desc; + struct snd_cs46xx *chip; +}; -static void remove_symbol (cs46xx_t * chip,symbol_entry_t * symbol) +static void remove_symbol (struct snd_cs46xx * chip, struct dsp_symbol_entry * symbol) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; int symbol_index = (int)(symbol - ins->symbol_table.symbols); snd_assert(ins->symbol_table.nsymbols > 0,return); @@ -64,12 +64,13 @@ static void remove_symbol (cs46xx_t * chip,symbol_entry_t * symbol) } -static void cs46xx_dsp_proc_scb_info_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer) +static void cs46xx_dsp_proc_scb_info_read (struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - proc_scb_info_t * scb_info = (proc_scb_info_t *)entry->private_data; - dsp_scb_descriptor_t * scb = scb_info->scb_desc; - dsp_spos_instance_t * ins; - cs46xx_t *chip = scb_info->chip; + struct proc_scb_info * scb_info = entry->private_data; + struct dsp_scb_descriptor * scb = scb_info->scb_desc; + struct dsp_spos_instance * ins; + struct snd_cs46xx *chip = scb_info->chip; int j,col; void __iomem *dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET; @@ -106,9 +107,9 @@ static void cs46xx_dsp_proc_scb_info_read (snd_info_entry_t *entry, snd_info_buf up(&chip->spos_mutex); } -static void _dsp_unlink_scb (cs46xx_t *chip,dsp_scb_descriptor_t * scb) +static void _dsp_unlink_scb (struct snd_cs46xx *chip, struct dsp_scb_descriptor * scb) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; unsigned long flags; if ( scb->parent_scb_ptr ) { @@ -160,7 +161,8 @@ static void _dsp_unlink_scb (cs46xx_t *chip,dsp_scb_descriptor_t * scb) } } -static void _dsp_clear_sample_buffer (cs46xx_t *chip, u32 sample_buffer_addr, int dword_count) +static void _dsp_clear_sample_buffer (struct snd_cs46xx *chip, u32 sample_buffer_addr, + int dword_count) { void __iomem *dst = chip->region.idx[2].remap_addr + sample_buffer_addr; int i; @@ -171,9 +173,9 @@ static void _dsp_clear_sample_buffer (cs46xx_t *chip, u32 sample_buffer_addr, in } } -void cs46xx_dsp_remove_scb (cs46xx_t *chip, dsp_scb_descriptor_t * scb) +void cs46xx_dsp_remove_scb (struct snd_cs46xx *chip, struct dsp_scb_descriptor * scb) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; /* check integrety */ snd_assert ( (scb->index >= 0 && @@ -218,10 +220,10 @@ void cs46xx_dsp_remove_scb (cs46xx_t *chip, dsp_scb_descriptor_t * scb) } -void cs46xx_dsp_proc_free_scb_desc (dsp_scb_descriptor_t * scb) +void cs46xx_dsp_proc_free_scb_desc (struct dsp_scb_descriptor * scb) { if (scb->proc_info) { - proc_scb_info_t * scb_info = (proc_scb_info_t *)scb->proc_info->private_data; + struct proc_scb_info * scb_info = scb->proc_info->private_data; snd_printdd("cs46xx_dsp_proc_free_scb_desc: freeing %s\n",scb->scb_name); @@ -233,11 +235,12 @@ void cs46xx_dsp_proc_free_scb_desc (dsp_scb_descriptor_t * scb) } } -void cs46xx_dsp_proc_register_scb_desc (cs46xx_t *chip,dsp_scb_descriptor_t * scb) +void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip, + struct dsp_scb_descriptor * scb) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - snd_info_entry_t * entry; - proc_scb_info_t * scb_info; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct snd_info_entry * entry; + struct proc_scb_info * scb_info; /* register to proc */ if (ins->snd_card != NULL && ins->proc_dsp_dir != NULL && @@ -245,7 +248,7 @@ void cs46xx_dsp_proc_register_scb_desc (cs46xx_t *chip,dsp_scb_descriptor_t * sc if ((entry = snd_info_create_card_entry(ins->snd_card, scb->scb_name, ins->proc_dsp_dir)) != NULL) { - scb_info = kmalloc(sizeof(proc_scb_info_t), GFP_KERNEL); + scb_info = kmalloc(sizeof(struct proc_scb_info), GFP_KERNEL); if (!scb_info) { snd_info_free_entry(entry); entry = NULL; @@ -273,14 +276,14 @@ out: } } -static dsp_scb_descriptor_t * -_dsp_create_generic_scb (cs46xx_t *chip,char * name, u32 * scb_data,u32 dest, - symbol_entry_t * task_entry, - dsp_scb_descriptor_t * parent_scb, +static struct dsp_scb_descriptor * +_dsp_create_generic_scb (struct snd_cs46xx *chip, char * name, u32 * scb_data, u32 dest, + struct dsp_symbol_entry * task_entry, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * scb; unsigned long flags; @@ -342,13 +345,13 @@ _dsp_create_generic_scb (cs46xx_t *chip,char * name, u32 * scb_data,u32 dest, return scb; } -static dsp_scb_descriptor_t * -cs46xx_dsp_create_generic_scb (cs46xx_t *chip,char * name, u32 * scb_data,u32 dest, - char * task_entry_name, - dsp_scb_descriptor_t * parent_scb, +static struct dsp_scb_descriptor * +cs46xx_dsp_create_generic_scb (struct snd_cs46xx *chip, char * name, u32 * scb_data, + u32 dest, char * task_entry_name, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - symbol_entry_t * task_entry; + struct dsp_symbol_entry * task_entry; task_entry = cs46xx_dsp_lookup_symbol (chip,task_entry_name, SYMBOL_CODE); @@ -362,12 +365,12 @@ cs46xx_dsp_create_generic_scb (cs46xx_t *chip,char * name, u32 * scb_data,u32 de parent_scb,scb_child_type); } -dsp_scb_descriptor_t * -cs46xx_dsp_create_timing_master_scb (cs46xx_t *chip) +struct dsp_scb_descriptor * +cs46xx_dsp_create_timing_master_scb (struct snd_cs46xx *chip) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - timing_master_scb_t timing_master_scb = { + struct dsp_timing_master_scb timing_master_scb = { { 0, 0, 0, @@ -396,16 +399,15 @@ cs46xx_dsp_create_timing_master_scb (cs46xx_t *chip) } -dsp_scb_descriptor_t * -cs46xx_dsp_create_codec_out_scb(cs46xx_t * chip,char * codec_name, - u16 channel_disp,u16 fifo_addr, - u16 child_scb_addr, - u32 dest,dsp_scb_descriptor_t * parent_scb, +struct dsp_scb_descriptor * +cs46xx_dsp_create_codec_out_scb(struct snd_cs46xx * chip, char * codec_name, + u16 channel_disp, u16 fifo_addr, u16 child_scb_addr, + u32 dest, struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - codec_output_scb_t codec_out_scb = { + struct dsp_codec_output_scb codec_out_scb = { { 0, 0, 0, @@ -435,16 +437,15 @@ cs46xx_dsp_create_codec_out_scb(cs46xx_t * chip,char * codec_name, return scb; } -dsp_scb_descriptor_t * -cs46xx_dsp_create_codec_in_scb(cs46xx_t * chip,char * codec_name, - u16 channel_disp,u16 fifo_addr, - u16 sample_buffer_addr, - u32 dest,dsp_scb_descriptor_t * parent_scb, - int scb_child_type) +struct dsp_scb_descriptor * +cs46xx_dsp_create_codec_in_scb(struct snd_cs46xx * chip, char * codec_name, + u16 channel_disp, u16 fifo_addr, u16 sample_buffer_addr, + u32 dest, struct dsp_scb_descriptor * parent_scb, + int scb_child_type) { - dsp_scb_descriptor_t * scb; - codec_input_scb_t codec_input_scb = { + struct dsp_scb_descriptor * scb; + struct dsp_codec_input_scb codec_input_scb = { { 0, 0, 0, @@ -481,17 +482,17 @@ cs46xx_dsp_create_codec_in_scb(cs46xx_t * chip,char * codec_name, } -static dsp_scb_descriptor_t * -cs46xx_dsp_create_pcm_reader_scb(cs46xx_t * chip,char * scb_name, - u16 sample_buffer_addr,u32 dest, +static struct dsp_scb_descriptor * +cs46xx_dsp_create_pcm_reader_scb(struct snd_cs46xx * chip, char * scb_name, + u16 sample_buffer_addr, u32 dest, int virtual_channel, u32 playback_hw_addr, - dsp_scb_descriptor_t * parent_scb, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * scb; - generic_scb_t pcm_reader_scb = { + struct dsp_generic_scb pcm_reader_scb = { /* Play DMA Task xfers data from host buffer to SP buffer @@ -584,18 +585,18 @@ cs46xx_dsp_create_pcm_reader_scb(cs46xx_t * chip,char * scb_name, #define GOF_PER_SEC 200 -dsp_scb_descriptor_t * -cs46xx_dsp_create_src_task_scb(cs46xx_t * chip,char * scb_name, +struct dsp_scb_descriptor * +cs46xx_dsp_create_src_task_scb(struct snd_cs46xx * chip, char * scb_name, int rate, u16 src_buffer_addr, - u16 src_delay_buffer_addr,u32 dest, - dsp_scb_descriptor_t * parent_scb, + u16 src_delay_buffer_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, int scb_child_type, int pass_through) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * scb; unsigned int tmp1, tmp2; unsigned int phiIncr; unsigned int correctionPerGOF, correctionPerSec; @@ -632,7 +633,7 @@ cs46xx_dsp_create_src_task_scb(cs46xx_t * chip,char * scb_name, correctionPerSec = tmp1; { - src_task_scb_t src_task_scb = { + struct dsp_src_task_scb src_task_scb = { 0x0028,0x00c8, 0x5555,0x0000, 0x0000,0x0000, @@ -688,14 +689,14 @@ cs46xx_dsp_create_src_task_scb(cs46xx_t * chip,char * scb_name, } #if 0 /* not used */ -dsp_scb_descriptor_t * -cs46xx_dsp_create_filter_scb(cs46xx_t * chip,char * scb_name, - u16 buffer_addr,u32 dest, - dsp_scb_descriptor_t * parent_scb, +struct dsp_scb_descriptor * +cs46xx_dsp_create_filter_scb(struct snd_cs46xx * chip, char * scb_name, + u16 buffer_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - filter_scb_t filter_scb = { + struct dsp_filter_scb filter_scb = { .a0_right = 0x41a9, .a0_left = 0x41a9, .a1_right = 0xb8e4, @@ -738,15 +739,15 @@ cs46xx_dsp_create_filter_scb(cs46xx_t * chip,char * scb_name, } #endif /* not used */ -dsp_scb_descriptor_t * -cs46xx_dsp_create_mix_only_scb(cs46xx_t * chip,char * scb_name, - u16 mix_buffer_addr,u32 dest, - dsp_scb_descriptor_t * parent_scb, +struct dsp_scb_descriptor * +cs46xx_dsp_create_mix_only_scb(struct snd_cs46xx * chip, char * scb_name, + u16 mix_buffer_addr, u32 dest, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - mix_only_scb_t master_mix_scb = { + struct dsp_mix_only_scb master_mix_scb = { /* 0 */ { 0, /* 1 */ 0, /* 2 */ mix_buffer_addr, @@ -778,15 +779,15 @@ cs46xx_dsp_create_mix_only_scb(cs46xx_t * chip,char * scb_name, } -dsp_scb_descriptor_t * -cs46xx_dsp_create_mix_to_ostream_scb(cs46xx_t * chip,char * scb_name, - u16 mix_buffer_addr,u16 writeback_spb,u32 dest, - dsp_scb_descriptor_t * parent_scb, +struct dsp_scb_descriptor * +cs46xx_dsp_create_mix_to_ostream_scb(struct snd_cs46xx * chip, char * scb_name, + u16 mix_buffer_addr, u16 writeback_spb, u32 dest, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - mix2_ostream_scb_t mix2_ostream_scb = { + struct dsp_mix2_ostream_scb mix2_ostream_scb = { /* Basic (non scatter/gather) DMA requestor (4 ints) */ { DMA_RQ_C1_SOURCE_MOD64 + @@ -832,18 +833,18 @@ cs46xx_dsp_create_mix_to_ostream_scb(cs46xx_t * chip,char * scb_name, } -dsp_scb_descriptor_t * -cs46xx_dsp_create_vari_decimate_scb(cs46xx_t * chip,char * scb_name, +struct dsp_scb_descriptor * +cs46xx_dsp_create_vari_decimate_scb(struct snd_cs46xx * chip,char * scb_name, u16 vari_buffer_addr0, u16 vari_buffer_addr1, u32 dest, - dsp_scb_descriptor_t * parent_scb, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - vari_decimate_scb_t vari_decimate_scb = { + struct dsp_vari_decimate_scb vari_decimate_scb = { 0x0028,0x00c8, 0x5555,0x0000, 0x0000,0x0000, @@ -876,17 +877,17 @@ cs46xx_dsp_create_vari_decimate_scb(cs46xx_t * chip,char * scb_name, } -static dsp_scb_descriptor_t * -cs46xx_dsp_create_pcm_serial_input_scb(cs46xx_t * chip,char * scb_name,u32 dest, - dsp_scb_descriptor_t * input_scb, - dsp_scb_descriptor_t * parent_scb, +static struct dsp_scb_descriptor * +cs46xx_dsp_create_pcm_serial_input_scb(struct snd_cs46xx * chip, char * scb_name, u32 dest, + struct dsp_scb_descriptor * input_scb, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - pcm_serial_input_scb_t pcm_serial_input_scb = { + struct dsp_pcm_serial_input_scb pcm_serial_input_scb = { { 0, 0, 0, @@ -919,17 +920,17 @@ cs46xx_dsp_create_pcm_serial_input_scb(cs46xx_t * chip,char * scb_name,u32 dest, } -static dsp_scb_descriptor_t * -cs46xx_dsp_create_asynch_fg_tx_scb(cs46xx_t * chip,char * scb_name,u32 dest, +static struct dsp_scb_descriptor * +cs46xx_dsp_create_asynch_fg_tx_scb(struct snd_cs46xx * chip, char * scb_name, u32 dest, u16 hfg_scb_address, u16 asynch_buffer_address, - dsp_scb_descriptor_t * parent_scb, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - asynch_fg_tx_scb_t asynch_fg_tx_scb = { + struct dsp_asynch_fg_tx_scb asynch_fg_tx_scb = { 0xfc00,0x03ff, /* Prototype sample buffer size of 256 dwords */ 0x0058,0x0028, /* Min Delta 7 dwords == 28 bytes */ /* : Max delta 25 dwords == 100 bytes */ @@ -966,17 +967,17 @@ cs46xx_dsp_create_asynch_fg_tx_scb(cs46xx_t * chip,char * scb_name,u32 dest, } -dsp_scb_descriptor_t * -cs46xx_dsp_create_asynch_fg_rx_scb(cs46xx_t * chip,char * scb_name,u32 dest, +struct dsp_scb_descriptor * +cs46xx_dsp_create_asynch_fg_rx_scb(struct snd_cs46xx * chip, char * scb_name, u32 dest, u16 hfg_scb_address, u16 asynch_buffer_address, - dsp_scb_descriptor_t * parent_scb, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * scb; - asynch_fg_rx_scb_t asynch_fg_rx_scb = { + struct dsp_asynch_fg_rx_scb asynch_fg_rx_scb = { 0xfe00,0x01ff, /* Prototype sample buffer size of 128 dwords */ 0x0064,0x001c, /* Min Delta 7 dwords == 28 bytes */ /* : Max delta 25 dwords == 100 bytes */ @@ -1016,17 +1017,17 @@ cs46xx_dsp_create_asynch_fg_rx_scb(cs46xx_t * chip,char * scb_name,u32 dest, #if 0 /* not used */ -dsp_scb_descriptor_t * -cs46xx_dsp_create_output_snoop_scb(cs46xx_t * chip,char * scb_name,u32 dest, +struct dsp_scb_descriptor * +cs46xx_dsp_create_output_snoop_scb(struct snd_cs46xx * chip, char * scb_name, u32 dest, u16 snoop_buffer_address, - dsp_scb_descriptor_t * snoop_scb, - dsp_scb_descriptor_t * parent_scb, + struct dsp_scb_descriptor * snoop_scb, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - output_snoop_scb_t output_snoop_scb = { + struct dsp_output_snoop_scb output_snoop_scb = { { 0, /* not used. Zero */ 0, 0, @@ -1058,14 +1059,14 @@ cs46xx_dsp_create_output_snoop_scb(cs46xx_t * chip,char * scb_name,u32 dest, #endif /* not used */ -dsp_scb_descriptor_t * -cs46xx_dsp_create_spio_write_scb(cs46xx_t * chip,char * scb_name,u32 dest, - dsp_scb_descriptor_t * parent_scb, +struct dsp_scb_descriptor * +cs46xx_dsp_create_spio_write_scb(struct snd_cs46xx * chip, char * scb_name, u32 dest, + struct dsp_scb_descriptor * parent_scb, int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - spio_write_scb_t spio_write_scb = { + struct dsp_spio_write_scb spio_write_scb = { 0,0, /* SPIOWAddress2:SPIOWAddress1; */ 0, /* SPIOWData1; */ 0, /* SPIOWData2; */ @@ -1094,15 +1095,16 @@ cs46xx_dsp_create_spio_write_scb(cs46xx_t * chip,char * scb_name,u32 dest, return scb; } -dsp_scb_descriptor_t * cs46xx_dsp_create_magic_snoop_scb(cs46xx_t * chip,char * scb_name,u32 dest, - u16 snoop_buffer_address, - dsp_scb_descriptor_t * snoop_scb, - dsp_scb_descriptor_t * parent_scb, - int scb_child_type) +struct dsp_scb_descriptor * +cs46xx_dsp_create_magic_snoop_scb(struct snd_cs46xx * chip, char * scb_name, u32 dest, + u16 snoop_buffer_address, + struct dsp_scb_descriptor * snoop_scb, + struct dsp_scb_descriptor * parent_scb, + int scb_child_type) { - dsp_scb_descriptor_t * scb; + struct dsp_scb_descriptor * scb; - magic_snoop_task_t magic_snoop_scb = { + struct dsp_magic_snoop_task magic_snoop_scb = { /* 0 */ 0, /* i0 */ /* 1 */ 0, /* i1 */ /* 2 */ snoop_buffer_address << 0x10, @@ -1129,10 +1131,11 @@ dsp_scb_descriptor_t * cs46xx_dsp_create_magic_snoop_scb(cs46xx_t * chip,char * return scb; } -static dsp_scb_descriptor_t * find_next_free_scb (cs46xx_t * chip,dsp_scb_descriptor_t * from) +static struct dsp_scb_descriptor * +find_next_free_scb (struct snd_cs46xx * chip, struct dsp_scb_descriptor * from) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * scb = from; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * scb = from; while (scb->next_scb_ptr != ins->the_null_scb) { snd_assert (scb->next_scb_ptr != NULL, return NULL); @@ -1212,18 +1215,19 @@ static u32 src_delay_buffer_addr[DSP_MAX_SRC_NR] = { 0x2B00 }; -pcm_channel_descriptor_t * cs46xx_dsp_create_pcm_channel (cs46xx_t * chip, - u32 sample_rate, void * private_data, - u32 hw_dma_addr, - int pcm_channel_id) +struct dsp_pcm_channel_descriptor * +cs46xx_dsp_create_pcm_channel (struct snd_cs46xx * chip, + u32 sample_rate, void * private_data, + u32 hw_dma_addr, + int pcm_channel_id) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * src_scb = NULL,* pcm_scb, * mixer_scb = NULL; - dsp_scb_descriptor_t * src_parent_scb = NULL; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * src_scb = NULL, * pcm_scb, * mixer_scb = NULL; + struct dsp_scb_descriptor * src_parent_scb = NULL; - /* dsp_scb_descriptor_t * pcm_parent_scb; */ + /* struct dsp_scb_descriptor * pcm_parent_scb; */ char scb_name[DSP_MAX_SCB_NAME]; - int i,pcm_index = -1, insert_point, src_index = -1,pass_through = 0; + int i, pcm_index = -1, insert_point, src_index = -1, pass_through = 0; unsigned long flags; switch (pcm_channel_id) { @@ -1371,8 +1375,8 @@ pcm_channel_descriptor_t * cs46xx_dsp_create_pcm_channel (cs46xx_t * chip, return (ins->pcm_channels + pcm_index); } -int cs46xx_dsp_pcm_channel_set_period (cs46xx_t * chip, - pcm_channel_descriptor_t * pcm_channel, +int cs46xx_dsp_pcm_channel_set_period (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel, int period_size) { u32 temp = snd_cs46xx_peek (chip,pcm_channel->pcm_reader_scb->address << 2); @@ -1410,7 +1414,7 @@ int cs46xx_dsp_pcm_channel_set_period (cs46xx_t * chip, return 0; } -int cs46xx_dsp_pcm_ostream_set_period (cs46xx_t * chip, +int cs46xx_dsp_pcm_ostream_set_period (struct snd_cs46xx * chip, int period_size) { u32 temp = snd_cs46xx_peek (chip,WRITEBACK_SCB_ADDR << 2); @@ -1448,9 +1452,10 @@ int cs46xx_dsp_pcm_ostream_set_period (cs46xx_t * chip, return 0; } -void cs46xx_dsp_destroy_pcm_channel (cs46xx_t * chip,pcm_channel_descriptor_t * pcm_channel) +void cs46xx_dsp_destroy_pcm_channel (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; unsigned long flags; snd_assert(pcm_channel->active, return ); @@ -1478,9 +1483,10 @@ void cs46xx_dsp_destroy_pcm_channel (cs46xx_t * chip,pcm_channel_descriptor_t * } } -int cs46xx_dsp_pcm_unlink (cs46xx_t * chip,pcm_channel_descriptor_t * pcm_channel) +int cs46xx_dsp_pcm_unlink (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; unsigned long flags; snd_assert(pcm_channel->active,return -EIO); @@ -1503,11 +1509,12 @@ int cs46xx_dsp_pcm_unlink (cs46xx_t * chip,pcm_channel_descriptor_t * pcm_channe return 0; } -int cs46xx_dsp_pcm_link (cs46xx_t * chip,pcm_channel_descriptor_t * pcm_channel) +int cs46xx_dsp_pcm_link (struct snd_cs46xx * chip, + struct dsp_pcm_channel_descriptor * pcm_channel) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * parent_scb; - dsp_scb_descriptor_t * src_scb = pcm_channel->src_scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * parent_scb; + struct dsp_scb_descriptor * src_scb = pcm_channel->src_scb; unsigned long flags; spin_lock(&pcm_channel->src_scb->lock); @@ -1544,12 +1551,13 @@ int cs46xx_dsp_pcm_link (cs46xx_t * chip,pcm_channel_descriptor_t * pcm_channel) return 0; } -dsp_scb_descriptor_t * cs46xx_add_record_source (cs46xx_t *chip,dsp_scb_descriptor_t * source, - u16 addr,char * scb_name) +struct dsp_scb_descriptor * +cs46xx_add_record_source (struct snd_cs46xx *chip, struct dsp_scb_descriptor * source, + u16 addr, char * scb_name) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * parent; - dsp_scb_descriptor_t * pcm_input; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * parent; + struct dsp_scb_descriptor * pcm_input; int insert_point; snd_assert (ins->record_mixer_scb != NULL,return NULL); @@ -1569,7 +1577,7 @@ dsp_scb_descriptor_t * cs46xx_add_record_source (cs46xx_t *chip,dsp_scb_descript return pcm_input; } -int cs46xx_src_unlink(cs46xx_t *chip,dsp_scb_descriptor_t * src) +int cs46xx_src_unlink(struct snd_cs46xx *chip, struct dsp_scb_descriptor * src) { snd_assert (src->parent_scb_ptr != NULL, return -EINVAL ); @@ -1581,10 +1589,10 @@ int cs46xx_src_unlink(cs46xx_t *chip,dsp_scb_descriptor_t * src) return 0; } -int cs46xx_src_link(cs46xx_t *chip,dsp_scb_descriptor_t * src) +int cs46xx_src_link(struct snd_cs46xx *chip, struct dsp_scb_descriptor * src) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; - dsp_scb_descriptor_t * parent_scb; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; + struct dsp_scb_descriptor * parent_scb; snd_assert (src->parent_scb_ptr == NULL, return -EINVAL ); snd_assert(ins->master_mix_scb !=NULL, return -EINVAL ); @@ -1605,9 +1613,9 @@ int cs46xx_src_link(cs46xx_t *chip,dsp_scb_descriptor_t * src) return 0; } -int cs46xx_dsp_enable_spdif_out (cs46xx_t *chip) +int cs46xx_dsp_enable_spdif_out (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; if ( ! (ins->spdif_status_out & DSP_SPDIF_STATUS_HW_ENABLED) ) { cs46xx_dsp_enable_spdif_hw (chip); @@ -1653,9 +1661,9 @@ int cs46xx_dsp_enable_spdif_out (cs46xx_t *chip) return 0; } -int cs46xx_dsp_disable_spdif_out (cs46xx_t *chip) +int cs46xx_dsp_disable_spdif_out (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; /* dont touch anything if SPDIF is open */ if ( ins->spdif_status_out & DSP_SPDIF_STATUS_PLAYBACK_OPEN) { @@ -1685,9 +1693,9 @@ int cs46xx_dsp_disable_spdif_out (cs46xx_t *chip) return 0; } -int cs46xx_iec958_pre_open (cs46xx_t *chip) +int cs46xx_iec958_pre_open (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; if ( ins->spdif_status_out & DSP_SPDIF_STATUS_OUTPUT_ENABLED ) { /* remove AsynchFGTxSCB and and PCMSerialInput_II */ @@ -1718,9 +1726,9 @@ int cs46xx_iec958_pre_open (cs46xx_t *chip) return 0; } -int cs46xx_iec958_post_close (cs46xx_t *chip) +int cs46xx_iec958_post_close (struct snd_cs46xx *chip) { - dsp_spos_instance_t * ins = chip->dsp_spos_instance; + struct dsp_spos_instance * ins = chip->dsp_spos_instance; snd_assert (ins->asynch_tx_scb != NULL, return -EINVAL); diff --git a/sound/pci/cs46xx/imgs/cwc4630.h b/sound/pci/cs46xx/imgs/cwc4630.h index 8bed07f9996..37c4f1318dc 100644 --- a/sound/pci/cs46xx/imgs/cwc4630.h +++ b/sound/pci/cs46xx/imgs/cwc4630.h @@ -3,7 +3,7 @@ #ifndef __HEADER_cwc4630_H__ #define __HEADER_cwc4630_H__ -static symbol_entry_t cwc4630_symbols[] = { +static struct dsp_symbol_entry cwc4630_symbols[] = { { 0x0000, "BEGINADDRESS",0x00 }, { 0x8000, "EXECCHILD",0x03 }, { 0x8001, "EXECCHILD_98",0x03 }, @@ -302,12 +302,12 @@ static u32 cwc4630_parameter[] = { }; /* #PARAMETER_END */ -static segment_desc_t cwc4630_segments[] = { +static struct dsp_segment_desc cwc4630_segments[] = { { SEGTYPE_SP_PROGRAM, 0x00000000, 0x00000328, cwc4630_code }, { SEGTYPE_SP_PARAMETER, 0x00000000, 0x00000080, cwc4630_parameter }, }; -static dsp_module_desc_t cwc4630_module = { +static struct dsp_module_desc cwc4630_module = { "cwc4630", { 38, diff --git a/sound/pci/cs46xx/imgs/cwcasync.h b/sound/pci/cs46xx/imgs/cwcasync.h index e01a7b66c4f..70e63e13c2b 100644 --- a/sound/pci/cs46xx/imgs/cwcasync.h +++ b/sound/pci/cs46xx/imgs/cwcasync.h @@ -3,7 +3,7 @@ #ifndef __HEADER_cwcasync_H__ #define __HEADER_cwcasync_H__ -static symbol_entry_t cwcasync_symbols[] = { +static struct dsp_symbol_entry cwcasync_symbols[] = { { 0x8000, "EXECCHILD",0x03 }, { 0x8001, "EXECCHILD_98",0x03 }, { 0x8003, "EXECCHILD_PUSH1IND",0x03 }, @@ -159,11 +159,11 @@ static u32 cwcasync_code[] = { }; /* #CODE_END */ -static segment_desc_t cwcasync_segments[] = { +static struct dsp_segment_desc cwcasync_segments[] = { { SEGTYPE_SP_PROGRAM, 0x00000000, 0x000001b6, cwcasync_code }, }; -static dsp_module_desc_t cwcasync_module = { +static struct dsp_module_desc cwcasync_module = { "cwcasync", { 32, diff --git a/sound/pci/cs46xx/imgs/cwcbinhack.h b/sound/pci/cs46xx/imgs/cwcbinhack.h index 436b38bd246..f4d93689cd4 100644 --- a/sound/pci/cs46xx/imgs/cwcbinhack.h +++ b/sound/pci/cs46xx/imgs/cwcbinhack.h @@ -4,7 +4,7 @@ #ifndef __HEADER_cwcbinhack_H__ #define __HEADER_cwcbinhack_H__ -static symbol_entry_t cwcbinhack_symbols[] = { +static struct dsp_symbol_entry cwcbinhack_symbols[] = { { 0x02c8, "OVERLAYBEGINADDRESS",0x00 }, { 0x02c8, "MAGICSNOOPTASK",0x03 }, { 0x0308, "#CODE_END",0x00 }, @@ -31,11 +31,11 @@ static u32 cwcbinhack_code[] = { }; /* #CODE_END */ -static segment_desc_t cwcbinhack_segments[] = { +static struct dsp_segment_desc cwcbinhack_segments[] = { { SEGTYPE_SP_PROGRAM, 0x00000000, 64, cwcbinhack_code }, }; -static dsp_module_desc_t cwcbinhack_module = { +static struct dsp_module_desc cwcbinhack_module = { "cwcbinhack", { 3, diff --git a/sound/pci/cs46xx/imgs/cwcdma.h b/sound/pci/cs46xx/imgs/cwcdma.h index 92860435bee..7ff0d458716 100644 --- a/sound/pci/cs46xx/imgs/cwcdma.h +++ b/sound/pci/cs46xx/imgs/cwcdma.h @@ -3,7 +3,7 @@ #ifndef __HEADER_cwcdma_H__ #define __HEADER_cwcdma_H__ -static symbol_entry_t cwcdma_symbols[] = { +static struct dsp_symbol_entry cwcdma_symbols[] = { { 0x8000, "EXECCHILD",0x03 }, { 0x8001, "EXECCHILD_98",0x03 }, { 0x8003, "EXECCHILD_PUSH1IND",0x03 }, @@ -51,11 +51,11 @@ static u32 cwcdma_code[] = { /* #CODE_END */ -static segment_desc_t cwcdma_segments[] = { +static struct dsp_segment_desc cwcdma_segments[] = { { SEGTYPE_SP_PROGRAM, 0x00000000, 0x00000030, cwcdma_code }, }; -static dsp_module_desc_t cwcdma_module = { +static struct dsp_module_desc cwcdma_module = { "cwcdma", { 27, diff --git a/sound/pci/cs46xx/imgs/cwcemb80.h b/sound/pci/cs46xx/imgs/cwcemb80.h index 4b13551eae4..a64c6ff9983 100644 --- a/sound/pci/cs46xx/imgs/cwcemb80.h +++ b/sound/pci/cs46xx/imgs/cwcemb80.h @@ -3,7 +3,7 @@ #ifndef __HEADER_cwcemb80_H__ #define __HEADER_cwcemb80_H__ -static symbol_entry_t cwcemb80_symbols[] = { +static struct dsp_symbol_entry cwcemb80_symbols[] = { { 0x0000, "BEGINADDRESS",0x00 }, { 0x8000, "EXECCHILD",0x03 }, { 0x8001, "EXECCHILD_98",0x03 }, @@ -1588,13 +1588,13 @@ static u32 cwcemb80_sample[] = { }; /* #SAMPLE_END */ -static segment_desc_t cwcemb80_segments[] = { +static struct dsp_segment_desc cwcemb80_segments[] = { { SEGTYPE_SP_PROGRAM, 0x00000000, 0x0000031c, cwcemb80_code }, { SEGTYPE_SP_PARAMETER, 0x00000000, 0x00000697, cwcemb80_parameter }, { SEGTYPE_SP_SAMPLE, 0x00000000, 0x00000e00, cwcemb80_sample }, }; -static dsp_module_desc_t cwcemb80_module = { +static struct dsp_module_desc cwcemb80_module = { "cwcemb80", { 38, diff --git a/sound/pci/cs46xx/imgs/cwcsnoop.h b/sound/pci/cs46xx/imgs/cwcsnoop.h index be1162bbcb4..6929d0a5a3f 100644 --- a/sound/pci/cs46xx/imgs/cwcsnoop.h +++ b/sound/pci/cs46xx/imgs/cwcsnoop.h @@ -3,7 +3,7 @@ #ifndef __HEADER_cwcsnoop_H__ #define __HEADER_cwcsnoop_H__ -static symbol_entry_t cwcsnoop_symbols[] = { +static struct dsp_symbol_entry cwcsnoop_symbols[] = { { 0x0500, "OVERLAYBEGINADDRESS",0x00 }, { 0x0500, "OUTPUTSNOOP",0x03 }, { 0x051f, "#CODE_END",0x00 }, @@ -29,11 +29,11 @@ static u32 cwcsnoop_code[] = { }; /* #CODE_END */ -static segment_desc_t cwcsnoop_segments[] = { +static struct dsp_segment_desc cwcsnoop_segments[] = { { SEGTYPE_SP_PROGRAM, 0x00000000, 0x0000003e, cwcsnoop_code }, }; -static dsp_module_desc_t cwcsnoop_module = { +static struct dsp_module_desc cwcsnoop_module = { "cwcsnoop", { 3, -- cgit v1.2.3-70-g09d2 From eb4698f347ec908c365504c4edddadd1acd406ea Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:50:13 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI emu10k1 Modules: EMU10K1/EMU10K2 driver Remove xxx_t typedefs from the PCI emu10k1 driver. Signed-off-by: Takashi Iwai --- include/sound/emu10k1.h | 336 +++++++++++++++--------------- include/sound/emu10k1_synth.h | 6 +- sound/pci/emu10k1/emu10k1.c | 10 +- sound/pci/emu10k1/emu10k1_callback.c | 105 +++++----- sound/pci/emu10k1/emu10k1_main.c | 39 ++-- sound/pci/emu10k1/emu10k1_patch.c | 13 +- sound/pci/emu10k1/emu10k1_synth.c | 19 +- sound/pci/emu10k1/emu10k1_synth_local.h | 15 +- sound/pci/emu10k1/emufx.c | 244 ++++++++++++---------- sound/pci/emu10k1/emumixer.c | 229 +++++++++++---------- sound/pci/emu10k1/emumpu401.c | 72 +++---- sound/pci/emu10k1/emupcm.c | 354 ++++++++++++++++---------------- sound/pci/emu10k1/emuproc.c | 101 ++++----- sound/pci/emu10k1/io.c | 38 ++-- sound/pci/emu10k1/irq.c | 8 +- sound/pci/emu10k1/memory.c | 94 +++++---- sound/pci/emu10k1/p16v.c | 254 +++++++++++------------ sound/pci/emu10k1/timer.c | 18 +- sound/pci/emu10k1/voice.c | 13 +- 19 files changed, 1022 insertions(+), 946 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index 8411c7ef6f1..d14c543b160 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h @@ -887,47 +887,45 @@ /* ------------------- STRUCTURES -------------------- */ -typedef struct _snd_emu10k1 emu10k1_t; -typedef struct _snd_emu10k1_voice emu10k1_voice_t; -typedef struct _snd_emu10k1_pcm emu10k1_pcm_t; - -typedef enum { +enum { EMU10K1_EFX, EMU10K1_PCM, EMU10K1_SYNTH, EMU10K1_MIDI -} emu10k1_voice_type_t; +}; + +struct snd_emu10k1; -struct _snd_emu10k1_voice { - emu10k1_t *emu; +struct snd_emu10k1_voice { + struct snd_emu10k1 *emu; int number; unsigned int use: 1, pcm: 1, efx: 1, synth: 1, midi: 1; - void (*interrupt)(emu10k1_t *emu, emu10k1_voice_t *pvoice); + void (*interrupt)(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice); - emu10k1_pcm_t *epcm; + struct snd_emu10k1_pcm *epcm; }; -typedef enum { +enum { PLAYBACK_EMUVOICE, PLAYBACK_EFX, CAPTURE_AC97ADC, CAPTURE_AC97MIC, CAPTURE_EFX -} snd_emu10k1_pcm_type_t; - -struct _snd_emu10k1_pcm { - emu10k1_t *emu; - snd_emu10k1_pcm_type_t type; - snd_pcm_substream_t *substream; - emu10k1_voice_t *voices[NUM_EFX_PLAYBACK]; - emu10k1_voice_t *extra; +}; + +struct snd_emu10k1_pcm { + struct snd_emu10k1 *emu; + int type; + struct snd_pcm_substream *substream; + struct snd_emu10k1_voice *voices[NUM_EFX_PLAYBACK]; + struct snd_emu10k1_voice *extra; unsigned short running; unsigned short first_ptr; - snd_util_memblk_t *memblk; + struct snd_util_memblk *memblk; unsigned int start_addr; unsigned int ccca_start_addr; unsigned int capture_ipr; /* interrupt acknowledge mask */ @@ -941,13 +939,13 @@ struct _snd_emu10k1_pcm { unsigned int capture_bufsize; /* buffer size in bytes */ }; -typedef struct { +struct snd_emu10k1_pcm_mixer { /* mono, left, right x 8 sends (4 on emu10k1) */ unsigned char send_routing[3][8]; unsigned char send_volume[3][8]; unsigned short attn[3]; - emu10k1_pcm_t *epcm; -} emu10k1_pcm_mixer_t; + struct snd_emu10k1_pcm *epcm; +}; #define snd_emu10k1_compose_send_routing(route) \ ((route[0] | (route[1] << 4) | (route[2] << 8) | (route[3] << 12)) << 16) @@ -958,20 +956,20 @@ typedef struct { #define snd_emu10k1_compose_audigy_fxrt2(route) \ ((unsigned int)route[4] | ((unsigned int)route[5] << 8) | ((unsigned int)route[6] << 16) | ((unsigned int)route[7] << 24)) -typedef struct snd_emu10k1_memblk { - snd_util_memblk_t mem; +struct snd_emu10k1_memblk { + struct snd_util_memblk mem; /* private part */ int first_page, last_page, pages, mapped_page; unsigned int map_locked; struct list_head mapped_link; struct list_head mapped_order_link; -} emu10k1_memblk_t; +}; #define snd_emu10k1_memblk_offset(blk) (((blk)->mapped_page << PAGE_SHIFT) | ((blk)->mem.offset & (PAGE_SIZE - 1))) #define EMU10K1_MAX_TRAM_BLOCKS_PER_CODE 16 -typedef struct { +struct snd_emu10k1_fx8010_ctl { struct list_head list; /* list link container */ unsigned int vcount; unsigned int count; /* count of GPR (1..16) */ @@ -980,19 +978,19 @@ typedef struct { unsigned int min; /* minimum range */ unsigned int max; /* maximum range */ unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */ - snd_kcontrol_t *kcontrol; -} snd_emu10k1_fx8010_ctl_t; + struct snd_kcontrol *kcontrol; +}; -typedef void (snd_fx8010_irq_handler_t)(emu10k1_t *emu, void *private_data); +typedef void (snd_fx8010_irq_handler_t)(struct snd_emu10k1 *emu, void *private_data); -typedef struct _snd_emu10k1_fx8010_irq { - struct _snd_emu10k1_fx8010_irq *next; +struct snd_emu10k1_fx8010_irq { + struct snd_emu10k1_fx8010_irq *next; snd_fx8010_irq_handler_t *handler; unsigned short gpr_running; void *private_data; -} snd_emu10k1_fx8010_irq_t; +}; -typedef struct { +struct snd_emu10k1_fx8010_pcm { unsigned int valid: 1, opened: 1, active: 1; @@ -1006,13 +1004,13 @@ typedef struct { unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */ unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */ unsigned char etram[32]; /* external TRAM address & data */ - snd_pcm_indirect_t pcm_rec; + struct snd_pcm_indirect pcm_rec; unsigned int tram_pos; unsigned int tram_shift; - snd_emu10k1_fx8010_irq_t *irq; -} snd_emu10k1_fx8010_pcm_t; + struct snd_emu10k1_fx8010_irq *irq; +}; -typedef struct { +struct snd_emu10k1_fx8010 { unsigned short fxbus_mask; /* used FX buses (bitmask) */ unsigned short extin_mask; /* used external inputs (bitmask) */ unsigned short extout_mask; /* used external outputs (bitmask) */ @@ -1025,18 +1023,18 @@ typedef struct { int gpr_count; /* count of used kcontrols */ struct list_head gpr_ctl; /* GPR controls */ struct semaphore lock; - snd_emu10k1_fx8010_pcm_t pcm[8]; + struct snd_emu10k1_fx8010_pcm pcm[8]; spinlock_t irq_lock; - snd_emu10k1_fx8010_irq_t *irq_handlers; -} snd_emu10k1_fx8010_t; + struct snd_emu10k1_fx8010_irq *irq_handlers; +}; -#define emu10k1_gpr_ctl(n) list_entry(n, snd_emu10k1_fx8010_ctl_t, list) +#define emu10k1_gpr_ctl(n) list_entry(n, struct snd_emu10k1_fx8010_ctl, list) -typedef struct { - struct _snd_emu10k1 *emu; - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *substream_input; - snd_rawmidi_substream_t *substream_output; +struct snd_emu10k1_midi { + struct snd_emu10k1 *emu; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *substream_input; + struct snd_rawmidi_substream *substream_output; unsigned int midi_mode; spinlock_t input_lock; spinlock_t output_lock; @@ -1044,10 +1042,10 @@ typedef struct { int tx_enable, rx_enable; int port; int ipr_tx, ipr_rx; - void (*interrupt)(emu10k1_t *emu, unsigned int status); -} emu10k1_midi_t; + void (*interrupt)(struct snd_emu10k1 *emu, unsigned int status); +}; -typedef struct { +struct snd_emu_chip_details { u32 vendor; u32 device; u32 subsystem; @@ -1066,15 +1064,16 @@ typedef struct { const char *driver; const char *name; const char *id; /* for backward compatibility - can be NULL if not needed */ -} emu_chip_details_t; +}; -struct _snd_emu10k1 { +struct snd_emu10k1 { int irq; unsigned long port; /* I/O port number */ unsigned int tos_link: 1, /* tos link detected */ rear_ac97: 1; /* rear channels are on AC'97 */ - const emu_chip_details_t *card_capabilities; /* Contains profile of card capabilities */ + /* Contains profile of card capabilities */ + const struct snd_emu_chip_details *card_capabilities; unsigned int audigy; /* is Audigy? */ unsigned int revision; /* chip revision */ unsigned int serial; /* serial number */ @@ -1088,8 +1087,8 @@ struct _snd_emu10k1 { struct snd_dma_device p16v_dma_dev; struct snd_dma_buffer p16v_buffer; - snd_util_memhdr_t *memhdr; /* page allocation list */ - emu10k1_memblk_t *reserved_page; /* reserved page */ + struct snd_util_memhdr *memhdr; /* page allocation list */ + struct snd_emu10k1_memblk *reserved_page; /* reserved page */ struct list_head mapped_link_head; struct list_head mapped_order_link_head; @@ -1099,142 +1098,142 @@ struct _snd_emu10k1 { unsigned int spdif_bits[3]; /* s/pdif out setup */ - snd_emu10k1_fx8010_t fx8010; /* FX8010 info */ + struct snd_emu10k1_fx8010 fx8010; /* FX8010 info */ int gpr_base; - ac97_t *ac97; + struct snd_ac97 *ac97; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; - snd_pcm_t *pcm_mic; - snd_pcm_t *pcm_efx; - snd_pcm_t *pcm_p16v; + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_pcm *pcm_mic; + struct snd_pcm *pcm_efx; + struct snd_pcm *pcm_p16v; spinlock_t synth_lock; void *synth; - int (*get_synth_voice)(emu10k1_t *emu); + int (*get_synth_voice)(struct snd_emu10k1 *emu); spinlock_t reg_lock; spinlock_t emu_lock; spinlock_t voice_lock; struct semaphore ptb_lock; - emu10k1_voice_t voices[NUM_G]; - emu10k1_voice_t p16v_voices[4]; - emu10k1_voice_t p16v_capture_voice; + struct snd_emu10k1_voice voices[NUM_G]; + struct snd_emu10k1_voice p16v_voices[4]; + struct snd_emu10k1_voice p16v_capture_voice; int p16v_device_offset; u32 p16v_capture_source; u32 p16v_capture_channel; - emu10k1_pcm_mixer_t pcm_mixer[32]; - emu10k1_pcm_mixer_t efx_pcm_mixer[NUM_EFX_PLAYBACK]; - snd_kcontrol_t *ctl_send_routing; - snd_kcontrol_t *ctl_send_volume; - snd_kcontrol_t *ctl_attn; - snd_kcontrol_t *ctl_efx_send_routing; - snd_kcontrol_t *ctl_efx_send_volume; - snd_kcontrol_t *ctl_efx_attn; - - void (*hwvol_interrupt)(emu10k1_t *emu, unsigned int status); - void (*capture_interrupt)(emu10k1_t *emu, unsigned int status); - void (*capture_mic_interrupt)(emu10k1_t *emu, unsigned int status); - void (*capture_efx_interrupt)(emu10k1_t *emu, unsigned int status); - void (*spdif_interrupt)(emu10k1_t *emu, unsigned int status); - void (*dsp_interrupt)(emu10k1_t *emu); - - snd_pcm_substream_t *pcm_capture_substream; - snd_pcm_substream_t *pcm_capture_mic_substream; - snd_pcm_substream_t *pcm_capture_efx_substream; - snd_pcm_substream_t *pcm_playback_efx_substream; - - snd_timer_t *timer; - - emu10k1_midi_t midi; - emu10k1_midi_t midi2; /* for audigy */ + struct snd_emu10k1_pcm_mixer pcm_mixer[32]; + struct snd_emu10k1_pcm_mixer efx_pcm_mixer[NUM_EFX_PLAYBACK]; + struct snd_kcontrol *ctl_send_routing; + struct snd_kcontrol *ctl_send_volume; + struct snd_kcontrol *ctl_attn; + struct snd_kcontrol *ctl_efx_send_routing; + struct snd_kcontrol *ctl_efx_send_volume; + struct snd_kcontrol *ctl_efx_attn; + + void (*hwvol_interrupt)(struct snd_emu10k1 *emu, unsigned int status); + void (*capture_interrupt)(struct snd_emu10k1 *emu, unsigned int status); + void (*capture_mic_interrupt)(struct snd_emu10k1 *emu, unsigned int status); + void (*capture_efx_interrupt)(struct snd_emu10k1 *emu, unsigned int status); + void (*spdif_interrupt)(struct snd_emu10k1 *emu, unsigned int status); + void (*dsp_interrupt)(struct snd_emu10k1 *emu); + + struct snd_pcm_substream *pcm_capture_substream; + struct snd_pcm_substream *pcm_capture_mic_substream; + struct snd_pcm_substream *pcm_capture_efx_substream; + struct snd_pcm_substream *pcm_playback_efx_substream; + + struct snd_timer *timer; + + struct snd_emu10k1_midi midi; + struct snd_emu10k1_midi midi2; /* for audigy */ unsigned int efx_voices_mask[2]; unsigned int next_free_voice; }; -int snd_emu10k1_create(snd_card_t * card, +int snd_emu10k1_create(struct snd_card *card, struct pci_dev *pci, unsigned short extin_mask, unsigned short extout_mask, long max_cache_bytes, int enable_ir, uint subsystem, - emu10k1_t ** remu); - -int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); -int snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); -int snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); -int snd_p16v_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); -int snd_p16v_free(emu10k1_t * emu); -int snd_p16v_mixer(emu10k1_t * emu); -int snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); -int snd_emu10k1_fx8010_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); -int snd_emu10k1_mixer(emu10k1_t * emu, int pcm_device, int multi_device); -int snd_emu10k1_timer(emu10k1_t * emu, int device); -int snd_emu10k1_fx8010_new(emu10k1_t *emu, int device, snd_hwdep_t ** rhwdep); + struct snd_emu10k1 ** remu); + +int snd_emu10k1_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm); +int snd_emu10k1_pcm_mic(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm); +int snd_emu10k1_pcm_efx(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm); +int snd_p16v_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm); +int snd_p16v_free(struct snd_emu10k1 * emu); +int snd_p16v_mixer(struct snd_emu10k1 * emu); +int snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm); +int snd_emu10k1_fx8010_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm); +int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device); +int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device); +int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep); irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); /* initialization */ -void snd_emu10k1_voice_init(emu10k1_t * emu, int voice); -int snd_emu10k1_init_efx(emu10k1_t *emu); -void snd_emu10k1_free_efx(emu10k1_t *emu); -int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size); +void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice); +int snd_emu10k1_init_efx(struct snd_emu10k1 *emu); +void snd_emu10k1_free_efx(struct snd_emu10k1 *emu); +int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size); /* I/O functions */ -unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned int chn); -void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data); -unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, unsigned int reg, unsigned int chn); -void snd_emu10k1_ptr20_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data); -unsigned int snd_emu10k1_efx_read(emu10k1_t *emu, unsigned int pc); -void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb); -void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb); -void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum); -void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait); -static inline unsigned int snd_emu10k1_wc(emu10k1_t *emu) { return (inl(emu->port + WC) >> 6) & 0xfffff; } -unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg); -void snd_emu10k1_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short data); +unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn); +void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data); +unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn); +void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data); +unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc); +void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb); +void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb); +void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum); +void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait); +static inline unsigned int snd_emu10k1_wc(struct snd_emu10k1 *emu) { return (inl(emu->port + WC) >> 6) & 0xfffff; } +unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg); +void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data); unsigned int snd_emu10k1_rate_to_pitch(unsigned int rate); /* memory allocation */ -snd_util_memblk_t *snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream); -int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk); -snd_util_memblk_t *snd_emu10k1_synth_alloc(emu10k1_t *emu, unsigned int size); -int snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *blk); -int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, int size); -int snd_emu10k1_synth_copy_from_user(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, const char __user *data, int size); -int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk); +struct snd_util_memblk *snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream); +int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk); +struct snd_util_memblk *snd_emu10k1_synth_alloc(struct snd_emu10k1 *emu, unsigned int size); +int snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *blk); +int snd_emu10k1_synth_bzero(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size); +int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, const char __user *data, int size); +int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk); /* voice allocation */ -int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int pair, emu10k1_voice_t **rvoice); -int snd_emu10k1_voice_free(emu10k1_t *emu, emu10k1_voice_t *pvoice); +int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int pair, struct snd_emu10k1_voice **rvoice); +int snd_emu10k1_voice_free(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice); /* MIDI uart */ -int snd_emu10k1_midi(emu10k1_t * emu); -int snd_emu10k1_audigy_midi(emu10k1_t * emu); +int snd_emu10k1_midi(struct snd_emu10k1 * emu); +int snd_emu10k1_audigy_midi(struct snd_emu10k1 * emu); /* proc interface */ -int snd_emu10k1_proc_init(emu10k1_t * emu); +int snd_emu10k1_proc_init(struct snd_emu10k1 * emu); /* fx8010 irq handler */ -int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu, +int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu, snd_fx8010_irq_handler_t *handler, unsigned char gpr_running, void *private_data, - snd_emu10k1_fx8010_irq_t **r_irq); -int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, - snd_emu10k1_fx8010_irq_t *irq); + struct snd_emu10k1_fx8010_irq **r_irq); +int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_irq *irq); #endif /* __KERNEL__ */ @@ -1469,14 +1468,14 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, #define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */ #endif -typedef struct { +struct snd_emu10k1_fx8010_info { unsigned int internal_tram_size; /* in samples */ unsigned int external_tram_size; /* in samples */ char fxbus_names[16][32]; /* names of FXBUSes */ char extin_names[16][32]; /* names of external inputs */ char extout_names[32][32]; /* names of external outputs */ unsigned int gpr_controls; /* count of GPR controls */ -} emu10k1_fx8010_info_t; +}; #define EMU10K1_GPR_TRANSLATION_NONE 0 #define EMU10K1_GPR_TRANSLATION_TABLE100 1 @@ -1484,8 +1483,8 @@ typedef struct { #define EMU10K1_GPR_TRANSLATION_TREBLE 3 #define EMU10K1_GPR_TRANSLATION_ONOFF 4 -typedef struct { - snd_ctl_elem_id_t id; /* full control ID definition */ +struct snd_emu10k1_fx8010_control_gpr { + struct snd_ctl_elem_id id; /* full control ID definition */ unsigned int vcount; /* visible count */ unsigned int count; /* count of GPR (1..16) */ unsigned short gpr[32]; /* GPR number(s) */ @@ -1493,23 +1492,23 @@ typedef struct { unsigned int min; /* minimum range */ unsigned int max; /* maximum range */ unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */ -} emu10k1_fx8010_control_gpr_t; +}; -typedef struct { +struct snd_emu10k1_fx8010_code { char name[128]; DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */ u_int32_t __user *gpr_map; /* initializers */ unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */ - emu10k1_fx8010_control_gpr_t __user *gpr_add_controls; /* GPR controls to add/replace */ + struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */ unsigned int gpr_del_control_count; /* count of GPR controls to remove */ - snd_ctl_elem_id_t __user *gpr_del_controls; /* IDs of GPR controls to remove */ + struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */ unsigned int gpr_list_control_count; /* count of GPR controls to list */ unsigned int gpr_list_control_total; /* total count of GPR controls */ - emu10k1_fx8010_control_gpr_t __user *gpr_list_controls; /* listed GPR controls */ + struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */ DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */ u_int32_t __user *tram_data_map; /* data initializers */ @@ -1517,16 +1516,16 @@ typedef struct { DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */ u_int32_t __user *code; /* one instruction - 64 bits */ -} emu10k1_fx8010_code_t; +}; -typedef struct { +struct snd_emu10k1_fx8010_tram { unsigned int address; /* 31.bit == 1 -> external TRAM */ unsigned int size; /* size in samples (4 bytes) */ unsigned int *samples; /* pointer to samples (20-bit) */ /* NULL->clear memory */ -} emu10k1_fx8010_tram_t; +}; -typedef struct { +struct snd_emu10k1_fx8010_pcm_rec { unsigned int substream; /* substream number */ unsigned int res1; /* reserved */ unsigned int channels; /* 16-bit channels count, zero = remove this substream */ @@ -1541,20 +1540,27 @@ typedef struct { unsigned char pad; /* reserved */ unsigned char etram[32]; /* external TRAM address & data (one per channel) */ unsigned int res2; /* reserved */ -} emu10k1_fx8010_pcm_t; +}; -#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, emu10k1_fx8010_info_t) -#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, emu10k1_fx8010_code_t) -#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, emu10k1_fx8010_code_t) +#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, struct snd_emu10k1_fx8010_info) +#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, struct snd_emu10k1_fx8010_code) +#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, struct snd_emu10k1_fx8010_code) #define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int) -#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, emu10k1_fx8010_tram_t) -#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, emu10k1_fx8010_tram_t) -#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, emu10k1_fx8010_pcm_t) -#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, emu10k1_fx8010_pcm_t) +#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, struct snd_emu10k1_fx8010_tram) +#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, struct snd_emu10k1_fx8010_tram) +#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, struct snd_emu10k1_fx8010_pcm_rec) +#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, struct snd_emu10k1_fx8010_pcm_rec) #define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80) #define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81) #define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82) #define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int) #define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int) +/* typedefs for compatibility to user-space */ +typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t; +typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t; +typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t; +typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t; +typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t; + #endif /* __SOUND_EMU10K1_H */ diff --git a/include/sound/emu10k1_synth.h b/include/sound/emu10k1_synth.h index df0df1d0955..6ef61c42093 100644 --- a/include/sound/emu10k1_synth.h +++ b/include/sound/emu10k1_synth.h @@ -27,12 +27,12 @@ #define SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH "emu10k1-synth" /* argument for snd_seq_device_new */ -typedef struct snd_emu10k1_synth_arg { - emu10k1_t *hwptr; /* chip */ +struct snd_emu10k1_synth_arg { + struct snd_emu10k1 *hwptr; /* chip */ int index; /* sequencer client index */ int seq_ports; /* number of sequencer ports to be created */ int max_voices; /* maximum number of voices for wavetable */ -} snd_emu10k1_synth_arg_t; +}; #define EMU10K1_MAX_MEMSIZE (32 * 1024 * 1024) /* 32MB */ diff --git a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c index 78270f8710f..9be90022477 100644 --- a/sound/pci/emu10k1/emu10k1.c +++ b/sound/pci/emu10k1/emu10k1.c @@ -101,10 +101,10 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - emu10k1_t *emu; + struct snd_card *card; + struct snd_emu10k1 *emu; #ifdef ENABLE_SYNTH - snd_seq_device_t *wave = NULL; + struct snd_seq_device *wave = NULL; #endif int err; @@ -186,11 +186,11 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci, } #ifdef ENABLE_SYNTH if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, - sizeof(snd_emu10k1_synth_arg_t), &wave) < 0 || + sizeof(struct snd_emu10k1_synth_arg), &wave) < 0 || wave == NULL) { snd_printk(KERN_WARNING "can't initialize Emu10k1 wavetable synth\n"); } else { - snd_emu10k1_synth_arg_t *arg; + struct snd_emu10k1_synth_arg *arg; arg = SNDRV_SEQ_DEVICE_ARGPTR(wave); strcpy(wave->name, "Emu-10k1 Synth"); arg->hwptr = emu; diff --git a/sound/pci/emu10k1/emu10k1_callback.c b/sound/pci/emu10k1/emu10k1_callback.c index 6589bf24abc..01965bd9996 100644 --- a/sound/pci/emu10k1/emu10k1_callback.c +++ b/sound/pci/emu10k1/emu10k1_callback.c @@ -27,26 +27,28 @@ enum { }; /* Keeps track of what we are finding */ -typedef struct best_voice { +struct best_voice { unsigned int time; int voice; -} best_voice_t; +}; /* * prototypes */ -static void lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_only); -static snd_emux_voice_t *get_voice(snd_emux_t *emu, snd_emux_port_t *port); -static int start_voice(snd_emux_voice_t *vp); -static void trigger_voice(snd_emux_voice_t *vp); -static void release_voice(snd_emux_voice_t *vp); -static void update_voice(snd_emux_voice_t *vp, int update); -static void terminate_voice(snd_emux_voice_t *vp); -static void free_voice(snd_emux_voice_t *vp); - -static void set_fmmod(emu10k1_t *hw, snd_emux_voice_t *vp); -static void set_fm2frq2(emu10k1_t *hw, snd_emux_voice_t *vp); -static void set_filterQ(emu10k1_t *hw, snd_emux_voice_t *vp); +static void lookup_voices(struct snd_emux *emu, struct snd_emu10k1 *hw, + struct best_voice *best, int active_only); +static struct snd_emux_voice *get_voice(struct snd_emux *emu, + struct snd_emux_port *port); +static int start_voice(struct snd_emux_voice *vp); +static void trigger_voice(struct snd_emux_voice *vp); +static void release_voice(struct snd_emux_voice *vp); +static void update_voice(struct snd_emux_voice *vp, int update); +static void terminate_voice(struct snd_emux_voice *vp); +static void free_voice(struct snd_emux_voice *vp); + +static void set_fmmod(struct snd_emu10k1 *hw, struct snd_emux_voice *vp); +static void set_fm2frq2(struct snd_emu10k1 *hw, struct snd_emux_voice *vp); +static void set_filterQ(struct snd_emu10k1 *hw, struct snd_emux_voice *vp); /* * Ensure a value is between two points @@ -59,7 +61,7 @@ static void set_filterQ(emu10k1_t *hw, snd_emux_voice_t *vp); /* * set up operators */ -static snd_emux_operators_t emu10k1_ops = { +static struct snd_emux_operators emu10k1_ops = { .owner = THIS_MODULE, .get_voice = get_voice, .prepare = start_voice, @@ -73,7 +75,7 @@ static snd_emux_operators_t emu10k1_ops = { }; void -snd_emu10k1_ops_setup(snd_emux_t *emu) +snd_emu10k1_ops_setup(struct snd_emux *emu) { emu->ops = emu10k1_ops; } @@ -85,11 +87,11 @@ snd_emu10k1_ops_setup(snd_emux_t *emu) * terminate most inactive voice and give it as a pcm voice. */ int -snd_emu10k1_synth_get_voice(emu10k1_t *hw) +snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw) { - snd_emux_t *emu; - snd_emux_voice_t *vp; - best_voice_t best[V_END]; + struct snd_emux *emu; + struct snd_emux_voice *vp; + struct best_voice best[V_END]; unsigned long flags; int i; @@ -123,10 +125,10 @@ snd_emu10k1_synth_get_voice(emu10k1_t *hw) * turn off the voice (not terminated) */ static void -release_voice(snd_emux_voice_t *vp) +release_voice(struct snd_emux_voice *vp) { int dcysusv; - emu10k1_t *hw; + struct snd_emu10k1 *hw; hw = vp->hw; dcysusv = 0x8000 | (unsigned char)vp->reg.parm.modrelease; @@ -140,16 +142,16 @@ release_voice(snd_emux_voice_t *vp) * terminate the voice */ static void -terminate_voice(snd_emux_voice_t *vp) +terminate_voice(struct snd_emux_voice *vp) { - emu10k1_t *hw; + struct snd_emu10k1 *hw; snd_assert(vp, return); hw = vp->hw; snd_emu10k1_ptr_write(hw, DCYSUSV, vp->ch, 0x807f | DCYSUSV_CHANNELENABLE_MASK); if (vp->block) { - emu10k1_memblk_t *emem; - emem = (emu10k1_memblk_t *)vp->block; + struct snd_emu10k1_memblk *emem; + emem = (struct snd_emu10k1_memblk *)vp->block; if (emem->map_locked > 0) emem->map_locked--; } @@ -159,9 +161,9 @@ terminate_voice(snd_emux_voice_t *vp) * release the voice to system */ static void -free_voice(snd_emux_voice_t *vp) +free_voice(struct snd_emux_voice *vp) { - emu10k1_t *hw; + struct snd_emu10k1 *hw; hw = vp->hw; if (vp->ch >= 0) { @@ -181,9 +183,9 @@ free_voice(snd_emux_voice_t *vp) * update registers */ static void -update_voice(snd_emux_voice_t *vp, int update) +update_voice(struct snd_emux_voice *vp, int update) { - emu10k1_t *hw; + struct snd_emu10k1 *hw; hw = vp->hw; if (update & SNDRV_EMUX_UPDATE_VOLUME) @@ -210,10 +212,11 @@ update_voice(snd_emux_voice_t *vp, int update) */ /* spinlock held! */ static void -lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_only) +lookup_voices(struct snd_emux *emu, struct snd_emu10k1 *hw, + struct best_voice *best, int active_only) { - snd_emux_voice_t *vp; - best_voice_t *bp; + struct snd_emux_voice *vp; + struct best_voice *bp; int i; for (i = 0; i < V_END; i++) { @@ -274,12 +277,12 @@ lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_onl * * emu->voice_lock is already held. */ -static snd_emux_voice_t * -get_voice(snd_emux_t *emu, snd_emux_port_t *port) +static struct snd_emux_voice * +get_voice(struct snd_emux *emu, struct snd_emux_port *port) { - emu10k1_t *hw; - snd_emux_voice_t *vp; - best_voice_t best[V_END]; + struct snd_emu10k1 *hw; + struct snd_emux_voice *vp; + struct best_voice best[V_END]; int i; hw = emu->hw; @@ -290,7 +293,7 @@ get_voice(snd_emux_t *emu, snd_emux_port_t *port) vp = &emu->voices[best[i].voice]; if (vp->ch < 0) { /* allocate a voice */ - emu10k1_voice_t *hwvoice; + struct snd_emu10k1_voice *hwvoice; if (snd_emu10k1_voice_alloc(hw, EMU10K1_SYNTH, 1, &hwvoice) < 0 || hwvoice == NULL) continue; vp->ch = hwvoice->number; @@ -308,21 +311,21 @@ get_voice(snd_emux_t *emu, snd_emux_port_t *port) * prepare envelopes and LFOs */ static int -start_voice(snd_emux_voice_t *vp) +start_voice(struct snd_emux_voice *vp) { unsigned int temp; int ch; unsigned int addr, mapped_offset; - snd_midi_channel_t *chan; - emu10k1_t *hw; - emu10k1_memblk_t *emem; + struct snd_midi_channel *chan; + struct snd_emu10k1 *hw; + struct snd_emu10k1_memblk *emem; hw = vp->hw; ch = vp->ch; snd_assert(ch >= 0, return -EINVAL); chan = vp->chan; - emem = (emu10k1_memblk_t *)vp->block; + emem = (struct snd_emu10k1_memblk *)vp->block; if (emem == NULL) return -EINVAL; emem->map_locked++; @@ -463,15 +466,15 @@ start_voice(snd_emux_voice_t *vp) * Start envelope */ static void -trigger_voice(snd_emux_voice_t *vp) +trigger_voice(struct snd_emux_voice *vp) { unsigned int temp, ptarget; - emu10k1_t *hw; - emu10k1_memblk_t *emem; + struct snd_emu10k1 *hw; + struct snd_emu10k1_memblk *emem; hw = vp->hw; - emem = (emu10k1_memblk_t *)vp->block; + emem = (struct snd_emu10k1_memblk *)vp->block; if (! emem || emem->mapped_page < 0) return; /* not mapped */ @@ -495,7 +498,7 @@ trigger_voice(snd_emux_voice_t *vp) /* set lfo1 modulation height and cutoff */ static void -set_fmmod(emu10k1_t *hw, snd_emux_voice_t *vp) +set_fmmod(struct snd_emu10k1 *hw, struct snd_emux_voice *vp) { unsigned short fmmod; short pitch; @@ -513,7 +516,7 @@ set_fmmod(emu10k1_t *hw, snd_emux_voice_t *vp) /* set lfo2 pitch & frequency */ static void -set_fm2frq2(emu10k1_t *hw, snd_emux_voice_t *vp) +set_fm2frq2(struct snd_emu10k1 *hw, struct snd_emux_voice *vp) { unsigned short fm2frq2; short pitch; @@ -531,7 +534,7 @@ set_fm2frq2(emu10k1_t *hw, snd_emux_voice_t *vp) /* set filterQ */ static void -set_filterQ(emu10k1_t *hw, snd_emux_voice_t *vp) +set_filterQ(struct snd_emu10k1 *hw, struct snd_emux_voice *vp) { unsigned int val; val = snd_emu10k1_ptr_read(hw, CCCA, vp->ch) & ~CCCA_RESONANCE; diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 2d1ebe8c6b4..f9855073a0a 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -52,7 +52,7 @@ MODULE_LICENSE("GPL"); * EMU10K1 init / done *************************************************************************/ -void snd_emu10k1_voice_init(emu10k1_t * emu, int ch) +void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int ch) { snd_emu10k1_ptr_write(emu, DCYSUSV, ch, 0); snd_emu10k1_ptr_write(emu, IP, ch, 0); @@ -97,7 +97,7 @@ void snd_emu10k1_voice_init(emu10k1_t * emu, int ch) } } -static int __devinit snd_emu10k1_init(emu10k1_t * emu, int enable_ir) +static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir) { int ch, idx, err; unsigned int silent_page; @@ -336,14 +336,14 @@ static int __devinit snd_emu10k1_init(emu10k1_t * emu, int enable_ir) snd_emu10k1_intr_enable(emu, INTE_PCIERRORENABLE); - emu->reserved_page = (emu10k1_memblk_t *)snd_emu10k1_synth_alloc(emu, 4096); + emu->reserved_page = (struct snd_emu10k1_memblk *)snd_emu10k1_synth_alloc(emu, 4096); if (emu->reserved_page) emu->reserved_page->map_locked = 1; return 0; } -static int snd_emu10k1_done(emu10k1_t * emu) +static int snd_emu10k1_done(struct snd_emu10k1 * emu) { int ch; @@ -384,7 +384,7 @@ static int snd_emu10k1_done(emu10k1_t * emu) /* remove reserved page */ if (emu->reserved_page != NULL) { - snd_emu10k1_synth_free(emu, (snd_util_memblk_t *)emu->reserved_page); + snd_emu10k1_synth_free(emu, (struct snd_util_memblk *)emu->reserved_page); emu->reserved_page = NULL; } @@ -474,7 +474,7 @@ static int snd_emu10k1_done(emu10k1_t * emu) * register. */ -static void snd_emu10k1_ecard_write(emu10k1_t * emu, unsigned int value) +static void snd_emu10k1_ecard_write(struct snd_emu10k1 * emu, unsigned int value) { unsigned short count; unsigned int data; @@ -512,7 +512,7 @@ static void snd_emu10k1_ecard_write(emu10k1_t * emu, unsigned int value) * channel. */ -static void snd_emu10k1_ecard_setadcgain(emu10k1_t * emu, +static void snd_emu10k1_ecard_setadcgain(struct snd_emu10k1 * emu, unsigned short gain) { unsigned int bit; @@ -540,7 +540,7 @@ static void snd_emu10k1_ecard_setadcgain(emu10k1_t * emu, snd_emu10k1_ecard_write(emu, emu->ecard_ctrl); } -static int __devinit snd_emu10k1_ecard_init(emu10k1_t * emu) +static int __devinit snd_emu10k1_ecard_init(struct snd_emu10k1 * emu) { unsigned int hc_value; @@ -580,7 +580,7 @@ static int __devinit snd_emu10k1_ecard_init(emu10k1_t * emu) return 0; } -static int __devinit snd_emu10k1_cardbus_init(emu10k1_t * emu) +static int __devinit snd_emu10k1_cardbus_init(struct snd_emu10k1 * emu) { unsigned long special_port; unsigned int value; @@ -609,7 +609,7 @@ static int __devinit snd_emu10k1_cardbus_init(emu10k1_t * emu) * Create the EMU10K1 instance */ -static int snd_emu10k1_free(emu10k1_t *emu) +static int snd_emu10k1_free(struct snd_emu10k1 *emu) { if (emu->port) { /* avoid access to already used hardware */ snd_emu10k1_fx8010_tram_setup(emu, 0); @@ -634,13 +634,13 @@ static int snd_emu10k1_free(emu10k1_t *emu) return 0; } -static int snd_emu10k1_dev_free(snd_device_t *device) +static int snd_emu10k1_dev_free(struct snd_device *device) { - emu10k1_t *emu = device->device_data; + struct snd_emu10k1 *emu = device->device_data; return snd_emu10k1_free(emu); } -static emu_chip_details_t emu_chip_details[] = { +static struct snd_emu_chip_details emu_chip_details[] = { /* Audigy 2 Value AC3 out does not work yet. Need to find out how to turn off interpolators.*/ /* Tested by James@superbug.co.uk 3rd July 2005 */ {.vendor = 0x1102, .device = 0x0008, .subsystem = 0x10011102, @@ -890,21 +890,21 @@ static emu_chip_details_t emu_chip_details[] = { { } /* terminator */ }; -int __devinit snd_emu10k1_create(snd_card_t * card, +int __devinit snd_emu10k1_create(struct snd_card *card, struct pci_dev * pci, unsigned short extin_mask, unsigned short extout_mask, long max_cache_bytes, int enable_ir, uint subsystem, - emu10k1_t ** remu) + struct snd_emu10k1 ** remu) { - emu10k1_t *emu; + struct snd_emu10k1 *emu; int err; int is_audigy; unsigned char revision; - const emu_chip_details_t *c; - static snd_device_ops_t ops = { + const struct snd_emu_chip_details *c; + static struct snd_device_ops ops = { .dev_free = snd_emu10k1_dev_free, }; @@ -1041,7 +1041,8 @@ int __devinit snd_emu10k1_create(snd_card_t * card, snd_emu10k1_free(emu); return -ENOMEM; } - emu->memhdr->block_extra_size = sizeof(emu10k1_memblk_t) - sizeof(snd_util_memblk_t); + emu->memhdr->block_extra_size = sizeof(struct snd_emu10k1_memblk) - + sizeof(struct snd_util_memblk); pci_set_master(pci); diff --git a/sound/pci/emu10k1/emu10k1_patch.c b/sound/pci/emu10k1/emu10k1_patch.c index 4df668eb32b..42bae6f7e9a 100644 --- a/sound/pci/emu10k1/emu10k1_patch.c +++ b/sound/pci/emu10k1/emu10k1_patch.c @@ -35,14 +35,15 @@ * allocate a sample block and copy data from userspace */ int -snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp, - snd_util_memhdr_t *hdr, const void __user *data, long count) +snd_emu10k1_sample_new(struct snd_emux *rec, struct snd_sf_sample *sp, + struct snd_util_memhdr *hdr, + const void __user *data, long count) { int offset; int truesize, size, loopsize, blocksize; int loopend, sampleend; unsigned int start_addr; - emu10k1_t *emu; + struct snd_emu10k1 *emu; emu = rec->hw; snd_assert(sp != NULL, return -EINVAL); @@ -205,10 +206,10 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp, * free a sample block */ int -snd_emu10k1_sample_free(snd_emux_t *rec, snd_sf_sample_t *sp, - snd_util_memhdr_t *hdr) +snd_emu10k1_sample_free(struct snd_emux *rec, struct snd_sf_sample *sp, + struct snd_util_memhdr *hdr) { - emu10k1_t *emu; + struct snd_emu10k1 *emu; emu = rec->hw; snd_assert(sp != NULL, return -EINVAL); diff --git a/sound/pci/emu10k1/emu10k1_synth.c b/sound/pci/emu10k1/emu10k1_synth.c index 8bd58d1dcc2..1fa393f22a9 100644 --- a/sound/pci/emu10k1/emu10k1_synth.c +++ b/sound/pci/emu10k1/emu10k1_synth.c @@ -28,11 +28,11 @@ MODULE_LICENSE("GPL"); /* * create a new hardware dependent device for Emu10k1 */ -static int snd_emu10k1_synth_new_device(snd_seq_device_t *dev) +static int snd_emu10k1_synth_new_device(struct snd_seq_device *dev) { - snd_emux_t *emu; - emu10k1_t *hw; - snd_emu10k1_synth_arg_t *arg; + struct snd_emux *emu; + struct snd_emu10k1 *hw; + struct snd_emu10k1_synth_arg *arg; unsigned long flags; arg = SNDRV_SEQ_DEVICE_ARGPTR(dev); @@ -76,10 +76,10 @@ static int snd_emu10k1_synth_new_device(snd_seq_device_t *dev) return 0; } -static int snd_emu10k1_synth_delete_device(snd_seq_device_t *dev) +static int snd_emu10k1_synth_delete_device(struct snd_seq_device *dev) { - snd_emux_t *emu; - emu10k1_t *hw; + struct snd_emux *emu; + struct snd_emu10k1 *hw; unsigned long flags; if (dev->driver_data == NULL) @@ -104,11 +104,12 @@ static int snd_emu10k1_synth_delete_device(snd_seq_device_t *dev) static int __init alsa_emu10k1_synth_init(void) { - static snd_seq_dev_ops_t ops = { + static struct snd_seq_dev_ops ops = { snd_emu10k1_synth_new_device, snd_emu10k1_synth_delete_device, }; - return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, &ops, sizeof(snd_emu10k1_synth_arg_t)); + return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, &ops, + sizeof(struct snd_emu10k1_synth_arg)); } static void __exit alsa_emu10k1_synth_exit(void) diff --git a/sound/pci/emu10k1/emu10k1_synth_local.h b/sound/pci/emu10k1/emu10k1_synth_local.h index 7f50b01ddb7..308ddc84bb4 100644 --- a/sound/pci/emu10k1/emu10k1_synth_local.h +++ b/sound/pci/emu10k1/emu10k1_synth_local.h @@ -26,13 +26,18 @@ #include /* emu10k1_patch.c */ -int snd_emu10k1_sample_new(snd_emux_t *private_data, snd_sf_sample_t *sp, snd_util_memhdr_t *hdr, const void __user *_data, long count); -int snd_emu10k1_sample_free(snd_emux_t *private_data, snd_sf_sample_t *sp, snd_util_memhdr_t *hdr); -int snd_emu10k1_memhdr_init(snd_emux_t *emu); +int snd_emu10k1_sample_new(struct snd_emux *private_data, + struct snd_sf_sample *sp, + struct snd_util_memhdr *hdr, + const void __user *_data, long count); +int snd_emu10k1_sample_free(struct snd_emux *private_data, + struct snd_sf_sample *sp, + struct snd_util_memhdr *hdr); +int snd_emu10k1_memhdr_init(struct snd_emux *emu); /* emu10k1_callback.c */ -void snd_emu10k1_ops_setup(snd_emux_t *emu); -int snd_emu10k1_synth_get_voice(emu10k1_t *hw); +void snd_emu10k1_ops_setup(struct snd_emux *emu); +int snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw); #endif /* __EMU10K1_SYNTH_LOCAL_H */ diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c index 03e8c167895..f4452c5cb4c 100644 --- a/sound/pci/emu10k1/emufx.c +++ b/sound/pci/emu10k1/emufx.c @@ -309,9 +309,10 @@ static inline void snd_leave_user(mm_segment_t fs) * controls */ -static int snd_emu10k1_gpr_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_gpr_ctl_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - snd_emu10k1_fx8010_ctl_t *ctl = (snd_emu10k1_fx8010_ctl_t *)kcontrol->private_value; + struct snd_emu10k1_fx8010_ctl *ctl = + (struct snd_emu10k1_fx8010_ctl *) kcontrol->private_value; if (ctl->min == 0 && ctl->max == 1) uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; @@ -323,10 +324,11 @@ static int snd_emu10k1_gpr_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int snd_emu10k1_gpr_ctl_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_gpr_ctl_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - snd_emu10k1_fx8010_ctl_t *ctl = (snd_emu10k1_fx8010_ctl_t *)kcontrol->private_value; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_fx8010_ctl *ctl = + (struct snd_emu10k1_fx8010_ctl *) kcontrol->private_value; unsigned long flags; unsigned int i; @@ -337,10 +339,11 @@ static int snd_emu10k1_gpr_ctl_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value return 0; } -static int snd_emu10k1_gpr_ctl_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_gpr_ctl_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - snd_emu10k1_fx8010_ctl_t *ctl = (snd_emu10k1_fx8010_ctl_t *)kcontrol->private_value; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_fx8010_ctl *ctl = + (struct snd_emu10k1_fx8010_ctl *) kcontrol->private_value; unsigned long flags; unsigned int nval, val; unsigned int i, j; @@ -393,9 +396,9 @@ static int snd_emu10k1_gpr_ctl_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value * Interrupt handler */ -static void snd_emu10k1_fx8010_interrupt(emu10k1_t *emu) +static void snd_emu10k1_fx8010_interrupt(struct snd_emu10k1 *emu) { - snd_emu10k1_fx8010_irq_t *irq, *nirq; + struct snd_emu10k1_fx8010_irq *irq, *nirq; irq = emu->fx8010.irq_handlers; while (irq) { @@ -409,13 +412,13 @@ static void snd_emu10k1_fx8010_interrupt(emu10k1_t *emu) } } -int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu, - snd_fx8010_irq_handler_t *handler, - unsigned char gpr_running, - void *private_data, - snd_emu10k1_fx8010_irq_t **r_irq) +int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu, + snd_fx8010_irq_handler_t *handler, + unsigned char gpr_running, + void *private_data, + struct snd_emu10k1_fx8010_irq **r_irq) { - snd_emu10k1_fx8010_irq_t *irq; + struct snd_emu10k1_fx8010_irq *irq; unsigned long flags; irq = kmalloc(sizeof(*irq), GFP_ATOMIC); @@ -440,10 +443,10 @@ int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu, return 0; } -int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, - snd_emu10k1_fx8010_irq_t *irq) +int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_irq *irq) { - snd_emu10k1_fx8010_irq_t *tmp; + struct snd_emu10k1_fx8010_irq *tmp; unsigned long flags; spin_lock_irqsave(&emu->fx8010.irq_lock, flags); @@ -468,7 +471,8 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, * EMU10K1 effect manager *************************************************************************/ -static void snd_emu10k1_write_op(emu10k1_fx8010_code_t *icode, unsigned int *ptr, +static void snd_emu10k1_write_op(struct snd_emu10k1_fx8010_code *icode, + unsigned int *ptr, u32 op, u32 r, u32 a, u32 x, u32 y) { u_int32_t *code; @@ -483,7 +487,8 @@ static void snd_emu10k1_write_op(emu10k1_fx8010_code_t *icode, unsigned int *ptr #define OP(icode, ptr, op, r, a, x, y) \ snd_emu10k1_write_op(icode, ptr, op, r, a, x, y) -static void snd_emu10k1_audigy_write_op(emu10k1_fx8010_code_t *icode, unsigned int *ptr, +static void snd_emu10k1_audigy_write_op(struct snd_emu10k1_fx8010_code *icode, + unsigned int *ptr, u32 op, u32 r, u32 a, u32 x, u32 y) { u_int32_t *code; @@ -498,19 +503,20 @@ static void snd_emu10k1_audigy_write_op(emu10k1_fx8010_code_t *icode, unsigned i #define A_OP(icode, ptr, op, r, a, x, y) \ snd_emu10k1_audigy_write_op(icode, ptr, op, r, a, x, y) -static void snd_emu10k1_efx_write(emu10k1_t *emu, unsigned int pc, unsigned int data) +static void snd_emu10k1_efx_write(struct snd_emu10k1 *emu, unsigned int pc, unsigned int data) { pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE; snd_emu10k1_ptr_write(emu, pc, 0, data); } -unsigned int snd_emu10k1_efx_read(emu10k1_t *emu, unsigned int pc) +unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc) { pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE; return snd_emu10k1_ptr_read(emu, pc, 0); } -static int snd_emu10k1_gpr_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_gpr_poke(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { int gpr; u32 val; @@ -525,7 +531,8 @@ static int snd_emu10k1_gpr_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return 0; } -static int snd_emu10k1_gpr_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_gpr_peek(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { int gpr; u32 val; @@ -539,7 +546,8 @@ static int snd_emu10k1_gpr_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return 0; } -static int snd_emu10k1_tram_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_tram_poke(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { int tram; u32 addr, val; @@ -561,7 +569,8 @@ static int snd_emu10k1_tram_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return 0; } -static int snd_emu10k1_tram_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_tram_peek(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { int tram; u32 val, addr; @@ -583,7 +592,8 @@ static int snd_emu10k1_tram_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return 0; } -static int snd_emu10k1_code_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_code_poke(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { u32 pc, lo, hi; @@ -599,7 +609,8 @@ static int snd_emu10k1_code_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return 0; } -static int snd_emu10k1_code_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_code_peek(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { u32 pc; @@ -614,10 +625,11 @@ static int snd_emu10k1_code_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return 0; } -static snd_emu10k1_fx8010_ctl_t *snd_emu10k1_look_for_ctl(emu10k1_t *emu, snd_ctl_elem_id_t *id) +static struct snd_emu10k1_fx8010_ctl * +snd_emu10k1_look_for_ctl(struct snd_emu10k1 *emu, struct snd_ctl_elem_id *id) { - snd_emu10k1_fx8010_ctl_t *ctl; - snd_kcontrol_t *kcontrol; + struct snd_emu10k1_fx8010_ctl *ctl; + struct snd_kcontrol *kcontrol; struct list_head *list; list_for_each(list, &emu->fx8010.gpr_ctl) { @@ -631,13 +643,14 @@ static snd_emu10k1_fx8010_ctl_t *snd_emu10k1_look_for_ctl(emu10k1_t *emu, snd_ct return NULL; } -static int snd_emu10k1_verify_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_verify_controls(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { unsigned int i; - snd_ctl_elem_id_t __user *_id; - snd_ctl_elem_id_t id; - emu10k1_fx8010_control_gpr_t __user *_gctl; - emu10k1_fx8010_control_gpr_t *gctl; + struct snd_ctl_elem_id __user *_id; + struct snd_ctl_elem_id id; + struct snd_emu10k1_fx8010_control_gpr __user *_gctl; + struct snd_emu10k1_fx8010_control_gpr *gctl; int err; for (i = 0, _id = icode->gpr_del_controls; @@ -685,28 +698,29 @@ static int snd_emu10k1_verify_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *ic return err; } -static void snd_emu10k1_ctl_private_free(snd_kcontrol_t *kctl) +static void snd_emu10k1_ctl_private_free(struct snd_kcontrol *kctl) { - snd_emu10k1_fx8010_ctl_t *ctl; + struct snd_emu10k1_fx8010_ctl *ctl; - ctl = (snd_emu10k1_fx8010_ctl_t *)kctl->private_value; + ctl = (struct snd_emu10k1_fx8010_ctl *) kctl->private_value; kctl->private_value = 0; list_del(&ctl->list); kfree(ctl); } -static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_add_controls(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { unsigned int i, j; - emu10k1_fx8010_control_gpr_t __user *_gctl; - emu10k1_fx8010_control_gpr_t *gctl; - snd_emu10k1_fx8010_ctl_t *ctl, *nctl; - snd_kcontrol_new_t knew; - snd_kcontrol_t *kctl; - snd_ctl_elem_value_t *val; + struct snd_emu10k1_fx8010_control_gpr __user *_gctl; + struct snd_emu10k1_fx8010_control_gpr *gctl; + struct snd_emu10k1_fx8010_ctl *ctl, *nctl; + struct snd_kcontrol_new knew; + struct snd_kcontrol *kctl; + struct snd_ctl_elem_value *val; int err = 0; - val = (snd_ctl_elem_value_t *)kmalloc(sizeof(*val), GFP_KERNEL); + val = kmalloc(sizeof(*val), GFP_KERNEL); gctl = kmalloc(sizeof(*gctl), GFP_KERNEL); nctl = kmalloc(sizeof(*nctl), GFP_KERNEL); if (!val || !gctl || !nctl) { @@ -751,7 +765,7 @@ static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode nctl->max = gctl->max; nctl->translation = gctl->translation; if (ctl == NULL) { - ctl = (snd_emu10k1_fx8010_ctl_t *)kmalloc(sizeof(*ctl), GFP_KERNEL); + ctl = kmalloc(sizeof(*ctl), GFP_KERNEL); if (ctl == NULL) { err = -ENOMEM; goto __error; @@ -782,13 +796,14 @@ static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode return err; } -static int snd_emu10k1_del_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_del_controls(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { unsigned int i; - snd_ctl_elem_id_t id; - snd_ctl_elem_id_t __user *_id; - snd_emu10k1_fx8010_ctl_t *ctl; - snd_card_t *card = emu->card; + struct snd_ctl_elem_id id; + struct snd_ctl_elem_id __user *_id; + struct snd_emu10k1_fx8010_ctl *ctl; + struct snd_card *card = emu->card; for (i = 0, _id = icode->gpr_del_controls; i < icode->gpr_del_control_count; i++, _id++) { @@ -803,14 +818,15 @@ static int snd_emu10k1_del_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode return 0; } -static int snd_emu10k1_list_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_list_controls(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { unsigned int i = 0, j; unsigned int total = 0; - emu10k1_fx8010_control_gpr_t *gctl; - emu10k1_fx8010_control_gpr_t __user *_gctl; - snd_emu10k1_fx8010_ctl_t *ctl; - snd_ctl_elem_id_t *id; + struct snd_emu10k1_fx8010_control_gpr *gctl; + struct snd_emu10k1_fx8010_control_gpr __user *_gctl; + struct snd_emu10k1_fx8010_ctl *ctl; + struct snd_ctl_elem_id *id; struct list_head *list; gctl = kmalloc(sizeof(*gctl), GFP_KERNEL); @@ -851,7 +867,8 @@ static int snd_emu10k1_list_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icod return 0; } -static int snd_emu10k1_icode_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_icode_poke(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { int err = 0; @@ -882,7 +899,8 @@ static int snd_emu10k1_icode_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return err; } -static int snd_emu10k1_icode_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) +static int snd_emu10k1_icode_peek(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_code *icode) { int err; @@ -900,11 +918,12 @@ static int snd_emu10k1_icode_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) return err; } -static int snd_emu10k1_ipcm_poke(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) +static int snd_emu10k1_ipcm_poke(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_pcm_rec *ipcm) { unsigned int i; int err = 0; - snd_emu10k1_fx8010_pcm_t *pcm; + struct snd_emu10k1_fx8010_pcm *pcm; if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT) return -EINVAL; @@ -945,11 +964,12 @@ static int snd_emu10k1_ipcm_poke(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) return err; } -static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) +static int snd_emu10k1_ipcm_peek(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_pcm_rec *ipcm) { unsigned int i; int err = 0; - snd_emu10k1_fx8010_pcm_t *pcm; + struct snd_emu10k1_fx8010_pcm *pcm; if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT) return -EINVAL; @@ -979,7 +999,9 @@ static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) #define SND_EMU10K1_PLAYBACK_CHANNELS 8 #define SND_EMU10K1_CAPTURE_CHANNELS 4 -static void __devinit snd_emu10k1_init_mono_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) +static void __devinit +snd_emu10k1_init_mono_control(struct snd_emu10k1_fx8010_control_gpr *ctl, + const char *name, int gpr, int defval) { ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; strcpy(ctl->id.name, name); @@ -990,7 +1012,9 @@ static void __devinit snd_emu10k1_init_mono_control(emu10k1_fx8010_control_gpr_t ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100; } -static void __devinit snd_emu10k1_init_stereo_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) +static void __devinit +snd_emu10k1_init_stereo_control(struct snd_emu10k1_fx8010_control_gpr *ctl, + const char *name, int gpr, int defval) { ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; strcpy(ctl->id.name, name); @@ -1002,7 +1026,9 @@ static void __devinit snd_emu10k1_init_stereo_control(emu10k1_fx8010_control_gpr ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100; } -static void __devinit snd_emu10k1_init_mono_onoff_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) +static void __devinit +snd_emu10k1_init_mono_onoff_control(struct snd_emu10k1_fx8010_control_gpr *ctl, + const char *name, int gpr, int defval) { ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; strcpy(ctl->id.name, name); @@ -1013,7 +1039,9 @@ static void __devinit snd_emu10k1_init_mono_onoff_control(emu10k1_fx8010_control ctl->translation = EMU10K1_GPR_TRANSLATION_ONOFF; } -static void __devinit snd_emu10k1_init_stereo_onoff_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) +static void __devinit +snd_emu10k1_init_stereo_onoff_control(struct snd_emu10k1_fx8010_control_gpr *ctl, + const char *name, int gpr, int defval) { ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; strcpy(ctl->id.name, name); @@ -1030,7 +1058,7 @@ static void __devinit snd_emu10k1_init_stereo_onoff_control(emu10k1_fx8010_contr * initial DSP configuration for Audigy */ -static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu) +static int __devinit _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu) { int err, i, z, gpr, nctl; const int playback = 10; @@ -1038,8 +1066,8 @@ static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu) const int stereo_mix = capture + 2; const int tmp = 0x88; u32 ptr; - emu10k1_fx8010_code_t *icode = NULL; - emu10k1_fx8010_control_gpr_t *controls = NULL, *ctl; + struct snd_emu10k1_fx8010_code *icode = NULL; + struct snd_emu10k1_fx8010_control_gpr *controls = NULL, *ctl; u32 *gpr_map; mm_segment_t seg; @@ -1047,8 +1075,11 @@ static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu) INIT_LIST_HEAD(&emu->fx8010.gpr_ctl); if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL || - (icode->gpr_map = (u_int32_t __user *)kcalloc(512 + 256 + 256 + 2 * 1024, sizeof(u_int32_t), GFP_KERNEL)) == NULL || - (controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, sizeof(*controls), GFP_KERNEL)) == NULL) { + (icode->gpr_map = (u_int32_t __user *) + kcalloc(512 + 256 + 256 + 2 * 1024, sizeof(u_int32_t), + GFP_KERNEL)) == NULL || + (controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, + sizeof(*controls), GFP_KERNEL)) == NULL) { err = -ENOMEM; goto __err; } @@ -1434,7 +1465,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input)) seg = snd_enter_user(); icode->gpr_add_control_count = nctl; - icode->gpr_add_controls = (emu10k1_fx8010_control_gpr_t __user *)controls; + icode->gpr_add_controls = (struct snd_emu10k1_fx8010_control_gpr __user *)controls; err = snd_emu10k1_icode_poke(emu, icode); snd_leave_user(seg); @@ -1454,14 +1485,14 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input)) /* when volume = max, then copy only to avoid volume modification */ /* with iMAC0 (negative values) */ -static void __devinit _volume(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 dst, u32 src, u32 vol) +static void __devinit _volume(struct snd_emu10k1_fx8010_code *icode, u32 *ptr, u32 dst, u32 src, u32 vol) { OP(icode, ptr, iMAC0, dst, C_00000000, src, vol); OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff); OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000001); OP(icode, ptr, iACC3, dst, src, C_00000000, C_00000000); } -static void __devinit _volume_add(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 dst, u32 src, u32 vol) +static void __devinit _volume_add(struct snd_emu10k1_fx8010_code *icode, u32 *ptr, u32 dst, u32 src, u32 vol) { OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff); OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000002); @@ -1469,7 +1500,7 @@ static void __devinit _volume_add(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 ds OP(icode, ptr, iSKIP, C_00000000, C_7fffffff, C_7fffffff, C_00000001); OP(icode, ptr, iMAC0, dst, dst, src, vol); } -static void __devinit _volume_out(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 dst, u32 src, u32 vol) +static void __devinit _volume_out(struct snd_emu10k1_fx8010_code *icode, u32 *ptr, u32 dst, u32 src, u32 vol) { OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff); OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000002); @@ -1500,13 +1531,13 @@ static void __devinit _volume_out(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 ds _SWITCH_NEG(icode, ptr, GPR(dst), GPR(src)) -static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) +static int __devinit _snd_emu10k1_init_efx(struct snd_emu10k1 *emu) { int err, i, z, gpr, tmp, playback, capture; u32 ptr; - emu10k1_fx8010_code_t *icode; - emu10k1_fx8010_pcm_t *ipcm = NULL; - emu10k1_fx8010_control_gpr_t *controls = NULL, *ctl; + struct snd_emu10k1_fx8010_code *icode; + struct snd_emu10k1_fx8010_pcm_rec *ipcm = NULL; + struct snd_emu10k1_fx8010_control_gpr *controls = NULL, *ctl; u32 *gpr_map; mm_segment_t seg; @@ -1515,8 +1546,12 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL) return -ENOMEM; - if ((icode->gpr_map = (u_int32_t __user *)kcalloc(256 + 160 + 160 + 2 * 512, sizeof(u_int32_t), GFP_KERNEL)) == NULL || - (controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, sizeof(emu10k1_fx8010_control_gpr_t), GFP_KERNEL)) == NULL || + if ((icode->gpr_map = (u_int32_t __user *) + kcalloc(256 + 160 + 160 + 2 * 512, sizeof(u_int32_t), + GFP_KERNEL)) == NULL || + (controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, + sizeof(struct snd_emu10k1_fx8010_control_gpr), + GFP_KERNEL)) == NULL || (ipcm = kzalloc(sizeof(*ipcm), GFP_KERNEL)) == NULL) { err = -ENOMEM; goto __err; @@ -2050,7 +2085,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) goto __err; seg = snd_enter_user(); icode->gpr_add_control_count = i; - icode->gpr_add_controls = (emu10k1_fx8010_control_gpr_t __user *)controls; + icode->gpr_add_controls = (struct snd_emu10k1_fx8010_control_gpr __user *)controls; err = snd_emu10k1_icode_poke(emu, icode); snd_leave_user(seg); if (err >= 0) @@ -2065,7 +2100,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) return err; } -int __devinit snd_emu10k1_init_efx(emu10k1_t *emu) +int __devinit snd_emu10k1_init_efx(struct snd_emu10k1 *emu) { if (emu->audigy) return _snd_emu10k1_audigy_init_efx(emu); @@ -2073,7 +2108,7 @@ int __devinit snd_emu10k1_init_efx(emu10k1_t *emu) return _snd_emu10k1_init_efx(emu); } -void snd_emu10k1_free_efx(emu10k1_t *emu) +void snd_emu10k1_free_efx(struct snd_emu10k1 *emu) { /* stop processor */ if (emu->audigy) @@ -2083,7 +2118,7 @@ void snd_emu10k1_free_efx(emu10k1_t *emu) } #if 0 // FIXME: who use them? -int snd_emu10k1_fx8010_tone_control_activate(emu10k1_t *emu, int output) +int snd_emu10k1_fx8010_tone_control_activate(struct snd_emu10k1 *emu, int output) { if (output < 0 || output >= 6) return -EINVAL; @@ -2091,7 +2126,7 @@ int snd_emu10k1_fx8010_tone_control_activate(emu10k1_t *emu, int output) return 0; } -int snd_emu10k1_fx8010_tone_control_deactivate(emu10k1_t *emu, int output) +int snd_emu10k1_fx8010_tone_control_deactivate(struct snd_emu10k1 *emu, int output) { if (output < 0 || output >= 6) return -EINVAL; @@ -2100,7 +2135,7 @@ int snd_emu10k1_fx8010_tone_control_deactivate(emu10k1_t *emu, int output) } #endif -int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size) +int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size) { u8 size_reg = 0; @@ -2142,7 +2177,7 @@ int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size) return 0; } -static int snd_emu10k1_fx8010_open(snd_hwdep_t * hw, struct file *file) +static int snd_emu10k1_fx8010_open(struct snd_hwdep * hw, struct file *file) { return 0; } @@ -2155,7 +2190,8 @@ static void copy_string(char *dst, char *src, char *null, int idx) strcpy(dst, src); } -static int snd_emu10k1_fx8010_info(emu10k1_t *emu, emu10k1_fx8010_info_t *info) +static int snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu, + struct snd_emu10k1_fx8010_info *info) { char **fxbus, **extin, **extout; unsigned short fxbus_mask, extin_mask, extout_mask; @@ -2181,19 +2217,19 @@ static int snd_emu10k1_fx8010_info(emu10k1_t *emu, emu10k1_fx8010_info_t *info) return 0; } -static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigned int cmd, unsigned long arg) +static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, unsigned int cmd, unsigned long arg) { - emu10k1_t *emu = hw->private_data; - emu10k1_fx8010_info_t *info; - emu10k1_fx8010_code_t *icode; - emu10k1_fx8010_pcm_t *ipcm; + struct snd_emu10k1 *emu = hw->private_data; + struct snd_emu10k1_fx8010_info *info; + struct snd_emu10k1_fx8010_code *icode; + struct snd_emu10k1_fx8010_pcm_rec *ipcm; unsigned int addr; void __user *argp = (void __user *)arg; int res; switch (cmd) { case SNDRV_EMU10K1_IOCTL_INFO: - info = (emu10k1_fx8010_info_t *)kmalloc(sizeof(*info), GFP_KERNEL); + info = kmalloc(sizeof(*info), GFP_KERNEL); if (!info) return -ENOMEM; if ((res = snd_emu10k1_fx8010_info(emu, info)) < 0) { @@ -2209,7 +2245,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne case SNDRV_EMU10K1_IOCTL_CODE_POKE: if (!capable(CAP_SYS_ADMIN)) return -EPERM; - icode = (emu10k1_fx8010_code_t *)kmalloc(sizeof(*icode), GFP_KERNEL); + icode = kmalloc(sizeof(*icode), GFP_KERNEL); if (icode == NULL) return -ENOMEM; if (copy_from_user(icode, argp, sizeof(*icode))) { @@ -2220,7 +2256,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne kfree(icode); return res; case SNDRV_EMU10K1_IOCTL_CODE_PEEK: - icode = (emu10k1_fx8010_code_t *)kmalloc(sizeof(*icode), GFP_KERNEL); + icode = kmalloc(sizeof(*icode), GFP_KERNEL); if (icode == NULL) return -ENOMEM; if (copy_from_user(icode, argp, sizeof(*icode))) { @@ -2235,7 +2271,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne kfree(icode); return res; case SNDRV_EMU10K1_IOCTL_PCM_POKE: - ipcm = (emu10k1_fx8010_pcm_t *)kmalloc(sizeof(*ipcm), GFP_KERNEL); + ipcm = kmalloc(sizeof(*ipcm), GFP_KERNEL); if (ipcm == NULL) return -ENOMEM; if (copy_from_user(ipcm, argp, sizeof(*ipcm))) { @@ -2327,14 +2363,14 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne return -ENOTTY; } -static int snd_emu10k1_fx8010_release(snd_hwdep_t * hw, struct file *file) +static int snd_emu10k1_fx8010_release(struct snd_hwdep * hw, struct file *file) { return 0; } -int __devinit snd_emu10k1_fx8010_new(emu10k1_t *emu, int device, snd_hwdep_t ** rhwdep) +int __devinit snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep) { - snd_hwdep_t *hw; + struct snd_hwdep *hw; int err; if (rhwdep) diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c index 7cc831ccd0c..98fb8139427 100644 --- a/sound/pci/emu10k1/emumixer.c +++ b/sound/pci/emu10k1/emumixer.c @@ -35,17 +35,17 @@ #define AC97_ID_STAC9758 0x83847658 -static int snd_emu10k1_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_emu10k1_spdif_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned long flags; @@ -58,8 +58,8 @@ static int snd_emu10k1_spdif_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_spdif_get_mask(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_spdif_get_mask(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -69,7 +69,7 @@ static int snd_emu10k1_spdif_get_mask(snd_kcontrol_t * kcontrol, } #if 0 -static int snd_audigy_spdif_output_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_audigy_spdif_output_rate_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"44100", "48000", "96000"}; @@ -82,10 +82,10 @@ static int snd_audigy_spdif_output_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_audigy_spdif_output_rate_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_audigy_spdif_output_rate_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); unsigned int tmp; unsigned long flags; @@ -109,10 +109,10 @@ static int snd_audigy_spdif_output_rate_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_audigy_spdif_output_rate_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_audigy_spdif_output_rate_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); int change; unsigned int reg, val, tmp; unsigned long flags; @@ -143,7 +143,7 @@ static int snd_audigy_spdif_output_rate_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_audigy_spdif_output_rate = +static struct snd_kcontrol_new snd_audigy_spdif_output_rate = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, .iface = SNDRV_CTL_ELEM_IFACE_MIXER, @@ -155,10 +155,10 @@ static snd_kcontrol_new_t snd_audigy_spdif_output_rate = }; #endif -static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int change; unsigned int val; @@ -178,7 +178,7 @@ static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control = +static struct snd_kcontrol_new snd_emu10k1_spdif_mask_control = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -188,7 +188,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control = .get = snd_emu10k1_spdif_get_mask }; -static snd_kcontrol_new_t snd_emu10k1_spdif_control = +static struct snd_kcontrol_new snd_emu10k1_spdif_control = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -199,7 +199,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_control = }; -static void update_emu10k1_fxrt(emu10k1_t *emu, int voice, unsigned char *route) +static void update_emu10k1_fxrt(struct snd_emu10k1 *emu, int voice, unsigned char *route) { if (emu->audigy) { snd_emu10k1_ptr_write(emu, A_FXRT1, voice, @@ -212,7 +212,7 @@ static void update_emu10k1_fxrt(emu10k1_t *emu, int voice, unsigned char *route) } } -static void update_emu10k1_send_volume(emu10k1_t *emu, int voice, unsigned char *volume) +static void update_emu10k1_send_volume(struct snd_emu10k1 *emu, int voice, unsigned char *volume) { snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_A, voice, volume[0]); snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_B, voice, volume[1]); @@ -229,9 +229,9 @@ static void update_emu10k1_send_volume(emu10k1_t *emu, int voice, unsigned char /* PCM stream controls */ -static int snd_emu10k1_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_send_routing_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = emu->audigy ? 3*8 : 3*4; uinfo->value.integer.min = 0; @@ -239,12 +239,13 @@ static int snd_emu10k1_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_emu10k1_send_routing_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_send_routing_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; int voice, idx; int num_efx = emu->audigy ? 8 : 4; int mask = emu->audigy ? 0x3f : 0x0f; @@ -258,12 +259,13 @@ static int snd_emu10k1_send_routing_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_send_routing_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; int change = 0, voice, idx, val; int num_efx = emu->audigy ? 8 : 4; int mask = emu->audigy ? 0x3f : 0x0f; @@ -292,7 +294,7 @@ static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1_send_routing_control = +static struct snd_kcontrol_new snd_emu10k1_send_routing_control = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -303,9 +305,9 @@ static snd_kcontrol_new_t snd_emu10k1_send_routing_control = .put = snd_emu10k1_send_routing_put }; -static int snd_emu10k1_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_send_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = emu->audigy ? 3*8 : 3*4; uinfo->value.integer.min = 0; @@ -313,12 +315,13 @@ static int snd_emu10k1_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_emu10k1_send_volume_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_send_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; int idx; int num_efx = emu->audigy ? 8 : 4; @@ -329,12 +332,13 @@ static int snd_emu10k1_send_volume_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_send_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; int change = 0, idx, val; int num_efx = emu->audigy ? 8 : 4; @@ -361,7 +365,7 @@ static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1_send_volume_control = +static struct snd_kcontrol_new snd_emu10k1_send_volume_control = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -372,7 +376,7 @@ static snd_kcontrol_new_t snd_emu10k1_send_volume_control = .put = snd_emu10k1_send_volume_put }; -static int snd_emu10k1_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_attn_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 3; @@ -381,11 +385,12 @@ static int snd_emu10k1_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_emu10k1_attn_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_attn_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; unsigned long flags; int idx; @@ -396,12 +401,13 @@ static int snd_emu10k1_attn_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_attn_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; int change = 0, idx, val; spin_lock_irqsave(&emu->reg_lock, flags); @@ -424,7 +430,7 @@ static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1_attn_control = +static struct snd_kcontrol_new snd_emu10k1_attn_control = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -437,9 +443,9 @@ static snd_kcontrol_new_t snd_emu10k1_attn_control = /* Mutichannel PCM stream controls */ -static int snd_emu10k1_efx_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_efx_send_routing_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = emu->audigy ? 8 : 4; uinfo->value.integer.min = 0; @@ -447,12 +453,13 @@ static int snd_emu10k1_efx_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_emu10k1_efx_send_routing_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_efx_send_routing_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; int idx; int num_efx = emu->audigy ? 8 : 4; int mask = emu->audigy ? 0x3f : 0x0f; @@ -465,13 +472,13 @@ static int snd_emu10k1_efx_send_routing_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_efx_send_routing_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_efx_send_routing_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); - emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; + struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch]; int change = 0, idx, val; int num_efx = emu->audigy ? 8 : 4; int mask = emu->audigy ? 0x3f : 0x0f; @@ -495,7 +502,7 @@ static int snd_emu10k1_efx_send_routing_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1_efx_send_routing_control = +static struct snd_kcontrol_new snd_emu10k1_efx_send_routing_control = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -506,9 +513,9 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_routing_control = .put = snd_emu10k1_efx_send_routing_put }; -static int snd_emu10k1_efx_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_efx_send_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = emu->audigy ? 8 : 4; uinfo->value.integer.min = 0; @@ -516,12 +523,13 @@ static int snd_emu10k1_efx_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_emu10k1_efx_send_volume_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_efx_send_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; int idx; int num_efx = emu->audigy ? 8 : 4; @@ -532,13 +540,13 @@ static int snd_emu10k1_efx_send_volume_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_efx_send_volume_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_efx_send_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); - emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; + struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch]; int change = 0, idx, val; int num_efx = emu->audigy ? 8 : 4; @@ -561,7 +569,7 @@ static int snd_emu10k1_efx_send_volume_put(snd_kcontrol_t * kcontrol, } -static snd_kcontrol_new_t snd_emu10k1_efx_send_volume_control = +static struct snd_kcontrol_new snd_emu10k1_efx_send_volume_control = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -572,7 +580,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_volume_control = .put = snd_emu10k1_efx_send_volume_put }; -static int snd_emu10k1_efx_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_efx_attn_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -581,11 +589,12 @@ static int snd_emu10k1_efx_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_emu10k1_efx_attn_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_efx_attn_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); - emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1_pcm_mixer *mix = + &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; unsigned long flags; spin_lock_irqsave(&emu->reg_lock, flags); @@ -594,13 +603,13 @@ static int snd_emu10k1_efx_attn_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_efx_attn_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_efx_attn_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); - emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; + struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch]; int change = 0, val; spin_lock_irqsave(&emu->reg_lock, flags); @@ -618,7 +627,7 @@ static int snd_emu10k1_efx_attn_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1_efx_attn_control = +static struct snd_kcontrol_new snd_emu10k1_efx_attn_control = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -629,7 +638,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_attn_control = .put = snd_emu10k1_efx_attn_put }; -static int snd_emu10k1_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_shared_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -638,10 +647,10 @@ static int snd_emu10k1_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_emu10k1_shared_spdif_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_shared_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); if (emu->audigy) ucontrol->value.integer.value[0] = inl(emu->port + A_IOCFG) & A_IOCFG_GPOUT0 ? 1 : 0; @@ -650,11 +659,11 @@ static int snd_emu10k1_shared_spdif_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1_shared_spdif_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_shared_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { unsigned long flags; - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); unsigned int reg, val; int change = 0; @@ -681,7 +690,7 @@ static int snd_emu10k1_shared_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1_shared_spdif __devinitdata = +static struct snd_kcontrol_new snd_emu10k1_shared_spdif __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "SB Live Analog/Digital Output Jack", @@ -690,7 +699,7 @@ static snd_kcontrol_new_t snd_emu10k1_shared_spdif __devinitdata = .put = snd_emu10k1_shared_spdif_put }; -static snd_kcontrol_new_t snd_audigy_shared_spdif __devinitdata = +static struct snd_kcontrol_new snd_audigy_shared_spdif __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Audigy Analog/Digital Output Jack", @@ -701,35 +710,35 @@ static snd_kcontrol_new_t snd_audigy_shared_spdif __devinitdata = /* */ -static void snd_emu10k1_mixer_free_ac97(ac97_t *ac97) +static void snd_emu10k1_mixer_free_ac97(struct snd_ac97 *ac97) { - emu10k1_t *emu = ac97->private_data; + struct snd_emu10k1 *emu = ac97->private_data; emu->ac97 = NULL; } /* */ -static int remove_ctl(snd_card_t *card, const char *name) +static int remove_ctl(struct snd_card *card, const char *name) { - snd_ctl_elem_id_t id; + struct snd_ctl_elem_id id; memset(&id, 0, sizeof(id)); strcpy(id.name, name); id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; return snd_ctl_remove_id(card, &id); } -static snd_kcontrol_t *ctl_find(snd_card_t *card, const char *name) +static struct snd_kcontrol *ctl_find(struct snd_card *card, const char *name) { - snd_ctl_elem_id_t sid; + struct snd_ctl_elem_id sid; memset(&sid, 0, sizeof(sid)); strcpy(sid.name, name); sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER; return snd_ctl_find_id(card, &sid); } -static int rename_ctl(snd_card_t *card, const char *src, const char *dst) +static int rename_ctl(struct snd_card *card, const char *src, const char *dst) { - snd_kcontrol_t *kctl = ctl_find(card, src); + struct snd_kcontrol *kctl = ctl_find(card, src); if (kctl) { strcpy(kctl->id.name, dst); return 0; @@ -737,12 +746,12 @@ static int rename_ctl(snd_card_t *card, const char *src, const char *dst) return -ENOENT; } -int __devinit snd_emu10k1_mixer(emu10k1_t *emu, +int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, int pcm_device, int multi_device) { int err, pcm; - snd_kcontrol_t *kctl; - snd_card_t *card = emu->card; + struct snd_kcontrol *kctl; + struct snd_card *card = emu->card; char **c; static char *emu10k1_remove_ctls[] = { /* no AC97 mono, surround, center/lfe */ @@ -795,9 +804,9 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, }; if (emu->card_capabilities->ac97_chip) { - ac97_bus_t *pbus; - ac97_template_t ac97; - static ac97_bus_ops_t ops = { + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; + static struct snd_ac97_bus_ops ops = { .write = snd_emu10k1_ac97_write, .read = snd_emu10k1_ac97_read, }; @@ -894,7 +903,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, /* initialize the routing and volume table for each pcm playback stream */ for (pcm = 0; pcm < 32; pcm++) { - emu10k1_pcm_mixer_t *mix; + struct snd_emu10k1_pcm_mixer *mix; int v; mix = &emu->pcm_mixer[pcm]; @@ -914,7 +923,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, /* initialize the routing and volume table for the multichannel playback stream */ for (pcm = 0; pcm < NUM_EFX_PLAYBACK; pcm++) { - emu10k1_pcm_mixer_t *mix; + struct snd_emu10k1_pcm_mixer *mix; int v; mix = &emu->efx_pcm_mixer[pcm]; diff --git a/sound/pci/emu10k1/emumpu401.c b/sound/pci/emu10k1/emumpu401.c index eb57458a966..d96eb455103 100644 --- a/sound/pci/emu10k1/emumpu401.c +++ b/sound/pci/emu10k1/emumpu401.c @@ -28,7 +28,8 @@ #define EMU10K1_MIDI_MODE_INPUT (1<<0) #define EMU10K1_MIDI_MODE_OUTPUT (1<<1) -static inline unsigned char mpu401_read(emu10k1_t *emu, emu10k1_midi_t *mpu, int idx) +static inline unsigned char mpu401_read(struct snd_emu10k1 *emu, + struct snd_emu10k1_midi *mpu, int idx) { if (emu->audigy) return (unsigned char)snd_emu10k1_ptr_read(emu, mpu->port + idx, 0); @@ -36,7 +37,8 @@ static inline unsigned char mpu401_read(emu10k1_t *emu, emu10k1_midi_t *mpu, int return inb(emu->port + mpu->port + idx); } -static inline void mpu401_write(emu10k1_t *emu, emu10k1_midi_t *mpu, int data, int idx) +static inline void mpu401_write(struct snd_emu10k1 *emu, + struct snd_emu10k1_midi *mpu, int data, int idx) { if (emu->audigy) snd_emu10k1_ptr_write(emu, mpu->port + idx, 0, data); @@ -56,7 +58,7 @@ static inline void mpu401_write(emu10k1_t *emu, emu10k1_midi_t *mpu, int data, i #define MPU401_ENTER_UART 0x3f #define MPU401_ACK 0xfe -static void mpu401_clear_rx(emu10k1_t *emu, emu10k1_midi_t *mpu) +static void mpu401_clear_rx(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *mpu) { int timeout = 100000; for (; timeout > 0 && mpu401_input_avail(emu, mpu); timeout--) @@ -71,7 +73,7 @@ static void mpu401_clear_rx(emu10k1_t *emu, emu10k1_midi_t *mpu) */ -static void do_emu10k1_midi_interrupt(emu10k1_t *emu, emu10k1_midi_t *midi, unsigned int status) +static void do_emu10k1_midi_interrupt(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *midi, unsigned int status) { unsigned char byte; @@ -104,17 +106,17 @@ static void do_emu10k1_midi_interrupt(emu10k1_t *emu, emu10k1_midi_t *midi, unsi spin_unlock(&midi->output_lock); } -static void snd_emu10k1_midi_interrupt(emu10k1_t *emu, unsigned int status) +static void snd_emu10k1_midi_interrupt(struct snd_emu10k1 *emu, unsigned int status) { do_emu10k1_midi_interrupt(emu, &emu->midi, status); } -static void snd_emu10k1_midi_interrupt2(emu10k1_t *emu, unsigned int status) +static void snd_emu10k1_midi_interrupt2(struct snd_emu10k1 *emu, unsigned int status) { do_emu10k1_midi_interrupt(emu, &emu->midi2, status); } -static void snd_emu10k1_midi_cmd(emu10k1_t * emu, emu10k1_midi_t *midi, unsigned char cmd, int ack) +static void snd_emu10k1_midi_cmd(struct snd_emu10k1 * emu, struct snd_emu10k1_midi *midi, unsigned char cmd, int ack) { unsigned long flags; int timeout, ok; @@ -146,10 +148,10 @@ static void snd_emu10k1_midi_cmd(emu10k1_t * emu, emu10k1_midi_t *midi, unsigned mpu401_read_data(emu, midi)); } -static int snd_emu10k1_midi_input_open(snd_rawmidi_substream_t * substream) +static int snd_emu10k1_midi_input_open(struct snd_rawmidi_substream *substream) { - emu10k1_t *emu; - emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; + struct snd_emu10k1 *emu; + struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -167,10 +169,10 @@ static int snd_emu10k1_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_emu10k1_midi_output_open(snd_rawmidi_substream_t * substream) +static int snd_emu10k1_midi_output_open(struct snd_rawmidi_substream *substream) { - emu10k1_t *emu; - emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; + struct snd_emu10k1 *emu; + struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -188,10 +190,10 @@ static int snd_emu10k1_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_emu10k1_midi_input_close(snd_rawmidi_substream_t * substream) +static int snd_emu10k1_midi_input_close(struct snd_rawmidi_substream *substream) { - emu10k1_t *emu; - emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; + struct snd_emu10k1 *emu; + struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -209,10 +211,10 @@ static int snd_emu10k1_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int snd_emu10k1_midi_output_close(snd_rawmidi_substream_t * substream) +static int snd_emu10k1_midi_output_close(struct snd_rawmidi_substream *substream) { - emu10k1_t *emu; - emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; + struct snd_emu10k1 *emu; + struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -230,10 +232,10 @@ static int snd_emu10k1_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static void snd_emu10k1_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_emu10k1_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { - emu10k1_t *emu; - emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; + struct snd_emu10k1 *emu; + struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; emu = midi->emu; snd_assert(emu, return); @@ -243,10 +245,10 @@ static void snd_emu10k1_midi_input_trigger(snd_rawmidi_substream_t * substream, snd_emu10k1_intr_disable(emu, midi->rx_enable); } -static void snd_emu10k1_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_emu10k1_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { - emu10k1_t *emu; - emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; + struct snd_emu10k1 *emu; + struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -283,30 +285,30 @@ static void snd_emu10k1_midi_output_trigger(snd_rawmidi_substream_t * substream, */ -static snd_rawmidi_ops_t snd_emu10k1_midi_output = +static struct snd_rawmidi_ops snd_emu10k1_midi_output = { .open = snd_emu10k1_midi_output_open, .close = snd_emu10k1_midi_output_close, .trigger = snd_emu10k1_midi_output_trigger, }; -static snd_rawmidi_ops_t snd_emu10k1_midi_input = +static struct snd_rawmidi_ops snd_emu10k1_midi_input = { .open = snd_emu10k1_midi_input_open, .close = snd_emu10k1_midi_input_close, .trigger = snd_emu10k1_midi_input_trigger, }; -static void snd_emu10k1_midi_free(snd_rawmidi_t *rmidi) +static void snd_emu10k1_midi_free(struct snd_rawmidi *rmidi) { - emu10k1_midi_t *midi = (emu10k1_midi_t *)rmidi->private_data; + struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)rmidi->private_data; midi->interrupt = NULL; midi->rmidi = NULL; } -static int __devinit emu10k1_midi_init(emu10k1_t *emu, emu10k1_midi_t *midi, int device, char *name) +static int __devinit emu10k1_midi_init(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *midi, int device, char *name) { - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; int err; if ((err = snd_rawmidi_new(emu->card, name, device, 1, 1, &rmidi)) < 0) @@ -327,9 +329,9 @@ static int __devinit emu10k1_midi_init(emu10k1_t *emu, emu10k1_midi_t *midi, int return 0; } -int __devinit snd_emu10k1_midi(emu10k1_t *emu) +int __devinit snd_emu10k1_midi(struct snd_emu10k1 *emu) { - emu10k1_midi_t *midi = &emu->midi; + struct snd_emu10k1_midi *midi = &emu->midi; int err; if ((err = emu10k1_midi_init(emu, midi, 0, "EMU10K1 MPU-401 (UART)")) < 0) @@ -344,9 +346,9 @@ int __devinit snd_emu10k1_midi(emu10k1_t *emu) return 0; } -int __devinit snd_emu10k1_audigy_midi(emu10k1_t *emu) +int __devinit snd_emu10k1_audigy_midi(struct snd_emu10k1 *emu) { - emu10k1_midi_t *midi; + struct snd_emu10k1_midi *midi; int err; midi = &emu->midi; diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c index 166f7c4d28c..8e6caf581c0 100644 --- a/sound/pci/emu10k1/emupcm.c +++ b/sound/pci/emu10k1/emupcm.c @@ -35,9 +35,10 @@ #include #include -static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice) +static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu, + struct snd_emu10k1_voice *voice) { - emu10k1_pcm_t *epcm; + struct snd_emu10k1_pcm *epcm; if ((epcm = voice->epcm) == NULL) return; @@ -52,7 +53,8 @@ static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice) snd_pcm_period_elapsed(epcm->substream); } -static void snd_emu10k1_pcm_ac97adc_interrupt(emu10k1_t *emu, unsigned int status) +static void snd_emu10k1_pcm_ac97adc_interrupt(struct snd_emu10k1 *emu, + unsigned int status) { #if 0 if (status & IPR_ADCBUFHALFFULL) { @@ -63,7 +65,8 @@ static void snd_emu10k1_pcm_ac97adc_interrupt(emu10k1_t *emu, unsigned int statu snd_pcm_period_elapsed(emu->pcm_capture_substream); } -static void snd_emu10k1_pcm_ac97mic_interrupt(emu10k1_t *emu, unsigned int status) +static void snd_emu10k1_pcm_ac97mic_interrupt(struct snd_emu10k1 *emu, + unsigned int status) { #if 0 if (status & IPR_MICBUFHALFFULL) { @@ -74,7 +77,8 @@ static void snd_emu10k1_pcm_ac97mic_interrupt(emu10k1_t *emu, unsigned int statu snd_pcm_period_elapsed(emu->pcm_capture_mic_substream); } -static void snd_emu10k1_pcm_efx_interrupt(emu10k1_t *emu, unsigned int status) +static void snd_emu10k1_pcm_efx_interrupt(struct snd_emu10k1 *emu, + unsigned int status) { #if 0 if (status & IPR_EFXBUFHALFFULL) { @@ -85,11 +89,11 @@ static void snd_emu10k1_pcm_efx_interrupt(emu10k1_t *emu, unsigned int status) snd_pcm_period_elapsed(emu->pcm_capture_efx_substream); } -static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; unsigned int ptr; if (!epcm->running) @@ -102,7 +106,7 @@ static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(snd_pcm_substream_t * return ptr; } -static int snd_emu10k1_pcm_channel_alloc(emu10k1_pcm_t * epcm, int voices) +static int snd_emu10k1_pcm_channel_alloc(struct snd_emu10k1_pcm * epcm, int voices) { int err, i; @@ -167,7 +171,7 @@ static unsigned int capture_period_sizes[31] = { 384*128,448*128,512*128 }; -static snd_pcm_hw_constraint_list_t hw_constraints_capture_period_sizes = { +static struct snd_pcm_hw_constraint_list hw_constraints_capture_period_sizes = { .count = 31, .list = capture_period_sizes, .mask = 0 @@ -177,7 +181,7 @@ static unsigned int capture_rates[8] = { 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 }; -static snd_pcm_hw_constraint_list_t hw_constraints_capture_rates = { +static struct snd_pcm_hw_constraint_list hw_constraints_capture_rates = { .count = 8, .list = capture_rates, .mask = 0 @@ -271,15 +275,15 @@ static inline int emu10k1_ccis(int stereo, int w_16) } } -static void snd_emu10k1_pcm_init_voice(emu10k1_t *emu, +static void snd_emu10k1_pcm_init_voice(struct snd_emu10k1 *emu, int master, int extra, - emu10k1_voice_t *evoice, + struct snd_emu10k1_voice *evoice, unsigned int start_addr, unsigned int end_addr, - emu10k1_pcm_mixer_t *mix) + struct snd_emu10k1_pcm_mixer *mix) { - snd_pcm_substream_t *substream = evoice->epcm->substream; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_substream *substream = evoice->epcm->substream; + struct snd_pcm_runtime *runtime = substream->runtime; unsigned int silent_page, tmp; int voice, stereo, w_16; unsigned char attn, send_amount[8]; @@ -392,12 +396,12 @@ static void snd_emu10k1_pcm_init_voice(emu10k1_t *emu, spin_unlock_irqrestore(&emu->reg_lock, flags); } -static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_emu10k1_playback_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; int err; if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0) @@ -412,7 +416,7 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, epcm->start_addr = 0; if (! epcm->memblk) return -ENOMEM; - mapped = ((emu10k1_memblk_t *)epcm->memblk)->mapped_page; + mapped = ((struct snd_emu10k1_memblk *)epcm->memblk)->mapped_page; if (mapped < 0) return -ENOMEM; epcm->start_addr = mapped << PAGE_SHIFT; @@ -420,11 +424,11 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_emu10k1_playback_hw_free(snd_pcm_substream_t * substream) +static int snd_emu10k1_playback_hw_free(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm; if (runtime->private_data == NULL) return 0; @@ -450,11 +454,11 @@ static int snd_emu10k1_playback_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_efx_playback_hw_free(snd_pcm_substream_t * substream) +static int snd_emu10k1_efx_playback_hw_free(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm; int i; if (runtime->private_data == NULL) @@ -479,11 +483,11 @@ static int snd_emu10k1_efx_playback_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_playback_prepare(snd_pcm_substream_t * substream) +static int snd_emu10k1_playback_prepare(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; unsigned int start_addr, end_addr; start_addr = epcm->start_addr; @@ -507,11 +511,11 @@ static int snd_emu10k1_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_efx_playback_prepare(snd_pcm_substream_t * substream) +static int snd_emu10k1_efx_playback_prepare(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; unsigned int start_addr, end_addr; unsigned int channel_size; int i; @@ -543,7 +547,7 @@ static int snd_emu10k1_efx_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_hardware_t snd_emu10k1_efx_playback = +static struct snd_pcm_hardware snd_emu10k1_efx_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_NONINTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -562,22 +566,22 @@ static snd_pcm_hardware_t snd_emu10k1_efx_playback = .fifo_size = 0, }; -static int snd_emu10k1_capture_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_emu10k1_capture_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_emu10k1_capture_hw_free(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static int snd_emu10k1_capture_prepare(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_prepare(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; int idx; /* zeroing the buffer size will stop capture */ @@ -620,9 +624,9 @@ static int snd_emu10k1_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static void snd_emu10k1_playback_invalidate_cache(emu10k1_t *emu, int extra, emu10k1_voice_t *evoice) +static void snd_emu10k1_playback_invalidate_cache(struct snd_emu10k1 *emu, int extra, struct snd_emu10k1_voice *evoice) { - snd_pcm_runtime_t *runtime; + struct snd_pcm_runtime *runtime; unsigned int voice, stereo, i, ccis, cra = 64, cs, sample; if (evoice == NULL) @@ -655,12 +659,12 @@ static void snd_emu10k1_playback_invalidate_cache(emu10k1_t *emu, int extra, emu } } -static void snd_emu10k1_playback_prepare_voice(emu10k1_t *emu, emu10k1_voice_t *evoice, +static void snd_emu10k1_playback_prepare_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice, int master, int extra, - emu10k1_pcm_mixer_t *mix) + struct snd_emu10k1_pcm_mixer *mix) { - snd_pcm_substream_t *substream; - snd_pcm_runtime_t *runtime; + struct snd_pcm_substream *substream; + struct snd_pcm_runtime *runtime; unsigned int attn, vattn; unsigned int voice, tmp; @@ -680,10 +684,10 @@ static void snd_emu10k1_playback_prepare_voice(emu10k1_t *emu, emu10k1_voice_t * snd_emu10k1_voice_clear_loop_stop(emu, voice); } -static void snd_emu10k1_playback_trigger_voice(emu10k1_t *emu, emu10k1_voice_t *evoice, int master, int extra) +static void snd_emu10k1_playback_trigger_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice, int master, int extra) { - snd_pcm_substream_t *substream; - snd_pcm_runtime_t *runtime; + struct snd_pcm_substream *substream; + struct snd_pcm_runtime *runtime; unsigned int voice, pitch, pitch_target; if (evoice == NULL) /* skip second voice for mono */ @@ -702,7 +706,7 @@ static void snd_emu10k1_playback_trigger_voice(emu10k1_t *emu, emu10k1_voice_t * snd_emu10k1_voice_intr_enable(emu, voice); } -static void snd_emu10k1_playback_stop_voice(emu10k1_t *emu, emu10k1_voice_t *evoice) +static void snd_emu10k1_playback_stop_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice) { unsigned int voice; @@ -718,13 +722,13 @@ static void snd_emu10k1_playback_stop_voice(emu10k1_t *emu, emu10k1_voice_t *evo snd_emu10k1_ptr_write(emu, IP, voice, 0); } -static int snd_emu10k1_playback_trigger(snd_pcm_substream_t * substream, +static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; - emu10k1_pcm_mixer_t *mix; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; + struct snd_emu10k1_pcm_mixer *mix; int result = 0; // printk("trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n", (int)emu, cmd, substream->ops->pointer(substream)); @@ -759,12 +763,12 @@ static int snd_emu10k1_playback_trigger(snd_pcm_substream_t * substream, return result; } -static int snd_emu10k1_capture_trigger(snd_pcm_substream_t * substream, +static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; int result = 0; spin_lock(&emu->reg_lock); @@ -819,11 +823,11 @@ static int snd_emu10k1_capture_trigger(snd_pcm_substream_t * substream, return result; } -static snd_pcm_uframes_t snd_emu10k1_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_emu10k1_playback_pointer(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; unsigned int ptr; if (!epcm->running) @@ -847,12 +851,12 @@ static snd_pcm_uframes_t snd_emu10k1_playback_pointer(snd_pcm_substream_t * subs } -static int snd_emu10k1_efx_playback_trigger(snd_pcm_substream_t * substream, +static int snd_emu10k1_efx_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; int i; int result = 0; @@ -896,11 +900,11 @@ static int snd_emu10k1_efx_playback_trigger(snd_pcm_substream_t * substream, } -static snd_pcm_uframes_t snd_emu10k1_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_emu10k1_capture_pointer(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; unsigned int ptr; if (!epcm->running) @@ -917,7 +921,7 @@ static snd_pcm_uframes_t snd_emu10k1_capture_pointer(snd_pcm_substream_t * subst * Playback support device description */ -static snd_pcm_hardware_t snd_emu10k1_playback = +static struct snd_pcm_hardware snd_emu10k1_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -940,7 +944,7 @@ static snd_pcm_hardware_t snd_emu10k1_playback = * Capture support device description */ -static snd_pcm_hardware_t snd_emu10k1_capture = +static struct snd_pcm_hardware snd_emu10k1_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -963,9 +967,9 @@ static snd_pcm_hardware_t snd_emu10k1_capture = * */ -static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl, int idx, int activate) +static void snd_emu10k1_pcm_mixer_notify1(struct snd_emu10k1 *emu, struct snd_kcontrol *kctl, int idx, int activate) { - snd_ctl_elem_id_t id; + struct snd_ctl_elem_id id; if (! kctl) return; @@ -978,29 +982,29 @@ static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl, snd_ctl_build_ioff(&id, kctl, idx)); } -static void snd_emu10k1_pcm_mixer_notify(emu10k1_t *emu, int idx, int activate) +static void snd_emu10k1_pcm_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate) { snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_routing, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_volume, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_attn, idx, activate); } -static void snd_emu10k1_pcm_efx_mixer_notify(emu10k1_t *emu, int idx, int activate) +static void snd_emu10k1_pcm_efx_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate) { snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_routing, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_volume, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_attn, idx, activate); } -static void snd_emu10k1_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_emu10k1_pcm_free_substream(struct snd_pcm_runtime *runtime) { kfree(runtime->private_data); } -static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream) +static int snd_emu10k1_efx_playback_close(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_pcm_mixer_t *mix; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_pcm_mixer *mix; int i; for (i=0; i < NUM_EFX_PLAYBACK; i++) { @@ -1011,12 +1015,12 @@ static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_efx_playback_open(snd_pcm_substream_t * substream) +static int snd_emu10k1_efx_playback_open(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_pcm_t *epcm; - emu10k1_pcm_mixer_t *mix; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_pcm *epcm; + struct snd_emu10k1_pcm_mixer *mix; + struct snd_pcm_runtime *runtime = substream->runtime; int i; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); @@ -1044,12 +1048,12 @@ static int snd_emu10k1_efx_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream) +static int snd_emu10k1_playback_open(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_pcm_t *epcm; - emu10k1_pcm_mixer_t *mix; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_pcm *epcm; + struct snd_emu10k1_pcm_mixer *mix; + struct snd_pcm_runtime *runtime = substream->runtime; int i, err; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); @@ -1081,21 +1085,21 @@ static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_playback_close(snd_pcm_substream_t * substream) +static int snd_emu10k1_playback_close(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_pcm_mixer *mix = &emu->pcm_mixer[substream->number]; mix->epcm = NULL; snd_emu10k1_pcm_mixer_notify(emu, substream->number, 0); return 0; } -static int snd_emu10k1_capture_open(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_open(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); if (epcm == NULL) @@ -1118,20 +1122,20 @@ static int snd_emu10k1_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_capture_close(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_close(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); emu->capture_interrupt = NULL; emu->pcm_capture_substream = NULL; return 0; } -static int snd_emu10k1_capture_mic_open(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_mic_open(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); if (epcm == NULL) @@ -1156,20 +1160,20 @@ static int snd_emu10k1_capture_mic_open(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_capture_mic_close(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_mic_close(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); emu->capture_interrupt = NULL; emu->pcm_capture_mic_substream = NULL; return 0; } -static int snd_emu10k1_capture_efx_open(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_efx_open(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; int nefx = emu->audigy ? 64 : 32; int idx; @@ -1206,16 +1210,16 @@ static int snd_emu10k1_capture_efx_open(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_capture_efx_close(snd_pcm_substream_t * substream) +static int snd_emu10k1_capture_efx_close(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); emu->capture_interrupt = NULL; emu->pcm_capture_efx_substream = NULL; return 0; } -static snd_pcm_ops_t snd_emu10k1_playback_ops = { +static struct snd_pcm_ops snd_emu10k1_playback_ops = { .open = snd_emu10k1_playback_open, .close = snd_emu10k1_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1227,7 +1231,7 @@ static snd_pcm_ops_t snd_emu10k1_playback_ops = { .page = snd_pcm_sgbuf_ops_page, }; -static snd_pcm_ops_t snd_emu10k1_capture_ops = { +static struct snd_pcm_ops snd_emu10k1_capture_ops = { .open = snd_emu10k1_capture_open, .close = snd_emu10k1_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1239,7 +1243,7 @@ static snd_pcm_ops_t snd_emu10k1_capture_ops = { }; /* EFX playback */ -static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = { +static struct snd_pcm_ops snd_emu10k1_efx_playback_ops = { .open = snd_emu10k1_efx_playback_open, .close = snd_emu10k1_efx_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1251,10 +1255,10 @@ static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = { .page = snd_pcm_sgbuf_ops_page, }; -int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) +int __devinit snd_emu10k1_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; - snd_pcm_substream_t *substream; + struct snd_pcm *pcm; + struct snd_pcm_substream *substream; int err; if (rpcm) @@ -1286,10 +1290,10 @@ int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) return 0; } -int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) +int __devinit snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; - snd_pcm_substream_t *substream; + struct snd_pcm *pcm; + struct snd_pcm_substream *substream; int err; if (rpcm) @@ -1318,7 +1322,7 @@ int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rp } -static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = { +static struct snd_pcm_ops snd_emu10k1_capture_mic_ops = { .open = snd_emu10k1_capture_mic_open, .close = snd_emu10k1_capture_mic_close, .ioctl = snd_pcm_lib_ioctl, @@ -1329,9 +1333,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = { .pointer = snd_emu10k1_capture_pointer, }; -int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) +int __devinit snd_emu10k1_pcm_mic(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1355,9 +1359,9 @@ int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm return 0; } -static int snd_emu10k1_pcm_efx_voices_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1_pcm_efx_voices_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); int nefx = emu->audigy ? 64 : 32; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = nefx; @@ -1366,9 +1370,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_info(snd_kcontrol_t *kcontrol, snd_ct return 0; } -static int snd_emu10k1_pcm_efx_voices_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_pcm_efx_voices_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); int nefx = emu->audigy ? 64 : 32; int idx; @@ -1379,9 +1383,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_get(snd_kcontrol_t * kcontrol, snd_ct return 0; } -static int snd_emu10k1_pcm_efx_voices_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1_pcm_efx_voices_mask_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); unsigned int nval[2], bits; int nefx = emu->audigy ? 64 : 32; int nefxb = emu->audigy ? 7 : 6; @@ -1410,7 +1414,7 @@ static int snd_emu10k1_pcm_efx_voices_mask_put(snd_kcontrol_t * kcontrol, snd_ct return change; } -static snd_kcontrol_new_t snd_emu10k1_pcm_efx_voices_mask = { +static struct snd_kcontrol_new snd_emu10k1_pcm_efx_voices_mask = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = "Captured FX8010 Outputs", .info = snd_emu10k1_pcm_efx_voices_mask_info, @@ -1418,7 +1422,7 @@ static snd_kcontrol_new_t snd_emu10k1_pcm_efx_voices_mask = { .put = snd_emu10k1_pcm_efx_voices_mask_put }; -static snd_pcm_ops_t snd_emu10k1_capture_efx_ops = { +static struct snd_pcm_ops snd_emu10k1_capture_efx_ops = { .open = snd_emu10k1_capture_efx_open, .close = snd_emu10k1_capture_efx_close, .ioctl = snd_pcm_lib_ioctl, @@ -1435,9 +1439,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_efx_ops = { #define INITIAL_TRAM_SHIFT 14 #define INITIAL_TRAM_POS(size) ((((size) / 2) - INITIAL_TRAM_SHIFT) - 1) -static void snd_emu10k1_fx8010_playback_irq(emu10k1_t *emu, void *private_data) +static void snd_emu10k1_fx8010_playback_irq(struct snd_emu10k1 *emu, void *private_data) { - snd_pcm_substream_t *substream = private_data; + struct snd_pcm_substream *substream = private_data; snd_pcm_period_elapsed(substream); } @@ -1461,11 +1465,11 @@ static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left, } } -static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream, - snd_pcm_indirect_t *rec, size_t bytes) +static void fx8010_pb_trans_copy(struct snd_pcm_substream *substream, + struct snd_pcm_indirect *rec, size_t bytes) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; unsigned int tram_size = pcm->buffer_size; unsigned short *src = (unsigned short *)(substream->runtime->dma_area + rec->sw_data); unsigned int frames = bytes >> 2, count; @@ -1490,25 +1494,25 @@ static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream, pcm->tram_shift = tram_shift; } -static int snd_emu10k1_fx8010_playback_transfer(snd_pcm_substream_t *substream) +static int snd_emu10k1_fx8010_playback_transfer(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; snd_pcm_indirect_playback_transfer(substream, &pcm->pcm_rec, fx8010_pb_trans_copy); return 0; } -static int snd_emu10k1_fx8010_playback_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_emu10k1_fx8010_playback_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream) +static int snd_emu10k1_fx8010_playback_hw_free(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; unsigned int i; for (i = 0; i < pcm->channels; i++) @@ -1517,11 +1521,11 @@ static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream) +static int snd_emu10k1_fx8010_playback_prepare(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; unsigned int i; // printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2); @@ -1541,10 +1545,10 @@ static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream, int cmd) +static int snd_emu10k1_fx8010_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; int result = 0; spin_lock(&emu->reg_lock); @@ -1586,10 +1590,10 @@ static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream, return result; } -static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; size_t ptr; /* byte pointer */ if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0)) @@ -1598,7 +1602,7 @@ static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t return snd_pcm_indirect_playback_pointer(substream, &pcm->pcm_rec, ptr); } -static snd_pcm_hardware_t snd_emu10k1_fx8010_playback = +static struct snd_pcm_hardware snd_emu10k1_fx8010_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | /* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE), @@ -1616,11 +1620,11 @@ static snd_pcm_hardware_t snd_emu10k1_fx8010_playback = .fifo_size = 0, }; -static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream) +static int snd_emu10k1_fx8010_playback_open(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; runtime->hw = snd_emu10k1_fx8010_playback; runtime->hw.channels_min = runtime->hw.channels_max = pcm->channels; @@ -1635,10 +1639,10 @@ static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream) +static int snd_emu10k1_fx8010_playback_close(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number]; spin_lock_irq(&emu->reg_lock); pcm->opened = 0; @@ -1646,7 +1650,7 @@ static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = { +static struct snd_pcm_ops snd_emu10k1_fx8010_playback_ops = { .open = snd_emu10k1_fx8010_playback_open, .close = snd_emu10k1_fx8010_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1658,10 +1662,10 @@ static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = { .ack = snd_emu10k1_fx8010_playback_transfer, }; -int __devinit snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) +int __devinit snd_emu10k1_pcm_efx(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; - snd_kcontrol_t *kctl; + struct snd_pcm *pcm; + struct snd_kcontrol *kctl; int err; if (rpcm) diff --git a/sound/pci/emu10k1/emuproc.c b/sound/pci/emu10k1/emuproc.c index 6cdee588d35..b88137f9165 100644 --- a/sound/pci/emu10k1/emuproc.c +++ b/sound/pci/emu10k1/emuproc.c @@ -32,8 +32,8 @@ #include #include "p16v.h" -static void snd_emu10k1_proc_spdif_status(emu10k1_t * emu, - snd_info_buffer_t * buffer, +static void snd_emu10k1_proc_spdif_status(struct snd_emu10k1 * emu, + struct snd_info_buffer *buffer, char *title, int status_reg, int rate_reg) @@ -75,8 +75,8 @@ static void snd_emu10k1_proc_spdif_status(emu10k1_t * emu, } -static void snd_emu10k1_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu10k1_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { /* FIXME - output names are in emufx.c too */ static char *creative_outs[32] = { @@ -181,7 +181,7 @@ static void snd_emu10k1_proc_read(snd_info_entry_t *entry, /* 63 */ "FXBUS2_31" }; - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; unsigned int val, val1; int nefx = emu->audigy ? 64 : 32; char **outputs = emu->audigy ? audigy_outs : creative_outs; @@ -232,10 +232,10 @@ static void snd_emu10k1_proc_read(snd_info_entry_t *entry, snd_iprintf(buffer, " Output %02i [%s]\n", idx, outputs[idx]); } -static void snd_emu10k1_proc_spdif_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu10k1_proc_spdif_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; snd_emu10k1_proc_spdif_status(emu, buffer, "CD-ROM S/PDIF In", CDCS, CDSRCS); snd_emu10k1_proc_spdif_status(emu, buffer, "Optical or Coax S/PDIF In", GPSCS, GPSRCS); #if 0 @@ -246,11 +246,11 @@ static void snd_emu10k1_proc_spdif_read(snd_info_entry_t *entry, #endif } -static void snd_emu10k1_proc_rates_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu10k1_proc_rates_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { static int samplerate[8] = { 44100, 48000, 96000, 192000, 4, 5, 6, 7 }; - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; unsigned int val, tmp, n; val = snd_emu10k1_ptr20_read(emu, CAPTURE_RATE_STATUS, 0); tmp = (val >> 16) & 0x8; @@ -261,11 +261,11 @@ static void snd_emu10k1_proc_rates_read(snd_info_entry_t *entry, } } -static void snd_emu10k1_proc_acode_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu10k1_proc_acode_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { u32 pc; - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; snd_iprintf(buffer, "FX8010 Instruction List '%s'\n", emu->fx8010.name); snd_iprintf(buffer, " Code dump :\n"); @@ -304,12 +304,13 @@ static void snd_emu10k1_proc_acode_read(snd_info_entry_t *entry, #define TOTAL_SIZE_CODE (0x200*8) #define A_TOTAL_SIZE_CODE (0x400*8) -static long snd_emu10k1_fx8010_read(snd_info_entry_t *entry, void *file_private_data, +static long snd_emu10k1_fx8010_read(struct snd_info_entry *entry, + void *file_private_data, struct file *file, char __user *buf, unsigned long count, unsigned long pos) { long size; - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; unsigned int offset; int tram_addr = 0; @@ -349,11 +350,11 @@ static long snd_emu10k1_fx8010_read(snd_info_entry_t *entry, void *file_private_ return 0; } -static void snd_emu10k1_proc_voices_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu10k1_proc_voices_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - emu10k1_t *emu = entry->private_data; - emu10k1_voice_t *voice; + struct snd_emu10k1 *emu = entry->private_data; + struct snd_emu10k1_voice *voice; int idx; snd_iprintf(buffer, "ch\tuse\tpcm\tefx\tsynth\tmidi\n"); @@ -370,10 +371,10 @@ static void snd_emu10k1_proc_voices_read(snd_info_entry_t *entry, } #ifdef CONFIG_SND_DEBUG -static void snd_emu_proc_io_reg_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_io_reg_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; unsigned long value; unsigned long flags; int i; @@ -386,10 +387,10 @@ static void snd_emu_proc_io_reg_read(snd_info_entry_t *entry, } } -static void snd_emu_proc_io_reg_write(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_io_reg_write(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; unsigned long flags; char line[64]; u32 reg, val; @@ -404,7 +405,7 @@ static void snd_emu_proc_io_reg_write(snd_info_entry_t *entry, } } -static unsigned int snd_ptr_read(emu10k1_t * emu, +static unsigned int snd_ptr_read(struct snd_emu10k1 * emu, unsigned int iobase, unsigned int reg, unsigned int chn) @@ -421,7 +422,7 @@ static unsigned int snd_ptr_read(emu10k1_t * emu, return val; } -static void snd_ptr_write(emu10k1_t *emu, +static void snd_ptr_write(struct snd_emu10k1 *emu, unsigned int iobase, unsigned int reg, unsigned int chn, @@ -439,10 +440,10 @@ static void snd_ptr_write(emu10k1_t *emu, } -static void snd_emu_proc_ptr_reg_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer, int iobase, int offset, int length, int voices) +static void snd_emu_proc_ptr_reg_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer, int iobase, int offset, int length, int voices) { - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; unsigned long value; int i,j; if (offset+length > 0xa0) { @@ -463,10 +464,10 @@ static void snd_emu_proc_ptr_reg_read(snd_info_entry_t *entry, } } -static void snd_emu_proc_ptr_reg_write(snd_info_entry_t *entry, - snd_info_buffer_t * buffer, int iobase) +static void snd_emu_proc_ptr_reg_write(struct snd_info_entry *entry, + struct snd_info_buffer *buffer, int iobase) { - emu10k1_t *emu = entry->private_data; + struct snd_emu10k1 *emu = entry->private_data; char line[64]; unsigned int reg, channel_id , val; while (!snd_info_get_line(buffer, line, sizeof(line))) { @@ -477,45 +478,45 @@ static void snd_emu_proc_ptr_reg_write(snd_info_entry_t *entry, } } -static void snd_emu_proc_ptr_reg_write00(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_ptr_reg_write00(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { snd_emu_proc_ptr_reg_write(entry, buffer, 0); } -static void snd_emu_proc_ptr_reg_write20(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_ptr_reg_write20(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { snd_emu_proc_ptr_reg_write(entry, buffer, 0x20); } -static void snd_emu_proc_ptr_reg_read00a(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_ptr_reg_read00a(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { snd_emu_proc_ptr_reg_read(entry, buffer, 0, 0, 0x40, 64); } -static void snd_emu_proc_ptr_reg_read00b(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_ptr_reg_read00b(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { snd_emu_proc_ptr_reg_read(entry, buffer, 0, 0x40, 0x40, 64); } -static void snd_emu_proc_ptr_reg_read20a(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_ptr_reg_read20a(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0, 0x40, 4); } -static void snd_emu_proc_ptr_reg_read20b(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_ptr_reg_read20b(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x40, 0x40, 4); } -static void snd_emu_proc_ptr_reg_read20c(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu_proc_ptr_reg_read20c(struct snd_info_entry *entry, + struct snd_info_buffer * buffer) { snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x80, 0x20, 4); } @@ -525,9 +526,9 @@ static struct snd_info_entry_ops snd_emu10k1_proc_ops_fx8010 = { .read = snd_emu10k1_fx8010_read, }; -int __devinit snd_emu10k1_proc_init(emu10k1_t * emu) +int __devinit snd_emu10k1_proc_init(struct snd_emu10k1 * emu) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; #ifdef CONFIG_SND_DEBUG if (! snd_card_proc_new(emu->card, "io_regs", &entry)) { snd_info_set_text_ops(entry, emu, 1024, snd_emu_proc_io_reg_read); diff --git a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c index b9d3ae0dcab..5d116dd7403 100644 --- a/sound/pci/emu10k1/io.c +++ b/sound/pci/emu10k1/io.c @@ -30,7 +30,7 @@ #include #include -unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned int chn) +unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn) { unsigned long flags; unsigned int regptr, val; @@ -61,7 +61,7 @@ unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned in } } -void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data) +void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data) { unsigned int regptr; unsigned long flags; @@ -91,7 +91,7 @@ void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, u } } -unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, +unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn) { @@ -107,7 +107,7 @@ unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, return val; } -void snd_emu10k1_ptr20_write(emu10k1_t *emu, +void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data) @@ -123,7 +123,7 @@ void snd_emu10k1_ptr20_write(emu10k1_t *emu, spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb) +void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb) { unsigned long flags; unsigned int enable; @@ -134,7 +134,7 @@ void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb) +void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb) { unsigned long flags; unsigned int enable; @@ -145,7 +145,7 @@ void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; unsigned int val; @@ -165,7 +165,7 @@ void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; unsigned int val; @@ -185,7 +185,7 @@ void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; @@ -202,7 +202,7 @@ void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; unsigned int val; @@ -222,7 +222,7 @@ void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicen spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; unsigned int val; @@ -242,7 +242,7 @@ void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voice spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; @@ -259,7 +259,7 @@ void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; unsigned int sol; @@ -279,7 +279,7 @@ void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum) +void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum) { unsigned long flags; unsigned int sol; @@ -299,7 +299,7 @@ void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum) spin_unlock_irqrestore(&emu->emu_lock, flags); } -void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait) +void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait) { volatile unsigned count; unsigned int newtime = 0, curtime; @@ -318,9 +318,9 @@ void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait) } } -unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg) +unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - emu10k1_t *emu = ac97->private_data; + struct snd_emu10k1 *emu = ac97->private_data; unsigned long flags; unsigned short val; @@ -331,9 +331,9 @@ unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg) return val; } -void snd_emu10k1_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short data) +void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data) { - emu10k1_t *emu = ac97->private_data; + struct snd_emu10k1 *emu = ac97->private_data; unsigned long flags; spin_lock_irqsave(&emu->emu_lock, flags); diff --git a/sound/pci/emu10k1/irq.c b/sound/pci/emu10k1/irq.c index 594ea063b14..a8b31286b6d 100644 --- a/sound/pci/emu10k1/irq.c +++ b/sound/pci/emu10k1/irq.c @@ -32,7 +32,7 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - emu10k1_t *emu = dev_id; + struct snd_emu10k1 *emu = dev_id; unsigned int status, status2, orig_status, orig_status2; int handled = 0; @@ -56,7 +56,7 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) int voice; int voice_max = status & IPR_CHANNELNUMBERMASK; u32 val; - emu10k1_voice_t *pvoice = emu->voices; + struct snd_emu10k1_voice *pvoice = emu->voices; val = snd_emu10k1_ptr_read(emu, CLIPL, 0); for (voice = 0; voice <= voice_max; voice++) { @@ -150,8 +150,8 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) if (status & IPR_P16V) { while ((status2 = inl(emu->port + IPR2)) != 0) { u32 mask = INTE2_PLAYBACK_CH_0_LOOP; /* Full Loop */ - emu10k1_voice_t *pvoice = &(emu->p16v_voices[0]); - emu10k1_voice_t *cvoice = &(emu->p16v_capture_voice); + struct snd_emu10k1_voice *pvoice = &(emu->p16v_voices[0]); + struct snd_emu10k1_voice *cvoice = &(emu->p16v_capture_voice); //printk(KERN_INFO "status2=0x%x\n", status2); orig_status2 = status2; diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c index d42e4aeaa73..68c795c0310 100644 --- a/sound/pci/emu10k1/memory.c +++ b/sound/pci/emu10k1/memory.c @@ -48,7 +48,7 @@ #define set_silent_ptb(emu,page) __set_ptb_entry(emu,page,emu->silent_page.addr) #else /* fill PTB entries -- we need to fill UNIT_PAGES entries */ -static inline void set_ptb_entry(emu10k1_t *emu, int page, dma_addr_t addr) +static inline void set_ptb_entry(struct snd_emu10k1 *emu, int page, dma_addr_t addr) { int i; page *= UNIT_PAGES; @@ -57,7 +57,7 @@ static inline void set_ptb_entry(emu10k1_t *emu, int page, dma_addr_t addr) addr += EMUPAGESIZE; } } -static inline void set_silent_ptb(emu10k1_t *emu, int page) +static inline void set_silent_ptb(struct snd_emu10k1 *emu, int page) { int i; page *= UNIT_PAGES; @@ -70,14 +70,14 @@ static inline void set_silent_ptb(emu10k1_t *emu, int page) /* */ -static int synth_alloc_pages(emu10k1_t *hw, emu10k1_memblk_t *blk); -static int synth_free_pages(emu10k1_t *hw, emu10k1_memblk_t *blk); +static int synth_alloc_pages(struct snd_emu10k1 *hw, struct snd_emu10k1_memblk *blk); +static int synth_free_pages(struct snd_emu10k1 *hw, struct snd_emu10k1_memblk *blk); -#define get_emu10k1_memblk(l,member) list_entry(l, emu10k1_memblk_t, member) +#define get_emu10k1_memblk(l,member) list_entry(l, struct snd_emu10k1_memblk, member) /* initialize emu10k1 part */ -static void emu10k1_memblk_init(emu10k1_memblk_t *blk) +static void emu10k1_memblk_init(struct snd_emu10k1_memblk *blk) { blk->mapped_page = -1; INIT_LIST_HEAD(&blk->mapped_link); @@ -96,7 +96,7 @@ static void emu10k1_memblk_init(emu10k1_memblk_t *blk) * in nextp * if not found, return a negative error code. */ -static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head **nextp) +static int search_empty_map_area(struct snd_emu10k1 *emu, int npages, struct list_head **nextp) { int page = 0, found_page = -ENOMEM; int max_size = npages; @@ -105,7 +105,7 @@ static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head ** struct list_head *pos; list_for_each (pos, &emu->mapped_link_head) { - emu10k1_memblk_t *blk = get_emu10k1_memblk(pos, mapped_link); + struct snd_emu10k1_memblk *blk = get_emu10k1_memblk(pos, mapped_link); snd_assert(blk->mapped_page >= 0, continue); size = blk->mapped_page - page; if (size == npages) { @@ -134,7 +134,7 @@ static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head ** * * call with memblk_lock held */ -static int map_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) +static int map_memblk(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) { int page, pg; struct list_head *next; @@ -161,11 +161,11 @@ static int map_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) * * call with memblk_lock held */ -static int unmap_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) +static int unmap_memblk(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) { int start_page, end_page, mpage, pg; struct list_head *p; - emu10k1_memblk_t *q; + struct snd_emu10k1_memblk *q; /* calculate the expected size of empty region */ if ((p = blk->mapped_link.prev) != &emu->mapped_link_head) { @@ -197,11 +197,11 @@ static int unmap_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) * * unlike synth_alloc the memory block is aligned to the page start */ -static emu10k1_memblk_t * -search_empty(emu10k1_t *emu, int size) +static struct snd_emu10k1_memblk * +search_empty(struct snd_emu10k1 *emu, int size) { struct list_head *p; - emu10k1_memblk_t *blk; + struct snd_emu10k1_memblk *blk; int page, psize; psize = get_aligned_page(size + PAGE_SIZE -1); @@ -217,7 +217,7 @@ search_empty(emu10k1_t *emu, int size) __found_pages: /* create a new memory block */ - blk = (emu10k1_memblk_t *)__snd_util_memblk_new(emu->memhdr, psize << PAGE_SHIFT, p->prev); + blk = (struct snd_emu10k1_memblk *)__snd_util_memblk_new(emu->memhdr, psize << PAGE_SHIFT, p->prev); if (blk == NULL) return NULL; blk->mem.offset = aligned_page_offset(page); /* set aligned offset */ @@ -229,7 +229,7 @@ __found_pages: /* * check if the given pointer is valid for pages */ -static int is_valid_page(emu10k1_t *emu, dma_addr_t addr) +static int is_valid_page(struct snd_emu10k1 *emu, dma_addr_t addr) { if (addr & ~emu->dma_mask) { snd_printk(KERN_ERR "max memory size is 0x%lx (addr = 0x%lx)!!\n", emu->dma_mask, (unsigned long)addr); @@ -248,12 +248,12 @@ static int is_valid_page(emu10k1_t *emu, dma_addr_t addr) * if no empty pages are found, tries to release unsed memory blocks * and retry the mapping. */ -int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk) +int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) { int err; int size; struct list_head *p, *nextp; - emu10k1_memblk_t *deleted; + struct snd_emu10k1_memblk *deleted; unsigned long flags; spin_lock_irqsave(&emu->memblk_lock, flags); @@ -288,13 +288,13 @@ int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk) /* * page allocation for DMA */ -snd_util_memblk_t * -snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream) +struct snd_util_memblk * +snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); - snd_util_memhdr_t *hdr; - emu10k1_memblk_t *blk; + struct snd_util_memhdr *hdr; + struct snd_emu10k1_memblk *blk; int page, err, idx; snd_assert(emu, return NULL); @@ -336,19 +336,19 @@ snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream) blk->map_locked = 1; /* do not unmap this block! */ err = snd_emu10k1_memblk_map(emu, blk); if (err < 0) { - __snd_util_mem_free(hdr, (snd_util_memblk_t *)blk); + __snd_util_mem_free(hdr, (struct snd_util_memblk *)blk); up(&hdr->block_mutex); return NULL; } up(&hdr->block_mutex); - return (snd_util_memblk_t *)blk; + return (struct snd_util_memblk *)blk; } /* * release DMA buffer from page table */ -int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk) +int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk) { snd_assert(emu && blk, return -EINVAL); return snd_emu10k1_synth_free(emu, blk); @@ -363,26 +363,26 @@ int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk) /* * allocate a synth sample area */ -snd_util_memblk_t * -snd_emu10k1_synth_alloc(emu10k1_t *hw, unsigned int size) +struct snd_util_memblk * +snd_emu10k1_synth_alloc(struct snd_emu10k1 *hw, unsigned int size) { - emu10k1_memblk_t *blk; - snd_util_memhdr_t *hdr = hw->memhdr; + struct snd_emu10k1_memblk *blk; + struct snd_util_memhdr *hdr = hw->memhdr; down(&hdr->block_mutex); - blk = (emu10k1_memblk_t *)__snd_util_mem_alloc(hdr, size); + blk = (struct snd_emu10k1_memblk *)__snd_util_mem_alloc(hdr, size); if (blk == NULL) { up(&hdr->block_mutex); return NULL; } if (synth_alloc_pages(hw, blk)) { - __snd_util_mem_free(hdr, (snd_util_memblk_t *)blk); + __snd_util_mem_free(hdr, (struct snd_util_memblk *)blk); up(&hdr->block_mutex); return NULL; } snd_emu10k1_memblk_map(hw, blk); up(&hdr->block_mutex); - return (snd_util_memblk_t *)blk; + return (struct snd_util_memblk *)blk; } @@ -390,10 +390,10 @@ snd_emu10k1_synth_alloc(emu10k1_t *hw, unsigned int size) * free a synth sample area */ int -snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *memblk) +snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *memblk) { - snd_util_memhdr_t *hdr = emu->memhdr; - emu10k1_memblk_t *blk = (emu10k1_memblk_t *)memblk; + struct snd_util_memhdr *hdr = emu->memhdr; + struct snd_emu10k1_memblk *blk = (struct snd_emu10k1_memblk *)memblk; unsigned long flags; down(&hdr->block_mutex); @@ -409,10 +409,12 @@ snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *memblk) /* check new allocation range */ -static void get_single_page_range(snd_util_memhdr_t *hdr, emu10k1_memblk_t *blk, int *first_page_ret, int *last_page_ret) +static void get_single_page_range(struct snd_util_memhdr *hdr, + struct snd_emu10k1_memblk *blk, + int *first_page_ret, int *last_page_ret) { struct list_head *p; - emu10k1_memblk_t *q; + struct snd_emu10k1_memblk *q; int first_page, last_page; first_page = blk->first_page; if ((p = blk->mem.list.prev) != &hdr->block) { @@ -433,7 +435,7 @@ static void get_single_page_range(snd_util_memhdr_t *hdr, emu10k1_memblk_t *blk, /* * allocate kernel pages */ -static int synth_alloc_pages(emu10k1_t *emu, emu10k1_memblk_t *blk) +static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) { int page, first_page, last_page; struct snd_dma_buffer dmab; @@ -472,7 +474,7 @@ __fail: /* * free pages */ -static int synth_free_pages(emu10k1_t *emu, emu10k1_memblk_t *blk) +static int synth_free_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) { int page, first_page, last_page; struct snd_dma_buffer dmab; @@ -495,7 +497,7 @@ static int synth_free_pages(emu10k1_t *emu, emu10k1_memblk_t *blk) } /* calculate buffer pointer from offset address */ -static inline void *offset_ptr(emu10k1_t *emu, int page, int offset) +static inline void *offset_ptr(struct snd_emu10k1 *emu, int page, int offset) { char *ptr; snd_assert(page >= 0 && page < emu->max_cache_pages, return NULL); @@ -511,11 +513,12 @@ static inline void *offset_ptr(emu10k1_t *emu, int page, int offset) /* * bzero(blk + offset, size) */ -int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, int size) +int snd_emu10k1_synth_bzero(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, + int offset, int size) { int page, nextofs, end_offset, temp, temp1; void *ptr; - emu10k1_memblk_t *p = (emu10k1_memblk_t *)blk; + struct snd_emu10k1_memblk *p = (struct snd_emu10k1_memblk *)blk; offset += blk->offset & (PAGE_SIZE - 1); end_offset = offset + size; @@ -538,11 +541,12 @@ int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, /* * copy_from_user(blk + offset, data, size) */ -int snd_emu10k1_synth_copy_from_user(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, const char __user *data, int size) +int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, + int offset, const char __user *data, int size) { int page, nextofs, end_offset, temp, temp1; void *ptr; - emu10k1_memblk_t *p = (emu10k1_memblk_t *)blk; + struct snd_emu10k1_memblk *p = (struct snd_emu10k1_memblk *)blk; offset += blk->offset & (PAGE_SIZE - 1); end_offset = offset + size; diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c index 3b456007ba2..90470de8bb8 100644 --- a/sound/pci/emu10k1/p16v.c +++ b/sound/pci/emu10k1/p16v.c @@ -121,7 +121,7 @@ */ /* hardware definition */ -static snd_pcm_hardware_t snd_p16v_playback_hw = { +static struct snd_pcm_hardware snd_p16v_playback_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -140,7 +140,7 @@ static snd_pcm_hardware_t snd_p16v_playback_hw = { .fifo_size = 0, }; -static snd_pcm_hardware_t snd_p16v_capture_hw = { +static struct snd_pcm_hardware snd_p16v_capture_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -159,9 +159,9 @@ static snd_pcm_hardware_t snd_p16v_capture_hw = { .fifo_size = 0, }; -static void snd_p16v_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_p16v_pcm_free_substream(struct snd_pcm_runtime *runtime) { - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1_pcm *epcm = runtime->private_data; if (epcm) { //snd_printk("epcm free: %p\n", epcm); @@ -170,12 +170,12 @@ static void snd_p16v_pcm_free_substream(snd_pcm_runtime_t *runtime) } /* open_playback callback */ -static int snd_p16v_pcm_open_playback_channel(snd_pcm_substream_t *substream, int channel_id) +static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substream, int channel_id) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_voice_t *channel = &(emu->p16v_voices[channel_id]); - emu10k1_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_voice *channel = &(emu->p16v_voices[channel_id]); + struct snd_emu10k1_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; int err; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); @@ -206,12 +206,12 @@ static int snd_p16v_pcm_open_playback_channel(snd_pcm_substream_t *substream, in return 0; } /* open_capture callback */ -static int snd_p16v_pcm_open_capture_channel(snd_pcm_substream_t *substream, int channel_id) +static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream, int channel_id) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - emu10k1_voice_t *channel = &(emu->p16v_capture_voice); - emu10k1_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_emu10k1_voice *channel = &(emu->p16v_capture_voice); + struct snd_emu10k1_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; int err; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); @@ -244,41 +244,41 @@ static int snd_p16v_pcm_open_capture_channel(snd_pcm_substream_t *substream, int /* close callback */ -static int snd_p16v_pcm_close_playback(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_close_playback(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - //snd_pcm_runtime_t *runtime = substream->runtime; - //emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + //struct snd_pcm_runtime *runtime = substream->runtime; + //struct snd_emu10k1_pcm *epcm = runtime->private_data; emu->p16v_voices[substream->pcm->device - emu->p16v_device_offset].use=0; /* FIXME: maybe zero others */ return 0; } /* close callback */ -static int snd_p16v_pcm_close_capture(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_close_capture(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - //snd_pcm_runtime_t *runtime = substream->runtime; - //emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + //struct snd_pcm_runtime *runtime = substream->runtime; + //struct snd_emu10k1_pcm *epcm = runtime->private_data; emu->p16v_capture_voice.use=0; /* FIXME: maybe zero others */ return 0; } -static int snd_p16v_pcm_open_playback_front(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_open_playback_front(struct snd_pcm_substream *substream) { return snd_p16v_pcm_open_playback_channel(substream, PCM_FRONT_CHANNEL); } -static int snd_p16v_pcm_open_capture(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_open_capture(struct snd_pcm_substream *substream) { // Only using channel 0 for now, but the card has 2 channels. return snd_p16v_pcm_open_capture_channel(substream, 0); } /* hw_params callback */ -static int snd_p16v_pcm_hw_params_playback(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t * hw_params) +static int snd_p16v_pcm_hw_params_playback(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { int result; result = snd_pcm_lib_malloc_pages(substream, @@ -287,8 +287,8 @@ static int snd_p16v_pcm_hw_params_playback(snd_pcm_substream_t *substream, } /* hw_params callback */ -static int snd_p16v_pcm_hw_params_capture(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t * hw_params) +static int snd_p16v_pcm_hw_params_capture(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { int result; result = snd_pcm_lib_malloc_pages(substream, @@ -298,7 +298,7 @@ static int snd_p16v_pcm_hw_params_capture(snd_pcm_substream_t *substream, /* hw_free callback */ -static int snd_p16v_pcm_hw_free_playback(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_hw_free_playback(struct snd_pcm_substream *substream) { int result; result = snd_pcm_lib_free_pages(substream); @@ -306,7 +306,7 @@ static int snd_p16v_pcm_hw_free_playback(snd_pcm_substream_t *substream) } /* hw_free callback */ -static int snd_p16v_pcm_hw_free_capture(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_hw_free_capture(struct snd_pcm_substream *substream) { int result; result = snd_pcm_lib_free_pages(substream); @@ -315,10 +315,10 @@ static int snd_p16v_pcm_hw_free_capture(snd_pcm_substream_t *substream) /* prepare playback callback */ -static int snd_p16v_pcm_prepare_playback(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_prepare_playback(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int channel = substream->pcm->device - emu->p16v_device_offset; u32 *table_base = (u32 *)(emu->p16v_buffer.area+(8*16*channel)); u32 period_size_bytes = frames_to_bytes(runtime, runtime->period_size); @@ -364,10 +364,10 @@ static int snd_p16v_pcm_prepare_playback(snd_pcm_substream_t *substream) } /* prepare capture callback */ -static int snd_p16v_pcm_prepare_capture(snd_pcm_substream_t *substream) +static int snd_p16v_pcm_prepare_capture(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int channel = substream->pcm->device - emu->p16v_device_offset; u32 tmp; //printk("prepare capture:channel_number=%d, rate=%d, format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, frames_to_bytes=%d\n",channel, runtime->rate, runtime->format, runtime->channels, runtime->buffer_size, runtime->period_size, frames_to_bytes(runtime, 1)); @@ -398,7 +398,7 @@ static int snd_p16v_pcm_prepare_capture(snd_pcm_substream_t *substream) return 0; } -static void snd_p16v_intr_enable(emu10k1_t *emu, unsigned int intrenb) +static void snd_p16v_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb) { unsigned long flags; unsigned int enable; @@ -409,7 +409,7 @@ static void snd_p16v_intr_enable(emu10k1_t *emu, unsigned int intrenb) spin_unlock_irqrestore(&emu->emu_lock, flags); } -static void snd_p16v_intr_disable(emu10k1_t *emu, unsigned int intrenb) +static void snd_p16v_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb) { unsigned long flags; unsigned int disable; @@ -421,16 +421,16 @@ static void snd_p16v_intr_disable(emu10k1_t *emu, unsigned int intrenb) } /* trigger_playback callback */ -static int snd_p16v_pcm_trigger_playback(snd_pcm_substream_t *substream, +static int snd_p16v_pcm_trigger_playback(struct snd_pcm_substream *substream, int cmd) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime; - emu10k1_pcm_t *epcm; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime; + struct snd_emu10k1_pcm *epcm; int channel; int result = 0; struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; u32 basic = 0; u32 inte = 0; int running=0; @@ -474,12 +474,12 @@ static int snd_p16v_pcm_trigger_playback(snd_pcm_substream_t *substream, } /* trigger_capture callback */ -static int snd_p16v_pcm_trigger_capture(snd_pcm_substream_t *substream, +static int snd_p16v_pcm_trigger_capture(struct snd_pcm_substream *substream, int cmd) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; int channel = 0; int result = 0; u32 inte = INTE2_CAPTURE_CH_0_LOOP | INTE2_CAPTURE_CH_0_HALF_LOOP; @@ -505,11 +505,11 @@ static int snd_p16v_pcm_trigger_capture(snd_pcm_substream_t *substream, /* pointer_playback callback */ static snd_pcm_uframes_t -snd_p16v_pcm_pointer_playback(snd_pcm_substream_t *substream) +snd_p16v_pcm_pointer_playback(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; snd_pcm_uframes_t ptr, ptr1, ptr2,ptr3,ptr4 = 0; int channel = substream->pcm->device - emu->p16v_device_offset; if (!epcm->running) @@ -530,11 +530,11 @@ snd_p16v_pcm_pointer_playback(snd_pcm_substream_t *substream) /* pointer_capture callback */ static snd_pcm_uframes_t -snd_p16v_pcm_pointer_capture(snd_pcm_substream_t *substream) +snd_p16v_pcm_pointer_capture(struct snd_pcm_substream *substream) { - emu10k1_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1_pcm_t *epcm = runtime->private_data; + struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_emu10k1_pcm *epcm = runtime->private_data; snd_pcm_uframes_t ptr, ptr1, ptr2 = 0; int channel = 0; @@ -554,7 +554,7 @@ snd_p16v_pcm_pointer_capture(snd_pcm_substream_t *substream) } /* operators */ -static snd_pcm_ops_t snd_p16v_playback_front_ops = { +static struct snd_pcm_ops snd_p16v_playback_front_ops = { .open = snd_p16v_pcm_open_playback_front, .close = snd_p16v_pcm_close_playback, .ioctl = snd_pcm_lib_ioctl, @@ -565,7 +565,7 @@ static snd_pcm_ops_t snd_p16v_playback_front_ops = { .pointer = snd_p16v_pcm_pointer_playback, }; -static snd_pcm_ops_t snd_p16v_capture_ops = { +static struct snd_pcm_ops snd_p16v_capture_ops = { .open = snd_p16v_pcm_open_capture, .close = snd_p16v_pcm_close_capture, .ioctl = snd_pcm_lib_ioctl, @@ -577,7 +577,7 @@ static snd_pcm_ops_t snd_p16v_capture_ops = { }; -int snd_p16v_free(emu10k1_t *chip) +int snd_p16v_free(struct snd_emu10k1 *chip) { // release the data if (chip->p16v_buffer.area) { @@ -587,10 +587,10 @@ int snd_p16v_free(emu10k1_t *chip) return 0; } -int snd_p16v_pcm(emu10k1_t *emu, int device, snd_pcm_t **rpcm) +int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm) { - snd_pcm_t *pcm; - snd_pcm_substream_t *substream; + struct snd_pcm *pcm; + struct snd_pcm_substream *substream; int err; int capture=1; @@ -641,7 +641,7 @@ int snd_p16v_pcm(emu10k1_t *emu, int device, snd_pcm_t **rpcm) return 0; } -static int snd_p16v_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_p16v_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -650,10 +650,10 @@ static int snd_p16v_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_p16v_volume_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol, int reg, int high_low) +static int snd_p16v_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol, int reg, int high_low) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); u32 value; value = snd_emu10k1_ptr20_read(emu, reg, high_low); @@ -667,71 +667,71 @@ static int snd_p16v_volume_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_p16v_volume_get_spdif_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_spdif_front(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER7; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_get_spdif_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_spdif_center_lfe(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER7; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_get_spdif_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_spdif_unknown(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER8; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_get_spdif_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_spdif_rear(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER8; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_get_analog_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_analog_front(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER9; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_get_analog_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_analog_center_lfe(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER9; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_get_analog_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_analog_rear(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER10; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_get_analog_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_get_analog_unknown(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER10; return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol, int reg, int high_low) +static int snd_p16v_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol, int reg, int high_low) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); u32 value; value = snd_emu10k1_ptr20_read(emu, reg, 0); //value = value & 0xffff; @@ -746,71 +746,71 @@ static int snd_p16v_volume_put(snd_kcontrol_t * kcontrol, return 1; } -static int snd_p16v_volume_put_spdif_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_spdif_front(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER7; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put_spdif_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_spdif_center_lfe(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER7; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put_spdif_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_spdif_unknown(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER8; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put_spdif_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_spdif_rear(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER8; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put_analog_front(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_analog_front(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER9; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put_analog_center_lfe(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_analog_center_lfe(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER9; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put_analog_rear(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_analog_rear(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 1; int reg = PLAYBACK_VOLUME_MIXER10; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static int snd_p16v_volume_put_analog_unknown(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_volume_put_analog_unknown(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int high_low = 0; int reg = PLAYBACK_VOLUME_MIXER10; return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); } -static snd_kcontrol_new_t snd_p16v_volume_control_analog_front = +static struct snd_kcontrol_new snd_p16v_volume_control_analog_front = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD Analog Front Playback Volume", @@ -819,7 +819,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_front = .put = snd_p16v_volume_put_analog_front }; -static snd_kcontrol_new_t snd_p16v_volume_control_analog_center_lfe = +static struct snd_kcontrol_new snd_p16v_volume_control_analog_center_lfe = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD Analog Center/LFE Playback Volume", @@ -828,7 +828,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_center_lfe = .put = snd_p16v_volume_put_analog_center_lfe }; -static snd_kcontrol_new_t snd_p16v_volume_control_analog_unknown = +static struct snd_kcontrol_new snd_p16v_volume_control_analog_unknown = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD Analog Unknown Playback Volume", @@ -837,7 +837,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_unknown = .put = snd_p16v_volume_put_analog_unknown }; -static snd_kcontrol_new_t snd_p16v_volume_control_analog_rear = +static struct snd_kcontrol_new snd_p16v_volume_control_analog_rear = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD Analog Rear Playback Volume", @@ -846,7 +846,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_rear = .put = snd_p16v_volume_put_analog_rear }; -static snd_kcontrol_new_t snd_p16v_volume_control_spdif_front = +static struct snd_kcontrol_new snd_p16v_volume_control_spdif_front = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD SPDIF Front Playback Volume", @@ -855,7 +855,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_front = .put = snd_p16v_volume_put_spdif_front }; -static snd_kcontrol_new_t snd_p16v_volume_control_spdif_center_lfe = +static struct snd_kcontrol_new snd_p16v_volume_control_spdif_center_lfe = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD SPDIF Center/LFE Playback Volume", @@ -864,7 +864,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_center_lfe = .put = snd_p16v_volume_put_spdif_center_lfe }; -static snd_kcontrol_new_t snd_p16v_volume_control_spdif_unknown = +static struct snd_kcontrol_new snd_p16v_volume_control_spdif_unknown = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD SPDIF Unknown Playback Volume", @@ -873,7 +873,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_unknown = .put = snd_p16v_volume_put_spdif_unknown }; -static snd_kcontrol_new_t snd_p16v_volume_control_spdif_rear = +static struct snd_kcontrol_new snd_p16v_volume_control_spdif_rear = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD SPDIF Rear Playback Volume", @@ -882,7 +882,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_rear = .put = snd_p16v_volume_put_spdif_rear }; -static int snd_p16v_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_p16v_capture_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[8] = { "SPDIF", "I2S", "SRC48", "SRCMulti_SPDIF", "SRCMulti_I2S", "CDIF", "FX", "AC97" }; @@ -895,19 +895,19 @@ static int snd_p16v_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_p16v_capture_source_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_capture_source_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = emu->p16v_capture_source; return 0; } -static int snd_p16v_capture_source_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_capture_source_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); unsigned int val; int change = 0; u32 mask; @@ -924,7 +924,7 @@ static int snd_p16v_capture_source_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_p16v_capture_source __devinitdata = +static struct snd_kcontrol_new snd_p16v_capture_source __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD source Capture", @@ -933,7 +933,7 @@ static snd_kcontrol_new_t snd_p16v_capture_source __devinitdata = .put = snd_p16v_capture_source_put }; -static int snd_p16v_capture_channel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_p16v_capture_channel_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[4] = { "0", "1", "2", "3", }; @@ -946,19 +946,19 @@ static int snd_p16v_capture_channel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_p16v_capture_channel_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_capture_channel_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = emu->p16v_capture_channel; return 0; } -static int snd_p16v_capture_channel_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_p16v_capture_channel_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); unsigned int val; int change = 0; u32 tmp; @@ -973,7 +973,7 @@ static int snd_p16v_capture_channel_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_p16v_capture_channel __devinitdata = +static struct snd_kcontrol_new snd_p16v_capture_channel __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "HD channel Capture", @@ -982,11 +982,11 @@ static snd_kcontrol_new_t snd_p16v_capture_channel __devinitdata = .put = snd_p16v_capture_channel_put }; -int snd_p16v_mixer(emu10k1_t *emu) +int snd_p16v_mixer(struct snd_emu10k1 *emu) { int err; - snd_kcontrol_t *kctl; - snd_card_t *card = emu->card; + struct snd_kcontrol *kctl; + struct snd_card *card = emu->card; if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_analog_front, emu)) == NULL) return -ENOMEM; if ((err = snd_ctl_add(card, kctl))) diff --git a/sound/pci/emu10k1/timer.c b/sound/pci/emu10k1/timer.c index d2e364607c1..6295b2dca78 100644 --- a/sound/pci/emu10k1/timer.c +++ b/sound/pci/emu10k1/timer.c @@ -30,9 +30,9 @@ #include #include -static int snd_emu10k1_timer_start(snd_timer_t *timer) +static int snd_emu10k1_timer_start(struct snd_timer *timer) { - emu10k1_t *emu; + struct snd_emu10k1 *emu; unsigned long flags; unsigned int delay; @@ -47,9 +47,9 @@ static int snd_emu10k1_timer_start(snd_timer_t *timer) return 0; } -static int snd_emu10k1_timer_stop(snd_timer_t *timer) +static int snd_emu10k1_timer_stop(struct snd_timer *timer) { - emu10k1_t *emu; + struct snd_emu10k1 *emu; unsigned long flags; emu = snd_timer_chip(timer); @@ -59,7 +59,7 @@ static int snd_emu10k1_timer_stop(snd_timer_t *timer) return 0; } -static int snd_emu10k1_timer_precise_resolution(snd_timer_t *timer, +static int snd_emu10k1_timer_precise_resolution(struct snd_timer *timer, unsigned long *num, unsigned long *den) { *num = 1; @@ -67,7 +67,7 @@ static int snd_emu10k1_timer_precise_resolution(snd_timer_t *timer, return 0; } -static struct _snd_timer_hardware snd_emu10k1_timer_hw = { +static struct snd_timer_hardware snd_emu10k1_timer_hw = { .flags = SNDRV_TIMER_HW_AUTO, .resolution = 20833, /* 1 sample @ 48KHZ = 20.833...us */ .ticks = 1024, @@ -76,10 +76,10 @@ static struct _snd_timer_hardware snd_emu10k1_timer_hw = { .precise_resolution = snd_emu10k1_timer_precise_resolution, }; -int __devinit snd_emu10k1_timer(emu10k1_t *emu, int device) +int __devinit snd_emu10k1_timer(struct snd_emu10k1 *emu, int device) { - 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; diff --git a/sound/pci/emu10k1/voice.c b/sound/pci/emu10k1/voice.c index d251d3440ee..56ffb7dc3ee 100644 --- a/sound/pci/emu10k1/voice.c +++ b/sound/pci/emu10k1/voice.c @@ -45,9 +45,10 @@ * --rlrevell */ -static int voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int number, emu10k1_voice_t **rvoice) +static int voice_alloc(struct snd_emu10k1 *emu, int type, int number, + struct snd_emu10k1_voice **rvoice) { - emu10k1_voice_t *voice; + struct snd_emu10k1_voice *voice; int i, j, k, first_voice, last_voice, skip; *rvoice = NULL; @@ -105,7 +106,8 @@ static int voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int number, em return 0; } -int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int number, emu10k1_voice_t **rvoice) +int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int number, + struct snd_emu10k1_voice **rvoice) { unsigned long flags; int result; @@ -123,7 +125,7 @@ int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int numbe if (emu->get_synth_voice) { result = emu->get_synth_voice(emu); if (result >= 0) { - emu10k1_voice_t *pvoice = &emu->voices[result]; + struct snd_emu10k1_voice *pvoice = &emu->voices[result]; pvoice->interrupt = NULL; pvoice->use = pvoice->pcm = pvoice->synth = pvoice->midi = pvoice->efx = 0; pvoice->epcm = NULL; @@ -137,7 +139,8 @@ int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int numbe return result; } -int snd_emu10k1_voice_free(emu10k1_t *emu, emu10k1_voice_t *pvoice) +int snd_emu10k1_voice_free(struct snd_emu10k1 *emu, + struct snd_emu10k1_voice *pvoice) { unsigned long flags; -- cgit v1.2.3-70-g09d2 From 4b32f1aae23f566e98fda140836023dd8275b5de Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:50:31 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI emu10k1x Modules: EMU10K1/EMU10K2 driver Remove xxx_t typedefs from the PCI emu10k1x driver. Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/emu10k1x.c | 337 +++++++++++++++++++++---------------------- 1 file changed, 168 insertions(+), 169 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index 6c61ac60afd..1107c8ec7f7 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c @@ -195,30 +195,26 @@ MODULE_PARM_DESC(enable, "Enable the EMU10K1X soundcard."); * playback. */ -typedef struct snd_emu10k1x_voice emu10k1x_voice_t; -typedef struct snd_emu10k1x emu10k1x_t; -typedef struct snd_emu10k1x_pcm emu10k1x_pcm_t; - -struct snd_emu10k1x_voice { - emu10k1x_t *emu; +struct emu10k1x_voice { + struct emu10k1x *emu; int number; int use; - emu10k1x_pcm_t *epcm; + struct emu10k1x_pcm *epcm; }; -struct snd_emu10k1x_pcm { - emu10k1x_t *emu; - snd_pcm_substream_t *substream; - emu10k1x_voice_t *voice; +struct emu10k1x_pcm { + struct emu10k1x *emu; + struct snd_pcm_substream *substream; + struct emu10k1x_voice *voice; unsigned short running; }; -typedef struct { - struct snd_emu10k1x *emu; - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *substream_input; - snd_rawmidi_substream_t *substream_output; +struct emu10k1x_midi { + struct emu10k1x *emu; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *substream_input; + struct snd_rawmidi_substream *substream_output; unsigned int midi_mode; spinlock_t input_lock; spinlock_t output_lock; @@ -226,12 +222,12 @@ typedef struct { int tx_enable, rx_enable; int port; int ipr_tx, ipr_rx; - void (*interrupt)(emu10k1x_t *emu, unsigned int status); -} emu10k1x_midi_t; + void (*interrupt)(struct emu10k1x *emu, unsigned int status); +}; // definition of the chip-specific record -struct snd_emu10k1x { - snd_card_t *card; +struct emu10k1x { + struct snd_card *card; struct pci_dev *pci; unsigned long port; @@ -245,20 +241,20 @@ struct snd_emu10k1x { spinlock_t emu_lock; spinlock_t voice_lock; - ac97_t *ac97; - snd_pcm_t *pcm; + struct snd_ac97 *ac97; + struct snd_pcm *pcm; - emu10k1x_voice_t voices[3]; - emu10k1x_voice_t capture_voice; + struct emu10k1x_voice voices[3]; + struct emu10k1x_voice capture_voice; u32 spdif_bits[3]; // SPDIF out setup struct snd_dma_buffer dma_buffer; - emu10k1x_midi_t midi; + struct emu10k1x_midi midi; }; /* hardware definition */ -static snd_pcm_hardware_t snd_emu10k1x_playback_hw = { +static struct snd_pcm_hardware snd_emu10k1x_playback_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -277,7 +273,7 @@ static snd_pcm_hardware_t snd_emu10k1x_playback_hw = { .fifo_size = 0, }; -static snd_pcm_hardware_t snd_emu10k1x_capture_hw = { +static struct snd_pcm_hardware snd_emu10k1x_capture_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -296,7 +292,7 @@ static snd_pcm_hardware_t snd_emu10k1x_capture_hw = { .fifo_size = 0, }; -static unsigned int snd_emu10k1x_ptr_read(emu10k1x_t * emu, +static unsigned int snd_emu10k1x_ptr_read(struct emu10k1x * emu, unsigned int reg, unsigned int chn) { @@ -312,7 +308,7 @@ static unsigned int snd_emu10k1x_ptr_read(emu10k1x_t * emu, return val; } -static void snd_emu10k1x_ptr_write(emu10k1x_t *emu, +static void snd_emu10k1x_ptr_write(struct emu10k1x *emu, unsigned int reg, unsigned int chn, unsigned int data) @@ -328,7 +324,7 @@ static void snd_emu10k1x_ptr_write(emu10k1x_t *emu, spin_unlock_irqrestore(&emu->emu_lock, flags); } -static void snd_emu10k1x_intr_enable(emu10k1x_t *emu, unsigned int intrenb) +static void snd_emu10k1x_intr_enable(struct emu10k1x *emu, unsigned int intrenb) { unsigned long flags; unsigned int enable; @@ -339,7 +335,7 @@ static void snd_emu10k1x_intr_enable(emu10k1x_t *emu, unsigned int intrenb) spin_unlock_irqrestore(&emu->emu_lock, flags); } -static void snd_emu10k1x_intr_disable(emu10k1x_t *emu, unsigned int intrenb) +static void snd_emu10k1x_intr_disable(struct emu10k1x *emu, unsigned int intrenb) { unsigned long flags; unsigned int enable; @@ -350,7 +346,7 @@ static void snd_emu10k1x_intr_disable(emu10k1x_t *emu, unsigned int intrenb) spin_unlock_irqrestore(&emu->emu_lock, flags); } -static void snd_emu10k1x_gpio_write(emu10k1x_t *emu, unsigned int value) +static void snd_emu10k1x_gpio_write(struct emu10k1x *emu, unsigned int value) { unsigned long flags; @@ -359,14 +355,14 @@ static void snd_emu10k1x_gpio_write(emu10k1x_t *emu, unsigned int value) spin_unlock_irqrestore(&emu->emu_lock, flags); } -static void snd_emu10k1x_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_emu10k1x_pcm_free_substream(struct snd_pcm_runtime *runtime) { kfree(runtime->private_data); } -static void snd_emu10k1x_pcm_interrupt(emu10k1x_t *emu, emu10k1x_voice_t *voice) +static void snd_emu10k1x_pcm_interrupt(struct emu10k1x *emu, struct emu10k1x_voice *voice) { - emu10k1x_pcm_t *epcm; + struct emu10k1x_pcm *epcm; if ((epcm = voice->epcm) == NULL) return; @@ -382,11 +378,11 @@ static void snd_emu10k1x_pcm_interrupt(emu10k1x_t *emu, emu10k1x_voice_t *voice) } /* open callback */ -static int snd_emu10k1x_playback_open(snd_pcm_substream_t *substream) +static int snd_emu10k1x_playback_open(struct snd_pcm_substream *substream) { - emu10k1x_t *chip = snd_pcm_substream_chip(substream); - emu10k1x_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct emu10k1x *chip = snd_pcm_substream_chip(substream); + struct emu10k1x_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; int err; if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) { @@ -410,17 +406,17 @@ static int snd_emu10k1x_playback_open(snd_pcm_substream_t *substream) } /* close callback */ -static int snd_emu10k1x_playback_close(snd_pcm_substream_t *substream) +static int snd_emu10k1x_playback_close(struct snd_pcm_substream *substream) { return 0; } /* hw_params callback */ -static int snd_emu10k1x_pcm_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t * hw_params) +static int snd_emu10k1x_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm = runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm = runtime->private_data; if (! epcm->voice) { epcm->voice = &epcm->emu->voices[substream->pcm->device]; @@ -433,10 +429,10 @@ static int snd_emu10k1x_pcm_hw_params(snd_pcm_substream_t *substream, } /* hw_free callback */ -static int snd_emu10k1x_pcm_hw_free(snd_pcm_substream_t *substream) +static int snd_emu10k1x_pcm_hw_free(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm; if (runtime->private_data == NULL) return 0; @@ -453,11 +449,11 @@ static int snd_emu10k1x_pcm_hw_free(snd_pcm_substream_t *substream) } /* prepare callback */ -static int snd_emu10k1x_pcm_prepare(snd_pcm_substream_t *substream) +static int snd_emu10k1x_pcm_prepare(struct snd_pcm_substream *substream) { - emu10k1x_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm = runtime->private_data; + struct emu10k1x *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm = runtime->private_data; int voice = epcm->voice->number; u32 *table_base = (u32 *)(emu->dma_buffer.area+1024*voice); u32 period_size_bytes = frames_to_bytes(runtime, runtime->period_size); @@ -482,12 +478,12 @@ static int snd_emu10k1x_pcm_prepare(snd_pcm_substream_t *substream) } /* trigger callback */ -static int snd_emu10k1x_pcm_trigger(snd_pcm_substream_t *substream, +static int snd_emu10k1x_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - emu10k1x_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm = runtime->private_data; + struct emu10k1x *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm = runtime->private_data; int channel = epcm->voice->number; int result = 0; @@ -516,11 +512,11 @@ static int snd_emu10k1x_pcm_trigger(snd_pcm_substream_t *substream, /* pointer callback */ static snd_pcm_uframes_t -snd_emu10k1x_pcm_pointer(snd_pcm_substream_t *substream) +snd_emu10k1x_pcm_pointer(struct snd_pcm_substream *substream) { - emu10k1x_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm = runtime->private_data; + struct emu10k1x *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm = runtime->private_data; int channel = epcm->voice->number; snd_pcm_uframes_t ptr = 0, ptr1 = 0, ptr2= 0,ptr3 = 0,ptr4 = 0; @@ -547,7 +543,7 @@ snd_emu10k1x_pcm_pointer(snd_pcm_substream_t *substream) } /* operators */ -static snd_pcm_ops_t snd_emu10k1x_playback_ops = { +static struct snd_pcm_ops snd_emu10k1x_playback_ops = { .open = snd_emu10k1x_playback_open, .close = snd_emu10k1x_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -559,11 +555,11 @@ static snd_pcm_ops_t snd_emu10k1x_playback_ops = { }; /* open_capture callback */ -static int snd_emu10k1x_pcm_open_capture(snd_pcm_substream_t *substream) +static int snd_emu10k1x_pcm_open_capture(struct snd_pcm_substream *substream) { - emu10k1x_t *chip = snd_pcm_substream_chip(substream); - emu10k1x_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct emu10k1x *chip = snd_pcm_substream_chip(substream); + struct emu10k1x_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; int err; if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) @@ -587,17 +583,17 @@ static int snd_emu10k1x_pcm_open_capture(snd_pcm_substream_t *substream) } /* close callback */ -static int snd_emu10k1x_pcm_close_capture(snd_pcm_substream_t *substream) +static int snd_emu10k1x_pcm_close_capture(struct snd_pcm_substream *substream) { return 0; } /* hw_params callback */ -static int snd_emu10k1x_pcm_hw_params_capture(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t * hw_params) +static int snd_emu10k1x_pcm_hw_params_capture(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm = runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm = runtime->private_data; if (! epcm->voice) { if (epcm->emu->capture_voice.use) @@ -612,11 +608,11 @@ static int snd_emu10k1x_pcm_hw_params_capture(snd_pcm_substream_t *substream, } /* hw_free callback */ -static int snd_emu10k1x_pcm_hw_free_capture(snd_pcm_substream_t *substream) +static int snd_emu10k1x_pcm_hw_free_capture(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; - emu10k1x_pcm_t *epcm; + struct emu10k1x_pcm *epcm; if (runtime->private_data == NULL) return 0; @@ -632,10 +628,10 @@ static int snd_emu10k1x_pcm_hw_free_capture(snd_pcm_substream_t *substream) } /* prepare capture callback */ -static int snd_emu10k1x_pcm_prepare_capture(snd_pcm_substream_t *substream) +static int snd_emu10k1x_pcm_prepare_capture(struct snd_pcm_substream *substream) { - emu10k1x_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct emu10k1x *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_emu10k1x_ptr_write(emu, CAPTURE_DMA_ADDR, 0, runtime->dma_addr); snd_emu10k1x_ptr_write(emu, CAPTURE_BUFFER_SIZE, 0, frames_to_bytes(runtime, runtime->buffer_size)<<16); // buffer size in bytes @@ -646,12 +642,12 @@ static int snd_emu10k1x_pcm_prepare_capture(snd_pcm_substream_t *substream) } /* trigger_capture callback */ -static int snd_emu10k1x_pcm_trigger_capture(snd_pcm_substream_t *substream, +static int snd_emu10k1x_pcm_trigger_capture(struct snd_pcm_substream *substream, int cmd) { - emu10k1x_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm = runtime->private_data; + struct emu10k1x *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm = runtime->private_data; int result = 0; switch (cmd) { @@ -676,11 +672,11 @@ static int snd_emu10k1x_pcm_trigger_capture(snd_pcm_substream_t *substream, /* pointer_capture callback */ static snd_pcm_uframes_t -snd_emu10k1x_pcm_pointer_capture(snd_pcm_substream_t *substream) +snd_emu10k1x_pcm_pointer_capture(struct snd_pcm_substream *substream) { - emu10k1x_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - emu10k1x_pcm_t *epcm = runtime->private_data; + struct emu10k1x *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct emu10k1x_pcm *epcm = runtime->private_data; snd_pcm_uframes_t ptr; if (!epcm->running) @@ -693,7 +689,7 @@ snd_emu10k1x_pcm_pointer_capture(snd_pcm_substream_t *substream) return ptr; } -static snd_pcm_ops_t snd_emu10k1x_capture_ops = { +static struct snd_pcm_ops snd_emu10k1x_capture_ops = { .open = snd_emu10k1x_pcm_open_capture, .close = snd_emu10k1x_pcm_close_capture, .ioctl = snd_pcm_lib_ioctl, @@ -704,10 +700,10 @@ static snd_pcm_ops_t snd_emu10k1x_capture_ops = { .pointer = snd_emu10k1x_pcm_pointer_capture, }; -static unsigned short snd_emu10k1x_ac97_read(ac97_t *ac97, +static unsigned short snd_emu10k1x_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - emu10k1x_t *emu = ac97->private_data; + struct emu10k1x *emu = ac97->private_data; unsigned long flags; unsigned short val; @@ -718,10 +714,10 @@ static unsigned short snd_emu10k1x_ac97_read(ac97_t *ac97, return val; } -static void snd_emu10k1x_ac97_write(ac97_t *ac97, +static void snd_emu10k1x_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - emu10k1x_t *emu = ac97->private_data; + struct emu10k1x *emu = ac97->private_data; unsigned long flags; spin_lock_irqsave(&emu->emu_lock, flags); @@ -730,12 +726,12 @@ static void snd_emu10k1x_ac97_write(ac97_t *ac97, spin_unlock_irqrestore(&emu->emu_lock, flags); } -static int snd_emu10k1x_ac97(emu10k1x_t *chip) +static int snd_emu10k1x_ac97(struct emu10k1x *chip) { - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_emu10k1x_ac97_write, .read = snd_emu10k1x_ac97_read, }; @@ -750,7 +746,7 @@ static int snd_emu10k1x_ac97(emu10k1x_t *chip) return snd_ac97_mixer(pbus, &ac97, &chip->ac97); } -static int snd_emu10k1x_free(emu10k1x_t *chip) +static int snd_emu10k1x_free(struct emu10k1x *chip) { snd_emu10k1x_ptr_write(chip, TRIGGER_CHANNEL, 0, 0); // disable interrupts @@ -777,9 +773,9 @@ static int snd_emu10k1x_free(emu10k1x_t *chip) return 0; } -static int snd_emu10k1x_dev_free(snd_device_t *device) +static int snd_emu10k1x_dev_free(struct snd_device *device) { - emu10k1x_t *chip = device->device_data; + struct emu10k1x *chip = device->device_data; return snd_emu10k1x_free(chip); } @@ -788,8 +784,8 @@ static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, { unsigned int status; - emu10k1x_t *chip = dev_id; - emu10k1x_voice_t *pvoice = chip->voices; + struct emu10k1x *chip = dev_id; + struct emu10k1x_voice *pvoice = chip->voices; int i; int mask; @@ -800,8 +796,8 @@ static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, // capture interrupt if (status & (IPR_CAP_0_LOOP | IPR_CAP_0_HALF_LOOP)) { - emu10k1x_voice_t *pvoice = &chip->capture_voice; - if(pvoice->use) + struct emu10k1x_voice *pvoice = &chip->capture_voice; + if (pvoice->use) snd_emu10k1x_pcm_interrupt(chip, pvoice); else snd_emu10k1x_intr_disable(chip, @@ -835,9 +831,9 @@ static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, return IRQ_HANDLED; } -static int __devinit snd_emu10k1x_pcm(emu10k1x_t *emu, int device, snd_pcm_t **rpcm) +static int __devinit snd_emu10k1x_pcm(struct emu10k1x *emu, int device, struct snd_pcm **rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; int capture = 0; @@ -887,14 +883,14 @@ static int __devinit snd_emu10k1x_pcm(emu10k1x_t *emu, int device, snd_pcm_t **r return 0; } -static int __devinit snd_emu10k1x_create(snd_card_t *card, +static int __devinit snd_emu10k1x_create(struct snd_card *card, struct pci_dev *pci, - emu10k1x_t **rchip) + struct emu10k1x **rchip) { - emu10k1x_t *chip; + struct emu10k1x *chip; int err; int ch; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_emu10k1x_dev_free, }; @@ -1008,10 +1004,10 @@ static int __devinit snd_emu10k1x_create(snd_card_t *card, return 0; } -static void snd_emu10k1x_proc_reg_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_emu10k1x_proc_reg_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - emu10k1x_t *emu = entry->private_data; + struct emu10k1x *emu = entry->private_data; unsigned long value,value1,value2; unsigned long flags; int i; @@ -1036,10 +1032,10 @@ static void snd_emu10k1x_proc_reg_read(snd_info_entry_t *entry, } } -static void snd_emu10k1x_proc_reg_write(snd_info_entry_t *entry, - snd_info_buffer_t *buffer) +static void snd_emu10k1x_proc_reg_write(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - emu10k1x_t *emu = entry->private_data; + struct emu10k1x *emu = entry->private_data; char line[64]; unsigned int reg, channel_id , val; @@ -1053,9 +1049,9 @@ static void snd_emu10k1x_proc_reg_write(snd_info_entry_t *entry, } } -static int __devinit snd_emu10k1x_proc_init(emu10k1x_t * emu) +static int __devinit snd_emu10k1x_proc_init(struct emu10k1x * emu) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if(! snd_card_proc_new(emu->card, "emu10k1x_regs", &entry)) { snd_info_set_text_ops(entry, emu, 1024, snd_emu10k1x_proc_reg_read); @@ -1068,7 +1064,7 @@ static int __devinit snd_emu10k1x_proc_init(emu10k1x_t * emu) return 0; } -static int snd_emu10k1x_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1x_shared_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1077,20 +1073,20 @@ static int snd_emu10k1x_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_emu10k1x_shared_spdif_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1x_shared_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1x_t *emu = snd_kcontrol_chip(kcontrol); + struct emu10k1x *emu = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = (snd_emu10k1x_ptr_read(emu, SPDIF_SELECT, 0) == 0x700) ? 0 : 1; return 0; } -static int snd_emu10k1x_shared_spdif_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1x_shared_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1x_t *emu = snd_kcontrol_chip(kcontrol); + struct emu10k1x *emu = snd_kcontrol_chip(kcontrol); unsigned int val; int change = 0; @@ -1110,7 +1106,7 @@ static int snd_emu10k1x_shared_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1x_shared_spdif __devinitdata = +static struct snd_kcontrol_new snd_emu10k1x_shared_spdif __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Analog/Digital Output Jack", @@ -1119,17 +1115,17 @@ static snd_kcontrol_new_t snd_emu10k1x_shared_spdif __devinitdata = .put = snd_emu10k1x_shared_spdif_put }; -static int snd_emu10k1x_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_emu10k1x_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_emu10k1x_spdif_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1x_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1x_t *emu = snd_kcontrol_chip(kcontrol); + struct emu10k1x *emu = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); ucontrol->value.iec958.status[0] = (emu->spdif_bits[idx] >> 0) & 0xff; @@ -1139,8 +1135,8 @@ static int snd_emu10k1x_spdif_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1x_spdif_get_mask(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1x_spdif_get_mask(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -1149,10 +1145,10 @@ static int snd_emu10k1x_spdif_get_mask(snd_kcontrol_t * kcontrol, return 0; } -static int snd_emu10k1x_spdif_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_emu10k1x_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - emu10k1x_t *emu = snd_kcontrol_chip(kcontrol); + struct emu10k1x *emu = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int change; unsigned int val; @@ -1169,7 +1165,7 @@ static int snd_emu10k1x_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_emu10k1x_spdif_mask_control = +static struct snd_kcontrol_new snd_emu10k1x_spdif_mask_control = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1179,7 +1175,7 @@ static snd_kcontrol_new_t snd_emu10k1x_spdif_mask_control = .get = snd_emu10k1x_spdif_get_mask }; -static snd_kcontrol_new_t snd_emu10k1x_spdif_control = +static struct snd_kcontrol_new snd_emu10k1x_spdif_control = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -1189,11 +1185,11 @@ static snd_kcontrol_new_t snd_emu10k1x_spdif_control = .put = snd_emu10k1x_spdif_put }; -static int __devinit snd_emu10k1x_mixer(emu10k1x_t *emu) +static int __devinit snd_emu10k1x_mixer(struct emu10k1x *emu) { int err; - snd_kcontrol_t *kctl; - snd_card_t *card = emu->card; + struct snd_kcontrol *kctl; + struct snd_card *card = emu->card; if ((kctl = snd_ctl_new1(&snd_emu10k1x_spdif_mask_control, emu)) == NULL) return -ENOMEM; @@ -1214,12 +1210,12 @@ static int __devinit snd_emu10k1x_mixer(emu10k1x_t *emu) #define EMU10K1X_MIDI_MODE_INPUT (1<<0) #define EMU10K1X_MIDI_MODE_OUTPUT (1<<1) -static inline unsigned char mpu401_read(emu10k1x_t *emu, emu10k1x_midi_t *mpu, int idx) +static inline unsigned char mpu401_read(struct emu10k1x *emu, struct emu10k1x_midi *mpu, int idx) { return (unsigned char)snd_emu10k1x_ptr_read(emu, mpu->port + idx, 0); } -static inline void mpu401_write(emu10k1x_t *emu, emu10k1x_midi_t *mpu, int data, int idx) +static inline void mpu401_write(struct emu10k1x *emu, struct emu10k1x_midi *mpu, int data, int idx) { snd_emu10k1x_ptr_write(emu, mpu->port + idx, 0, data); } @@ -1236,7 +1232,7 @@ static inline void mpu401_write(emu10k1x_t *emu, emu10k1x_midi_t *mpu, int data, #define MPU401_ENTER_UART 0x3f #define MPU401_ACK 0xfe -static void mpu401_clear_rx(emu10k1x_t *emu, emu10k1x_midi_t *mpu) +static void mpu401_clear_rx(struct emu10k1x *emu, struct emu10k1x_midi *mpu) { int timeout = 100000; for (; timeout > 0 && mpu401_input_avail(emu, mpu); timeout--) @@ -1251,7 +1247,8 @@ static void mpu401_clear_rx(emu10k1x_t *emu, emu10k1x_midi_t *mpu) */ -static void do_emu10k1x_midi_interrupt(emu10k1x_t *emu, emu10k1x_midi_t *midi, unsigned int status) +static void do_emu10k1x_midi_interrupt(struct emu10k1x *emu, + struct emu10k1x_midi *midi, unsigned int status) { unsigned char byte; @@ -1284,12 +1281,13 @@ static void do_emu10k1x_midi_interrupt(emu10k1x_t *emu, emu10k1x_midi_t *midi, u spin_unlock(&midi->output_lock); } -static void snd_emu10k1x_midi_interrupt(emu10k1x_t *emu, unsigned int status) +static void snd_emu10k1x_midi_interrupt(struct emu10k1x *emu, unsigned int status) { do_emu10k1x_midi_interrupt(emu, &emu->midi, status); } -static void snd_emu10k1x_midi_cmd(emu10k1x_t * emu, emu10k1x_midi_t *midi, unsigned char cmd, int ack) +static void snd_emu10k1x_midi_cmd(struct emu10k1x * emu, + struct emu10k1x_midi *midi, unsigned char cmd, int ack) { unsigned long flags; int timeout, ok; @@ -1321,10 +1319,10 @@ static void snd_emu10k1x_midi_cmd(emu10k1x_t * emu, emu10k1x_midi_t *midi, unsig mpu401_read_data(emu, midi)); } -static int snd_emu10k1x_midi_input_open(snd_rawmidi_substream_t * substream) +static int snd_emu10k1x_midi_input_open(struct snd_rawmidi_substream *substream) { - emu10k1x_t *emu; - emu10k1x_midi_t *midi = (emu10k1x_midi_t *)substream->rmidi->private_data; + struct emu10k1x *emu; + struct emu10k1x_midi *midi = substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -1342,10 +1340,10 @@ static int snd_emu10k1x_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_emu10k1x_midi_output_open(snd_rawmidi_substream_t * substream) +static int snd_emu10k1x_midi_output_open(struct snd_rawmidi_substream *substream) { - emu10k1x_t *emu; - emu10k1x_midi_t *midi = (emu10k1x_midi_t *)substream->rmidi->private_data; + struct emu10k1x *emu; + struct emu10k1x_midi *midi = substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -1363,10 +1361,10 @@ static int snd_emu10k1x_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_emu10k1x_midi_input_close(snd_rawmidi_substream_t * substream) +static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream) { - emu10k1x_t *emu; - emu10k1x_midi_t *midi = (emu10k1x_midi_t *)substream->rmidi->private_data; + struct emu10k1x *emu; + struct emu10k1x_midi *midi = substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -1384,10 +1382,10 @@ static int snd_emu10k1x_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int snd_emu10k1x_midi_output_close(snd_rawmidi_substream_t * substream) +static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substream) { - emu10k1x_t *emu; - emu10k1x_midi_t *midi = (emu10k1x_midi_t *)substream->rmidi->private_data; + struct emu10k1x *emu; + struct emu10k1x_midi *midi = substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -1405,10 +1403,10 @@ static int snd_emu10k1x_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static void snd_emu10k1x_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_emu10k1x_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { - emu10k1x_t *emu; - emu10k1x_midi_t *midi = (emu10k1x_midi_t *)substream->rmidi->private_data; + struct emu10k1x *emu; + struct emu10k1x_midi *midi = substream->rmidi->private_data; emu = midi->emu; snd_assert(emu, return); @@ -1418,10 +1416,10 @@ static void snd_emu10k1x_midi_input_trigger(snd_rawmidi_substream_t * substream, snd_emu10k1x_intr_disable(emu, midi->rx_enable); } -static void snd_emu10k1x_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_emu10k1x_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { - emu10k1x_t *emu; - emu10k1x_midi_t *midi = (emu10k1x_midi_t *)substream->rmidi->private_data; + struct emu10k1x *emu; + struct emu10k1x_midi *midi = substream->rmidi->private_data; unsigned long flags; emu = midi->emu; @@ -1458,30 +1456,31 @@ static void snd_emu10k1x_midi_output_trigger(snd_rawmidi_substream_t * substream */ -static snd_rawmidi_ops_t snd_emu10k1x_midi_output = +static struct snd_rawmidi_ops snd_emu10k1x_midi_output = { .open = snd_emu10k1x_midi_output_open, .close = snd_emu10k1x_midi_output_close, .trigger = snd_emu10k1x_midi_output_trigger, }; -static snd_rawmidi_ops_t snd_emu10k1x_midi_input = +static struct snd_rawmidi_ops snd_emu10k1x_midi_input = { .open = snd_emu10k1x_midi_input_open, .close = snd_emu10k1x_midi_input_close, .trigger = snd_emu10k1x_midi_input_trigger, }; -static void snd_emu10k1x_midi_free(snd_rawmidi_t *rmidi) +static void snd_emu10k1x_midi_free(struct snd_rawmidi *rmidi) { - emu10k1x_midi_t *midi = (emu10k1x_midi_t *)rmidi->private_data; + struct emu10k1x_midi *midi = rmidi->private_data; midi->interrupt = NULL; midi->rmidi = NULL; } -static int __devinit emu10k1x_midi_init(emu10k1x_t *emu, emu10k1x_midi_t *midi, int device, char *name) +static int __devinit emu10k1x_midi_init(struct emu10k1x *emu, + struct emu10k1x_midi *midi, int device, char *name) { - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; int err; if ((err = snd_rawmidi_new(emu->card, name, device, 1, 1, &rmidi)) < 0) @@ -1502,9 +1501,9 @@ static int __devinit emu10k1x_midi_init(emu10k1x_t *emu, emu10k1x_midi_t *midi, return 0; } -static int __devinit snd_emu10k1x_midi(emu10k1x_t *emu) +static int __devinit snd_emu10k1x_midi(struct emu10k1x *emu) { - emu10k1x_midi_t *midi = &emu->midi; + struct emu10k1x_midi *midi = &emu->midi; int err; if ((err = emu10k1x_midi_init(emu, midi, 0, "EMU10K1X MPU-401 (UART)")) < 0) @@ -1523,8 +1522,8 @@ static int __devinit snd_emu10k1x_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - emu10k1x_t *chip; + struct snd_card *card; + struct emu10k1x *chip; int err; if (dev >= SNDRV_CARDS) -- cgit v1.2.3-70-g09d2 From 55e957d8328ef1c75238b95033d8a61994b6adcc Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:52:13 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI HDSP Modules: RME HDSP driver Remove xxx_t typedefs from the PCI HDSP driver. Signed-off-by: Takashi Iwai --- include/sound/hdsp.h | 51 ++-- sound/pci/rme9652/hdsp.c | 744 +++++++++++++++++++++++------------------------ 2 files changed, 394 insertions(+), 401 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/hdsp.h b/include/sound/hdsp.h index 7ce3aa67e5d..25e1951a995 100644 --- a/include/sound/hdsp.h +++ b/include/sound/hdsp.h @@ -21,17 +21,15 @@ #define HDSP_MATRIX_MIXER_SIZE 2048 -typedef enum { +enum HDSP_IO_Type { Digiface, Multiface, H9652, H9632, Undefined, -} HDSP_IO_Type; - -typedef struct _snd_hdsp_peak_rms hdsp_peak_rms_t; +}; -struct _snd_hdsp_peak_rms { +struct hdsp_peak_rms { u32 input_peaks[26]; u32 playback_peaks[26]; u32 output_peaks[28]; @@ -41,11 +39,9 @@ struct _snd_hdsp_peak_rms { u64 output_rms[26]; }; -#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, hdsp_peak_rms_t) +#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct hdsp_peak_rms) -typedef struct _snd_hdsp_config_info hdsp_config_info_t; - -struct _snd_hdsp_config_info { +struct hdsp_config_info { unsigned char pref_sync_ref; unsigned char wordclock_sync_check; unsigned char spdif_sync_check; @@ -71,40 +67,41 @@ struct _snd_hdsp_config_info { unsigned char analog_extension_board; }; -#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, hdsp_config_info_t) - -typedef struct _snd_hdsp_firmware hdsp_firmware_t; +#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info) -struct _snd_hdsp_firmware { +struct hdsp_firmware { void __user *firmware_data; /* 24413 x 4 bytes */ }; -#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, hdsp_firmware_t) +#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware) -typedef struct _snd_hdsp_version hdsp_version_t; - -struct _snd_hdsp_version { - HDSP_IO_Type io_type; +struct hdsp_version { + enum HDSP_IO_Type io_type; unsigned short firmware_rev; }; -#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, hdsp_version_t) - -typedef struct _snd_hdsp_mixer hdsp_mixer_t; +#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, struct hdsp_version) -struct _snd_hdsp_mixer { +struct hdsp_mixer { unsigned short matrix[HDSP_MATRIX_MIXER_SIZE]; }; -#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, hdsp_mixer_t) +#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdsp_mixer) -typedef struct _snd_hdsp_9632_aeb hdsp_9632_aeb_t; - -struct _snd_hdsp_9632_aeb { +struct hdsp_9632_aeb { int aebi; int aebo; }; -#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, hdsp_9632_aeb_t) +#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb) + +/* typedefs for compatibility to user-space */ +typedef enum HDSP_IO_Type HDSP_IO_Type; +typedef struct hdsp_peak_rms hdsp_peak_rms_t; +typedef struct hdsp_config_info hdsp_config_info_t; +typedef struct hdsp_firmware hdsp_firmware_t; +typedef struct hdsp_version hdsp_version_t; +typedef struct hdsp_mixer hdsp_mixer_t; +typedef struct hdsp_9632_aeb hdsp_9632_aeb_t; #endif /* __SOUND_HDSP_H */ diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index d15ffb3e9b0..ebf7a2b86c2 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c @@ -394,11 +394,7 @@ MODULE_SUPPORTED_DEVICE("{{RME Hammerfall-DSP}," #endif #endif -typedef struct _hdsp hdsp_t; -typedef struct _hdsp_midi hdsp_midi_t; -typedef struct _hdsp_9632_meters hdsp_9632_meters_t; - -struct _hdsp_9632_meters { +struct hdsp_9632_meters { u32 input_peak[16]; u32 playback_peak[16]; u32 output_peak[16]; @@ -414,23 +410,23 @@ struct _hdsp_9632_meters { u32 xxx_rms_high[16]; }; -struct _hdsp_midi { - hdsp_t *hdsp; +struct hdsp_midi { + struct hdsp *hdsp; int id; - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *input; - snd_rawmidi_substream_t *output; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *input; + struct snd_rawmidi_substream *output; char istimer; /* timer in use */ struct timer_list timer; spinlock_t lock; int pending; }; -struct _hdsp { +struct hdsp { spinlock_t lock; - snd_pcm_substream_t *capture_substream; - snd_pcm_substream_t *playback_substream; - hdsp_midi_t midi[2]; + struct snd_pcm_substream *capture_substream; + struct snd_pcm_substream *playback_substream; + struct hdsp_midi midi[2]; struct tasklet_struct midi_tasklet; int use_midi_tasklet; int precise_ptr; @@ -440,7 +436,7 @@ struct _hdsp { u32 creg_spdif_stream; int clock_source_locked; char *card_name; /* digiface/multiface */ - HDSP_IO_Type io_type; /* ditto, but for code use */ + enum HDSP_IO_Type io_type; /* ditto, but for code use */ unsigned short firmware_rev; unsigned short state; /* stores state bits */ u32 firmware_cache[24413]; /* this helps recover from accidental iobox power failure */ @@ -467,11 +463,11 @@ struct _hdsp { int irq; unsigned long port; void __iomem *iobase; - snd_card_t *card; - snd_pcm_t *pcm; - snd_hwdep_t *hwdep; + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_hwdep *hwdep; struct pci_dev *pci; - snd_kcontrol_t *spdif_ctl; + struct snd_kcontrol *spdif_ctl; unsigned short mixer_matrix[HDSP_MATRIX_MIXER_SIZE]; }; @@ -585,17 +581,17 @@ static struct pci_device_id snd_hdsp_ids[] = { MODULE_DEVICE_TABLE(pci, snd_hdsp_ids); /* prototypes */ -static int snd_hdsp_create_alsa_devices(snd_card_t *card, hdsp_t *hdsp); -static int snd_hdsp_create_pcm(snd_card_t *card, hdsp_t *hdsp); -static int snd_hdsp_enable_io (hdsp_t *hdsp); -static void snd_hdsp_initialize_midi_flush (hdsp_t *hdsp); -static void snd_hdsp_initialize_channels (hdsp_t *hdsp); -static int hdsp_fifo_wait(hdsp_t *hdsp, int count, int timeout); -static int hdsp_autosync_ref(hdsp_t *hdsp); -static int snd_hdsp_set_defaults(hdsp_t *hdsp); -static void snd_hdsp_9652_enable_mixer (hdsp_t *hdsp); - -static int hdsp_playback_to_output_key (hdsp_t *hdsp, int in, int out) +static int snd_hdsp_create_alsa_devices(struct snd_card *card, struct hdsp *hdsp); +static int snd_hdsp_create_pcm(struct snd_card *card, struct hdsp *hdsp); +static int snd_hdsp_enable_io (struct hdsp *hdsp); +static void snd_hdsp_initialize_midi_flush (struct hdsp *hdsp); +static void snd_hdsp_initialize_channels (struct hdsp *hdsp); +static int hdsp_fifo_wait(struct hdsp *hdsp, int count, int timeout); +static int hdsp_autosync_ref(struct hdsp *hdsp); +static int snd_hdsp_set_defaults(struct hdsp *hdsp); +static void snd_hdsp_9652_enable_mixer (struct hdsp *hdsp); + +static int hdsp_playback_to_output_key (struct hdsp *hdsp, int in, int out) { switch (hdsp->firmware_rev) { case 0xa: @@ -608,7 +604,7 @@ static int hdsp_playback_to_output_key (hdsp_t *hdsp, int in, int out) } } -static int hdsp_input_to_output_key (hdsp_t *hdsp, int in, int out) +static int hdsp_input_to_output_key (struct hdsp *hdsp, int in, int out) { switch (hdsp->firmware_rev) { case 0xa: @@ -621,17 +617,17 @@ static int hdsp_input_to_output_key (hdsp_t *hdsp, int in, int out) } } -static void hdsp_write(hdsp_t *hdsp, int reg, int val) +static void hdsp_write(struct hdsp *hdsp, int reg, int val) { writel(val, hdsp->iobase + reg); } -static unsigned int hdsp_read(hdsp_t *hdsp, int reg) +static unsigned int hdsp_read(struct hdsp *hdsp, int reg) { return readl (hdsp->iobase + reg); } -static int hdsp_check_for_iobox (hdsp_t *hdsp) +static int hdsp_check_for_iobox (struct hdsp *hdsp) { if (hdsp->io_type == H9652 || hdsp->io_type == H9632) return 0; @@ -644,7 +640,7 @@ static int hdsp_check_for_iobox (hdsp_t *hdsp) } -static int snd_hdsp_load_firmware_from_cache(hdsp_t *hdsp) { +static int snd_hdsp_load_firmware_from_cache(struct hdsp *hdsp) { int i; unsigned long flags; @@ -699,7 +695,7 @@ static int snd_hdsp_load_firmware_from_cache(hdsp_t *hdsp) { return 0; } -static int hdsp_get_iobox_version (hdsp_t *hdsp) +static int hdsp_get_iobox_version (struct hdsp *hdsp) { if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { @@ -730,7 +726,7 @@ static int hdsp_get_iobox_version (hdsp_t *hdsp) } -static int hdsp_check_for_firmware (hdsp_t *hdsp, int show_err) +static int hdsp_check_for_firmware (struct hdsp *hdsp, int show_err) { if (hdsp->io_type == H9652 || hdsp->io_type == H9632) return 0; if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { @@ -751,7 +747,7 @@ static int hdsp_check_for_firmware (hdsp_t *hdsp, int show_err) } -static int hdsp_fifo_wait(hdsp_t *hdsp, int count, int timeout) +static int hdsp_fifo_wait(struct hdsp *hdsp, int count, int timeout) { int i; @@ -776,7 +772,7 @@ static int hdsp_fifo_wait(hdsp_t *hdsp, int count, int timeout) return -1; } -static int hdsp_read_gain (hdsp_t *hdsp, unsigned int addr) +static int hdsp_read_gain (struct hdsp *hdsp, unsigned int addr) { if (addr >= HDSP_MATRIX_MIXER_SIZE) return 0; @@ -784,7 +780,7 @@ static int hdsp_read_gain (hdsp_t *hdsp, unsigned int addr) return hdsp->mixer_matrix[addr]; } -static int hdsp_write_gain(hdsp_t *hdsp, unsigned int addr, unsigned short data) +static int hdsp_write_gain(struct hdsp *hdsp, unsigned int addr, unsigned short data) { unsigned int ad; @@ -844,7 +840,7 @@ static int hdsp_write_gain(hdsp_t *hdsp, unsigned int addr, unsigned short data) return 0; } -static int snd_hdsp_use_is_exclusive(hdsp_t *hdsp) +static int snd_hdsp_use_is_exclusive(struct hdsp *hdsp) { unsigned long flags; int ret = 1; @@ -857,7 +853,7 @@ static int snd_hdsp_use_is_exclusive(hdsp_t *hdsp) return ret; } -static int hdsp_external_sample_rate (hdsp_t *hdsp) +static int hdsp_external_sample_rate (struct hdsp *hdsp) { unsigned int status2 = hdsp_read(hdsp, HDSP_status2Register); unsigned int rate_bits = status2 & HDSP_systemFrequencyMask; @@ -874,7 +870,7 @@ static int hdsp_external_sample_rate (hdsp_t *hdsp) } } -static int hdsp_spdif_sample_rate(hdsp_t *hdsp) +static int hdsp_spdif_sample_rate(struct hdsp *hdsp) { unsigned int status = hdsp_read(hdsp, HDSP_statusRegister); unsigned int rate_bits = (status & HDSP_spdifFrequencyMask); @@ -905,12 +901,12 @@ static int hdsp_spdif_sample_rate(hdsp_t *hdsp) return 0; } -static void hdsp_compute_period_size(hdsp_t *hdsp) +static void hdsp_compute_period_size(struct hdsp *hdsp) { hdsp->period_bytes = 1 << ((hdsp_decode_latency(hdsp->control_register) + 8)); } -static snd_pcm_uframes_t hdsp_hw_pointer(hdsp_t *hdsp) +static snd_pcm_uframes_t hdsp_hw_pointer(struct hdsp *hdsp) { int position; @@ -925,29 +921,29 @@ static snd_pcm_uframes_t hdsp_hw_pointer(hdsp_t *hdsp) return position; } -static void hdsp_reset_hw_pointer(hdsp_t *hdsp) +static void hdsp_reset_hw_pointer(struct hdsp *hdsp) { hdsp_write (hdsp, HDSP_resetPointer, 0); } -static void hdsp_start_audio(hdsp_t *s) +static void hdsp_start_audio(struct hdsp *s) { s->control_register |= (HDSP_AudioInterruptEnable | HDSP_Start); hdsp_write(s, HDSP_controlRegister, s->control_register); } -static void hdsp_stop_audio(hdsp_t *s) +static void hdsp_stop_audio(struct hdsp *s) { s->control_register &= ~(HDSP_Start | HDSP_AudioInterruptEnable); hdsp_write(s, HDSP_controlRegister, s->control_register); } -static void hdsp_silence_playback(hdsp_t *hdsp) +static void hdsp_silence_playback(struct hdsp *hdsp) { memset(hdsp->playback_buffer, 0, HDSP_DMA_AREA_BYTES); } -static int hdsp_set_interrupt_interval(hdsp_t *s, unsigned int frames) +static int hdsp_set_interrupt_interval(struct hdsp *s, unsigned int frames) { int n; @@ -972,7 +968,7 @@ static int hdsp_set_interrupt_interval(hdsp_t *s, unsigned int frames) return 0; } -static int hdsp_set_rate(hdsp_t *hdsp, int rate, int called_internally) +static int hdsp_set_rate(struct hdsp *hdsp, int rate, int called_internally) { int reject_if_open = 0; int current_rate; @@ -1114,7 +1110,7 @@ static int hdsp_set_rate(hdsp_t *hdsp, int rate, int called_internally) MIDI ----------------------------------------------------------------------------*/ -static unsigned char snd_hdsp_midi_read_byte (hdsp_t *hdsp, int id) +static unsigned char snd_hdsp_midi_read_byte (struct hdsp *hdsp, int id) { /* the hardware already does the relevant bit-mask with 0xff */ if (id) @@ -1123,7 +1119,7 @@ static unsigned char snd_hdsp_midi_read_byte (hdsp_t *hdsp, int id) return hdsp_read(hdsp, HDSP_midiDataIn0); } -static void snd_hdsp_midi_write_byte (hdsp_t *hdsp, int id, int val) +static void snd_hdsp_midi_write_byte (struct hdsp *hdsp, int id, int val) { /* the hardware already does the relevant bit-mask with 0xff */ if (id) @@ -1132,7 +1128,7 @@ static void snd_hdsp_midi_write_byte (hdsp_t *hdsp, int id, int val) hdsp_write(hdsp, HDSP_midiDataOut0, val); } -static int snd_hdsp_midi_input_available (hdsp_t *hdsp, int id) +static int snd_hdsp_midi_input_available (struct hdsp *hdsp, int id) { if (id) return (hdsp_read(hdsp, HDSP_midiStatusIn1) & 0xff); @@ -1140,7 +1136,7 @@ static int snd_hdsp_midi_input_available (hdsp_t *hdsp, int id) return (hdsp_read(hdsp, HDSP_midiStatusIn0) & 0xff); } -static int snd_hdsp_midi_output_possible (hdsp_t *hdsp, int id) +static int snd_hdsp_midi_output_possible (struct hdsp *hdsp, int id) { int fifo_bytes_used; @@ -1155,13 +1151,13 @@ static int snd_hdsp_midi_output_possible (hdsp_t *hdsp, int id) return 0; } -static void snd_hdsp_flush_midi_input (hdsp_t *hdsp, int id) +static void snd_hdsp_flush_midi_input (struct hdsp *hdsp, int id) { while (snd_hdsp_midi_input_available (hdsp, id)) snd_hdsp_midi_read_byte (hdsp, id); } -static int snd_hdsp_midi_output_write (hdsp_midi_t *hmidi) +static int snd_hdsp_midi_output_write (struct hdsp_midi *hmidi) { unsigned long flags; int n_pending; @@ -1189,7 +1185,7 @@ static int snd_hdsp_midi_output_write (hdsp_midi_t *hmidi) return 0; } -static int snd_hdsp_midi_input_read (hdsp_midi_t *hmidi) +static int snd_hdsp_midi_input_read (struct hdsp_midi *hmidi) { unsigned char buf[128]; /* this buffer is designed to match the MIDI input FIFO size */ unsigned long flags; @@ -1221,14 +1217,14 @@ static int snd_hdsp_midi_input_read (hdsp_midi_t *hmidi) return snd_hdsp_midi_output_write (hmidi); } -static void snd_hdsp_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_hdsp_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { - hdsp_t *hdsp; - hdsp_midi_t *hmidi; + struct hdsp *hdsp; + struct hdsp_midi *hmidi; unsigned long flags; u32 ie; - hmidi = (hdsp_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdsp_midi *) substream->rmidi->private_data; hdsp = hmidi->hdsp; ie = hmidi->id ? HDSP_Midi1InterruptEnable : HDSP_Midi0InterruptEnable; spin_lock_irqsave (&hdsp->lock, flags); @@ -1248,7 +1244,7 @@ static void snd_hdsp_midi_input_trigger(snd_rawmidi_substream_t * substream, int static void snd_hdsp_midi_output_timer(unsigned long data) { - hdsp_midi_t *hmidi = (hdsp_midi_t *) data; + struct hdsp_midi *hmidi = (struct hdsp_midi *) data; unsigned long flags; snd_hdsp_midi_output_write(hmidi); @@ -1268,12 +1264,12 @@ static void snd_hdsp_midi_output_timer(unsigned long data) spin_unlock_irqrestore (&hmidi->lock, flags); } -static void snd_hdsp_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_hdsp_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { - hdsp_midi_t *hmidi; + struct hdsp_midi *hmidi; unsigned long flags; - hmidi = (hdsp_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdsp_midi *) substream->rmidi->private_data; spin_lock_irqsave (&hmidi->lock, flags); if (up) { if (!hmidi->istimer) { @@ -1293,11 +1289,11 @@ static void snd_hdsp_midi_output_trigger(snd_rawmidi_substream_t * substream, in snd_hdsp_midi_output_write(hmidi); } -static int snd_hdsp_midi_input_open(snd_rawmidi_substream_t * substream) +static int snd_hdsp_midi_input_open(struct snd_rawmidi_substream *substream) { - hdsp_midi_t *hmidi; + struct hdsp_midi *hmidi; - hmidi = (hdsp_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdsp_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); snd_hdsp_flush_midi_input (hmidi->hdsp, hmidi->id); hmidi->input = substream; @@ -1306,11 +1302,11 @@ static int snd_hdsp_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_hdsp_midi_output_open(snd_rawmidi_substream_t * substream) +static int snd_hdsp_midi_output_open(struct snd_rawmidi_substream *substream) { - hdsp_midi_t *hmidi; + struct hdsp_midi *hmidi; - hmidi = (hdsp_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdsp_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); hmidi->output = substream; spin_unlock_irq (&hmidi->lock); @@ -1318,13 +1314,13 @@ static int snd_hdsp_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_hdsp_midi_input_close(snd_rawmidi_substream_t * substream) +static int snd_hdsp_midi_input_close(struct snd_rawmidi_substream *substream) { - hdsp_midi_t *hmidi; + struct hdsp_midi *hmidi; snd_hdsp_midi_input_trigger (substream, 0); - hmidi = (hdsp_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdsp_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); hmidi->input = NULL; spin_unlock_irq (&hmidi->lock); @@ -1332,13 +1328,13 @@ static int snd_hdsp_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int snd_hdsp_midi_output_close(snd_rawmidi_substream_t * substream) +static int snd_hdsp_midi_output_close(struct snd_rawmidi_substream *substream) { - hdsp_midi_t *hmidi; + struct hdsp_midi *hmidi; snd_hdsp_midi_output_trigger (substream, 0); - hmidi = (hdsp_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdsp_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); hmidi->output = NULL; spin_unlock_irq (&hmidi->lock); @@ -1346,21 +1342,21 @@ static int snd_hdsp_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static snd_rawmidi_ops_t snd_hdsp_midi_output = +static struct snd_rawmidi_ops snd_hdsp_midi_output = { .open = snd_hdsp_midi_output_open, .close = snd_hdsp_midi_output_close, .trigger = snd_hdsp_midi_output_trigger, }; -static snd_rawmidi_ops_t snd_hdsp_midi_input = +static struct snd_rawmidi_ops snd_hdsp_midi_input = { .open = snd_hdsp_midi_input_open, .close = snd_hdsp_midi_input_close, .trigger = snd_hdsp_midi_input_trigger, }; -static int __devinit snd_hdsp_create_midi (snd_card_t *card, hdsp_t *hdsp, int id) +static int __devinit snd_hdsp_create_midi (struct snd_card *card, struct hdsp *hdsp, int id) { char buf[32]; @@ -1394,7 +1390,7 @@ static int __devinit snd_hdsp_create_midi (snd_card_t *card, hdsp_t *hdsp, int i Control Interface ----------------------------------------------------------------------------*/ -static u32 snd_hdsp_convert_from_aes(snd_aes_iec958_t *aes) +static u32 snd_hdsp_convert_from_aes(struct snd_aes_iec958 *aes) { u32 val = 0; val |= (aes->status[0] & IEC958_AES0_PROFESSIONAL) ? HDSP_SPDIFProfessional : 0; @@ -1406,7 +1402,7 @@ static u32 snd_hdsp_convert_from_aes(snd_aes_iec958_t *aes) return val; } -static void snd_hdsp_convert_to_aes(snd_aes_iec958_t *aes, u32 val) +static void snd_hdsp_convert_to_aes(struct snd_aes_iec958 *aes, u32 val) { aes->status[0] = ((val & HDSP_SPDIFProfessional) ? IEC958_AES0_PROFESSIONAL : 0) | ((val & HDSP_SPDIFNonAudio) ? IEC958_AES0_NONAUDIO : 0); @@ -1416,24 +1412,24 @@ static void snd_hdsp_convert_to_aes(snd_aes_iec958_t *aes, u32 val) aes->status[0] |= (val & HDSP_SPDIFEmphasis) ? IEC958_AES0_CON_EMPHASIS_5015 : 0; } -static int snd_hdsp_control_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_control_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_hdsp_control_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_control_spdif_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); snd_hdsp_convert_to_aes(&ucontrol->value.iec958, hdsp->creg_spdif); return 0; } -static int snd_hdsp_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_control_spdif_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -1445,24 +1441,24 @@ static int snd_hdsp_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_va return change; } -static int snd_hdsp_control_spdif_stream_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_control_spdif_stream_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_hdsp_control_spdif_stream_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_control_spdif_stream_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); snd_hdsp_convert_to_aes(&ucontrol->value.iec958, hdsp->creg_spdif_stream); return 0; } -static int snd_hdsp_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_control_spdif_stream_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -1476,14 +1472,14 @@ static int snd_hdsp_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl_ return change; } -static int snd_hdsp_control_spdif_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_control_spdif_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_hdsp_control_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_control_spdif_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = kcontrol->private_value; return 0; @@ -1497,12 +1493,12 @@ static int snd_hdsp_control_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_el .get = snd_hdsp_get_spdif_in, \ .put = snd_hdsp_put_spdif_in } -static unsigned int hdsp_spdif_in(hdsp_t *hdsp) +static unsigned int hdsp_spdif_in(struct hdsp *hdsp) { return hdsp_decode_spdif_in(hdsp->control_register & HDSP_SPDIFInputMask); } -static int hdsp_set_spdif_input(hdsp_t *hdsp, int in) +static int hdsp_set_spdif_input(struct hdsp *hdsp, int in) { hdsp->control_register &= ~HDSP_SPDIFInputMask; hdsp->control_register |= hdsp_encode_spdif_in(in); @@ -1510,10 +1506,10 @@ static int hdsp_set_spdif_input(hdsp_t *hdsp, int in) return 0; } -static int snd_hdsp_info_spdif_in(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_spdif_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[4] = {"Optical", "Coaxial", "Internal", "AES"}; - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -1524,17 +1520,17 @@ static int snd_hdsp_info_spdif_in(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_hdsp_get_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_spdif_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_spdif_in(hdsp); return 0; } -static int snd_hdsp_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_spdif_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1554,12 +1550,12 @@ static int snd_hdsp_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .info = snd_hdsp_info_spdif_bits, \ .get = snd_hdsp_get_spdif_out, .put = snd_hdsp_put_spdif_out } -static int hdsp_spdif_out(hdsp_t *hdsp) +static int hdsp_spdif_out(struct hdsp *hdsp) { return (hdsp->control_register & HDSP_SPDIFOpticalOut) ? 1 : 0; } -static int hdsp_set_spdif_output(hdsp_t *hdsp, int out) +static int hdsp_set_spdif_output(struct hdsp *hdsp, int out) { if (out) hdsp->control_register |= HDSP_SPDIFOpticalOut; @@ -1569,7 +1565,7 @@ static int hdsp_set_spdif_output(hdsp_t *hdsp, int out) return 0; } -static int snd_hdsp_info_spdif_bits(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_spdif_bits(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1578,17 +1574,17 @@ static int snd_hdsp_info_spdif_bits(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int snd_hdsp_get_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = hdsp_spdif_out(hdsp); return 0; } -static int snd_hdsp_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1607,12 +1603,12 @@ static int snd_hdsp_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_ .info = snd_hdsp_info_spdif_bits, \ .get = snd_hdsp_get_spdif_professional, .put = snd_hdsp_put_spdif_professional } -static int hdsp_spdif_professional(hdsp_t *hdsp) +static int hdsp_spdif_professional(struct hdsp *hdsp) { return (hdsp->control_register & HDSP_SPDIFProfessional) ? 1 : 0; } -static int hdsp_set_spdif_professional(hdsp_t *hdsp, int val) +static int hdsp_set_spdif_professional(struct hdsp *hdsp, int val) { if (val) hdsp->control_register |= HDSP_SPDIFProfessional; @@ -1622,17 +1618,17 @@ static int hdsp_set_spdif_professional(hdsp_t *hdsp, int val) return 0; } -static int snd_hdsp_get_spdif_professional(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_spdif_professional(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = hdsp_spdif_professional(hdsp); return 0; } -static int snd_hdsp_put_spdif_professional(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_spdif_professional(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1651,12 +1647,12 @@ static int snd_hdsp_put_spdif_professional(snd_kcontrol_t * kcontrol, snd_ctl_el .info = snd_hdsp_info_spdif_bits, \ .get = snd_hdsp_get_spdif_emphasis, .put = snd_hdsp_put_spdif_emphasis } -static int hdsp_spdif_emphasis(hdsp_t *hdsp) +static int hdsp_spdif_emphasis(struct hdsp *hdsp) { return (hdsp->control_register & HDSP_SPDIFEmphasis) ? 1 : 0; } -static int hdsp_set_spdif_emphasis(hdsp_t *hdsp, int val) +static int hdsp_set_spdif_emphasis(struct hdsp *hdsp, int val) { if (val) hdsp->control_register |= HDSP_SPDIFEmphasis; @@ -1666,17 +1662,17 @@ static int hdsp_set_spdif_emphasis(hdsp_t *hdsp, int val) return 0; } -static int snd_hdsp_get_spdif_emphasis(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_spdif_emphasis(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = hdsp_spdif_emphasis(hdsp); return 0; } -static int snd_hdsp_put_spdif_emphasis(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_spdif_emphasis(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1695,12 +1691,12 @@ static int snd_hdsp_put_spdif_emphasis(snd_kcontrol_t * kcontrol, snd_ctl_elem_v .info = snd_hdsp_info_spdif_bits, \ .get = snd_hdsp_get_spdif_nonaudio, .put = snd_hdsp_put_spdif_nonaudio } -static int hdsp_spdif_nonaudio(hdsp_t *hdsp) +static int hdsp_spdif_nonaudio(struct hdsp *hdsp) { return (hdsp->control_register & HDSP_SPDIFNonAudio) ? 1 : 0; } -static int hdsp_set_spdif_nonaudio(hdsp_t *hdsp, int val) +static int hdsp_set_spdif_nonaudio(struct hdsp *hdsp, int val) { if (val) hdsp->control_register |= HDSP_SPDIFNonAudio; @@ -1710,17 +1706,17 @@ static int hdsp_set_spdif_nonaudio(hdsp_t *hdsp, int val) return 0; } -static int snd_hdsp_get_spdif_nonaudio(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_spdif_nonaudio(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = hdsp_spdif_nonaudio(hdsp); return 0; } -static int snd_hdsp_put_spdif_nonaudio(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_spdif_nonaudio(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1743,10 +1739,10 @@ static int snd_hdsp_put_spdif_nonaudio(snd_kcontrol_t * kcontrol, snd_ctl_elem_v .get = snd_hdsp_get_spdif_sample_rate \ } -static int snd_hdsp_info_spdif_sample_rate(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_spdif_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"32000", "44100", "48000", "64000", "88200", "96000", "None", "128000", "176400", "192000"}; - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -1757,9 +1753,9 @@ static int snd_hdsp_info_spdif_sample_rate(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_hdsp_get_spdif_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_spdif_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); switch (hdsp_spdif_sample_rate(hdsp)) { case 32000: @@ -1804,16 +1800,16 @@ static int snd_hdsp_get_spdif_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_ele .get = snd_hdsp_get_system_sample_rate \ } -static int snd_hdsp_info_system_sample_rate(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_system_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; return 0; } -static int snd_hdsp_get_system_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_system_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp->system_sample_rate; return 0; @@ -1828,9 +1824,9 @@ static int snd_hdsp_get_system_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_el .get = snd_hdsp_get_autosync_sample_rate \ } -static int snd_hdsp_info_autosync_sample_rate(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_autosync_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); static char *texts[] = {"32000", "44100", "48000", "64000", "88200", "96000", "None", "128000", "176400", "192000"}; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -1841,9 +1837,9 @@ static int snd_hdsp_info_autosync_sample_rate(snd_kcontrol_t *kcontrol, snd_ctl_ return 0; } -static int snd_hdsp_get_autosync_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_autosync_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); switch (hdsp_external_sample_rate(hdsp)) { case 32000: @@ -1888,7 +1884,7 @@ static int snd_hdsp_get_autosync_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_ .get = snd_hdsp_get_system_clock_mode \ } -static int hdsp_system_clock_mode(hdsp_t *hdsp) +static int hdsp_system_clock_mode(struct hdsp *hdsp) { if (hdsp->control_register & HDSP_ClockModeMaster) return 0; @@ -1897,7 +1893,7 @@ static int hdsp_system_clock_mode(hdsp_t *hdsp) return 1; } -static int snd_hdsp_info_system_clock_mode(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_system_clock_mode(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"Master", "Slave" }; @@ -1910,9 +1906,9 @@ static int snd_hdsp_info_system_clock_mode(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_hdsp_get_system_clock_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_system_clock_mode(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_system_clock_mode(hdsp); return 0; @@ -1927,7 +1923,7 @@ static int snd_hdsp_get_system_clock_mode(snd_kcontrol_t * kcontrol, snd_ctl_ele .put = snd_hdsp_put_clock_source \ } -static int hdsp_clock_source(hdsp_t *hdsp) +static int hdsp_clock_source(struct hdsp *hdsp) { if (hdsp->control_register & HDSP_ClockModeMaster) { switch (hdsp->system_sample_rate) { @@ -1957,7 +1953,7 @@ static int hdsp_clock_source(hdsp_t *hdsp) } } -static int hdsp_set_clock_source(hdsp_t *hdsp, int mode) +static int hdsp_set_clock_source(struct hdsp *hdsp, int mode) { int rate; switch (mode) { @@ -2006,10 +2002,10 @@ static int hdsp_set_clock_source(hdsp_t *hdsp, int mode) return 0; } -static int snd_hdsp_info_clock_source(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_clock_source(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz", "Internal 96.0 kHz", "Internal 128 kHz", "Internal 176.4 kHz", "Internal 192.0 KHz" }; - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -2023,17 +2019,17 @@ static int snd_hdsp_info_clock_source(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_hdsp_get_clock_source(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_clock_source(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_clock_source(hdsp); return 0; } -static int snd_hdsp_put_clock_source(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_clock_source(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; int val; @@ -2057,7 +2053,7 @@ static int snd_hdsp_put_clock_source(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return change; } -static int snd_hdsp_info_clock_source_lock(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_clock_source_lock(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2066,17 +2062,17 @@ static int snd_hdsp_info_clock_source_lock(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_hdsp_get_clock_source_lock(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_clock_source_lock(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = hdsp->clock_source_locked; return 0; } -static int snd_hdsp_put_clock_source_lock(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_clock_source_lock(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; change = (int)ucontrol->value.integer.value[0] != hdsp->clock_source_locked; @@ -2094,7 +2090,7 @@ static int snd_hdsp_put_clock_source_lock(snd_kcontrol_t * kcontrol, snd_ctl_ele .put = snd_hdsp_put_da_gain \ } -static int hdsp_da_gain(hdsp_t *hdsp) +static int hdsp_da_gain(struct hdsp *hdsp) { switch (hdsp->control_register & HDSP_DAGainMask) { case HDSP_DAGainHighGain: @@ -2108,7 +2104,7 @@ static int hdsp_da_gain(hdsp_t *hdsp) } } -static int hdsp_set_da_gain(hdsp_t *hdsp, int mode) +static int hdsp_set_da_gain(struct hdsp *hdsp, int mode) { hdsp->control_register &= ~HDSP_DAGainMask; switch (mode) { @@ -2129,7 +2125,7 @@ static int hdsp_set_da_gain(hdsp_t *hdsp, int mode) return 0; } -static int snd_hdsp_info_da_gain(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_da_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"Hi Gain", "+4 dBu", "-10 dbV"}; @@ -2142,17 +2138,17 @@ static int snd_hdsp_info_da_gain(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_hdsp_get_da_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_da_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_da_gain(hdsp); return 0; } -static int snd_hdsp_put_da_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_da_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; int val; @@ -2179,7 +2175,7 @@ static int snd_hdsp_put_da_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .put = snd_hdsp_put_ad_gain \ } -static int hdsp_ad_gain(hdsp_t *hdsp) +static int hdsp_ad_gain(struct hdsp *hdsp) { switch (hdsp->control_register & HDSP_ADGainMask) { case HDSP_ADGainMinus10dBV: @@ -2193,7 +2189,7 @@ static int hdsp_ad_gain(hdsp_t *hdsp) } } -static int hdsp_set_ad_gain(hdsp_t *hdsp, int mode) +static int hdsp_set_ad_gain(struct hdsp *hdsp, int mode) { hdsp->control_register &= ~HDSP_ADGainMask; switch (mode) { @@ -2214,7 +2210,7 @@ static int hdsp_set_ad_gain(hdsp_t *hdsp, int mode) return 0; } -static int snd_hdsp_info_ad_gain(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_ad_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"-10 dBV", "+4 dBu", "Lo Gain"}; @@ -2227,17 +2223,17 @@ static int snd_hdsp_info_ad_gain(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_hdsp_get_ad_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_ad_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_ad_gain(hdsp); return 0; } -static int snd_hdsp_put_ad_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_ad_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; int val; @@ -2264,7 +2260,7 @@ static int snd_hdsp_put_ad_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .put = snd_hdsp_put_phone_gain \ } -static int hdsp_phone_gain(hdsp_t *hdsp) +static int hdsp_phone_gain(struct hdsp *hdsp) { switch (hdsp->control_register & HDSP_PhoneGainMask) { case HDSP_PhoneGain0dB: @@ -2278,7 +2274,7 @@ static int hdsp_phone_gain(hdsp_t *hdsp) } } -static int hdsp_set_phone_gain(hdsp_t *hdsp, int mode) +static int hdsp_set_phone_gain(struct hdsp *hdsp, int mode) { hdsp->control_register &= ~HDSP_PhoneGainMask; switch (mode) { @@ -2299,7 +2295,7 @@ static int hdsp_set_phone_gain(hdsp_t *hdsp, int mode) return 0; } -static int snd_hdsp_info_phone_gain(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_phone_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"0 dB", "-6 dB", "-12 dB"}; @@ -2312,17 +2308,17 @@ static int snd_hdsp_info_phone_gain(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int snd_hdsp_get_phone_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_phone_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_phone_gain(hdsp); return 0; } -static int snd_hdsp_put_phone_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_phone_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; int val; @@ -2349,14 +2345,14 @@ static int snd_hdsp_put_phone_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value .put = snd_hdsp_put_xlr_breakout_cable \ } -static int hdsp_xlr_breakout_cable(hdsp_t *hdsp) +static int hdsp_xlr_breakout_cable(struct hdsp *hdsp) { if (hdsp->control_register & HDSP_XLRBreakoutCable) return 1; return 0; } -static int hdsp_set_xlr_breakout_cable(hdsp_t *hdsp, int mode) +static int hdsp_set_xlr_breakout_cable(struct hdsp *hdsp, int mode) { if (mode) hdsp->control_register |= HDSP_XLRBreakoutCable; @@ -2366,7 +2362,7 @@ static int hdsp_set_xlr_breakout_cable(hdsp_t *hdsp, int mode) return 0; } -static int snd_hdsp_info_xlr_breakout_cable(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_xlr_breakout_cable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2375,17 +2371,17 @@ static int snd_hdsp_info_xlr_breakout_cable(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_hdsp_get_xlr_breakout_cable(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_xlr_breakout_cable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_xlr_breakout_cable(hdsp); return 0; } -static int snd_hdsp_put_xlr_breakout_cable(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_xlr_breakout_cable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; int val; @@ -2412,14 +2408,14 @@ static int snd_hdsp_put_xlr_breakout_cable(snd_kcontrol_t * kcontrol, snd_ctl_el .put = snd_hdsp_put_aeb \ } -static int hdsp_aeb(hdsp_t *hdsp) +static int hdsp_aeb(struct hdsp *hdsp) { if (hdsp->control_register & HDSP_AnalogExtensionBoard) return 1; return 0; } -static int hdsp_set_aeb(hdsp_t *hdsp, int mode) +static int hdsp_set_aeb(struct hdsp *hdsp, int mode) { if (mode) hdsp->control_register |= HDSP_AnalogExtensionBoard; @@ -2429,7 +2425,7 @@ static int hdsp_set_aeb(hdsp_t *hdsp, int mode) return 0; } -static int snd_hdsp_info_aeb(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_aeb(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2438,17 +2434,17 @@ static int snd_hdsp_info_aeb(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uin return 0; } -static int snd_hdsp_get_aeb(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_aeb(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_aeb(hdsp); return 0; } -static int snd_hdsp_put_aeb(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_aeb(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; int val; @@ -2471,7 +2467,7 @@ static int snd_hdsp_put_aeb(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uc .put = snd_hdsp_put_pref_sync_ref \ } -static int hdsp_pref_sync_ref(hdsp_t *hdsp) +static int hdsp_pref_sync_ref(struct hdsp *hdsp) { /* Notice that this looks at the requested sync source, not the one actually in use. @@ -2496,7 +2492,7 @@ static int hdsp_pref_sync_ref(hdsp_t *hdsp) return 0; } -static int hdsp_set_pref_sync_ref(hdsp_t *hdsp, int pref) +static int hdsp_set_pref_sync_ref(struct hdsp *hdsp, int pref) { hdsp->control_register &= ~HDSP_SyncRefMask; switch (pref) { @@ -2525,10 +2521,10 @@ static int hdsp_set_pref_sync_ref(hdsp_t *hdsp, int pref) return 0; } -static int snd_hdsp_info_pref_sync_ref(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_pref_sync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"Word", "IEC958", "ADAT1", "ADAT Sync", "ADAT2", "ADAT3" }; - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -2555,17 +2551,17 @@ static int snd_hdsp_info_pref_sync_ref(snd_kcontrol_t *kcontrol, snd_ctl_elem_in return 0; } -static int snd_hdsp_get_pref_sync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_pref_sync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_pref_sync_ref(hdsp); return 0; } -static int snd_hdsp_put_pref_sync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_pref_sync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change, max; unsigned int val; @@ -2604,7 +2600,7 @@ static int snd_hdsp_put_pref_sync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_va .get = snd_hdsp_get_autosync_ref, \ } -static int hdsp_autosync_ref(hdsp_t *hdsp) +static int hdsp_autosync_ref(struct hdsp *hdsp) { /* This looks at the autosync selected sync reference */ unsigned int status2 = hdsp_read(hdsp, HDSP_status2Register); @@ -2630,7 +2626,7 @@ static int hdsp_autosync_ref(hdsp_t *hdsp) return 0; } -static int snd_hdsp_info_autosync_ref(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_autosync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"Word", "ADAT Sync", "IEC958", "None", "ADAT1", "ADAT2", "ADAT3" }; @@ -2643,9 +2639,9 @@ static int snd_hdsp_info_autosync_ref(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_hdsp_get_autosync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_autosync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_autosync_ref(hdsp); return 0; @@ -2660,12 +2656,12 @@ static int snd_hdsp_get_autosync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_val .put = snd_hdsp_put_line_out \ } -static int hdsp_line_out(hdsp_t *hdsp) +static int hdsp_line_out(struct hdsp *hdsp) { return (hdsp->control_register & HDSP_LineOut) ? 1 : 0; } -static int hdsp_set_line_output(hdsp_t *hdsp, int out) +static int hdsp_set_line_output(struct hdsp *hdsp, int out) { if (out) hdsp->control_register |= HDSP_LineOut; @@ -2675,7 +2671,7 @@ static int hdsp_set_line_output(hdsp_t *hdsp, int out) return 0; } -static int snd_hdsp_info_line_out(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_line_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2684,9 +2680,9 @@ static int snd_hdsp_info_line_out(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_hdsp_get_line_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_line_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdsp->lock); ucontrol->value.integer.value[0] = hdsp_line_out(hdsp); @@ -2694,9 +2690,9 @@ static int snd_hdsp_get_line_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_hdsp_put_line_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_line_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -2719,7 +2715,7 @@ static int snd_hdsp_put_line_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .put = snd_hdsp_put_precise_pointer \ } -static int hdsp_set_precise_pointer(hdsp_t *hdsp, int precise) +static int hdsp_set_precise_pointer(struct hdsp *hdsp, int precise) { if (precise) hdsp->precise_ptr = 1; @@ -2728,7 +2724,7 @@ static int hdsp_set_precise_pointer(hdsp_t *hdsp, int precise) return 0; } -static int snd_hdsp_info_precise_pointer(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_precise_pointer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2737,9 +2733,9 @@ static int snd_hdsp_info_precise_pointer(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_hdsp_get_precise_pointer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_precise_pointer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdsp->lock); ucontrol->value.integer.value[0] = hdsp->precise_ptr; @@ -2747,9 +2743,9 @@ static int snd_hdsp_get_precise_pointer(snd_kcontrol_t * kcontrol, snd_ctl_elem_ return 0; } -static int snd_hdsp_put_precise_pointer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_precise_pointer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -2772,7 +2768,7 @@ static int snd_hdsp_put_precise_pointer(snd_kcontrol_t * kcontrol, snd_ctl_elem_ .put = snd_hdsp_put_use_midi_tasklet \ } -static int hdsp_set_use_midi_tasklet(hdsp_t *hdsp, int use_tasklet) +static int hdsp_set_use_midi_tasklet(struct hdsp *hdsp, int use_tasklet) { if (use_tasklet) hdsp->use_midi_tasklet = 1; @@ -2781,7 +2777,7 @@ static int hdsp_set_use_midi_tasklet(hdsp_t *hdsp, int use_tasklet) return 0; } -static int snd_hdsp_info_use_midi_tasklet(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_use_midi_tasklet(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2790,9 +2786,9 @@ static int snd_hdsp_info_use_midi_tasklet(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_hdsp_get_use_midi_tasklet(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_use_midi_tasklet(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdsp->lock); ucontrol->value.integer.value[0] = hdsp->use_midi_tasklet; @@ -2800,9 +2796,9 @@ static int snd_hdsp_get_use_midi_tasklet(snd_kcontrol_t * kcontrol, snd_ctl_elem return 0; } -static int snd_hdsp_put_use_midi_tasklet(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_use_midi_tasklet(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -2828,7 +2824,7 @@ static int snd_hdsp_put_use_midi_tasklet(snd_kcontrol_t * kcontrol, snd_ctl_elem .put = snd_hdsp_put_mixer \ } -static int snd_hdsp_info_mixer(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 3; @@ -2838,9 +2834,9 @@ static int snd_hdsp_info_mixer(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * u return 0; } -static int snd_hdsp_get_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int source; int destination; int addr; @@ -2859,9 +2855,9 @@ static int snd_hdsp_get_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return 0; } -static int snd_hdsp_put_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_put_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); int change; int source; int destination; @@ -2898,7 +2894,7 @@ static int snd_hdsp_put_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * .get = snd_hdsp_get_wc_sync_check \ } -static int snd_hdsp_info_sync_check(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_hdsp_info_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = {"No Lock", "Lock", "Sync" }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -2910,7 +2906,7 @@ static int snd_hdsp_info_sync_check(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int hdsp_wc_sync_check(hdsp_t *hdsp) +static int hdsp_wc_sync_check(struct hdsp *hdsp) { int status2 = hdsp_read(hdsp, HDSP_status2Register); if (status2 & HDSP_wc_lock) { @@ -2923,9 +2919,9 @@ static int hdsp_wc_sync_check(hdsp_t *hdsp) return 0; } -static int snd_hdsp_get_wc_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_wc_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_wc_sync_check(hdsp); return 0; @@ -2940,7 +2936,7 @@ static int snd_hdsp_get_wc_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_va .get = snd_hdsp_get_spdif_sync_check \ } -static int hdsp_spdif_sync_check(hdsp_t *hdsp) +static int hdsp_spdif_sync_check(struct hdsp *hdsp) { int status = hdsp_read(hdsp, HDSP_statusRegister); if (status & HDSP_SPDIFErrorFlag) @@ -2954,9 +2950,9 @@ static int hdsp_spdif_sync_check(hdsp_t *hdsp) return 0; } -static int snd_hdsp_get_spdif_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_spdif_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_spdif_sync_check(hdsp); return 0; @@ -2971,7 +2967,7 @@ static int snd_hdsp_get_spdif_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem .get = snd_hdsp_get_adatsync_sync_check \ } -static int hdsp_adatsync_sync_check(hdsp_t *hdsp) +static int hdsp_adatsync_sync_check(struct hdsp *hdsp) { int status = hdsp_read(hdsp, HDSP_statusRegister); if (status & HDSP_TimecodeLock) { @@ -2983,9 +2979,9 @@ static int hdsp_adatsync_sync_check(hdsp_t *hdsp) return 0; } -static int snd_hdsp_get_adatsync_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_adatsync_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdsp_adatsync_sync_check(hdsp); return 0; @@ -2998,7 +2994,7 @@ static int snd_hdsp_get_adatsync_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_e .get = snd_hdsp_get_adat_sync_check \ } -static int hdsp_adat_sync_check(hdsp_t *hdsp, int idx) +static int hdsp_adat_sync_check(struct hdsp *hdsp, int idx) { int status = hdsp_read(hdsp, HDSP_statusRegister); @@ -3011,10 +3007,10 @@ static int hdsp_adat_sync_check(hdsp_t *hdsp, int idx) return 0; } -static int snd_hdsp_get_adat_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_hdsp_get_adat_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { int offset; - hdsp_t *hdsp = snd_kcontrol_chip(kcontrol); + struct hdsp *hdsp = snd_kcontrol_chip(kcontrol); offset = ucontrol->id.index - 1; snd_assert(offset >= 0); @@ -3038,14 +3034,14 @@ static int snd_hdsp_get_adat_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_ return 0; } -static snd_kcontrol_new_t snd_hdsp_9632_controls[] = { +static struct snd_kcontrol_new snd_hdsp_9632_controls[] = { HDSP_DA_GAIN("DA Gain", 0), HDSP_AD_GAIN("AD Gain", 0), HDSP_PHONE_GAIN("Phones Gain", 0), HDSP_XLR_BREAKOUT_CABLE("XLR Breakout Cable", 0) }; -static snd_kcontrol_new_t snd_hdsp_controls[] = { +static struct snd_kcontrol_new snd_hdsp_controls[] = { { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -3111,14 +3107,14 @@ HDSP_PRECISE_POINTER("Precise Pointer", 0), HDSP_USE_MIDI_TASKLET("Use Midi Tasklet", 0), }; -static snd_kcontrol_new_t snd_hdsp_96xx_aeb = HDSP_AEB("Analog Extension Board", 0); -static snd_kcontrol_new_t snd_hdsp_adat_sync_check = HDSP_ADAT_SYNC_CHECK; +static struct snd_kcontrol_new snd_hdsp_96xx_aeb = HDSP_AEB("Analog Extension Board", 0); +static struct snd_kcontrol_new snd_hdsp_adat_sync_check = HDSP_ADAT_SYNC_CHECK; -static int snd_hdsp_create_controls(snd_card_t *card, hdsp_t *hdsp) +static int snd_hdsp_create_controls(struct snd_card *card, struct hdsp *hdsp) { unsigned int idx; int err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; for (idx = 0; idx < ARRAY_SIZE(snd_hdsp_controls); idx++) { if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_hdsp_controls[idx], hdsp))) < 0) @@ -3162,9 +3158,9 @@ static int snd_hdsp_create_controls(snd_card_t *card, hdsp_t *hdsp) ------------------------------------------------------------*/ static void -snd_hdsp_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +snd_hdsp_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - hdsp_t *hdsp = (hdsp_t *) entry->private_data; + struct hdsp *hdsp = (struct hdsp *) entry->private_data; unsigned int status; unsigned int status2; char *pref_sync_ref; @@ -3469,21 +3465,21 @@ snd_hdsp_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) } -static void __devinit snd_hdsp_proc_init(hdsp_t *hdsp) +static void __devinit snd_hdsp_proc_init(struct hdsp *hdsp) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(hdsp->card, "hdsp", &entry)) snd_info_set_text_ops(entry, hdsp, 1024, snd_hdsp_proc_read); } -static void snd_hdsp_free_buffers(hdsp_t *hdsp) +static void snd_hdsp_free_buffers(struct hdsp *hdsp) { snd_hammerfall_free_buffer(&hdsp->capture_dma_buf, hdsp->pci); snd_hammerfall_free_buffer(&hdsp->playback_dma_buf, hdsp->pci); } -static int __devinit snd_hdsp_initialize_memory(hdsp_t *hdsp) +static int __devinit snd_hdsp_initialize_memory(struct hdsp *hdsp) { unsigned long pb_bus, cb_bus; @@ -3511,7 +3507,7 @@ static int __devinit snd_hdsp_initialize_memory(hdsp_t *hdsp) return 0; } -static int snd_hdsp_set_defaults(hdsp_t *hdsp) +static int snd_hdsp_set_defaults(struct hdsp *hdsp) { unsigned int i; @@ -3576,7 +3572,7 @@ static int snd_hdsp_set_defaults(hdsp_t *hdsp) static void hdsp_midi_tasklet(unsigned long arg) { - hdsp_t *hdsp = (hdsp_t *)arg; + struct hdsp *hdsp = (struct hdsp *)arg; if (hdsp->midi[0].pending) snd_hdsp_midi_input_read (&hdsp->midi[0]); @@ -3586,7 +3582,7 @@ static void hdsp_midi_tasklet(unsigned long arg) static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - hdsp_t *hdsp = (hdsp_t *) dev_id; + struct hdsp *hdsp = (struct hdsp *) dev_id; unsigned int status; int audio; int midi0; @@ -3644,13 +3640,13 @@ static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id, struct pt_regs *reg return IRQ_HANDLED; } -static snd_pcm_uframes_t snd_hdsp_hw_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_hdsp_hw_pointer(struct snd_pcm_substream *substream) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); return hdsp_hw_pointer(hdsp); } -static char *hdsp_channel_buffer_location(hdsp_t *hdsp, +static char *hdsp_channel_buffer_location(struct hdsp *hdsp, int stream, int channel) @@ -3668,10 +3664,10 @@ static char *hdsp_channel_buffer_location(hdsp_t *hdsp, return hdsp->playback_buffer + (mapped_channel * HDSP_CHANNEL_BUFFER_BYTES); } -static int snd_hdsp_playback_copy(snd_pcm_substream_t *substream, int channel, +static int snd_hdsp_playback_copy(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); char *channel_buf; snd_assert(pos + count <= HDSP_CHANNEL_BUFFER_BYTES / 4, return -EINVAL); @@ -3683,10 +3679,10 @@ static int snd_hdsp_playback_copy(snd_pcm_substream_t *substream, int channel, return count; } -static int snd_hdsp_capture_copy(snd_pcm_substream_t *substream, int channel, +static int snd_hdsp_capture_copy(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); char *channel_buf; snd_assert(pos + count <= HDSP_CHANNEL_BUFFER_BYTES / 4, return -EINVAL); @@ -3698,10 +3694,10 @@ static int snd_hdsp_capture_copy(snd_pcm_substream_t *substream, int channel, return count; } -static int snd_hdsp_hw_silence(snd_pcm_substream_t *substream, int channel, +static int snd_hdsp_hw_silence(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, snd_pcm_uframes_t count) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); char *channel_buf; channel_buf = hdsp_channel_buffer_location (hdsp, substream->pstr->stream, channel); @@ -3710,11 +3706,11 @@ static int snd_hdsp_hw_silence(snd_pcm_substream_t *substream, int channel, return count; } -static int snd_hdsp_reset(snd_pcm_substream_t *substream) +static int snd_hdsp_reset(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - hdsp_t *hdsp = snd_pcm_substream_chip(substream); - snd_pcm_substream_t *other; + struct snd_pcm_runtime *runtime = substream->runtime; + struct hdsp *hdsp = snd_pcm_substream_chip(substream); + struct snd_pcm_substream *other; if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) other = hdsp->capture_substream; else @@ -3725,8 +3721,8 @@ static int snd_hdsp_reset(snd_pcm_substream_t *substream) runtime->status->hw_ptr = 0; if (other) { struct list_head *pos; - snd_pcm_substream_t *s; - snd_pcm_runtime_t *oruntime = other->runtime; + struct snd_pcm_substream *s; + struct snd_pcm_runtime *oruntime = other->runtime; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == other) { @@ -3738,10 +3734,10 @@ static int snd_hdsp_reset(snd_pcm_substream_t *substream) return 0; } -static int snd_hdsp_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *params) +static int snd_hdsp_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); int err; pid_t this_pid; pid_t other_pid; @@ -3813,10 +3809,10 @@ static int snd_hdsp_hw_params(snd_pcm_substream_t *substream, return 0; } -static int snd_hdsp_channel_info(snd_pcm_substream_t *substream, - snd_pcm_channel_info_t *info) +static int snd_hdsp_channel_info(struct snd_pcm_substream *substream, + struct snd_pcm_channel_info *info) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); int mapped_channel; snd_assert(info->channel < hdsp->max_channels, return -EINVAL); @@ -3830,7 +3826,7 @@ static int snd_hdsp_channel_info(snd_pcm_substream_t *substream, return 0; } -static int snd_hdsp_ioctl(snd_pcm_substream_t *substream, +static int snd_hdsp_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg) { switch (cmd) { @@ -3845,10 +3841,10 @@ static int snd_hdsp_ioctl(snd_pcm_substream_t *substream, return snd_pcm_lib_ioctl(substream, cmd, arg); } -static int snd_hdsp_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_hdsp_trigger(struct snd_pcm_substream *substream, int cmd) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); - snd_pcm_substream_t *other; + struct hdsp *hdsp = snd_pcm_substream_chip(substream); + struct snd_pcm_substream *other; int running; if (hdsp_check_for_iobox (hdsp)) @@ -3878,7 +3874,7 @@ static int snd_hdsp_trigger(snd_pcm_substream_t *substream, int cmd) if (other) { struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == other) { @@ -3915,9 +3911,9 @@ static int snd_hdsp_trigger(snd_pcm_substream_t *substream, int cmd) return 0; } -static int snd_hdsp_prepare(snd_pcm_substream_t *substream) +static int snd_hdsp_prepare(struct snd_pcm_substream *substream) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); int result = 0; if (hdsp_check_for_iobox (hdsp)) @@ -3933,7 +3929,7 @@ static int snd_hdsp_prepare(snd_pcm_substream_t *substream) return result; } -static snd_pcm_hardware_t snd_hdsp_playback_subinfo = +static struct snd_pcm_hardware snd_hdsp_playback_subinfo = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -3963,7 +3959,7 @@ static snd_pcm_hardware_t snd_hdsp_playback_subinfo = .fifo_size = 0 }; -static snd_pcm_hardware_t snd_hdsp_capture_subinfo = +static struct snd_pcm_hardware snd_hdsp_capture_subinfo = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -3994,7 +3990,7 @@ static snd_pcm_hardware_t snd_hdsp_capture_subinfo = static unsigned int hdsp_period_sizes[] = { 64, 128, 256, 512, 1024, 2048, 4096, 8192 }; -static snd_pcm_hw_constraint_list_t hdsp_hw_constraints_period_sizes = { +static struct snd_pcm_hw_constraint_list hdsp_hw_constraints_period_sizes = { .count = ARRAY_SIZE(hdsp_period_sizes), .list = hdsp_period_sizes, .mask = 0 @@ -4002,17 +3998,17 @@ static snd_pcm_hw_constraint_list_t hdsp_hw_constraints_period_sizes = { static unsigned int hdsp_9632_sample_rates[] = { 32000, 44100, 48000, 64000, 88200, 96000, 128000, 176400, 192000 }; -static snd_pcm_hw_constraint_list_t hdsp_hw_constraints_9632_sample_rates = { +static struct snd_pcm_hw_constraint_list hdsp_hw_constraints_9632_sample_rates = { .count = ARRAY_SIZE(hdsp_9632_sample_rates), .list = hdsp_9632_sample_rates, .mask = 0 }; -static int snd_hdsp_hw_rule_in_channels(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_hdsp_hw_rule_in_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - hdsp_t *hdsp = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct hdsp *hdsp = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); if (hdsp->io_type == H9632) { unsigned int list[3]; list[0] = hdsp->qs_in_channels; @@ -4027,12 +4023,12 @@ static int snd_hdsp_hw_rule_in_channels(snd_pcm_hw_params_t *params, } } -static int snd_hdsp_hw_rule_out_channels(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_hdsp_hw_rule_out_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { unsigned int list[3]; - hdsp_t *hdsp = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct hdsp *hdsp = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); if (hdsp->io_type == H9632) { list[0] = hdsp->qs_out_channels; list[1] = hdsp->ds_out_channels; @@ -4045,28 +4041,28 @@ static int snd_hdsp_hw_rule_out_channels(snd_pcm_hw_params_t *params, return snd_interval_list(c, 2, list, 0); } -static int snd_hdsp_hw_rule_in_channels_rate(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_hdsp_hw_rule_in_channels_rate(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - hdsp_t *hdsp = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct hdsp *hdsp = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (r->min > 96000 && hdsp->io_type == H9632) { - snd_interval_t t = { + struct snd_interval t = { .min = hdsp->qs_in_channels, .max = hdsp->qs_in_channels, .integer = 1, }; return snd_interval_refine(c, &t); } else if (r->min > 48000 && r->max <= 96000) { - snd_interval_t t = { + struct snd_interval t = { .min = hdsp->ds_in_channels, .max = hdsp->ds_in_channels, .integer = 1, }; return snd_interval_refine(c, &t); } else if (r->max < 64000) { - snd_interval_t t = { + struct snd_interval t = { .min = hdsp->ss_in_channels, .max = hdsp->ss_in_channels, .integer = 1, @@ -4076,28 +4072,28 @@ static int snd_hdsp_hw_rule_in_channels_rate(snd_pcm_hw_params_t *params, return 0; } -static int snd_hdsp_hw_rule_out_channels_rate(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_hdsp_hw_rule_out_channels_rate(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - hdsp_t *hdsp = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct hdsp *hdsp = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (r->min > 96000 && hdsp->io_type == H9632) { - snd_interval_t t = { + struct snd_interval t = { .min = hdsp->qs_out_channels, .max = hdsp->qs_out_channels, .integer = 1, }; return snd_interval_refine(c, &t); } else if (r->min > 48000 && r->max <= 96000) { - snd_interval_t t = { + struct snd_interval t = { .min = hdsp->ds_out_channels, .max = hdsp->ds_out_channels, .integer = 1, }; return snd_interval_refine(c, &t); } else if (r->max < 64000) { - snd_interval_t t = { + struct snd_interval t = { .min = hdsp->ss_out_channels, .max = hdsp->ss_out_channels, .integer = 1, @@ -4107,28 +4103,28 @@ static int snd_hdsp_hw_rule_out_channels_rate(snd_pcm_hw_params_t *params, return 0; } -static int snd_hdsp_hw_rule_rate_out_channels(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_hdsp_hw_rule_rate_out_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - hdsp_t *hdsp = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct hdsp *hdsp = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (c->min >= hdsp->ss_out_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 32000, .max = 48000, .integer = 1, }; return snd_interval_refine(r, &t); } else if (c->max <= hdsp->qs_out_channels && hdsp->io_type == H9632) { - snd_interval_t t = { + struct snd_interval t = { .min = 128000, .max = 192000, .integer = 1, }; return snd_interval_refine(r, &t); } else if (c->max <= hdsp->ds_out_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 64000, .max = 96000, .integer = 1, @@ -4138,28 +4134,28 @@ static int snd_hdsp_hw_rule_rate_out_channels(snd_pcm_hw_params_t *params, return 0; } -static int snd_hdsp_hw_rule_rate_in_channels(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_hdsp_hw_rule_rate_in_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - hdsp_t *hdsp = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct hdsp *hdsp = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (c->min >= hdsp->ss_in_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 32000, .max = 48000, .integer = 1, }; return snd_interval_refine(r, &t); } else if (c->max <= hdsp->qs_in_channels && hdsp->io_type == H9632) { - snd_interval_t t = { + struct snd_interval t = { .min = 128000, .max = 192000, .integer = 1, }; return snd_interval_refine(r, &t); } else if (c->max <= hdsp->ds_in_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 64000, .max = 96000, .integer = 1, @@ -4169,10 +4165,10 @@ static int snd_hdsp_hw_rule_rate_in_channels(snd_pcm_hw_params_t *params, return 0; } -static int snd_hdsp_playback_open(snd_pcm_substream_t *substream) +static int snd_hdsp_playback_open(struct snd_pcm_substream *substream) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct hdsp *hdsp = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; if (hdsp_check_for_iobox (hdsp)) return -EIO; @@ -4224,9 +4220,9 @@ static int snd_hdsp_playback_open(snd_pcm_substream_t *substream) return 0; } -static int snd_hdsp_playback_release(snd_pcm_substream_t *substream) +static int snd_hdsp_playback_release(struct snd_pcm_substream *substream) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); spin_lock_irq(&hdsp->lock); @@ -4242,10 +4238,10 @@ static int snd_hdsp_playback_release(snd_pcm_substream_t *substream) } -static int snd_hdsp_capture_open(snd_pcm_substream_t *substream) +static int snd_hdsp_capture_open(struct snd_pcm_substream *substream) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct hdsp *hdsp = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; if (hdsp_check_for_iobox (hdsp)) return -EIO; @@ -4287,9 +4283,9 @@ static int snd_hdsp_capture_open(snd_pcm_substream_t *substream) return 0; } -static int snd_hdsp_capture_release(snd_pcm_substream_t *substream) +static int snd_hdsp_capture_release(struct snd_pcm_substream *substream) { - hdsp_t *hdsp = snd_pcm_substream_chip(substream); + struct hdsp *hdsp = snd_pcm_substream_chip(substream); spin_lock_irq(&hdsp->lock); @@ -4300,7 +4296,7 @@ static int snd_hdsp_capture_release(snd_pcm_substream_t *substream) return 0; } -static int snd_hdsp_hwdep_dummy_op(snd_hwdep_t *hw, struct file *file) +static int snd_hdsp_hwdep_dummy_op(struct snd_hwdep *hw, struct file *file) { /* we have nothing to initialize but the call is required */ return 0; @@ -4334,7 +4330,7 @@ static inline int copy_u48_le(void __user *dest, void __iomem *src_low, void __i return copy_to_user(dest, &rms, 8); } -static int hdsp_9652_get_peak(hdsp_t *hdsp, hdsp_peak_rms_t __user *peak_rms) +static int hdsp_9652_get_peak(struct hdsp *hdsp, struct hdsp_peak_rms __user *peak_rms) { int doublespeed = 0; int i, j, channels, ofs; @@ -4371,15 +4367,15 @@ static int hdsp_9652_get_peak(hdsp_t *hdsp, hdsp_peak_rms_t __user *peak_rms) return 0; } -static int hdsp_9632_get_peak(hdsp_t *hdsp, hdsp_peak_rms_t __user *peak_rms) +static int hdsp_9632_get_peak(struct hdsp *hdsp, struct hdsp_peak_rms __user *peak_rms) { int i, j; - hdsp_9632_meters_t __iomem *m; + struct hdsp_9632_meters __iomem *m; int doublespeed = 0; if (hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DoubleSpeedStatus) doublespeed = 1; - m = (hdsp_9632_meters_t __iomem *)(hdsp->iobase+HDSP_9632_metersBase); + m = (struct hdsp_9632_meters __iomem *)(hdsp->iobase+HDSP_9632_metersBase); for (i = 0, j = 0; i < 16; ++i, ++j) { if (copy_u32_le(&peak_rms->input_peaks[i], &m->input_peak[j])) return -EFAULT; @@ -4401,7 +4397,7 @@ static int hdsp_9632_get_peak(hdsp_t *hdsp, hdsp_peak_rms_t __user *peak_rms) return 0; } -static int hdsp_get_peak(hdsp_t *hdsp, hdsp_peak_rms_t __user *peak_rms) +static int hdsp_get_peak(struct hdsp *hdsp, struct hdsp_peak_rms __user *peak_rms) { int i; @@ -4431,14 +4427,14 @@ static int hdsp_get_peak(hdsp_t *hdsp, hdsp_peak_rms_t __user *peak_rms) return 0; } -static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int cmd, unsigned long arg) +static int snd_hdsp_hwdep_ioctl(struct snd_hwdep *hw, struct file *file, unsigned int cmd, unsigned long arg) { - hdsp_t *hdsp = (hdsp_t *)hw->private_data; + struct hdsp *hdsp = (struct hdsp *)hw->private_data; void __user *argp = (void __user *)arg; switch (cmd) { case SNDRV_HDSP_IOCTL_GET_PEAK_RMS: { - hdsp_peak_rms_t __user *peak_rms = (hdsp_peak_rms_t __user *)arg; + struct hdsp_peak_rms __user *peak_rms = (struct hdsp_peak_rms __user *)arg; if (!(hdsp->state & HDSP_FirmwareLoaded)) { snd_printk(KERN_ERR "Hammerfall-DSP: firmware needs to be uploaded to the card.\n"); @@ -4455,7 +4451,7 @@ static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int } } case SNDRV_HDSP_IOCTL_GET_CONFIG_INFO: { - hdsp_config_info_t info; + struct hdsp_config_info info; unsigned long flags; int i; @@ -4498,7 +4494,7 @@ static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int break; } case SNDRV_HDSP_IOCTL_GET_9632_AEB: { - hdsp_9632_aeb_t h9632_aeb; + struct hdsp_9632_aeb h9632_aeb; if (hdsp->io_type != H9632) return -EINVAL; h9632_aeb.aebi = hdsp->ss_in_channels - H9632_SS_CHANNELS; @@ -4508,7 +4504,7 @@ static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int break; } case SNDRV_HDSP_IOCTL_GET_VERSION: { - hdsp_version_t hdsp_version; + struct hdsp_version hdsp_version; int err; if (hdsp->io_type == H9652 || hdsp->io_type == H9632) return -EINVAL; @@ -4523,7 +4519,7 @@ static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int break; } case SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE: { - hdsp_firmware_t __user *firmware; + struct hdsp_firmware __user *firmware; u32 __user *firmware_data; int err; @@ -4535,7 +4531,7 @@ static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int return -EBUSY; snd_printk(KERN_INFO "Hammerfall-DSP: initializing firmware upload\n"); - firmware = (hdsp_firmware_t __user *)argp; + firmware = (struct hdsp_firmware __user *)argp; if (get_user(firmware_data, &firmware->firmware_data)) return -EFAULT; @@ -4566,7 +4562,7 @@ static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int break; } case SNDRV_HDSP_IOCTL_GET_MIXER: { - hdsp_mixer_t __user *mixer = (hdsp_mixer_t __user *)argp; + struct hdsp_mixer __user *mixer = (struct hdsp_mixer __user *)argp; if (copy_to_user(mixer->matrix, hdsp->mixer_matrix, sizeof(unsigned short)*HDSP_MATRIX_MIXER_SIZE)) return -EFAULT; break; @@ -4577,7 +4573,7 @@ static int snd_hdsp_hwdep_ioctl(snd_hwdep_t *hw, struct file *file, unsigned int return 0; } -static snd_pcm_ops_t snd_hdsp_playback_ops = { +static struct snd_pcm_ops snd_hdsp_playback_ops = { .open = snd_hdsp_playback_open, .close = snd_hdsp_playback_release, .ioctl = snd_hdsp_ioctl, @@ -4589,7 +4585,7 @@ static snd_pcm_ops_t snd_hdsp_playback_ops = { .silence = snd_hdsp_hw_silence, }; -static snd_pcm_ops_t snd_hdsp_capture_ops = { +static struct snd_pcm_ops snd_hdsp_capture_ops = { .open = snd_hdsp_capture_open, .close = snd_hdsp_capture_release, .ioctl = snd_hdsp_ioctl, @@ -4600,10 +4596,10 @@ static snd_pcm_ops_t snd_hdsp_capture_ops = { .copy = snd_hdsp_capture_copy, }; -static int __devinit snd_hdsp_create_hwdep(snd_card_t *card, - hdsp_t *hdsp) +static int __devinit snd_hdsp_create_hwdep(struct snd_card *card, + struct hdsp *hdsp) { - snd_hwdep_t *hw; + struct snd_hwdep *hw; int err; if ((err = snd_hwdep_new(card, "HDSP hwdep", 0, &hw)) < 0) @@ -4620,9 +4616,9 @@ static int __devinit snd_hdsp_create_hwdep(snd_card_t *card, return 0; } -static int snd_hdsp_create_pcm(snd_card_t *card, hdsp_t *hdsp) +static int snd_hdsp_create_pcm(struct snd_card *card, struct hdsp *hdsp) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if ((err = snd_pcm_new(card, hdsp->card_name, 0, 1, 1, &pcm)) < 0) @@ -4640,13 +4636,13 @@ static int snd_hdsp_create_pcm(snd_card_t *card, hdsp_t *hdsp) return 0; } -static void snd_hdsp_9652_enable_mixer (hdsp_t *hdsp) +static void snd_hdsp_9652_enable_mixer (struct hdsp *hdsp) { hdsp->control2_register |= HDSP_9652_ENABLE_MIXER; hdsp_write (hdsp, HDSP_control2Reg, hdsp->control2_register); } -static int snd_hdsp_enable_io (hdsp_t *hdsp) +static int snd_hdsp_enable_io (struct hdsp *hdsp) { int i; @@ -4663,7 +4659,7 @@ static int snd_hdsp_enable_io (hdsp_t *hdsp) return 0; } -static void snd_hdsp_initialize_channels(hdsp_t *hdsp) +static void snd_hdsp_initialize_channels(struct hdsp *hdsp) { int status, aebi_channels, aebo_channels; @@ -4706,13 +4702,13 @@ static void snd_hdsp_initialize_channels(hdsp_t *hdsp) } } -static void snd_hdsp_initialize_midi_flush (hdsp_t *hdsp) +static void snd_hdsp_initialize_midi_flush (struct hdsp *hdsp) { snd_hdsp_flush_midi_input (hdsp, 0); snd_hdsp_flush_midi_input (hdsp, 1); } -static int snd_hdsp_create_alsa_devices(snd_card_t *card, hdsp_t *hdsp) +static int snd_hdsp_create_alsa_devices(struct snd_card *card, struct hdsp *hdsp) { int err; @@ -4769,7 +4765,7 @@ static int snd_hdsp_create_alsa_devices(snd_card_t *card, hdsp_t *hdsp) #ifdef HDSP_FW_LOADER /* load firmware via hotplug fw loader */ -static int __devinit hdsp_request_fw_loader(hdsp_t *hdsp) +static int __devinit hdsp_request_fw_loader(struct hdsp *hdsp) { const char *fwfile; const struct firmware *fw; @@ -4842,8 +4838,8 @@ static int __devinit hdsp_request_fw_loader(hdsp_t *hdsp) } #endif -static int __devinit snd_hdsp_create(snd_card_t *card, - hdsp_t *hdsp) +static int __devinit snd_hdsp_create(struct snd_card *card, + struct hdsp *hdsp) { struct pci_dev *pci = hdsp->pci; int err; @@ -4980,7 +4976,7 @@ static int __devinit snd_hdsp_create(snd_card_t *card, return 0; } -static int snd_hdsp_free(hdsp_t *hdsp) +static int snd_hdsp_free(struct hdsp *hdsp) { if (hdsp->port) { /* stop the audio, and cancel all interrupts */ @@ -5004,9 +5000,9 @@ static int snd_hdsp_free(hdsp_t *hdsp) return 0; } -static void snd_hdsp_card_free(snd_card_t *card) +static void snd_hdsp_card_free(struct snd_card *card) { - hdsp_t *hdsp = (hdsp_t *) card->private_data; + struct hdsp *hdsp = (struct hdsp *) card->private_data; if (hdsp) snd_hdsp_free(hdsp); @@ -5016,8 +5012,8 @@ static int __devinit snd_hdsp_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - hdsp_t *hdsp; - snd_card_t *card; + struct hdsp *hdsp; + struct snd_card *card; int err; if (dev >= SNDRV_CARDS) @@ -5027,10 +5023,10 @@ static int __devinit snd_hdsp_probe(struct pci_dev *pci, return -ENOENT; } - if (!(card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(hdsp_t)))) + if (!(card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct hdsp)))) return -ENOMEM; - hdsp = (hdsp_t *) card->private_data; + hdsp = (struct hdsp *) card->private_data; card->private_free = snd_hdsp_card_free; hdsp->dev = dev; hdsp->pci = pci; -- cgit v1.2.3-70-g09d2 From 98274f0701f9e6579ae493ac190227fe93d11e20 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:52:34 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI HDSP-MADI Modules: HDSPM driver,RME9652 driver Remove xxx_t typedefs from the PCI HDSP-MADI driver. Signed-off-by: Takashi Iwai --- include/sound/hdspm.h | 45 ++-- sound/pci/rme9652/hdspm.c | 592 +++++++++++++++++++++++----------------------- 2 files changed, 315 insertions(+), 322 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/hdspm.h b/include/sound/hdspm.h index c34427ccd0b..c3c854d99c2 100644 --- a/include/sound/hdspm.h +++ b/include/sound/hdspm.h @@ -25,8 +25,6 @@ /* -------------------- IOCTL Peak/RMS Meters -------------------- */ -typedef struct _snd_hdspm_peak_rms hdspm_peak_rms_t; - /* peam rms level structure like we get from hardware maybe in future we can memory map it so I just copy it @@ -36,7 +34,7 @@ typedef struct _snd_hdspm_peak_rms hdspm_peak_rms_t; (i asume so from the code) */ -struct _snd_hdspm_peak_rms { +struct hdspm_peak_rms { unsigned int level_offset[1024]; @@ -58,18 +56,16 @@ struct _snd_hdspm_peak_rms { unsigned int xxx_rms_h[64]; /* not used */ }; -struct sndrv_hdspm_peak_rms_ioctl { - hdspm_peak_rms_t *peak; +struct hdspm_peak_rms_ioctl { + struct hdspm_peak_rms *peak; }; /* use indirect access due to the limit of ioctl bit size */ -#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct sndrv_hdspm_peak_rms_ioctl) +#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct hdspm_peak_rms_ioctl) /* ------------ CONFIG block IOCTL ---------------------- */ -typedef struct _snd_hdspm_config_info hdspm_config_info_t; - -struct _snd_hdspm_config_info { +struct hdspm_config_info { unsigned char pref_sync_ref; unsigned char wordclock_sync_check; unsigned char madi_sync_check; @@ -83,18 +79,16 @@ struct _snd_hdspm_config_info { unsigned int analog_out; }; -#define SNDRV_HDSPM_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, hdspm_config_info_t) +#define SNDRV_HDSPM_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdspm_config_info) /* get Soundcard Version */ -typedef struct _snd_hdspm_version hdspm_version_t; - -struct _snd_hdspm_version { +struct hdspm_version { unsigned short firmware_rev; }; -#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x43, hdspm_version_t) +#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x43, struct hdspm_version) /* ------------- get Matrix Mixer IOCTL --------------- */ @@ -108,24 +102,27 @@ struct _snd_hdspm_version { #define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS -typedef struct _snd_hdspm_channelfader snd_hdspm_channelfader_t; - -struct _snd_hdspm_channelfader { +struct hdspm_channelfader { unsigned int in[HDSPM_MIXER_CHANNELS]; unsigned int pb[HDSPM_MIXER_CHANNELS]; }; -typedef struct _snd_hdspm_mixer hdspm_mixer_t; - -struct _snd_hdspm_mixer { - snd_hdspm_channelfader_t ch[HDSPM_MIXER_CHANNELS]; +struct hdspm_mixer { + struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS]; }; -struct sndrv_hdspm_mixer_ioctl { - hdspm_mixer_t *mixer; +struct hdspm_mixer_ioctl { + struct hdspm_mixer *mixer; }; /* use indirect access due to the limit of ioctl bit size */ -#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct sndrv_hdspm_mixer_ioctl) +#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl) + +/* typedefs for compatibility to user-space */ +typedef struct hdspm_peak_rms hdspm_peak_rms_t; +typedef struct hdspm_config_info hdspm_config_info_t; +typedef struct hdspm_version hdspm_version_t; +typedef struct hdspm_channelfader snd_hdspm_channelfader_t; +typedef struct hdspm_mixer hdspm_mixer_t; #endif /* __SOUND_HDSPM_H */ diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index ae2013a8492..3dec616bad6 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -318,25 +318,22 @@ MODULE_SUPPORTED_DEVICE("{{RME HDSPM-MADI}}"); #define HDSPM_DMA_AREA_BYTES (HDSPM_MAX_CHANNELS * HDSPM_CHANNEL_BUFFER_BYTES) #define HDSPM_DMA_AREA_KILOBYTES (HDSPM_DMA_AREA_BYTES/1024) -typedef struct _hdspm hdspm_t; -typedef struct _hdspm_midi hdspm_midi_t; - -struct _hdspm_midi { - hdspm_t *hdspm; +struct hdspm_midi { + struct hdspm *hdspm; int id; - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *input; - snd_rawmidi_substream_t *output; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *input; + struct snd_rawmidi_substream *output; char istimer; /* timer in use */ struct timer_list timer; spinlock_t lock; int pending; }; -struct _hdspm { +struct hdspm { spinlock_t lock; - snd_pcm_substream_t *capture_substream; /* only one playback */ - snd_pcm_substream_t *playback_substream; /* and/or capture stream */ + struct snd_pcm_substream *capture_substream; /* only one playback */ + struct snd_pcm_substream *playback_substream; /* and/or capture stream */ char *card_name; /* for procinfo */ unsigned short firmware_rev; /* dont know if relevant */ @@ -347,7 +344,7 @@ struct _hdspm { u32 control_register; /* cached value */ u32 control2_register; /* cached value */ - hdspm_midi_t midi[2]; + struct hdspm_midi midi[2]; struct tasklet_struct midi_tasklet; size_t period_bytes; @@ -375,15 +372,15 @@ struct _hdspm { int irq_count; /* for debug */ - snd_card_t *card; /* one card */ - snd_pcm_t *pcm; /* has one pcm */ - snd_hwdep_t *hwdep; /* and a hwdep for additional ioctl */ + struct snd_card *card; /* one card */ + struct snd_pcm *pcm; /* has one pcm */ + struct snd_hwdep *hwdep; /* and a hwdep for additional ioctl */ struct pci_dev *pci; /* and an pci info */ /* Mixer vars */ - snd_kcontrol_t *playback_mixer_ctls[HDSPM_MAX_CHANNELS]; /* fast alsa mixer */ - snd_kcontrol_t *input_mixer_ctls[HDSPM_MAX_CHANNELS]; /* but input to much, so not used */ - hdspm_mixer_t *mixer; /* full mixer accessable over mixer ioctl or hwdep-device */ + struct snd_kcontrol *playback_mixer_ctls[HDSPM_MAX_CHANNELS]; /* fast alsa mixer */ + struct snd_kcontrol *input_mixer_ctls[HDSPM_MAX_CHANNELS]; /* but input to much, so not used */ + struct hdspm_mixer *mixer; /* full mixer accessable over mixer ioctl or hwdep-device */ }; @@ -444,28 +441,28 @@ static struct pci_device_id snd_hdspm_ids[] = { MODULE_DEVICE_TABLE(pci, snd_hdspm_ids); /* prototypes */ -static int __devinit snd_hdspm_create_alsa_devices(snd_card_t * card, - hdspm_t * hdspm); -static int __devinit snd_hdspm_create_pcm(snd_card_t * card, - hdspm_t * hdspm); - -static inline void snd_hdspm_initialize_midi_flush(hdspm_t * hdspm); -static int hdspm_update_simple_mixer_controls(hdspm_t * hdspm); -static int hdspm_autosync_ref(hdspm_t * hdspm); -static int snd_hdspm_set_defaults(hdspm_t * hdspm); -static void hdspm_set_sgbuf(hdspm_t * hdspm, struct snd_sg_buf *sgbuf, +static int __devinit snd_hdspm_create_alsa_devices(struct snd_card *card, + struct hdspm * hdspm); +static int __devinit snd_hdspm_create_pcm(struct snd_card *card, + struct hdspm * hdspm); + +static inline void snd_hdspm_initialize_midi_flush(struct hdspm * hdspm); +static int hdspm_update_simple_mixer_controls(struct hdspm * hdspm); +static int hdspm_autosync_ref(struct hdspm * hdspm); +static int snd_hdspm_set_defaults(struct hdspm * hdspm); +static void hdspm_set_sgbuf(struct hdspm * hdspm, struct snd_sg_buf *sgbuf, unsigned int reg, int channels); /* Write/read to/from HDSPM with Adresses in Bytes not words but only 32Bit writes are allowed */ -static inline void hdspm_write(hdspm_t * hdspm, unsigned int reg, +static inline void hdspm_write(struct hdspm * hdspm, unsigned int reg, unsigned int val) { writel(val, hdspm->iobase + reg); } -static inline unsigned int hdspm_read(hdspm_t * hdspm, unsigned int reg) +static inline unsigned int hdspm_read(struct hdspm * hdspm, unsigned int reg) { return readl(hdspm->iobase + reg); } @@ -474,7 +471,7 @@ static inline unsigned int hdspm_read(hdspm_t * hdspm, unsigned int reg) mixer is write only on hardware so we have to cache him for read each fader is a u32, but uses only the first 16 bit */ -static inline int hdspm_read_in_gain(hdspm_t * hdspm, unsigned int chan, +static inline int hdspm_read_in_gain(struct hdspm * hdspm, unsigned int chan, unsigned int in) { if (chan > HDSPM_MIXER_CHANNELS || in > HDSPM_MIXER_CHANNELS) @@ -483,7 +480,7 @@ static inline int hdspm_read_in_gain(hdspm_t * hdspm, unsigned int chan, return hdspm->mixer->ch[chan].in[in]; } -static inline int hdspm_read_pb_gain(hdspm_t * hdspm, unsigned int chan, +static inline int hdspm_read_pb_gain(struct hdspm * hdspm, unsigned int chan, unsigned int pb) { if (chan > HDSPM_MIXER_CHANNELS || pb > HDSPM_MIXER_CHANNELS) @@ -491,7 +488,7 @@ static inline int hdspm_read_pb_gain(hdspm_t * hdspm, unsigned int chan, return hdspm->mixer->ch[chan].pb[pb]; } -static inline int hdspm_write_in_gain(hdspm_t * hdspm, unsigned int chan, +static inline int hdspm_write_in_gain(struct hdspm * hdspm, unsigned int chan, unsigned int in, unsigned short data) { if (chan >= HDSPM_MIXER_CHANNELS || in >= HDSPM_MIXER_CHANNELS) @@ -504,7 +501,7 @@ static inline int hdspm_write_in_gain(hdspm_t * hdspm, unsigned int chan, return 0; } -static inline int hdspm_write_pb_gain(hdspm_t * hdspm, unsigned int chan, +static inline int hdspm_write_pb_gain(struct hdspm * hdspm, unsigned int chan, unsigned int pb, unsigned short data) { if (chan >= HDSPM_MIXER_CHANNELS || pb >= HDSPM_MIXER_CHANNELS) @@ -519,18 +516,18 @@ static inline int hdspm_write_pb_gain(hdspm_t * hdspm, unsigned int chan, /* enable DMA for specific channels, now available for DSP-MADI */ -static inline void snd_hdspm_enable_in(hdspm_t * hdspm, int i, int v) +static inline void snd_hdspm_enable_in(struct hdspm * hdspm, int i, int v) { hdspm_write(hdspm, HDSPM_inputEnableBase + (4 * i), v); } -static inline void snd_hdspm_enable_out(hdspm_t * hdspm, int i, int v) +static inline void snd_hdspm_enable_out(struct hdspm * hdspm, int i, int v) { hdspm_write(hdspm, HDSPM_outputEnableBase + (4 * i), v); } /* check if same process is writing and reading */ -static inline int snd_hdspm_use_is_exclusive(hdspm_t * hdspm) +static inline int snd_hdspm_use_is_exclusive(struct hdspm * hdspm) { unsigned long flags; int ret = 1; @@ -545,7 +542,7 @@ static inline int snd_hdspm_use_is_exclusive(hdspm_t * hdspm) } /* check for external sample rate */ -static inline int hdspm_external_sample_rate(hdspm_t * hdspm) +static inline int hdspm_external_sample_rate(struct hdspm * hdspm) { unsigned int status2 = hdspm_read(hdspm, HDSPM_statusRegister2); unsigned int status = hdspm_read(hdspm, HDSPM_statusRegister); @@ -630,13 +627,13 @@ static inline int hdspm_external_sample_rate(hdspm_t * hdspm) } /* Latency function */ -static inline void hdspm_compute_period_size(hdspm_t * hdspm) +static inline void hdspm_compute_period_size(struct hdspm * hdspm) { hdspm->period_bytes = 1 << ((hdspm_decode_latency(hdspm->control_register) + 8)); } -static snd_pcm_uframes_t hdspm_hw_pointer(hdspm_t * hdspm) +static snd_pcm_uframes_t hdspm_hw_pointer(struct hdspm * hdspm) { int position; @@ -660,20 +657,20 @@ static snd_pcm_uframes_t hdspm_hw_pointer(hdspm_t * hdspm) } -static inline void hdspm_start_audio(hdspm_t * s) +static inline void hdspm_start_audio(struct hdspm * s) { s->control_register |= (HDSPM_AudioInterruptEnable | HDSPM_Start); hdspm_write(s, HDSPM_controlRegister, s->control_register); } -static inline void hdspm_stop_audio(hdspm_t * s) +static inline void hdspm_stop_audio(struct hdspm * s) { s->control_register &= ~(HDSPM_Start | HDSPM_AudioInterruptEnable); hdspm_write(s, HDSPM_controlRegister, s->control_register); } /* should I silence all or only opened ones ? doit all for first even is 4MB*/ -static inline void hdspm_silence_playback(hdspm_t * hdspm) +static inline void hdspm_silence_playback(struct hdspm * hdspm) { int i; int n = hdspm->period_bytes; @@ -687,7 +684,7 @@ static inline void hdspm_silence_playback(hdspm_t * hdspm) } } -static int hdspm_set_interrupt_interval(hdspm_t * s, unsigned int frames) +static int hdspm_set_interrupt_interval(struct hdspm * s, unsigned int frames) { int n; @@ -713,7 +710,7 @@ static int hdspm_set_interrupt_interval(hdspm_t * s, unsigned int frames) /* dummy set rate lets see what happens */ -static int hdspm_set_rate(hdspm_t * hdspm, int rate, int called_internally) +static int hdspm_set_rate(struct hdspm * hdspm, int rate, int called_internally) { int reject_if_open = 0; int current_rate; @@ -838,7 +835,7 @@ static int hdspm_set_rate(hdspm_t * hdspm, int rate, int called_internally) } /* mainly for init to 0 on load */ -static void all_in_all_mixer(hdspm_t * hdspm, int sgain) +static void all_in_all_mixer(struct hdspm * hdspm, int sgain) { int i, j; unsigned int gain = @@ -855,7 +852,7 @@ static void all_in_all_mixer(hdspm_t * hdspm, int sgain) MIDI ----------------------------------------------------------------------------*/ -static inline unsigned char snd_hdspm_midi_read_byte (hdspm_t *hdspm, int id) +static inline unsigned char snd_hdspm_midi_read_byte (struct hdspm *hdspm, int id) { /* the hardware already does the relevant bit-mask with 0xff */ if (id) @@ -864,7 +861,7 @@ static inline unsigned char snd_hdspm_midi_read_byte (hdspm_t *hdspm, int id) return hdspm_read(hdspm, HDSPM_midiDataIn0); } -static inline void snd_hdspm_midi_write_byte (hdspm_t *hdspm, int id, int val) +static inline void snd_hdspm_midi_write_byte (struct hdspm *hdspm, int id, int val) { /* the hardware already does the relevant bit-mask with 0xff */ if (id) @@ -873,7 +870,7 @@ static inline void snd_hdspm_midi_write_byte (hdspm_t *hdspm, int id, int val) return hdspm_write(hdspm, HDSPM_midiDataOut0, val); } -static inline int snd_hdspm_midi_input_available (hdspm_t *hdspm, int id) +static inline int snd_hdspm_midi_input_available (struct hdspm *hdspm, int id) { if (id) return (hdspm_read(hdspm, HDSPM_midiStatusIn1) & 0xff); @@ -881,7 +878,7 @@ static inline int snd_hdspm_midi_input_available (hdspm_t *hdspm, int id) return (hdspm_read(hdspm, HDSPM_midiStatusIn0) & 0xff); } -static inline int snd_hdspm_midi_output_possible (hdspm_t *hdspm, int id) +static inline int snd_hdspm_midi_output_possible (struct hdspm *hdspm, int id) { int fifo_bytes_used; @@ -896,13 +893,13 @@ static inline int snd_hdspm_midi_output_possible (hdspm_t *hdspm, int id) return 0; } -static inline void snd_hdspm_flush_midi_input (hdspm_t *hdspm, int id) +static inline void snd_hdspm_flush_midi_input (struct hdspm *hdspm, int id) { while (snd_hdspm_midi_input_available (hdspm, id)) snd_hdspm_midi_read_byte (hdspm, id); } -static int snd_hdspm_midi_output_write (hdspm_midi_t *hmidi) +static int snd_hdspm_midi_output_write (struct hdspm_midi *hmidi) { unsigned long flags; int n_pending; @@ -930,7 +927,7 @@ static int snd_hdspm_midi_output_write (hdspm_midi_t *hmidi) return 0; } -static int snd_hdspm_midi_input_read (hdspm_midi_t *hmidi) +static int snd_hdspm_midi_input_read (struct hdspm_midi *hmidi) { unsigned char buf[128]; /* this buffer is designed to match the MIDI input FIFO size */ unsigned long flags; @@ -967,14 +964,14 @@ static int snd_hdspm_midi_input_read (hdspm_midi_t *hmidi) return snd_hdspm_midi_output_write (hmidi); } -static void snd_hdspm_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_hdspm_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { - hdspm_t *hdspm; - hdspm_midi_t *hmidi; + struct hdspm *hdspm; + struct hdspm_midi *hmidi; unsigned long flags; u32 ie; - hmidi = (hdspm_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdspm_midi *) substream->rmidi->private_data; hdspm = hmidi->hdspm; ie = hmidi->id ? HDSPM_Midi1InterruptEnable : HDSPM_Midi0InterruptEnable; spin_lock_irqsave (&hdspm->lock, flags); @@ -993,7 +990,7 @@ static void snd_hdspm_midi_input_trigger(snd_rawmidi_substream_t * substream, in static void snd_hdspm_midi_output_timer(unsigned long data) { - hdspm_midi_t *hmidi = (hdspm_midi_t *) data; + struct hdspm_midi *hmidi = (struct hdspm_midi *) data; unsigned long flags; snd_hdspm_midi_output_write(hmidi); @@ -1013,12 +1010,12 @@ static void snd_hdspm_midi_output_timer(unsigned long data) spin_unlock_irqrestore (&hmidi->lock, flags); } -static void snd_hdspm_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_hdspm_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { - hdspm_midi_t *hmidi; + struct hdspm_midi *hmidi; unsigned long flags; - hmidi = (hdspm_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdspm_midi *) substream->rmidi->private_data; spin_lock_irqsave (&hmidi->lock, flags); if (up) { if (!hmidi->istimer) { @@ -1039,11 +1036,11 @@ static void snd_hdspm_midi_output_trigger(snd_rawmidi_substream_t * substream, i snd_hdspm_midi_output_write(hmidi); } -static int snd_hdspm_midi_input_open(snd_rawmidi_substream_t * substream) +static int snd_hdspm_midi_input_open(struct snd_rawmidi_substream *substream) { - hdspm_midi_t *hmidi; + struct hdspm_midi *hmidi; - hmidi = (hdspm_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdspm_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); snd_hdspm_flush_midi_input (hmidi->hdspm, hmidi->id); hmidi->input = substream; @@ -1052,11 +1049,11 @@ static int snd_hdspm_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_hdspm_midi_output_open(snd_rawmidi_substream_t * substream) +static int snd_hdspm_midi_output_open(struct snd_rawmidi_substream *substream) { - hdspm_midi_t *hmidi; + struct hdspm_midi *hmidi; - hmidi = (hdspm_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdspm_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); hmidi->output = substream; spin_unlock_irq (&hmidi->lock); @@ -1064,13 +1061,13 @@ static int snd_hdspm_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_hdspm_midi_input_close(snd_rawmidi_substream_t * substream) +static int snd_hdspm_midi_input_close(struct snd_rawmidi_substream *substream) { - hdspm_midi_t *hmidi; + struct hdspm_midi *hmidi; snd_hdspm_midi_input_trigger (substream, 0); - hmidi = (hdspm_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdspm_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); hmidi->input = NULL; spin_unlock_irq (&hmidi->lock); @@ -1078,13 +1075,13 @@ static int snd_hdspm_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int snd_hdspm_midi_output_close(snd_rawmidi_substream_t * substream) +static int snd_hdspm_midi_output_close(struct snd_rawmidi_substream *substream) { - hdspm_midi_t *hmidi; + struct hdspm_midi *hmidi; snd_hdspm_midi_output_trigger (substream, 0); - hmidi = (hdspm_midi_t *) substream->rmidi->private_data; + hmidi = (struct hdspm_midi *) substream->rmidi->private_data; spin_lock_irq (&hmidi->lock); hmidi->output = NULL; spin_unlock_irq (&hmidi->lock); @@ -1092,21 +1089,21 @@ static int snd_hdspm_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static snd_rawmidi_ops_t snd_hdspm_midi_output = +static struct snd_rawmidi_ops snd_hdspm_midi_output = { .open = snd_hdspm_midi_output_open, .close = snd_hdspm_midi_output_close, .trigger = snd_hdspm_midi_output_trigger, }; -static snd_rawmidi_ops_t snd_hdspm_midi_input = +static struct snd_rawmidi_ops snd_hdspm_midi_input = { .open = snd_hdspm_midi_input_open, .close = snd_hdspm_midi_input_close, .trigger = snd_hdspm_midi_input_trigger, }; -static int __devinit snd_hdspm_create_midi (snd_card_t *card, hdspm_t *hdspm, int id) +static int __devinit snd_hdspm_create_midi (struct snd_card *card, struct hdspm *hdspm, int id) { int err; char buf[32]; @@ -1140,7 +1137,7 @@ static int __devinit snd_hdspm_create_midi (snd_card_t *card, hdspm_t *hdspm, in static void hdspm_midi_tasklet(unsigned long arg) { - hdspm_t *hdspm = (hdspm_t *)arg; + struct hdspm *hdspm = (struct hdspm *)arg; if (hdspm->midi[0].pending) snd_hdspm_midi_input_read (&hdspm->midi[0]); @@ -1164,19 +1161,19 @@ static void hdspm_midi_tasklet(unsigned long arg) .get = snd_hdspm_get_system_sample_rate \ } -static int snd_hdspm_info_system_sample_rate(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_system_sample_rate(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; return 0; } -static int snd_hdspm_get_system_sample_rate(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * +static int snd_hdspm_get_system_sample_rate(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value * ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdspm->system_sample_rate; return 0; @@ -1191,8 +1188,8 @@ static int snd_hdspm_get_system_sample_rate(snd_kcontrol_t * kcontrol, .get = snd_hdspm_get_autosync_sample_rate \ } -static int snd_hdspm_info_autosync_sample_rate(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_autosync_sample_rate(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "32000", "44100", "48000", "64000", "88200", "96000", @@ -1210,11 +1207,11 @@ static int snd_hdspm_info_autosync_sample_rate(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_autosync_sample_rate(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * +static int snd_hdspm_get_autosync_sample_rate(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value * ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); switch (hdspm_external_sample_rate(hdspm)) { case 32000: @@ -1262,7 +1259,7 @@ static int snd_hdspm_get_autosync_sample_rate(snd_kcontrol_t * kcontrol, -static int hdspm_system_clock_mode(hdspm_t * hdspm) +static int hdspm_system_clock_mode(struct hdspm * hdspm) { /* Always reflect the hardware info, rme is never wrong !!!! */ @@ -1271,8 +1268,8 @@ static int hdspm_system_clock_mode(hdspm_t * hdspm) return 1; } -static int snd_hdspm_info_system_clock_mode(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_system_clock_mode(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "Master", "Slave" }; @@ -1287,10 +1284,10 @@ static int snd_hdspm_info_system_clock_mode(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_system_clock_mode(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_system_clock_mode(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdspm_system_clock_mode(hdspm); @@ -1306,7 +1303,7 @@ static int snd_hdspm_get_system_clock_mode(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_clock_source \ } -static int hdspm_clock_source(hdspm_t * hdspm) +static int hdspm_clock_source(struct hdspm * hdspm) { if (hdspm->control_register & HDSPM_ClockModeMaster) { switch (hdspm->system_sample_rate) { @@ -1336,7 +1333,7 @@ static int hdspm_clock_source(hdspm_t * hdspm) } } -static int hdspm_set_clock_source(hdspm_t * hdspm, int mode) +static int hdspm_set_clock_source(struct hdspm * hdspm, int mode) { int rate; switch (mode) { @@ -1386,8 +1383,8 @@ static int hdspm_set_clock_source(hdspm_t * hdspm, int mode) return 0; } -static int snd_hdspm_info_clock_source(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_clock_source(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", @@ -1412,19 +1409,19 @@ static int snd_hdspm_info_clock_source(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_clock_source(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_clock_source(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdspm_clock_source(hdspm); return 0; } -static int snd_hdspm_put_clock_source(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_clock_source(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; int val; @@ -1453,7 +1450,7 @@ static int snd_hdspm_put_clock_source(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_pref_sync_ref \ } -static int hdspm_pref_sync_ref(hdspm_t * hdspm) +static int hdspm_pref_sync_ref(struct hdspm * hdspm) { /* Notice that this looks at the requested sync source, not the one actually in use. @@ -1468,7 +1465,7 @@ static int hdspm_pref_sync_ref(hdspm_t * hdspm) return HDSPM_SYNC_FROM_WORD; } -static int hdspm_set_pref_sync_ref(hdspm_t * hdspm, int pref) +static int hdspm_set_pref_sync_ref(struct hdspm * hdspm, int pref) { hdspm->control_register &= ~HDSPM_SyncRefMask; @@ -1486,8 +1483,8 @@ static int hdspm_set_pref_sync_ref(hdspm_t * hdspm, int pref) return 0; } -static int snd_hdspm_info_pref_sync_ref(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_pref_sync_ref(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "Word", "MADI" }; @@ -1504,19 +1501,19 @@ static int snd_hdspm_info_pref_sync_ref(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_pref_sync_ref(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_pref_sync_ref(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdspm_pref_sync_ref(hdspm); return 0; } -static int snd_hdspm_put_pref_sync_ref(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_pref_sync_ref(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change, max; unsigned int val; @@ -1543,7 +1540,7 @@ static int snd_hdspm_put_pref_sync_ref(snd_kcontrol_t * kcontrol, .get = snd_hdspm_get_autosync_ref, \ } -static int hdspm_autosync_ref(hdspm_t * hdspm) +static int hdspm_autosync_ref(struct hdspm * hdspm) { /* This looks at the autosync selected sync reference */ unsigned int status2 = hdspm_read(hdspm, HDSPM_statusRegister2); @@ -1566,8 +1563,8 @@ static int hdspm_autosync_ref(hdspm_t * hdspm) return 0; } -static int snd_hdspm_info_autosync_ref(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_autosync_ref(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "WordClock", "MADI", "None" }; @@ -1582,10 +1579,10 @@ static int snd_hdspm_info_autosync_ref(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_autosync_ref(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_autosync_ref(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdspm_pref_sync_ref(hdspm); return 0; @@ -1600,13 +1597,13 @@ static int snd_hdspm_get_autosync_ref(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_line_out \ } -static int hdspm_line_out(hdspm_t * hdspm) +static int hdspm_line_out(struct hdspm * hdspm) { return (hdspm->control_register & HDSPM_LineOut) ? 1 : 0; } -static int hdspm_set_line_output(hdspm_t * hdspm, int out) +static int hdspm_set_line_output(struct hdspm * hdspm, int out) { if (out) hdspm->control_register |= HDSPM_LineOut; @@ -1617,8 +1614,8 @@ static int hdspm_set_line_output(hdspm_t * hdspm, int out) return 0; } -static int snd_hdspm_info_line_out(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_line_out(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1627,10 +1624,10 @@ static int snd_hdspm_info_line_out(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_line_out(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_line_out(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdspm->lock); ucontrol->value.integer.value[0] = hdspm_line_out(hdspm); @@ -1638,10 +1635,10 @@ static int snd_hdspm_get_line_out(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_put_line_out(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_line_out(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1664,12 +1661,12 @@ static int snd_hdspm_put_line_out(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_tx_64 \ } -static int hdspm_tx_64(hdspm_t * hdspm) +static int hdspm_tx_64(struct hdspm * hdspm) { return (hdspm->control_register & HDSPM_TX_64ch) ? 1 : 0; } -static int hdspm_set_tx_64(hdspm_t * hdspm, int out) +static int hdspm_set_tx_64(struct hdspm * hdspm, int out) { if (out) hdspm->control_register |= HDSPM_TX_64ch; @@ -1680,8 +1677,8 @@ static int hdspm_set_tx_64(hdspm_t * hdspm, int out) return 0; } -static int snd_hdspm_info_tx_64(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_tx_64(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1690,10 +1687,10 @@ static int snd_hdspm_info_tx_64(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_tx_64(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_tx_64(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdspm->lock); ucontrol->value.integer.value[0] = hdspm_tx_64(hdspm); @@ -1701,10 +1698,10 @@ static int snd_hdspm_get_tx_64(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_put_tx_64(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_tx_64(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1727,12 +1724,12 @@ static int snd_hdspm_put_tx_64(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_c_tms \ } -static int hdspm_c_tms(hdspm_t * hdspm) +static int hdspm_c_tms(struct hdspm * hdspm) { return (hdspm->control_register & HDSPM_clr_tms) ? 1 : 0; } -static int hdspm_set_c_tms(hdspm_t * hdspm, int out) +static int hdspm_set_c_tms(struct hdspm * hdspm, int out) { if (out) hdspm->control_register |= HDSPM_clr_tms; @@ -1743,8 +1740,8 @@ static int hdspm_set_c_tms(hdspm_t * hdspm, int out) return 0; } -static int snd_hdspm_info_c_tms(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_c_tms(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1753,10 +1750,10 @@ static int snd_hdspm_info_c_tms(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_c_tms(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_c_tms(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdspm->lock); ucontrol->value.integer.value[0] = hdspm_c_tms(hdspm); @@ -1764,10 +1761,10 @@ static int snd_hdspm_get_c_tms(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_put_c_tms(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_c_tms(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1790,12 +1787,12 @@ static int snd_hdspm_put_c_tms(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_safe_mode \ } -static int hdspm_safe_mode(hdspm_t * hdspm) +static int hdspm_safe_mode(struct hdspm * hdspm) { return (hdspm->control_register & HDSPM_AutoInp) ? 1 : 0; } -static int hdspm_set_safe_mode(hdspm_t * hdspm, int out) +static int hdspm_set_safe_mode(struct hdspm * hdspm, int out) { if (out) hdspm->control_register |= HDSPM_AutoInp; @@ -1806,8 +1803,8 @@ static int hdspm_set_safe_mode(hdspm_t * hdspm, int out) return 0; } -static int snd_hdspm_info_safe_mode(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_safe_mode(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1816,10 +1813,10 @@ static int snd_hdspm_info_safe_mode(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_safe_mode(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_safe_mode(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdspm->lock); ucontrol->value.integer.value[0] = hdspm_safe_mode(hdspm); @@ -1827,10 +1824,10 @@ static int snd_hdspm_get_safe_mode(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_put_safe_mode(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_safe_mode(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1853,12 +1850,12 @@ static int snd_hdspm_put_safe_mode(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_input_select \ } -static int hdspm_input_select(hdspm_t * hdspm) +static int hdspm_input_select(struct hdspm * hdspm) { return (hdspm->control_register & HDSPM_InputSelect0) ? 1 : 0; } -static int hdspm_set_input_select(hdspm_t * hdspm, int out) +static int hdspm_set_input_select(struct hdspm * hdspm, int out) { if (out) hdspm->control_register |= HDSPM_InputSelect0; @@ -1869,8 +1866,8 @@ static int hdspm_set_input_select(hdspm_t * hdspm, int out) return 0; } -static int snd_hdspm_info_input_select(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_input_select(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "optical", "coaxial" }; @@ -1887,10 +1884,10 @@ static int snd_hdspm_info_input_select(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_input_select(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_input_select(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&hdspm->lock); ucontrol->value.enumerated.item[0] = hdspm_input_select(hdspm); @@ -1898,10 +1895,10 @@ static int snd_hdspm_get_input_select(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_put_input_select(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_input_select(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1937,8 +1934,8 @@ static int snd_hdspm_put_input_select(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_mixer \ } -static int snd_hdspm_info_mixer(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 3; @@ -1948,10 +1945,10 @@ static int snd_hdspm_info_mixer(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_mixer(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int source; int destination; @@ -1981,10 +1978,10 @@ static int snd_hdspm_get_mixer(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_put_mixer(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; int source; int destination; @@ -2041,8 +2038,8 @@ static int snd_hdspm_put_mixer(snd_kcontrol_t * kcontrol, .put = snd_hdspm_put_playback_mixer \ } -static int snd_hdspm_info_playback_mixer(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_playback_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -2052,10 +2049,10 @@ static int snd_hdspm_info_playback_mixer(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_get_playback_mixer(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_playback_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int channel; int mapped_channel; @@ -2079,10 +2076,10 @@ static int snd_hdspm_get_playback_mixer(snd_kcontrol_t * kcontrol, return 0; } -static int snd_hdspm_put_playback_mixer(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_put_playback_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); int change; int channel; int mapped_channel; @@ -2121,8 +2118,8 @@ static int snd_hdspm_put_playback_mixer(snd_kcontrol_t * kcontrol, .get = snd_hdspm_get_wc_sync_check \ } -static int snd_hdspm_info_sync_check(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_hdspm_info_sync_check(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "No Lock", "Lock", "Sync" }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -2136,7 +2133,7 @@ static int snd_hdspm_info_sync_check(snd_kcontrol_t * kcontrol, return 0; } -static int hdspm_wc_sync_check(hdspm_t * hdspm) +static int hdspm_wc_sync_check(struct hdspm * hdspm) { int status2 = hdspm_read(hdspm, HDSPM_statusRegister2); if (status2 & HDSPM_wcLock) { @@ -2148,10 +2145,10 @@ static int hdspm_wc_sync_check(hdspm_t * hdspm) return 0; } -static int snd_hdspm_get_wc_sync_check(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_hdspm_get_wc_sync_check(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdspm_wc_sync_check(hdspm); return 0; @@ -2167,7 +2164,7 @@ static int snd_hdspm_get_wc_sync_check(snd_kcontrol_t * kcontrol, .get = snd_hdspm_get_madisync_sync_check \ } -static int hdspm_madisync_sync_check(hdspm_t * hdspm) +static int hdspm_madisync_sync_check(struct hdspm * hdspm) { int status = hdspm_read(hdspm, HDSPM_statusRegister); if (status & HDSPM_madiLock) { @@ -2179,11 +2176,11 @@ static int hdspm_madisync_sync_check(hdspm_t * hdspm) return 0; } -static int snd_hdspm_get_madisync_sync_check(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * +static int snd_hdspm_get_madisync_sync_check(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value * ucontrol) { - hdspm_t *hdspm = snd_kcontrol_chip(kcontrol); + struct hdspm *hdspm = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = hdspm_madisync_sync_check(hdspm); @@ -2193,7 +2190,7 @@ static int snd_hdspm_get_madisync_sync_check(snd_kcontrol_t * kcontrol, -static snd_kcontrol_new_t snd_hdspm_controls[] = { +static struct snd_kcontrol_new snd_hdspm_controls[] = { HDSPM_MIXER("Mixer", 0), /* 'Sample Clock Source' complies with the alsa control naming scheme */ @@ -2214,10 +2211,10 @@ static snd_kcontrol_new_t snd_hdspm_controls[] = { HDSPM_INPUT_SELECT("Input Select", 0), }; -static snd_kcontrol_new_t snd_hdspm_playback_mixer = HDSPM_PLAYBACK_MIXER; +static struct snd_kcontrol_new snd_hdspm_playback_mixer = HDSPM_PLAYBACK_MIXER; -static int hdspm_update_simple_mixer_controls(hdspm_t * hdspm) +static int hdspm_update_simple_mixer_controls(struct hdspm * hdspm) { int i; @@ -2241,11 +2238,11 @@ static int hdspm_update_simple_mixer_controls(hdspm_t * hdspm) } -static int snd_hdspm_create_controls(snd_card_t * card, hdspm_t * hdspm) +static int snd_hdspm_create_controls(struct snd_card *card, struct hdspm * hdspm) { unsigned int idx, limit; int err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; /* add control list first */ @@ -2292,9 +2289,9 @@ static int snd_hdspm_create_controls(snd_card_t * card, hdspm_t * hdspm) ------------------------------------------------------------*/ static void -snd_hdspm_proc_read(snd_info_entry_t * entry, snd_info_buffer_t * buffer) +snd_hdspm_proc_read(struct snd_info_entry * entry, struct snd_info_buffer *buffer) { - hdspm_t *hdspm = (hdspm_t *) entry->private_data; + struct hdspm *hdspm = (struct hdspm *) entry->private_data; unsigned int status; unsigned int status2; char *pref_sync_ref; @@ -2487,9 +2484,9 @@ snd_hdspm_proc_read(snd_info_entry_t * entry, snd_info_buffer_t * buffer) snd_iprintf(buffer, "\n"); } -static void __devinit snd_hdspm_proc_init(hdspm_t * hdspm) +static void __devinit snd_hdspm_proc_init(struct hdspm * hdspm) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (!snd_card_proc_new(hdspm->card, "hdspm", &entry)) snd_info_set_text_ops(entry, hdspm, 1024, @@ -2500,7 +2497,7 @@ static void __devinit snd_hdspm_proc_init(hdspm_t * hdspm) hdspm intitialize ------------------------------------------------------------*/ -static int snd_hdspm_set_defaults(hdspm_t * hdspm) +static int snd_hdspm_set_defaults(struct hdspm * hdspm) { unsigned int i; @@ -2562,7 +2559,7 @@ static int snd_hdspm_set_defaults(hdspm_t * hdspm) static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - hdspm_t *hdspm = (hdspm_t *) dev_id; + struct hdspm *hdspm = (struct hdspm *) dev_id; unsigned int status; int audio; int midi0; @@ -2627,14 +2624,14 @@ static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id, ------------------------------------------------------------*/ -static snd_pcm_uframes_t snd_hdspm_hw_pointer(snd_pcm_substream_t * +static snd_pcm_uframes_t snd_hdspm_hw_pointer(struct snd_pcm_substream * substream) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); return hdspm_hw_pointer(hdspm); } -static char *hdspm_channel_buffer_location(hdspm_t * hdspm, +static char *hdspm_channel_buffer_location(struct hdspm * hdspm, int stream, int channel) { int mapped_channel; @@ -2656,11 +2653,11 @@ static char *hdspm_channel_buffer_location(hdspm_t * hdspm, /* dont know why need it ??? */ -static int snd_hdspm_playback_copy(snd_pcm_substream_t * substream, +static int snd_hdspm_playback_copy(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); char *channel_buf; snd_assert(pos + count <= HDSPM_CHANNEL_BUFFER_BYTES / 4, @@ -2675,11 +2672,11 @@ static int snd_hdspm_playback_copy(snd_pcm_substream_t * substream, return copy_from_user(channel_buf + pos * 4, src, count * 4); } -static int snd_hdspm_capture_copy(snd_pcm_substream_t * substream, +static int snd_hdspm_capture_copy(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); char *channel_buf; snd_assert(pos + count <= HDSPM_CHANNEL_BUFFER_BYTES / 4, @@ -2692,11 +2689,11 @@ static int snd_hdspm_capture_copy(snd_pcm_substream_t * substream, return copy_to_user(dst, channel_buf + pos * 4, count * 4); } -static int snd_hdspm_hw_silence(snd_pcm_substream_t * substream, +static int snd_hdspm_hw_silence(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, snd_pcm_uframes_t count) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); char *channel_buf; channel_buf = @@ -2707,11 +2704,11 @@ static int snd_hdspm_hw_silence(snd_pcm_substream_t * substream, return 0; } -static int snd_hdspm_reset(snd_pcm_substream_t * substream) +static int snd_hdspm_reset(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - hdspm_t *hdspm = snd_pcm_substream_chip(substream); - snd_pcm_substream_t *other; + struct snd_pcm_runtime *runtime = substream->runtime; + struct hdspm *hdspm = snd_pcm_substream_chip(substream); + struct snd_pcm_substream *other; if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) other = hdspm->capture_substream; @@ -2724,8 +2721,8 @@ static int snd_hdspm_reset(snd_pcm_substream_t * substream) runtime->status->hw_ptr = 0; if (other) { struct list_head *pos; - snd_pcm_substream_t *s; - snd_pcm_runtime_t *oruntime = other->runtime; + struct snd_pcm_substream *s; + struct snd_pcm_runtime *oruntime = other->runtime; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == other) { @@ -2738,10 +2735,10 @@ static int snd_hdspm_reset(snd_pcm_substream_t * substream) return 0; } -static int snd_hdspm_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * params) +static int snd_hdspm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); int err; int i; pid_t this_pid; @@ -2839,10 +2836,10 @@ static int snd_hdspm_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_hdspm_hw_free(snd_pcm_substream_t * substream) +static int snd_hdspm_hw_free(struct snd_pcm_substream *substream) { int i; - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { @@ -2865,10 +2862,10 @@ static int snd_hdspm_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_hdspm_channel_info(snd_pcm_substream_t * substream, - snd_pcm_channel_info_t * info) +static int snd_hdspm_channel_info(struct snd_pcm_substream *substream, + struct snd_pcm_channel_info * info) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); int mapped_channel; snd_assert(info->channel < HDSPM_MAX_CHANNELS, return -EINVAL); @@ -2882,7 +2879,7 @@ static int snd_hdspm_channel_info(snd_pcm_substream_t * substream, return 0; } -static int snd_hdspm_ioctl(snd_pcm_substream_t * substream, +static int snd_hdspm_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg) { switch (cmd) { @@ -2893,7 +2890,7 @@ static int snd_hdspm_ioctl(snd_pcm_substream_t * substream, case SNDRV_PCM_IOCTL1_CHANNEL_INFO: { - snd_pcm_channel_info_t *info = arg; + struct snd_pcm_channel_info *info = arg; return snd_hdspm_channel_info(substream, info); } default: @@ -2903,10 +2900,10 @@ static int snd_hdspm_ioctl(snd_pcm_substream_t * substream, return snd_pcm_lib_ioctl(substream, cmd, arg); } -static int snd_hdspm_trigger(snd_pcm_substream_t * substream, int cmd) +static int snd_hdspm_trigger(struct snd_pcm_substream *substream, int cmd) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); - snd_pcm_substream_t *other; + struct hdspm *hdspm = snd_pcm_substream_chip(substream); + struct snd_pcm_substream *other; int running; spin_lock(&hdspm->lock); @@ -2930,7 +2927,7 @@ static int snd_hdspm_trigger(snd_pcm_substream_t * substream, int cmd) if (other) { struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == other) { @@ -2968,7 +2965,7 @@ static int snd_hdspm_trigger(snd_pcm_substream_t * substream, int cmd) return 0; } -static int snd_hdspm_prepare(snd_pcm_substream_t * substream) +static int snd_hdspm_prepare(struct snd_pcm_substream *substream) { return 0; } @@ -2976,7 +2973,7 @@ static int snd_hdspm_prepare(snd_pcm_substream_t * substream) static unsigned int period_sizes[] = { 64, 128, 256, 512, 1024, 2048, 4096, 8192 }; -static snd_pcm_hardware_t snd_hdspm_playback_subinfo = { +static struct snd_pcm_hardware snd_hdspm_playback_subinfo = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_NONINTERLEAVED | @@ -3000,7 +2997,7 @@ static snd_pcm_hardware_t snd_hdspm_playback_subinfo = { .fifo_size = 0 }; -static snd_pcm_hardware_t snd_hdspm_capture_subinfo = { +static struct snd_pcm_hardware snd_hdspm_capture_subinfo = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_NONINTERLEAVED | @@ -3024,31 +3021,31 @@ static snd_pcm_hardware_t snd_hdspm_capture_subinfo = { .fifo_size = 0 }; -static snd_pcm_hw_constraint_list_t hw_constraints_period_sizes = { +static struct snd_pcm_hw_constraint_list hw_constraints_period_sizes = { .count = ARRAY_SIZE(period_sizes), .list = period_sizes, .mask = 0 }; -static int snd_hdspm_hw_rule_channels_rate(snd_pcm_hw_params_t * params, - snd_pcm_hw_rule_t * rule) +static int snd_hdspm_hw_rule_channels_rate(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule * rule) { - hdspm_t *hdspm = rule->private; - snd_interval_t *c = + struct hdspm *hdspm = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (r->min > 48000) { - snd_interval_t t = { + struct snd_interval t = { .min = 1, .max = hdspm->ds_channels, .integer = 1, }; return snd_interval_refine(c, &t); } else if (r->max < 64000) { - snd_interval_t t = { + struct snd_interval t = { .min = 1, .max = hdspm->ss_channels, .integer = 1, @@ -3058,24 +3055,24 @@ static int snd_hdspm_hw_rule_channels_rate(snd_pcm_hw_params_t * params, return 0; } -static int snd_hdspm_hw_rule_rate_channels(snd_pcm_hw_params_t * params, - snd_pcm_hw_rule_t * rule) +static int snd_hdspm_hw_rule_rate_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule * rule) { - hdspm_t *hdspm = rule->private; - snd_interval_t *c = + struct hdspm *hdspm = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (c->min <= hdspm->ss_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 32000, .max = 48000, .integer = 1, }; return snd_interval_refine(r, &t); } else if (c->max > hdspm->ss_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 64000, .max = 96000, .integer = 1, @@ -3086,10 +3083,10 @@ static int snd_hdspm_hw_rule_rate_channels(snd_pcm_hw_params_t * params, return 0; } -static int snd_hdspm_playback_open(snd_pcm_substream_t * substream) +static int snd_hdspm_playback_open(struct snd_pcm_substream *substream) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct hdspm *hdspm = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_printdd("Open device substream %d\n", substream->stream); @@ -3124,9 +3121,9 @@ static int snd_hdspm_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_hdspm_playback_release(snd_pcm_substream_t * substream) +static int snd_hdspm_playback_release(struct snd_pcm_substream *substream) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); spin_lock_irq(&hdspm->lock); @@ -3139,10 +3136,10 @@ static int snd_hdspm_playback_release(snd_pcm_substream_t * substream) } -static int snd_hdspm_capture_open(snd_pcm_substream_t * substream) +static int snd_hdspm_capture_open(struct snd_pcm_substream *substream) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct hdspm *hdspm = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; spin_lock_irq(&hdspm->lock); snd_pcm_set_sync(substream); @@ -3171,9 +3168,9 @@ static int snd_hdspm_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_hdspm_capture_release(snd_pcm_substream_t * substream) +static int snd_hdspm_capture_release(struct snd_pcm_substream *substream) { - hdspm_t *hdspm = snd_pcm_substream_chip(substream); + struct hdspm *hdspm = snd_pcm_substream_chip(substream); spin_lock_irq(&hdspm->lock); @@ -3184,21 +3181,21 @@ static int snd_hdspm_capture_release(snd_pcm_substream_t * substream) return 0; } -static int snd_hdspm_hwdep_dummy_op(snd_hwdep_t * hw, struct file *file) +static int snd_hdspm_hwdep_dummy_op(struct snd_hwdep * hw, struct file *file) { /* we have nothing to initialize but the call is required */ return 0; } -static int snd_hdspm_hwdep_ioctl(snd_hwdep_t * hw, struct file *file, +static int snd_hdspm_hwdep_ioctl(struct snd_hwdep * hw, struct file *file, unsigned int cmd, unsigned long arg) { - hdspm_t *hdspm = (hdspm_t *) hw->private_data; - struct sndrv_hdspm_mixer_ioctl mixer; - hdspm_config_info_t info; - hdspm_version_t hdspm_version; - struct sndrv_hdspm_peak_rms_ioctl rms; + struct hdspm *hdspm = (struct hdspm *) hw->private_data; + struct hdspm_mixer_ioctl mixer; + struct hdspm_config_info info; + struct hdspm_version hdspm_version; + struct hdspm_peak_rms_ioctl rms; switch (cmd) { @@ -3209,7 +3206,7 @@ static int snd_hdspm_hwdep_ioctl(snd_hwdep_t * hw, struct file *file, /* maybe there is a chance to memorymap in future so dont touch just copy */ if(copy_to_user_fromio((void __user *)rms.peak, hdspm->iobase+HDSPM_MADI_peakrmsbase, - sizeof(hdspm_peak_rms_t)) != 0 ) + sizeof(struct hdspm_peak_rms)) != 0 ) return -EFAULT; break; @@ -3250,7 +3247,7 @@ static int snd_hdspm_hwdep_ioctl(snd_hwdep_t * hw, struct file *file, if (copy_from_user(&mixer, (void __user *)arg, sizeof(mixer))) return -EFAULT; if (copy_to_user - ((void __user *)mixer.mixer, hdspm->mixer, sizeof(hdspm_mixer_t))) + ((void __user *)mixer.mixer, hdspm->mixer, sizeof(struct hdspm_mixer))) return -EFAULT; break; @@ -3260,7 +3257,7 @@ static int snd_hdspm_hwdep_ioctl(snd_hwdep_t * hw, struct file *file, return 0; } -static snd_pcm_ops_t snd_hdspm_playback_ops = { +static struct snd_pcm_ops snd_hdspm_playback_ops = { .open = snd_hdspm_playback_open, .close = snd_hdspm_playback_release, .ioctl = snd_hdspm_ioctl, @@ -3274,7 +3271,7 @@ static snd_pcm_ops_t snd_hdspm_playback_ops = { .page = snd_pcm_sgbuf_ops_page, }; -static snd_pcm_ops_t snd_hdspm_capture_ops = { +static struct snd_pcm_ops snd_hdspm_capture_ops = { .open = snd_hdspm_capture_open, .close = snd_hdspm_capture_release, .ioctl = snd_hdspm_ioctl, @@ -3287,10 +3284,10 @@ static snd_pcm_ops_t snd_hdspm_capture_ops = { .page = snd_pcm_sgbuf_ops_page, }; -static int __devinit snd_hdspm_create_hwdep(snd_card_t * card, - hdspm_t * hdspm) +static int __devinit snd_hdspm_create_hwdep(struct snd_card *card, + struct hdspm * hdspm) { - snd_hwdep_t *hw; + struct snd_hwdep *hw; int err; if ((err = snd_hwdep_new(card, "HDSPM hwdep", 0, &hw)) < 0) @@ -3311,10 +3308,10 @@ static int __devinit snd_hdspm_create_hwdep(snd_card_t * card, /*------------------------------------------------------------ memory interface ------------------------------------------------------------*/ -static int __devinit snd_hdspm_preallocate_memory(hdspm_t * hdspm) +static int __devinit snd_hdspm_preallocate_memory(struct hdspm * hdspm) { int err; - snd_pcm_t *pcm; + struct snd_pcm *pcm; size_t wanted; pcm = hdspm->pcm; @@ -3336,7 +3333,7 @@ static int __devinit snd_hdspm_preallocate_memory(hdspm_t * hdspm) return 0; } -static void hdspm_set_sgbuf(hdspm_t * hdspm, struct snd_sg_buf *sgbuf, +static void hdspm_set_sgbuf(struct hdspm * hdspm, struct snd_sg_buf *sgbuf, unsigned int reg, int channels) { int i; @@ -3347,10 +3344,10 @@ static void hdspm_set_sgbuf(hdspm_t * hdspm, struct snd_sg_buf *sgbuf, } /* ------------- ALSA Devices ---------------------------- */ -static int __devinit snd_hdspm_create_pcm(snd_card_t * card, - hdspm_t * hdspm) +static int __devinit snd_hdspm_create_pcm(struct snd_card *card, + struct hdspm * hdspm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if ((err = snd_pcm_new(card, hdspm->card_name, 0, 1, 1, &pcm)) < 0) @@ -3373,14 +3370,14 @@ static int __devinit snd_hdspm_create_pcm(snd_card_t * card, return 0; } -static inline void snd_hdspm_initialize_midi_flush(hdspm_t * hdspm) +static inline void snd_hdspm_initialize_midi_flush(struct hdspm * hdspm) { snd_hdspm_flush_midi_input(hdspm, 0); snd_hdspm_flush_midi_input(hdspm, 1); } -static int __devinit snd_hdspm_create_alsa_devices(snd_card_t * card, - hdspm_t * hdspm) +static int __devinit snd_hdspm_create_alsa_devices(struct snd_card *card, + struct hdspm * hdspm) { int err; @@ -3430,7 +3427,7 @@ static int __devinit snd_hdspm_create_alsa_devices(snd_card_t * card, return 0; } -static int __devinit snd_hdspm_create(snd_card_t * card, hdspm_t * hdspm, +static int __devinit snd_hdspm_create(struct snd_card *card, struct hdspm * hdspm, int precise_ptr, int enable_monitor) { struct pci_dev *pci = hdspm->pci; @@ -3514,12 +3511,11 @@ static int __devinit snd_hdspm_create(snd_card_t * card, hdspm_t * hdspm, hdspm->monitor_outs = enable_monitor; snd_printdd("kmalloc Mixer memory of %d Bytes\n", - sizeof(hdspm_mixer_t)); - if ((hdspm->mixer = - (hdspm_mixer_t *) kmalloc(sizeof(hdspm_mixer_t), GFP_KERNEL)) + sizeof(struct hdspm_mixer)); + if ((hdspm->mixer = kmalloc(sizeof(struct hdspm_mixer), GFP_KERNEL)) == NULL) { snd_printk(KERN_ERR "HDSPM: unable to kmalloc Mixer memory of %d Bytes\n", - (int)sizeof(hdspm_mixer_t)); + (int)sizeof(struct hdspm_mixer)); return err; } @@ -3536,7 +3532,7 @@ static int __devinit snd_hdspm_create(snd_card_t * card, hdspm_t * hdspm, return 0; } -static int snd_hdspm_free(hdspm_t * hdspm) +static int snd_hdspm_free(struct hdspm * hdspm) { if (hdspm->port) { @@ -3566,9 +3562,9 @@ static int snd_hdspm_free(hdspm_t * hdspm) return 0; } -static void snd_hdspm_card_free(snd_card_t * card) +static void snd_hdspm_card_free(struct snd_card *card) { - hdspm_t *hdspm = (hdspm_t *) card->private_data; + struct hdspm *hdspm = (struct hdspm *) card->private_data; if (hdspm) snd_hdspm_free(hdspm); @@ -3578,8 +3574,8 @@ static int __devinit snd_hdspm_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - hdspm_t *hdspm; - snd_card_t *card; + struct hdspm *hdspm; + struct snd_card *card; int err; if (dev >= SNDRV_CARDS) @@ -3590,10 +3586,10 @@ static int __devinit snd_hdspm_probe(struct pci_dev *pci, } if (!(card = snd_card_new(index[dev], id[dev], - THIS_MODULE, sizeof(hdspm_t)))) + THIS_MODULE, sizeof(struct hdspm)))) return -ENOMEM; - hdspm = (hdspm_t *) card->private_data; + hdspm = (struct hdspm *) card->private_data; card->private_free = snd_hdspm_card_free; hdspm->dev = dev; hdspm->pci = pci; -- cgit v1.2.3-70-g09d2 From abfd67bd6fcc07b54d54e00a9105900f478323a6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:52:53 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI RME9652 Modules: RME9652 driver Remove xxx_t typedefs from the PCI RME9652 driver. Signed-off-by: Takashi Iwai --- sound/pci/rme9652/rme9652.c | 372 ++++++++++++++++++++++---------------------- 1 file changed, 186 insertions(+), 186 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c index f9d0c126c21..a687eb63236 100644 --- a/sound/pci/rme9652/rme9652.c +++ b/sound/pci/rme9652/rme9652.c @@ -198,7 +198,7 @@ MODULE_SUPPORTED_DEVICE("{{RME,Hammerfall}," #define RME9652_DMA_AREA_BYTES ((RME9652_NCHANNELS+1) * RME9652_CHANNEL_BUFFER_BYTES) #define RME9652_DMA_AREA_KILOBYTES (RME9652_DMA_AREA_BYTES/1024) -typedef struct snd_rme9652 { +struct snd_rme9652 { int dev; spinlock_t lock; @@ -234,8 +234,8 @@ typedef struct snd_rme9652 { pid_t capture_pid; pid_t playback_pid; - snd_pcm_substream_t *capture_substream; - snd_pcm_substream_t *playback_substream; + struct snd_pcm_substream *capture_substream; + struct snd_pcm_substream *playback_substream; int running; int passthru; /* non-zero if doing pass-thru */ @@ -246,12 +246,12 @@ typedef struct snd_rme9652 { char *channel_map; - snd_card_t *card; - snd_pcm_t *pcm; + struct snd_card *card; + struct snd_pcm *pcm; struct pci_dev *pci; - snd_kcontrol_t *spdif_ctl; + struct snd_kcontrol *spdif_ctl; -} rme9652_t; +}; /* These tables map the ALSA channels 1..N to the channels that we need to use in order to find the relevant channel buffer. RME @@ -327,17 +327,17 @@ static struct pci_device_id snd_rme9652_ids[] = { MODULE_DEVICE_TABLE(pci, snd_rme9652_ids); -static inline void rme9652_write(rme9652_t *rme9652, int reg, int val) +static inline void rme9652_write(struct snd_rme9652 *rme9652, int reg, int val) { writel(val, rme9652->iobase + reg); } -static inline unsigned int rme9652_read(rme9652_t *rme9652, int reg) +static inline unsigned int rme9652_read(struct snd_rme9652 *rme9652, int reg) { return readl(rme9652->iobase + reg); } -static inline int snd_rme9652_use_is_exclusive(rme9652_t *rme9652) +static inline int snd_rme9652_use_is_exclusive(struct snd_rme9652 *rme9652) { unsigned long flags; int ret = 1; @@ -351,7 +351,7 @@ static inline int snd_rme9652_use_is_exclusive(rme9652_t *rme9652) return ret; } -static inline int rme9652_adat_sample_rate(rme9652_t *rme9652) +static inline int rme9652_adat_sample_rate(struct snd_rme9652 *rme9652) { if (rme9652_running_double_speed(rme9652)) { return (rme9652_read(rme9652, RME9652_status_register) & @@ -362,7 +362,7 @@ static inline int rme9652_adat_sample_rate(rme9652_t *rme9652) } } -static inline void rme9652_compute_period_size(rme9652_t *rme9652) +static inline void rme9652_compute_period_size(struct snd_rme9652 *rme9652) { unsigned int i; @@ -373,7 +373,7 @@ static inline void rme9652_compute_period_size(rme9652_t *rme9652) rme9652->max_jitter = 80; } -static snd_pcm_uframes_t rme9652_hw_pointer(rme9652_t *rme9652) +static snd_pcm_uframes_t rme9652_hw_pointer(struct snd_rme9652 *rme9652) { int status; unsigned int offset, frag; @@ -420,7 +420,7 @@ static snd_pcm_uframes_t rme9652_hw_pointer(rme9652_t *rme9652) return offset; } -static inline void rme9652_reset_hw_pointer(rme9652_t *rme9652) +static inline void rme9652_reset_hw_pointer(struct snd_rme9652 *rme9652) { int i; @@ -437,19 +437,19 @@ static inline void rme9652_reset_hw_pointer(rme9652_t *rme9652) rme9652->prev_hw_offset = 0; } -static inline void rme9652_start(rme9652_t *s) +static inline void rme9652_start(struct snd_rme9652 *s) { s->control_register |= (RME9652_IE | RME9652_start_bit); rme9652_write(s, RME9652_control_register, s->control_register); } -static inline void rme9652_stop(rme9652_t *s) +static inline void rme9652_stop(struct snd_rme9652 *s) { s->control_register &= ~(RME9652_start_bit | RME9652_IE); rme9652_write(s, RME9652_control_register, s->control_register); } -static int rme9652_set_interrupt_interval(rme9652_t *s, +static int rme9652_set_interrupt_interval(struct snd_rme9652 *s, unsigned int frames) { int restart = 0; @@ -483,7 +483,7 @@ static int rme9652_set_interrupt_interval(rme9652_t *s, return 0; } -static int rme9652_set_rate(rme9652_t *rme9652, int rate) +static int rme9652_set_rate(struct snd_rme9652 *rme9652, int rate) { int restart; int reject_if_open = 0; @@ -571,7 +571,7 @@ static int rme9652_set_rate(rme9652_t *rme9652, int rate) return 0; } -static void rme9652_set_thru(rme9652_t *rme9652, int channel, int enable) +static void rme9652_set_thru(struct snd_rme9652 *rme9652, int channel, int enable) { int i; @@ -612,7 +612,7 @@ static void rme9652_set_thru(rme9652_t *rme9652, int channel, int enable) } } -static int rme9652_set_passthru(rme9652_t *rme9652, int onoff) +static int rme9652_set_passthru(struct snd_rme9652 *rme9652, int onoff) { if (onoff) { rme9652_set_thru(rme9652, -1, 1); @@ -640,7 +640,7 @@ static int rme9652_set_passthru(rme9652_t *rme9652, int onoff) return 0; } -static void rme9652_spdif_set_bit (rme9652_t *rme9652, int mask, int onoff) +static void rme9652_spdif_set_bit (struct snd_rme9652 *rme9652, int mask, int onoff) { if (onoff) rme9652->control_register |= mask; @@ -650,7 +650,7 @@ static void rme9652_spdif_set_bit (rme9652_t *rme9652, int mask, int onoff) rme9652_write(rme9652, RME9652_control_register, rme9652->control_register); } -static void rme9652_spdif_write_byte (rme9652_t *rme9652, const int val) +static void rme9652_spdif_write_byte (struct snd_rme9652 *rme9652, const int val) { long mask; long i; @@ -666,7 +666,7 @@ static void rme9652_spdif_write_byte (rme9652_t *rme9652, const int val) } } -static int rme9652_spdif_read_byte (rme9652_t *rme9652) +static int rme9652_spdif_read_byte (struct snd_rme9652 *rme9652) { long mask; long val; @@ -684,7 +684,7 @@ static int rme9652_spdif_read_byte (rme9652_t *rme9652) return val; } -static void rme9652_write_spdif_codec (rme9652_t *rme9652, const int address, const int data) +static void rme9652_write_spdif_codec (struct snd_rme9652 *rme9652, const int address, const int data) { rme9652_spdif_set_bit (rme9652, RME9652_SPDIF_SELECT, 1); rme9652_spdif_write_byte (rme9652, 0x20); @@ -694,7 +694,7 @@ static void rme9652_write_spdif_codec (rme9652_t *rme9652, const int address, co } -static int rme9652_spdif_read_codec (rme9652_t *rme9652, const int address) +static int rme9652_spdif_read_codec (struct snd_rme9652 *rme9652, const int address) { int ret; @@ -711,7 +711,7 @@ static int rme9652_spdif_read_codec (rme9652_t *rme9652, const int address) return ret; } -static void rme9652_initialize_spdif_receiver (rme9652_t *rme9652) +static void rme9652_initialize_spdif_receiver (struct snd_rme9652 *rme9652) { /* XXX what unsets this ? */ @@ -722,7 +722,7 @@ static void rme9652_initialize_spdif_receiver (rme9652_t *rme9652) rme9652_write_spdif_codec (rme9652, 6, 0x02); } -static inline int rme9652_spdif_sample_rate(rme9652_t *s) +static inline int rme9652_spdif_sample_rate(struct snd_rme9652 *s) { unsigned int rate_bits; @@ -790,7 +790,7 @@ static inline int rme9652_spdif_sample_rate(rme9652_t *s) Control Interface ----------------------------------------------------------------------------*/ -static u32 snd_rme9652_convert_from_aes(snd_aes_iec958_t *aes) +static u32 snd_rme9652_convert_from_aes(struct snd_aes_iec958 *aes) { u32 val = 0; val |= (aes->status[0] & IEC958_AES0_PROFESSIONAL) ? RME9652_PRO : 0; @@ -802,7 +802,7 @@ static u32 snd_rme9652_convert_from_aes(snd_aes_iec958_t *aes) return val; } -static void snd_rme9652_convert_to_aes(snd_aes_iec958_t *aes, u32 val) +static void snd_rme9652_convert_to_aes(struct snd_aes_iec958 *aes, u32 val) { aes->status[0] = ((val & RME9652_PRO) ? IEC958_AES0_PROFESSIONAL : 0) | ((val & RME9652_Dolby) ? IEC958_AES0_NONAUDIO : 0); @@ -812,24 +812,24 @@ static void snd_rme9652_convert_to_aes(snd_aes_iec958_t *aes, u32 val) aes->status[0] |= (val & RME9652_EMP) ? IEC958_AES0_CON_EMPHASIS_5015 : 0; } -static int snd_rme9652_control_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_control_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme9652_control_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_control_spdif_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); snd_rme9652_convert_to_aes(&ucontrol->value.iec958, rme9652->creg_spdif); return 0; } -static int snd_rme9652_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_control_spdif_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -841,24 +841,24 @@ static int snd_rme9652_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem return change; } -static int snd_rme9652_control_spdif_stream_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_control_spdif_stream_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme9652_control_spdif_stream_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_control_spdif_stream_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); snd_rme9652_convert_to_aes(&ucontrol->value.iec958, rme9652->creg_spdif_stream); return 0; } -static int snd_rme9652_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_control_spdif_stream_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -872,14 +872,14 @@ static int snd_rme9652_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_c return change; } -static int snd_rme9652_control_spdif_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_control_spdif_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme9652_control_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_control_spdif_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = kcontrol->private_value; return 0; @@ -891,14 +891,14 @@ static int snd_rme9652_control_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl .get = snd_rme9652_get_adat1_in, \ .put = snd_rme9652_put_adat1_in } -static unsigned int rme9652_adat1_in(rme9652_t *rme9652) +static unsigned int rme9652_adat1_in(struct snd_rme9652 *rme9652) { if (rme9652->control_register & RME9652_ADAT1_INTERNAL) return 1; return 0; } -static int rme9652_set_adat1_input(rme9652_t *rme9652, int internal) +static int rme9652_set_adat1_input(struct snd_rme9652 *rme9652, int internal) { int restart = 0; @@ -923,7 +923,7 @@ static int rme9652_set_adat1_input(rme9652_t *rme9652, int internal) return 0; } -static int snd_rme9652_info_adat1_in(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_adat1_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[2] = {"ADAT1", "Internal"}; @@ -936,9 +936,9 @@ static int snd_rme9652_info_adat1_in(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_rme9652_get_adat1_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_adat1_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme9652->lock); ucontrol->value.enumerated.item[0] = rme9652_adat1_in(rme9652); @@ -946,9 +946,9 @@ static int snd_rme9652_get_adat1_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu return 0; } -static int snd_rme9652_put_adat1_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_put_adat1_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -968,13 +968,13 @@ static int snd_rme9652_put_adat1_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu .info = snd_rme9652_info_spdif_in, \ .get = snd_rme9652_get_spdif_in, .put = snd_rme9652_put_spdif_in } -static unsigned int rme9652_spdif_in(rme9652_t *rme9652) +static unsigned int rme9652_spdif_in(struct snd_rme9652 *rme9652) { return rme9652_decode_spdif_in(rme9652->control_register & RME9652_inp); } -static int rme9652_set_spdif_input(rme9652_t *rme9652, int in) +static int rme9652_set_spdif_input(struct snd_rme9652 *rme9652, int in) { int restart = 0; @@ -994,7 +994,7 @@ static int rme9652_set_spdif_input(rme9652_t *rme9652, int in) return 0; } -static int snd_rme9652_info_spdif_in(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_spdif_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = {"ADAT1", "Coaxial", "Internal"}; @@ -1007,9 +1007,9 @@ static int snd_rme9652_info_spdif_in(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_rme9652_get_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_spdif_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme9652->lock); ucontrol->value.enumerated.item[0] = rme9652_spdif_in(rme9652); @@ -1017,9 +1017,9 @@ static int snd_rme9652_get_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu return 0; } -static int snd_rme9652_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_put_spdif_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1039,12 +1039,12 @@ static int snd_rme9652_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu .info = snd_rme9652_info_spdif_out, \ .get = snd_rme9652_get_spdif_out, .put = snd_rme9652_put_spdif_out } -static int rme9652_spdif_out(rme9652_t *rme9652) +static int rme9652_spdif_out(struct snd_rme9652 *rme9652) { return (rme9652->control_register & RME9652_opt_out) ? 1 : 0; } -static int rme9652_set_spdif_output(rme9652_t *rme9652, int out) +static int rme9652_set_spdif_output(struct snd_rme9652 *rme9652, int out) { int restart = 0; @@ -1067,7 +1067,7 @@ static int rme9652_set_spdif_output(rme9652_t *rme9652, int out) return 0; } -static int snd_rme9652_info_spdif_out(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1076,9 +1076,9 @@ static int snd_rme9652_info_spdif_out(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_rme9652_get_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme9652->lock); ucontrol->value.integer.value[0] = rme9652_spdif_out(rme9652); @@ -1086,9 +1086,9 @@ static int snd_rme9652_get_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return 0; } -static int snd_rme9652_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_put_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1107,7 +1107,7 @@ static int snd_rme9652_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_val .info = snd_rme9652_info_sync_mode, \ .get = snd_rme9652_get_sync_mode, .put = snd_rme9652_put_sync_mode } -static int rme9652_sync_mode(rme9652_t *rme9652) +static int rme9652_sync_mode(struct snd_rme9652 *rme9652) { if (rme9652->control_register & RME9652_wsel) { return 2; @@ -1118,7 +1118,7 @@ static int rme9652_sync_mode(rme9652_t *rme9652) } } -static int rme9652_set_sync_mode(rme9652_t *rme9652, int mode) +static int rme9652_set_sync_mode(struct snd_rme9652 *rme9652, int mode) { int restart = 0; @@ -1150,7 +1150,7 @@ static int rme9652_set_sync_mode(rme9652_t *rme9652, int mode) return 0; } -static int snd_rme9652_info_sync_mode(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_sync_mode(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = {"AutoSync", "Master", "Word Clock"}; @@ -1163,9 +1163,9 @@ static int snd_rme9652_info_sync_mode(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_rme9652_get_sync_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_sync_mode(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme9652->lock); ucontrol->value.enumerated.item[0] = rme9652_sync_mode(rme9652); @@ -1173,9 +1173,9 @@ static int snd_rme9652_get_sync_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return 0; } -static int snd_rme9652_put_sync_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_put_sync_mode(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; unsigned int val; @@ -1192,7 +1192,7 @@ static int snd_rme9652_put_sync_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_val .info = snd_rme9652_info_sync_pref, \ .get = snd_rme9652_get_sync_pref, .put = snd_rme9652_put_sync_pref } -static int rme9652_sync_pref(rme9652_t *rme9652) +static int rme9652_sync_pref(struct snd_rme9652 *rme9652) { switch (rme9652->control_register & RME9652_SyncPref_Mask) { case RME9652_SyncPref_ADAT1: @@ -1208,7 +1208,7 @@ static int rme9652_sync_pref(rme9652_t *rme9652) return 0; } -static int rme9652_set_sync_pref(rme9652_t *rme9652, int pref) +static int rme9652_set_sync_pref(struct snd_rme9652 *rme9652, int pref) { int restart; @@ -1241,10 +1241,10 @@ static int rme9652_set_sync_pref(rme9652_t *rme9652, int pref) return 0; } -static int snd_rme9652_info_sync_pref(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_sync_pref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[4] = {"IEC958 In", "ADAT1 In", "ADAT2 In", "ADAT3 In"}; - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -1255,9 +1255,9 @@ static int snd_rme9652_info_sync_pref(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_rme9652_get_sync_pref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_sync_pref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme9652->lock); ucontrol->value.enumerated.item[0] = rme9652_sync_pref(rme9652); @@ -1265,9 +1265,9 @@ static int snd_rme9652_get_sync_pref(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return 0; } -static int snd_rme9652_put_sync_pref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_put_sync_pref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change, max; unsigned int val; @@ -1282,9 +1282,9 @@ static int snd_rme9652_put_sync_pref(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return change; } -static int snd_rme9652_info_thru(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_thru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = rme9652->ss_channels; uinfo->value.integer.min = 0; @@ -1292,9 +1292,9 @@ static int snd_rme9652_info_thru(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_rme9652_get_thru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_thru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); unsigned int k; u32 thru_bits = rme9652->thru_bits; @@ -1304,9 +1304,9 @@ static int snd_rme9652_get_thru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_rme9652_put_thru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_put_thru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; unsigned int chn; u32 thru_bits = 0; @@ -1338,7 +1338,7 @@ static int snd_rme9652_put_thru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .put = snd_rme9652_put_passthru, \ .get = snd_rme9652_get_passthru } -static int snd_rme9652_info_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_passthru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1347,9 +1347,9 @@ static int snd_rme9652_info_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_inf return 0; } -static int snd_rme9652_get_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_passthru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme9652->lock); ucontrol->value.integer.value[0] = rme9652->passthru; @@ -1357,9 +1357,9 @@ static int snd_rme9652_get_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu return 0; } -static int snd_rme9652_put_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_put_passthru(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); int change; unsigned int val; int err = 0; @@ -1384,7 +1384,7 @@ static int snd_rme9652_put_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu .info = snd_rme9652_info_spdif_rate, \ .get = snd_rme9652_get_spdif_rate } -static int snd_rme9652_info_spdif_rate(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_spdif_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -1393,9 +1393,9 @@ static int snd_rme9652_info_spdif_rate(snd_kcontrol_t *kcontrol, snd_ctl_elem_in return 0; } -static int snd_rme9652_get_spdif_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_spdif_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme9652->lock); ucontrol->value.integer.value[0] = rme9652_spdif_sample_rate(rme9652); @@ -1409,7 +1409,7 @@ static int snd_rme9652_get_spdif_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_va .info = snd_rme9652_info_adat_sync, \ .get = snd_rme9652_get_adat_sync, .private_value = xidx } -static int snd_rme9652_info_adat_sync(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_adat_sync(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[4] = {"No Lock", "Lock", "No Lock Sync", "Lock Sync"}; @@ -1422,9 +1422,9 @@ static int snd_rme9652_info_adat_sync(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_rme9652_get_adat_sync(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_adat_sync(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); unsigned int mask1, mask2, val; switch (kcontrol->private_value) { @@ -1445,7 +1445,7 @@ static int snd_rme9652_get_adat_sync(snd_kcontrol_t * kcontrol, snd_ctl_elem_val .info = snd_rme9652_info_tc_valid, \ .get = snd_rme9652_get_tc_valid } -static int snd_rme9652_info_tc_valid(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme9652_info_tc_valid(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1454,9 +1454,9 @@ static int snd_rme9652_info_tc_valid(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_rme9652_get_tc_valid(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme9652_get_tc_valid(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol); + struct snd_rme9652 *rme9652 = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = (rme9652_read(rme9652, RME9652_status_register) & RME9652_tc_valid) ? 1 : 0; @@ -1471,7 +1471,7 @@ static int snd_rme9652_get_tc_value(void *private_data, snd_kswitch_t *kswitch, snd_switch_t *uswitch) { - rme9652_t *s = (rme9652_t *) private_data; + struct snd_rme9652 *s = (struct snd_rme9652 *) private_data; u32 value; int i; @@ -1520,7 +1520,7 @@ static int snd_rme9652_get_tc_value(void *private_data, #endif /* ALSA_HAS_STANDARD_WAY_OF_RETURNING_TIMECODE */ -static snd_kcontrol_new_t snd_rme9652_controls[] = { +static struct snd_kcontrol_new snd_rme9652_controls[] = { { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -1575,17 +1575,17 @@ RME9652_TC_VALID("Timecode Valid", 0), RME9652_PASSTHRU("Passthru", 0) }; -static snd_kcontrol_new_t snd_rme9652_adat3_check = +static struct snd_kcontrol_new snd_rme9652_adat3_check = RME9652_ADAT_SYNC("ADAT3 Sync Check", 0, 2); -static snd_kcontrol_new_t snd_rme9652_adat1_input = +static struct snd_kcontrol_new snd_rme9652_adat1_input = RME9652_ADAT1_IN("ADAT1 Input Source", 0); -static int snd_rme9652_create_controls(snd_card_t *card, rme9652_t *rme9652) +static int snd_rme9652_create_controls(struct snd_card *card, struct snd_rme9652 *rme9652) { unsigned int idx; int err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; for (idx = 0; idx < ARRAY_SIZE(snd_rme9652_controls); idx++) { if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_rme9652_controls[idx], rme9652))) < 0) @@ -1610,9 +1610,9 @@ static int snd_rme9652_create_controls(snd_card_t *card, rme9652_t *rme9652) ------------------------------------------------------------*/ static void -snd_rme9652_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +snd_rme9652_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - rme9652_t *rme9652 = (rme9652_t *) entry->private_data; + struct snd_rme9652 *rme9652 = (struct snd_rme9652 *) entry->private_data; u32 thru_bits = rme9652->thru_bits; int show_auto_sync_source = 0; int i; @@ -1782,21 +1782,21 @@ snd_rme9652_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) snd_iprintf(buffer, "\n"); } -static void __devinit snd_rme9652_proc_init(rme9652_t *rme9652) +static void __devinit snd_rme9652_proc_init(struct snd_rme9652 *rme9652) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(rme9652->card, "rme9652", &entry)) snd_info_set_text_ops(entry, rme9652, 1024, snd_rme9652_proc_read); } -static void snd_rme9652_free_buffers(rme9652_t *rme9652) +static void snd_rme9652_free_buffers(struct snd_rme9652 *rme9652) { snd_hammerfall_free_buffer(&rme9652->capture_dma_buf, rme9652->pci); snd_hammerfall_free_buffer(&rme9652->playback_dma_buf, rme9652->pci); } -static int snd_rme9652_free(rme9652_t *rme9652) +static int snd_rme9652_free(struct snd_rme9652 *rme9652) { if (rme9652->irq >= 0) rme9652_stop(rme9652); @@ -1813,7 +1813,7 @@ static int snd_rme9652_free(rme9652_t *rme9652) return 0; } -static int __devinit snd_rme9652_initialize_memory(rme9652_t *rme9652) +static int __devinit snd_rme9652_initialize_memory(struct snd_rme9652 *rme9652) { unsigned long pb_bus, cb_bus; @@ -1841,7 +1841,7 @@ static int __devinit snd_rme9652_initialize_memory(rme9652_t *rme9652) return 0; } -static void snd_rme9652_set_defaults(rme9652_t *rme9652) +static void snd_rme9652_set_defaults(struct snd_rme9652 *rme9652) { unsigned int k; @@ -1884,7 +1884,7 @@ static void snd_rme9652_set_defaults(rme9652_t *rme9652) static irqreturn_t snd_rme9652_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - rme9652_t *rme9652 = (rme9652_t *) dev_id; + struct snd_rme9652 *rme9652 = (struct snd_rme9652 *) dev_id; if (!(rme9652_read(rme9652, RME9652_status_register) & RME9652_IRQ)) { return IRQ_NONE; @@ -1902,13 +1902,13 @@ static irqreturn_t snd_rme9652_interrupt(int irq, void *dev_id, struct pt_regs * return IRQ_HANDLED; } -static snd_pcm_uframes_t snd_rme9652_hw_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_rme9652_hw_pointer(struct snd_pcm_substream *substream) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); return rme9652_hw_pointer(rme9652); } -static char *rme9652_channel_buffer_location(rme9652_t *rme9652, +static char *rme9652_channel_buffer_location(struct snd_rme9652 *rme9652, int stream, int channel) @@ -1930,10 +1930,10 @@ static char *rme9652_channel_buffer_location(rme9652_t *rme9652, } } -static int snd_rme9652_playback_copy(snd_pcm_substream_t *substream, int channel, +static int snd_rme9652_playback_copy(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); char *channel_buf; snd_assert(pos + count <= RME9652_CHANNEL_BUFFER_BYTES / 4, return -EINVAL); @@ -1947,10 +1947,10 @@ static int snd_rme9652_playback_copy(snd_pcm_substream_t *substream, int channel return count; } -static int snd_rme9652_capture_copy(snd_pcm_substream_t *substream, int channel, +static int snd_rme9652_capture_copy(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); char *channel_buf; snd_assert(pos + count <= RME9652_CHANNEL_BUFFER_BYTES / 4, return -EINVAL); @@ -1964,10 +1964,10 @@ static int snd_rme9652_capture_copy(snd_pcm_substream_t *substream, int channel, return count; } -static int snd_rme9652_hw_silence(snd_pcm_substream_t *substream, int channel, +static int snd_rme9652_hw_silence(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, snd_pcm_uframes_t count) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); char *channel_buf; channel_buf = rme9652_channel_buffer_location (rme9652, @@ -1978,11 +1978,11 @@ static int snd_rme9652_hw_silence(snd_pcm_substream_t *substream, int channel, return count; } -static int snd_rme9652_reset(snd_pcm_substream_t *substream) +static int snd_rme9652_reset(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); - snd_pcm_substream_t *other; + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); + struct snd_pcm_substream *other; if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) other = rme9652->capture_substream; else @@ -1993,8 +1993,8 @@ static int snd_rme9652_reset(snd_pcm_substream_t *substream) runtime->status->hw_ptr = 0; if (other) { struct list_head *pos; - snd_pcm_substream_t *s; - snd_pcm_runtime_t *oruntime = other->runtime; + struct snd_pcm_substream *s; + struct snd_pcm_runtime *oruntime = other->runtime; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == other) { @@ -2006,10 +2006,10 @@ static int snd_rme9652_reset(snd_pcm_substream_t *substream) return 0; } -static int snd_rme9652_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *params) +static int snd_rme9652_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); int err; pid_t this_pid; pid_t other_pid; @@ -2071,10 +2071,10 @@ static int snd_rme9652_hw_params(snd_pcm_substream_t *substream, return 0; } -static int snd_rme9652_channel_info(snd_pcm_substream_t *substream, - snd_pcm_channel_info_t *info) +static int snd_rme9652_channel_info(struct snd_pcm_substream *substream, + struct snd_pcm_channel_info *info) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); int chn; snd_assert(info->channel < RME9652_NCHANNELS, return -EINVAL); @@ -2089,7 +2089,7 @@ static int snd_rme9652_channel_info(snd_pcm_substream_t *substream, return 0; } -static int snd_rme9652_ioctl(snd_pcm_substream_t *substream, +static int snd_rme9652_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg) { switch (cmd) { @@ -2099,7 +2099,7 @@ static int snd_rme9652_ioctl(snd_pcm_substream_t *substream, } case SNDRV_PCM_IOCTL1_CHANNEL_INFO: { - snd_pcm_channel_info_t *info = arg; + struct snd_pcm_channel_info *info = arg; return snd_rme9652_channel_info(substream, info); } default: @@ -2109,16 +2109,16 @@ static int snd_rme9652_ioctl(snd_pcm_substream_t *substream, return snd_pcm_lib_ioctl(substream, cmd, arg); } -static void rme9652_silence_playback(rme9652_t *rme9652) +static void rme9652_silence_playback(struct snd_rme9652 *rme9652) { memset(rme9652->playback_buffer, 0, RME9652_DMA_AREA_BYTES); } -static int snd_rme9652_trigger(snd_pcm_substream_t *substream, +static int snd_rme9652_trigger(struct snd_pcm_substream *substream, int cmd) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); - snd_pcm_substream_t *other; + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); + struct snd_pcm_substream *other; int running; spin_lock(&rme9652->lock); running = rme9652->running; @@ -2141,7 +2141,7 @@ static int snd_rme9652_trigger(snd_pcm_substream_t *substream, if (other) { struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == other) { @@ -2178,9 +2178,9 @@ static int snd_rme9652_trigger(snd_pcm_substream_t *substream, return 0; } -static int snd_rme9652_prepare(snd_pcm_substream_t *substream) +static int snd_rme9652_prepare(struct snd_pcm_substream *substream) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); unsigned long flags; int result = 0; @@ -2191,7 +2191,7 @@ static int snd_rme9652_prepare(snd_pcm_substream_t *substream) return result; } -static snd_pcm_hardware_t snd_rme9652_playback_subinfo = +static struct snd_pcm_hardware snd_rme9652_playback_subinfo = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -2215,7 +2215,7 @@ static snd_pcm_hardware_t snd_rme9652_playback_subinfo = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_rme9652_capture_subinfo = +static struct snd_pcm_hardware snd_rme9652_capture_subinfo = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -2240,36 +2240,36 @@ static snd_pcm_hardware_t snd_rme9652_capture_subinfo = static unsigned int period_sizes[] = { 64, 128, 256, 512, 1024, 2048, 4096, 8192 }; -static snd_pcm_hw_constraint_list_t hw_constraints_period_sizes = { +static struct snd_pcm_hw_constraint_list hw_constraints_period_sizes = { .count = ARRAY_SIZE(period_sizes), .list = period_sizes, .mask = 0 }; -static int snd_rme9652_hw_rule_channels(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_rme9652_hw_rule_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - rme9652_t *rme9652 = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_rme9652 *rme9652 = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); unsigned int list[2] = { rme9652->ds_channels, rme9652->ss_channels }; return snd_interval_list(c, 2, list, 0); } -static int snd_rme9652_hw_rule_channels_rate(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_rme9652_hw_rule_channels_rate(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - rme9652_t *rme9652 = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct snd_rme9652 *rme9652 = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (r->min > 48000) { - snd_interval_t t = { + struct snd_interval t = { .min = rme9652->ds_channels, .max = rme9652->ds_channels, .integer = 1, }; return snd_interval_refine(c, &t); } else if (r->max < 88200) { - snd_interval_t t = { + struct snd_interval t = { .min = rme9652->ss_channels, .max = rme9652->ss_channels, .integer = 1, @@ -2279,21 +2279,21 @@ static int snd_rme9652_hw_rule_channels_rate(snd_pcm_hw_params_t *params, return 0; } -static int snd_rme9652_hw_rule_rate_channels(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_rme9652_hw_rule_rate_channels(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { - rme9652_t *rme9652 = rule->private; - snd_interval_t *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); - snd_interval_t *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); + struct snd_rme9652 *rme9652 = rule->private; + struct snd_interval *c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS); + struct snd_interval *r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); if (c->min >= rme9652->ss_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 44100, .max = 48000, .integer = 1, }; return snd_interval_refine(r, &t); } else if (c->max <= rme9652->ds_channels) { - snd_interval_t t = { + struct snd_interval t = { .min = 88200, .max = 96000, .integer = 1, @@ -2303,10 +2303,10 @@ static int snd_rme9652_hw_rule_rate_channels(snd_pcm_hw_params_t *params, return 0; } -static int snd_rme9652_playback_open(snd_pcm_substream_t *substream) +static int snd_rme9652_playback_open(struct snd_pcm_substream *substream) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; spin_lock_irq(&rme9652->lock); @@ -2345,9 +2345,9 @@ static int snd_rme9652_playback_open(snd_pcm_substream_t *substream) return 0; } -static int snd_rme9652_playback_release(snd_pcm_substream_t *substream) +static int snd_rme9652_playback_release(struct snd_pcm_substream *substream) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme9652->lock); @@ -2363,10 +2363,10 @@ static int snd_rme9652_playback_release(snd_pcm_substream_t *substream) } -static int snd_rme9652_capture_open(snd_pcm_substream_t *substream) +static int snd_rme9652_capture_open(struct snd_pcm_substream *substream) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; spin_lock_irq(&rme9652->lock); @@ -2400,9 +2400,9 @@ static int snd_rme9652_capture_open(snd_pcm_substream_t *substream) return 0; } -static int snd_rme9652_capture_release(snd_pcm_substream_t *substream) +static int snd_rme9652_capture_release(struct snd_pcm_substream *substream) { - rme9652_t *rme9652 = snd_pcm_substream_chip(substream); + struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme9652->lock); @@ -2413,7 +2413,7 @@ static int snd_rme9652_capture_release(snd_pcm_substream_t *substream) return 0; } -static snd_pcm_ops_t snd_rme9652_playback_ops = { +static struct snd_pcm_ops snd_rme9652_playback_ops = { .open = snd_rme9652_playback_open, .close = snd_rme9652_playback_release, .ioctl = snd_rme9652_ioctl, @@ -2425,7 +2425,7 @@ static snd_pcm_ops_t snd_rme9652_playback_ops = { .silence = snd_rme9652_hw_silence, }; -static snd_pcm_ops_t snd_rme9652_capture_ops = { +static struct snd_pcm_ops snd_rme9652_capture_ops = { .open = snd_rme9652_capture_open, .close = snd_rme9652_capture_release, .ioctl = snd_rme9652_ioctl, @@ -2436,10 +2436,10 @@ static snd_pcm_ops_t snd_rme9652_capture_ops = { .copy = snd_rme9652_capture_copy, }; -static int __devinit snd_rme9652_create_pcm(snd_card_t *card, - rme9652_t *rme9652) +static int __devinit snd_rme9652_create_pcm(struct snd_card *card, + struct snd_rme9652 *rme9652) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if ((err = snd_pcm_new(card, @@ -2460,8 +2460,8 @@ static int __devinit snd_rme9652_create_pcm(snd_card_t *card, return 0; } -static int __devinit snd_rme9652_create(snd_card_t *card, - rme9652_t *rme9652, +static int __devinit snd_rme9652_create(struct snd_card *card, + struct snd_rme9652 *rme9652, int precise_ptr) { struct pci_dev *pci = rme9652->pci; @@ -2591,9 +2591,9 @@ static int __devinit snd_rme9652_create(snd_card_t *card, return 0; } -static void snd_rme9652_card_free(snd_card_t *card) +static void snd_rme9652_card_free(struct snd_card *card) { - rme9652_t *rme9652 = (rme9652_t *) card->private_data; + struct snd_rme9652 *rme9652 = (struct snd_rme9652 *) card->private_data; if (rme9652) snd_rme9652_free(rme9652); @@ -2603,8 +2603,8 @@ static int __devinit snd_rme9652_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - rme9652_t *rme9652; - snd_card_t *card; + struct snd_rme9652 *rme9652; + struct snd_card *card; int err; if (dev >= SNDRV_CARDS) @@ -2615,12 +2615,12 @@ static int __devinit snd_rme9652_probe(struct pci_dev *pci, } card = snd_card_new(index[dev], id[dev], THIS_MODULE, - sizeof(rme9652_t)); + sizeof(struct snd_rme9652)); if (!card) return -ENOMEM; - rme9652 = (rme9652_t *) card->private_data; + rme9652 = (struct snd_rme9652 *) card->private_data; card->private_free = snd_rme9652_card_free; rme9652->dev = dev; rme9652->pci = pci; -- cgit v1.2.3-70-g09d2 From bee1a5be8b6210a0a4e27e38d0f76847b0a014ae Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:53:15 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI Trident Modules: Trident driver Remove xxx_t typedefs from the PCI Trident driver. Signed-off-by: Takashi Iwai --- include/sound/trident.h | 151 ++++---- sound/pci/trident/trident.c | 4 +- sound/pci/trident/trident_main.c | 708 ++++++++++++++++++++----------------- sound/pci/trident/trident_memory.c | 92 ++--- sound/pci/trident/trident_synth.c | 159 +++++---- 5 files changed, 592 insertions(+), 522 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/trident.h b/include/sound/trident.h index a408d392505..2c54569fc60 100644 --- a/include/sound/trident.h +++ b/include/sound/trident.h @@ -253,43 +253,43 @@ enum serial_intf_ctrl_bits { #define T4D_DEFAULT_PCM_RVOL 127 /* 0 - 127 */ #define T4D_DEFAULT_PCM_CVOL 127 /* 0 - 127 */ -typedef struct _snd_trident trident_t; -typedef struct _snd_trident_voice snd_trident_voice_t; -typedef struct _snd_trident_pcm_mixer snd_trident_pcm_mixer_t; - -typedef struct { - void (*sample_start)(trident_t *gus, snd_trident_voice_t *voice, snd_seq_position_t position); - void (*sample_stop)(trident_t *gus, snd_trident_voice_t *voice, snd_seq_stop_mode_t mode); - void (*sample_freq)(trident_t *gus, snd_trident_voice_t *voice, snd_seq_frequency_t freq); - void (*sample_volume)(trident_t *gus, snd_trident_voice_t *voice, snd_seq_ev_volume_t *volume); - void (*sample_loop)(trident_t *card, snd_trident_voice_t *voice, snd_seq_ev_loop_t *loop); - void (*sample_pos)(trident_t *card, snd_trident_voice_t *voice, snd_seq_position_t position); - void (*sample_private1)(trident_t *card, snd_trident_voice_t *voice, unsigned char *data); -} snd_trident_sample_ops_t; - -typedef struct { - snd_midi_channel_set_t * chset; - trident_t * trident; +struct snd_trident; +struct snd_trident_voice; +struct snd_trident_pcm_mixer; + +struct snd_trident_sample_ops { + void (*sample_start)(struct snd_trident *gus, struct snd_trident_voice *voice, snd_seq_position_t position); + void (*sample_stop)(struct snd_trident *gus, struct snd_trident_voice *voice, int mode); + void (*sample_freq)(struct snd_trident *gus, struct snd_trident_voice *voice, snd_seq_frequency_t freq); + void (*sample_volume)(struct snd_trident *gus, struct snd_trident_voice *voice, struct snd_seq_ev_volume *volume); + void (*sample_loop)(struct snd_trident *card, struct snd_trident_voice *voice, struct snd_seq_ev_loop *loop); + void (*sample_pos)(struct snd_trident *card, struct snd_trident_voice *voice, snd_seq_position_t position); + void (*sample_private1)(struct snd_trident *card, struct snd_trident_voice *voice, unsigned char *data); +}; + +struct snd_trident_port { + struct snd_midi_channel_set * chset; + struct snd_trident * trident; int mode; /* operation mode */ int client; /* sequencer client number */ int port; /* sequencer port number */ unsigned int midi_has_voices: 1; -} snd_trident_port_t; +}; -typedef struct snd_trident_memblk_arg { +struct snd_trident_memblk_arg { short first_page, last_page; -} snd_trident_memblk_arg_t; +}; -typedef struct { +struct snd_trident_tlb { unsigned int * entries; /* 16k-aligned TLB table */ dma_addr_t entries_dmaaddr; /* 16k-aligned PCI address to TLB table */ unsigned long * shadow_entries; /* shadow entries with virtual addresses */ struct snd_dma_buffer buffer; - snd_util_memhdr_t * memhdr; /* page allocation list */ + struct snd_util_memhdr * memhdr; /* page allocation list */ struct snd_dma_buffer silent_page; -} snd_trident_tlb_t; +}; -struct _snd_trident_voice { +struct snd_trident_voice { unsigned int number; unsigned int use: 1, pcm: 1, @@ -300,8 +300,8 @@ struct _snd_trident_voice { unsigned char port; unsigned char index; - snd_seq_instr_t instr; - snd_trident_sample_ops_t *sample_ops; + struct snd_seq_instr instr; + struct snd_trident_sample_ops *sample_ops; /* channel parameters */ unsigned int CSO; /* 24 bits (16 on DX) */ @@ -323,13 +323,13 @@ struct _snd_trident_voice { unsigned int negCSO; /* nonzero - use negative CSO */ - snd_util_memblk_t *memblk; /* memory block if TLB enabled */ + struct snd_util_memblk *memblk; /* memory block if TLB enabled */ /* PCM data */ - trident_t *trident; - snd_pcm_substream_t *substream; - snd_trident_voice_t *extra; /* extra PCM voice (acts as interrupt generator) */ + struct snd_trident *trident; + struct snd_pcm_substream *substream; + struct snd_trident_voice *extra; /* extra PCM voice (acts as interrupt generator) */ unsigned int running: 1, capture: 1, spdif: 1, @@ -347,25 +347,25 @@ struct _snd_trident_voice { /* --- */ void *private_data; - void (*private_free)(snd_trident_voice_t *voice); + void (*private_free)(struct snd_trident_voice *voice); }; -struct _snd_4dwave { +struct snd_4dwave { int seq_client; - snd_trident_port_t seq_ports[4]; - snd_simple_ops_t simple_ops; - snd_seq_kinstr_list_t *ilist; + struct snd_trident_port seq_ports[4]; + struct snd_simple_ops simple_ops; + struct snd_seq_kinstr_list *ilist; - snd_trident_voice_t voices[64]; + struct snd_trident_voice voices[64]; int ChanSynthCount; /* number of allocated synth channels */ int max_size; /* maximum synth memory size in bytes */ int current_size; /* current allocated synth mem in bytes */ }; -struct _snd_trident_pcm_mixer { - snd_trident_voice_t *voice; /* active voice */ +struct snd_trident_pcm_mixer { + struct snd_trident_voice *voice; /* active voice */ unsigned short vol; /* front volume */ unsigned char pan; /* pan control */ unsigned char rvol; /* rear volume */ @@ -373,7 +373,7 @@ struct _snd_trident_pcm_mixer { unsigned char pad; }; -struct _snd_trident { +struct snd_trident { int irq; unsigned int device; /* device ID */ @@ -386,13 +386,13 @@ struct _snd_trident { unsigned int spurious_irq_count; unsigned int spurious_irq_max_delta; - snd_trident_tlb_t tlb; /* TLB entries for NX cards */ + struct snd_trident_tlb tlb; /* TLB entries for NX cards */ unsigned char spdif_ctrl; unsigned char spdif_pcm_ctrl; unsigned int spdif_bits; unsigned int spdif_pcm_bits; - snd_kcontrol_t *spdif_pcm_ctl; /* S/PDIF settings */ + struct snd_kcontrol *spdif_pcm_ctl; /* S/PDIF settings */ unsigned int ac97_ctrl; unsigned int ChanMap[2]; /* allocation map for hardware channels */ @@ -403,7 +403,7 @@ struct _snd_trident { unsigned int ac97_detect: 1; /* 1 = AC97 in detection phase */ unsigned int in_suspend: 1; /* 1 during suspend/resume */ - struct _snd_4dwave synth; /* synth specific variables */ + struct snd_4dwave synth; /* synth specific variables */ spinlock_t event_lock; spinlock_t voice_alloc; @@ -411,52 +411,55 @@ struct _snd_trident { struct snd_dma_device dma_dev; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; /* ADC/DAC PCM */ - snd_pcm_t *foldback; /* Foldback PCM */ - snd_pcm_t *spdif; /* SPDIF PCM */ - snd_rawmidi_t *rmidi; - snd_seq_device_t *seq_dev; + struct snd_card *card; + struct snd_pcm *pcm; /* ADC/DAC PCM */ + struct snd_pcm *foldback; /* Foldback PCM */ + struct snd_pcm *spdif; /* SPDIF PCM */ + struct snd_rawmidi *rmidi; + struct snd_seq_device *seq_dev; - ac97_bus_t *ac97_bus; - ac97_t *ac97; - ac97_t *ac97_sec; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97; + struct snd_ac97 *ac97_sec; unsigned int musicvol_wavevol; - snd_trident_pcm_mixer_t pcm_mixer[32]; - snd_kcontrol_t *ctl_vol; /* front volume */ - snd_kcontrol_t *ctl_pan; /* pan */ - snd_kcontrol_t *ctl_rvol; /* rear volume */ - snd_kcontrol_t *ctl_cvol; /* center volume */ + struct snd_trident_pcm_mixer pcm_mixer[32]; + struct snd_kcontrol *ctl_vol; /* front volume */ + struct snd_kcontrol *ctl_pan; /* pan */ + struct snd_kcontrol *ctl_rvol; /* rear volume */ + struct snd_kcontrol *ctl_cvol; /* center volume */ spinlock_t reg_lock; struct gameport *gameport; }; -int snd_trident_create(snd_card_t * card, +int snd_trident_create(struct snd_card *card, struct pci_dev *pci, int pcm_streams, int pcm_spdif_device, int max_wavetable_size, - trident_t ** rtrident); -int snd_trident_create_gameport(trident_t *trident); - -int snd_trident_pcm(trident_t * trident, int device, snd_pcm_t **rpcm); -int snd_trident_foldback_pcm(trident_t * trident, int device, snd_pcm_t **rpcm); -int snd_trident_spdif_pcm(trident_t * trident, int device, snd_pcm_t **rpcm); -int snd_trident_attach_synthesizer(trident_t * trident); -snd_trident_voice_t *snd_trident_alloc_voice(trident_t * trident, int type, int client, int port); -void snd_trident_free_voice(trident_t * trident, snd_trident_voice_t *voice); -void snd_trident_start_voice(trident_t * trident, unsigned int voice); -void snd_trident_stop_voice(trident_t * trident, unsigned int voice); -void snd_trident_write_voice_regs(trident_t * trident, snd_trident_voice_t *voice); + struct snd_trident ** rtrident); +int snd_trident_create_gameport(struct snd_trident *trident); + +int snd_trident_pcm(struct snd_trident * trident, int device, struct snd_pcm **rpcm); +int snd_trident_foldback_pcm(struct snd_trident * trident, int device, struct snd_pcm **rpcm); +int snd_trident_spdif_pcm(struct snd_trident * trident, int device, struct snd_pcm **rpcm); +int snd_trident_attach_synthesizer(struct snd_trident * trident); +struct snd_trident_voice *snd_trident_alloc_voice(struct snd_trident * trident, int type, + int client, int port); +void snd_trident_free_voice(struct snd_trident * trident, struct snd_trident_voice *voice); +void snd_trident_start_voice(struct snd_trident * trident, unsigned int voice); +void snd_trident_stop_voice(struct snd_trident * trident, unsigned int voice); +void snd_trident_write_voice_regs(struct snd_trident * trident, struct snd_trident_voice *voice); /* TLB memory allocation */ -snd_util_memblk_t *snd_trident_alloc_pages(trident_t *trident, snd_pcm_substream_t *substream); -int snd_trident_free_pages(trident_t *trident, snd_util_memblk_t *blk); -snd_util_memblk_t *snd_trident_synth_alloc(trident_t *trident, unsigned int size); -int snd_trident_synth_free(trident_t *trident, snd_util_memblk_t *blk); -int snd_trident_synth_copy_from_user(trident_t *trident, snd_util_memblk_t *blk, int offset, const char __user *data, int size); +struct snd_util_memblk *snd_trident_alloc_pages(struct snd_trident *trident, + struct snd_pcm_substream *substream); +int snd_trident_free_pages(struct snd_trident *trident, struct snd_util_memblk *blk); +struct snd_util_memblk *snd_trident_synth_alloc(struct snd_trident *trident, unsigned int size); +int snd_trident_synth_free(struct snd_trident *trident, struct snd_util_memblk *blk); +int snd_trident_synth_copy_from_user(struct snd_trident *trident, struct snd_util_memblk *blk, + int offset, const char __user *data, int size); #endif /* __SOUND_TRIDENT_H */ diff --git a/sound/pci/trident/trident.c b/sound/pci/trident/trident.c index 940d531575c..0999f1f83a9 100644 --- a/sound/pci/trident/trident.c +++ b/sound/pci/trident/trident.c @@ -76,8 +76,8 @@ static int __devinit snd_trident_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - trident_t *trident; + struct snd_card *card; + struct snd_trident *trident; const char *str; int err, pcm_dev = 0; diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c index 62f109f020a..6277dccebf6 100644 --- a/sound/pci/trident/trident_main.c +++ b/sound/pci/trident/trident_main.c @@ -44,17 +44,23 @@ #include -static int snd_trident_pcm_mixer_build(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream); -static int snd_trident_pcm_mixer_free(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream); -static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs); +static int snd_trident_pcm_mixer_build(struct snd_trident *trident, + struct snd_trident_voice * voice, + struct snd_pcm_substream *substream); +static int snd_trident_pcm_mixer_free(struct snd_trident *trident, + struct snd_trident_voice * voice, + struct snd_pcm_substream *substream); +static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, + struct pt_regs *regs); #ifdef CONFIG_PM -static int snd_trident_suspend(snd_card_t *card, pm_message_t state); -static int snd_trident_resume(snd_card_t *card); +static int snd_trident_suspend(struct snd_card *card, pm_message_t state); +static int snd_trident_resume(struct snd_card *card); #endif -static int snd_trident_sis_reset(trident_t *trident); +static int snd_trident_sis_reset(struct snd_trident *trident); -static void snd_trident_clear_voices(trident_t * trident, unsigned short v_min, unsigned short v_max); -static int snd_trident_free(trident_t *trident); +static void snd_trident_clear_voices(struct snd_trident * trident, + unsigned short v_min, unsigned short v_max); +static int snd_trident_free(struct snd_trident *trident); /* * common I/O routines @@ -62,7 +68,7 @@ static int snd_trident_free(trident_t *trident); #if 0 -static void snd_trident_print_voice_regs(trident_t *trident, int voice) +static void snd_trident_print_voice_regs(struct snd_trident *trident, int voice) { unsigned int val, tmp; @@ -104,7 +110,7 @@ static void snd_trident_print_voice_regs(trident_t *trident, int voice) #endif /*--------------------------------------------------------------------------- - unsigned short snd_trident_codec_read(ac97_t *ac97, unsigned short reg) + unsigned short snd_trident_codec_read(struct snd_ac97 *ac97, unsigned short reg) Description: This routine will do all of the reading from the external CODEC (AC97). @@ -115,12 +121,12 @@ static void snd_trident_print_voice_regs(trident_t *trident, int voice) returns: 16 bit value read from the AC97. ---------------------------------------------------------------------------*/ -static unsigned short snd_trident_codec_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_trident_codec_read(struct snd_ac97 *ac97, unsigned short reg) { unsigned int data = 0, treg; unsigned short count = 0xffff; unsigned long flags; - trident_t *trident = ac97->private_data; + struct snd_trident *trident = ac97->private_data; spin_lock_irqsave(&trident->reg_lock, flags); if (trident->device == TRIDENT_DEVICE_ID_DX) { @@ -153,7 +159,8 @@ static unsigned short snd_trident_codec_read(ac97_t *ac97, unsigned short reg) } if (count == 0 && !trident->ac97_detect) { - snd_printk(KERN_ERR "ac97 codec read TIMEOUT [0x%x/0x%x]!!!\n", reg, data); + snd_printk(KERN_ERR "ac97 codec read TIMEOUT [0x%x/0x%x]!!!\n", + reg, data); data = 0; } @@ -162,7 +169,8 @@ static unsigned short snd_trident_codec_read(ac97_t *ac97, unsigned short reg) } /*--------------------------------------------------------------------------- - void snd_trident_codec_write(ac97_t *ac97, unsigned short reg, unsigned short wdata) + void snd_trident_codec_write(struct snd_ac97 *ac97, unsigned short reg, + unsigned short wdata) Description: This routine will do all of the writing to the external CODEC (AC97). @@ -174,12 +182,13 @@ static unsigned short snd_trident_codec_read(ac97_t *ac97, unsigned short reg) returns: TRUE if everything went ok, else FALSE. ---------------------------------------------------------------------------*/ -static void snd_trident_codec_write(ac97_t *ac97, unsigned short reg, unsigned short wdata) +static void snd_trident_codec_write(struct snd_ac97 *ac97, unsigned short reg, + unsigned short wdata) { unsigned int address, data; unsigned short count = 0xffff; unsigned long flags; - trident_t *trident = ac97->private_data; + struct snd_trident *trident = ac97->private_data; data = ((unsigned long) wdata) << 16; @@ -230,7 +239,7 @@ static void snd_trident_codec_write(ac97_t *ac97, unsigned short reg, unsigned s } /*--------------------------------------------------------------------------- - void snd_trident_enable_eso(trident_t *trident) + void snd_trident_enable_eso(struct snd_trident *trident) Description: This routine will enable end of loop interrupts. End of loop interrupts will occur when a running @@ -241,7 +250,7 @@ static void snd_trident_codec_write(ac97_t *ac97, unsigned short reg, unsigned s ---------------------------------------------------------------------------*/ -static void snd_trident_enable_eso(trident_t * trident) +static void snd_trident_enable_eso(struct snd_trident * trident) { unsigned int val; @@ -254,7 +263,7 @@ static void snd_trident_enable_eso(trident_t * trident) } /*--------------------------------------------------------------------------- - void snd_trident_disable_eso(trident_t *trident) + void snd_trident_disable_eso(struct snd_trident *trident) Description: This routine will disable end of loop interrupts. End of loop interrupts will occur when a running @@ -268,7 +277,7 @@ static void snd_trident_enable_eso(trident_t * trident) ---------------------------------------------------------------------------*/ -static void snd_trident_disable_eso(trident_t * trident) +static void snd_trident_disable_eso(struct snd_trident * trident) { unsigned int tmp; @@ -279,7 +288,7 @@ static void snd_trident_disable_eso(trident_t * trident) } /*--------------------------------------------------------------------------- - void snd_trident_start_voice(trident_t * trident, unsigned int voice) + void snd_trident_start_voice(struct snd_trident * trident, unsigned int voice) Description: Start a voice, any channel 0 thru 63. This routine automatically handles the fact that there are @@ -292,7 +301,7 @@ static void snd_trident_disable_eso(trident_t * trident) ---------------------------------------------------------------------------*/ -void snd_trident_start_voice(trident_t * trident, unsigned int voice) +void snd_trident_start_voice(struct snd_trident * trident, unsigned int voice) { unsigned int mask = 1 << (voice & 0x1f); unsigned int reg = (voice & 0x20) ? T4D_START_B : T4D_START_A; @@ -301,7 +310,7 @@ void snd_trident_start_voice(trident_t * trident, unsigned int voice) } /*--------------------------------------------------------------------------- - void snd_trident_stop_voice(trident_t * trident, unsigned int voice) + void snd_trident_stop_voice(struct snd_trident * trident, unsigned int voice) Description: Stop a voice, any channel 0 thru 63. This routine automatically handles the fact that there are @@ -314,7 +323,7 @@ void snd_trident_start_voice(trident_t * trident, unsigned int voice) ---------------------------------------------------------------------------*/ -void snd_trident_stop_voice(trident_t * trident, unsigned int voice) +void snd_trident_stop_voice(struct snd_trident * trident, unsigned int voice) { unsigned int mask = 1 << (voice & 0x1f); unsigned int reg = (voice & 0x20) ? T4D_STOP_B : T4D_STOP_A; @@ -323,7 +332,7 @@ void snd_trident_stop_voice(trident_t * trident, unsigned int voice) } /*--------------------------------------------------------------------------- - int snd_trident_allocate_pcm_channel(trident_t *trident) + int snd_trident_allocate_pcm_channel(struct snd_trident *trident) Description: Allocate hardware channel in Bank B (32-63). @@ -333,7 +342,7 @@ void snd_trident_stop_voice(trident_t * trident, unsigned int voice) ---------------------------------------------------------------------------*/ -static int snd_trident_allocate_pcm_channel(trident_t * trident) +static int snd_trident_allocate_pcm_channel(struct snd_trident * trident) { int idx; @@ -361,7 +370,7 @@ static int snd_trident_allocate_pcm_channel(trident_t * trident) ---------------------------------------------------------------------------*/ -static void snd_trident_free_pcm_channel(trident_t *trident, int channel) +static void snd_trident_free_pcm_channel(struct snd_trident *trident, int channel) { if (channel < 32 || channel > 63) return; @@ -383,7 +392,7 @@ static void snd_trident_free_pcm_channel(trident_t *trident, int channel) ---------------------------------------------------------------------------*/ -static int snd_trident_allocate_synth_channel(trident_t * trident) +static int snd_trident_allocate_synth_channel(struct snd_trident * trident) { int idx; @@ -409,7 +418,7 @@ static int snd_trident_allocate_synth_channel(trident_t * trident) ---------------------------------------------------------------------------*/ -static void snd_trident_free_synth_channel(trident_t *trident, int channel) +static void snd_trident_free_synth_channel(struct snd_trident *trident, int channel) { if (channel < 0 || channel > 31) return; @@ -432,8 +441,8 @@ static void snd_trident_free_synth_channel(trident_t *trident, int channel) ---------------------------------------------------------------------------*/ -void snd_trident_write_voice_regs(trident_t * trident, - snd_trident_voice_t * voice) +void snd_trident_write_voice_regs(struct snd_trident * trident, + struct snd_trident_voice * voice) { unsigned int FmcRvolCvol; unsigned int regs[5]; @@ -452,14 +461,16 @@ void snd_trident_write_voice_regs(trident_t * trident, (voice->Vol & 0x000003ff) : ((voice->Vol & 0x00003fc) << (16-2)) | (voice->EC & 0x00000fff); - regs[0] = (voice->CSO << 16) | ((voice->Alpha & 0x00000fff) << 4) | (voice->FMS & 0x0000000f); + regs[0] = (voice->CSO << 16) | ((voice->Alpha & 0x00000fff) << 4) | + (voice->FMS & 0x0000000f); regs[2] = (voice->ESO << 16) | (voice->Delta & 0x0ffff); regs[3] = (voice->Attribute << 16) | FmcRvolCvol; break; case TRIDENT_DEVICE_ID_DX: regs[4] |= ((voice->Vol & 0x000003fc) << (16-2)) | (voice->EC & 0x00000fff); - regs[0] = (voice->CSO << 16) | ((voice->Alpha & 0x00000fff) << 4) | (voice->FMS & 0x0000000f); + regs[0] = (voice->CSO << 16) | ((voice->Alpha & 0x00000fff) << 4) | + (voice->FMS & 0x0000000f); regs[2] = (voice->ESO << 16) | (voice->Delta & 0x0ffff); regs[3] = FmcRvolCvol; break; @@ -467,8 +478,10 @@ void snd_trident_write_voice_regs(trident_t * trident, regs[4] |= ((voice->Vol & 0x000003fc) << (16-2)) | (voice->EC & 0x00000fff); regs[0] = (voice->Delta << 24) | (voice->CSO & 0x00ffffff); - regs[2] = ((voice->Delta << 16) & 0xff000000) | (voice->ESO & 0x00ffffff); - regs[3] = (voice->Alpha << 20) | ((voice->FMS & 0x0000000f) << 16) | FmcRvolCvol; + regs[2] = ((voice->Delta << 16) & 0xff000000) | + (voice->ESO & 0x00ffffff); + regs[3] = (voice->Alpha << 20) | + ((voice->FMS & 0x0000000f) << 16) | FmcRvolCvol; break; default: snd_BUG(); @@ -504,14 +517,17 @@ void snd_trident_write_voice_regs(trident_t * trident, ---------------------------------------------------------------------------*/ -static void snd_trident_write_cso_reg(trident_t * trident, snd_trident_voice_t * voice, unsigned int CSO) +static void snd_trident_write_cso_reg(struct snd_trident * trident, + struct snd_trident_voice * voice, + unsigned int CSO) { voice->CSO = CSO; outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); if (trident->device != TRIDENT_DEVICE_ID_NX) { outw(voice->CSO, TRID_REG(trident, CH_DX_CSO_ALPHA_FMS) + 2); } else { - outl((voice->Delta << 24) | (voice->CSO & 0x00ffffff), TRID_REG(trident, CH_NX_DELTA_CSO)); + outl((voice->Delta << 24) | + (voice->CSO & 0x00ffffff), TRID_REG(trident, CH_NX_DELTA_CSO)); } } @@ -527,14 +543,17 @@ static void snd_trident_write_cso_reg(trident_t * trident, snd_trident_voice_t * ---------------------------------------------------------------------------*/ -static void snd_trident_write_eso_reg(trident_t * trident, snd_trident_voice_t * voice, unsigned int ESO) +static void snd_trident_write_eso_reg(struct snd_trident * trident, + struct snd_trident_voice * voice, + unsigned int ESO) { voice->ESO = ESO; outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); if (trident->device != TRIDENT_DEVICE_ID_NX) { outw(voice->ESO, TRID_REG(trident, CH_DX_ESO_DELTA) + 2); } else { - outl(((voice->Delta << 16) & 0xff000000) | (voice->ESO & 0x00ffffff), TRID_REG(trident, CH_NX_DELTA_ESO)); + outl(((voice->Delta << 16) & 0xff000000) | (voice->ESO & 0x00ffffff), + TRID_REG(trident, CH_NX_DELTA_ESO)); } } @@ -550,7 +569,9 @@ static void snd_trident_write_eso_reg(trident_t * trident, snd_trident_voice_t * ---------------------------------------------------------------------------*/ -static void snd_trident_write_vol_reg(trident_t * trident, snd_trident_voice_t * voice, unsigned int Vol) +static void snd_trident_write_vol_reg(struct snd_trident * trident, + struct snd_trident_voice * voice, + unsigned int Vol) { voice->Vol = Vol; outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); @@ -561,7 +582,8 @@ static void snd_trident_write_vol_reg(trident_t * trident, snd_trident_voice_t * break; case TRIDENT_DEVICE_ID_SI7018: // printk("voice->Vol = 0x%x\n", voice->Vol); - outw((voice->CTRL << 12) | voice->Vol, TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC)); + outw((voice->CTRL << 12) | voice->Vol, + TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC)); break; } } @@ -578,11 +600,14 @@ static void snd_trident_write_vol_reg(trident_t * trident, snd_trident_voice_t * ---------------------------------------------------------------------------*/ -static void snd_trident_write_pan_reg(trident_t * trident, snd_trident_voice_t * voice, unsigned int Pan) +static void snd_trident_write_pan_reg(struct snd_trident * trident, + struct snd_trident_voice * voice, + unsigned int Pan) { voice->Pan = Pan; outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); - outb(((voice->GVSel & 0x01) << 7) | (voice->Pan & 0x7f), TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC + 3)); + outb(((voice->GVSel & 0x01) << 7) | (voice->Pan & 0x7f), + TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC + 3)); } /*--------------------------------------------------------------------------- @@ -597,12 +622,16 @@ static void snd_trident_write_pan_reg(trident_t * trident, snd_trident_voice_t * ---------------------------------------------------------------------------*/ -static void snd_trident_write_rvol_reg(trident_t * trident, snd_trident_voice_t * voice, unsigned int RVol) +static void snd_trident_write_rvol_reg(struct snd_trident * trident, + struct snd_trident_voice * voice, + unsigned int RVol) { voice->RVol = RVol; outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); - outw(((voice->FMC & 0x0003) << 14) | ((voice->RVol & 0x007f) << 7) | (voice->CVol & 0x007f), - TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ? CH_NX_ALPHA_FMS_FMC_RVOL_CVOL : CH_DX_FMC_RVOL_CVOL)); + outw(((voice->FMC & 0x0003) << 14) | ((voice->RVol & 0x007f) << 7) | + (voice->CVol & 0x007f), + TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ? + CH_NX_ALPHA_FMS_FMC_RVOL_CVOL : CH_DX_FMC_RVOL_CVOL)); } /*--------------------------------------------------------------------------- @@ -617,12 +646,16 @@ static void snd_trident_write_rvol_reg(trident_t * trident, snd_trident_voice_t ---------------------------------------------------------------------------*/ -static void snd_trident_write_cvol_reg(trident_t * trident, snd_trident_voice_t * voice, unsigned int CVol) +static void snd_trident_write_cvol_reg(struct snd_trident * trident, + struct snd_trident_voice * voice, + unsigned int CVol) { voice->CVol = CVol; outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR)); - outw(((voice->FMC & 0x0003) << 14) | ((voice->RVol & 0x007f) << 7) | (voice->CVol & 0x007f), - TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ? CH_NX_ALPHA_FMS_FMC_RVOL_CVOL : CH_DX_FMC_RVOL_CVOL)); + outw(((voice->FMC & 0x0003) << 14) | ((voice->RVol & 0x007f) << 7) | + (voice->CVol & 0x007f), + TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ? + CH_NX_ALPHA_FMS_FMC_RVOL_CVOL : CH_DX_FMC_RVOL_CVOL)); } /*--------------------------------------------------------------------------- @@ -696,7 +729,8 @@ static unsigned int snd_trident_convert_adc_rate(unsigned int rate) Returns: Delta value. ---------------------------------------------------------------------------*/ -static unsigned int snd_trident_spurious_threshold(unsigned int rate, unsigned int period_size) +static unsigned int snd_trident_spurious_threshold(unsigned int rate, + unsigned int period_size) { unsigned int res = (rate * period_size) / 48000; if (res < 64) @@ -717,10 +751,10 @@ static unsigned int snd_trident_spurious_threshold(unsigned int rate, unsigned i Returns: Control value. ---------------------------------------------------------------------------*/ -static unsigned int snd_trident_control_mode(snd_pcm_substream_t *substream) +static unsigned int snd_trident_control_mode(struct snd_pcm_substream *substream) { unsigned int CTRL; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; /* set ctrl mode CTRL default: 8-bit (unsigned) mono, loop mode enabled @@ -752,7 +786,7 @@ static unsigned int snd_trident_control_mode(snd_pcm_substream_t *substream) ---------------------------------------------------------------------------*/ -static int snd_trident_ioctl(snd_pcm_substream_t * substream, +static int snd_trident_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg) { @@ -774,12 +808,12 @@ static int snd_trident_ioctl(snd_pcm_substream_t * substream, ---------------------------------------------------------------------------*/ -static int snd_trident_allocate_pcm_mem(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_trident_allocate_pcm_mem(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; int err; if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0) @@ -808,13 +842,13 @@ static int snd_trident_allocate_pcm_mem(snd_pcm_substream_t * substream, ---------------------------------------------------------------------------*/ -static int snd_trident_allocate_evoice(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_trident_allocate_evoice(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - snd_trident_voice_t *evoice = voice->extra; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident_voice *evoice = voice->extra; /* voice management */ @@ -848,8 +882,8 @@ static int snd_trident_allocate_evoice(snd_pcm_substream_t * substream, ---------------------------------------------------------------------------*/ -static int snd_trident_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_trident_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { int err; @@ -870,12 +904,12 @@ static int snd_trident_hw_params(snd_pcm_substream_t * substream, ---------------------------------------------------------------------------*/ -static int snd_trident_hw_free(snd_pcm_substream_t * substream) +static int snd_trident_hw_free(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - snd_trident_voice_t *evoice = voice ? voice->extra : NULL; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident_voice *evoice = voice ? voice->extra : NULL; if (trident->tlb.entries) { if (voice && voice->memblk) { @@ -902,13 +936,13 @@ static int snd_trident_hw_free(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_playback_prepare(snd_pcm_substream_t * substream) +static int snd_trident_playback_prepare(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - snd_trident_voice_t *evoice = voice->extra; - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[substream->number]; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident_voice *evoice = voice->extra; + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[substream->number]; spin_lock_irq(&trident->reg_lock); @@ -988,8 +1022,8 @@ static int snd_trident_playback_prepare(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_capture_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_trident_capture_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_trident_allocate_pcm_mem(substream, hw_params); } @@ -1005,11 +1039,11 @@ static int snd_trident_capture_hw_params(snd_pcm_substream_t * substream, ---------------------------------------------------------------------------*/ -static int snd_trident_capture_prepare(snd_pcm_substream_t * substream) +static int snd_trident_capture_prepare(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; unsigned int val, ESO_bytes; spin_lock_irq(&trident->reg_lock); @@ -1097,8 +1131,8 @@ static int snd_trident_capture_prepare(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_si7018_capture_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_trident_si7018_capture_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { int err; @@ -1119,12 +1153,12 @@ static int snd_trident_si7018_capture_hw_params(snd_pcm_substream_t * substream, ---------------------------------------------------------------------------*/ -static int snd_trident_si7018_capture_hw_free(snd_pcm_substream_t * substream) +static int snd_trident_si7018_capture_hw_free(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - snd_trident_voice_t *evoice = voice ? voice->extra : NULL; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident_voice *evoice = voice ? voice->extra : NULL; snd_pcm_lib_free_pages(substream); if (evoice != NULL) { @@ -1145,12 +1179,12 @@ static int snd_trident_si7018_capture_hw_free(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_si7018_capture_prepare(snd_pcm_substream_t * substream) +static int snd_trident_si7018_capture_prepare(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - snd_trident_voice_t *evoice = voice->extra; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident_voice *evoice = voice->extra; spin_lock_irq(&trident->reg_lock); @@ -1216,12 +1250,12 @@ static int snd_trident_si7018_capture_prepare(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_foldback_prepare(snd_pcm_substream_t * substream) +static int snd_trident_foldback_prepare(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - snd_trident_voice_t *evoice = voice->extra; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident_voice *evoice = voice->extra; spin_lock_irq(&trident->reg_lock); @@ -1294,10 +1328,10 @@ static int snd_trident_foldback_prepare(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_trident_spdif_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - trident_t *trident = snd_pcm_substream_chip(substream); + struct snd_trident *trident = snd_pcm_substream_chip(substream); unsigned int old_bits = 0, change = 0; int err; @@ -1359,13 +1393,13 @@ static int snd_trident_spdif_hw_params(snd_pcm_substream_t * substream, ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_prepare(snd_pcm_substream_t * substream) +static int snd_trident_spdif_prepare(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - snd_trident_voice_t *evoice = voice->extra; - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[substream->number]; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident_voice *evoice = voice->extra; + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[substream->number]; unsigned int RESO, LBAO; unsigned int temp; @@ -1498,15 +1532,15 @@ static int snd_trident_spdif_prepare(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_trigger(snd_pcm_substream_t *substream, +static int snd_trident_trigger(struct snd_pcm_substream *substream, int cmd) { - trident_t *trident = snd_pcm_substream_chip(substream); + struct snd_trident *trident = snd_pcm_substream_chip(substream); struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; unsigned int what, whati, capture_flag, spdif_flag; - snd_trident_voice_t *voice, *evoice; + struct snd_trident_voice *voice, *evoice; unsigned int val, go; switch (cmd) { @@ -1528,8 +1562,8 @@ static int snd_trident_trigger(snd_pcm_substream_t *substream, val = inl(TRID_REG(trident, T4D_STIMER)) & 0x00ffffff; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); - if ((trident_t *) snd_pcm_substream_chip(s) == trident) { - voice = (snd_trident_voice_t *) s->runtime->private_data; + if ((struct snd_trident *) snd_pcm_substream_chip(s) == trident) { + voice = s->runtime->private_data; evoice = voice->extra; what |= 1 << (voice->number & 0x1f); if (evoice == NULL) { @@ -1596,11 +1630,11 @@ static int snd_trident_trigger(snd_pcm_substream_t *substream, ---------------------------------------------------------------------------*/ -static snd_pcm_uframes_t snd_trident_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_trident_playback_pointer(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; unsigned int cso; if (!voice->running) @@ -1635,11 +1669,11 @@ static snd_pcm_uframes_t snd_trident_playback_pointer(snd_pcm_substream_t * subs ---------------------------------------------------------------------------*/ -static snd_pcm_uframes_t snd_trident_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_trident_capture_pointer(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; unsigned int result; if (!voice->running) @@ -1665,11 +1699,11 @@ static snd_pcm_uframes_t snd_trident_capture_pointer(snd_pcm_substream_t * subst ---------------------------------------------------------------------------*/ -static snd_pcm_uframes_t snd_trident_spdif_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_trident_spdif_pointer(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; unsigned int result; if (!voice->running) @@ -1684,7 +1718,7 @@ static snd_pcm_uframes_t snd_trident_spdif_pointer(snd_pcm_substream_t * substre * Playback support device description */ -static snd_pcm_hardware_t snd_trident_playback = +static struct snd_pcm_hardware snd_trident_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1709,7 +1743,7 @@ static snd_pcm_hardware_t snd_trident_playback = * Capture support device description */ -static snd_pcm_hardware_t snd_trident_capture = +static struct snd_pcm_hardware snd_trident_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1734,7 +1768,7 @@ static snd_pcm_hardware_t snd_trident_capture = * Foldback capture support device description */ -static snd_pcm_hardware_t snd_trident_foldback = +static struct snd_pcm_hardware snd_trident_foldback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1758,7 +1792,7 @@ static snd_pcm_hardware_t snd_trident_foldback = * SPDIF playback support device description */ -static snd_pcm_hardware_t snd_trident_spdif = +static struct snd_pcm_hardware snd_trident_spdif = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1779,7 +1813,7 @@ static snd_pcm_hardware_t snd_trident_spdif = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_trident_spdif_7018 = +static struct snd_pcm_hardware snd_trident_spdif_7018 = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1799,10 +1833,10 @@ static snd_pcm_hardware_t snd_trident_spdif_7018 = .fifo_size = 0, }; -static void snd_trident_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_trident_pcm_free_substream(struct snd_pcm_runtime *runtime) { - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; - trident_t *trident; + struct snd_trident_voice *voice = runtime->private_data; + struct snd_trident *trident; if (voice) { trident = voice->trident; @@ -1810,11 +1844,11 @@ static void snd_trident_pcm_free_substream(snd_pcm_runtime_t *runtime) } } -static int snd_trident_playback_open(snd_pcm_substream_t * substream) +static int snd_trident_playback_open(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice; voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); if (voice == NULL) @@ -1838,11 +1872,11 @@ static int snd_trident_playback_open(snd_pcm_substream_t * substream) Parameters: substream - PCM substream class ---------------------------------------------------------------------------*/ -static int snd_trident_playback_close(snd_pcm_substream_t * substream) +static int snd_trident_playback_close(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_trident_voice_t *voice = (snd_trident_voice_t *) runtime->private_data; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_trident_voice *voice = runtime->private_data; snd_trident_pcm_mixer_free(trident, voice, substream); return 0; @@ -1859,11 +1893,11 @@ static int snd_trident_playback_close(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_open(snd_pcm_substream_t * substream) +static int snd_trident_spdif_open(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_trident_voice_t *voice; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_trident_voice *voice; + struct snd_pcm_runtime *runtime = substream->runtime; voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); if (voice == NULL) @@ -1900,9 +1934,9 @@ static int snd_trident_spdif_open(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_close(snd_pcm_substream_t * substream) +static int snd_trident_spdif_close(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); + struct snd_trident *trident = snd_pcm_substream_chip(substream); unsigned int temp; spin_lock_irq(&trident->reg_lock); @@ -1938,11 +1972,11 @@ static int snd_trident_spdif_close(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_capture_open(snd_pcm_substream_t * substream) +static int snd_trident_capture_open(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_trident_voice_t *voice; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_trident_voice *voice; + struct snd_pcm_runtime *runtime = substream->runtime; voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); if (voice == NULL) @@ -1966,7 +2000,7 @@ static int snd_trident_capture_open(snd_pcm_substream_t * substream) Parameters: substream - PCM substream class ---------------------------------------------------------------------------*/ -static int snd_trident_capture_close(snd_pcm_substream_t * substream) +static int snd_trident_capture_close(struct snd_pcm_substream *substream) { return 0; } @@ -1982,11 +2016,11 @@ static int snd_trident_capture_close(snd_pcm_substream_t * substream) ---------------------------------------------------------------------------*/ -static int snd_trident_foldback_open(snd_pcm_substream_t * substream) +static int snd_trident_foldback_open(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_trident_voice_t *voice; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_trident_voice *voice; + struct snd_pcm_runtime *runtime = substream->runtime; voice = snd_trident_alloc_voice(trident, SNDRV_TRIDENT_VOICE_TYPE_PCM, 0, 0); if (voice == NULL) @@ -2009,12 +2043,12 @@ static int snd_trident_foldback_open(snd_pcm_substream_t * substream) Parameters: substream - PCM substream class ---------------------------------------------------------------------------*/ -static int snd_trident_foldback_close(snd_pcm_substream_t * substream) +static int snd_trident_foldback_close(struct snd_pcm_substream *substream) { - trident_t *trident = snd_pcm_substream_chip(substream); - snd_trident_voice_t *voice; - snd_pcm_runtime_t *runtime = substream->runtime; - voice = (snd_trident_voice_t *) runtime->private_data; + struct snd_trident *trident = snd_pcm_substream_chip(substream); + struct snd_trident_voice *voice; + struct snd_pcm_runtime *runtime = substream->runtime; + voice = runtime->private_data; /* stop capture channel */ spin_lock_irq(&trident->reg_lock); @@ -2027,7 +2061,7 @@ static int snd_trident_foldback_close(snd_pcm_substream_t * substream) PCM operations ---------------------------------------------------------------------------*/ -static snd_pcm_ops_t snd_trident_playback_ops = { +static struct snd_pcm_ops snd_trident_playback_ops = { .open = snd_trident_playback_open, .close = snd_trident_playback_close, .ioctl = snd_trident_ioctl, @@ -2038,7 +2072,7 @@ static snd_pcm_ops_t snd_trident_playback_ops = { .pointer = snd_trident_playback_pointer, }; -static snd_pcm_ops_t snd_trident_nx_playback_ops = { +static struct snd_pcm_ops snd_trident_nx_playback_ops = { .open = snd_trident_playback_open, .close = snd_trident_playback_close, .ioctl = snd_trident_ioctl, @@ -2050,7 +2084,7 @@ static snd_pcm_ops_t snd_trident_nx_playback_ops = { .page = snd_pcm_sgbuf_ops_page, }; -static snd_pcm_ops_t snd_trident_capture_ops = { +static struct snd_pcm_ops snd_trident_capture_ops = { .open = snd_trident_capture_open, .close = snd_trident_capture_close, .ioctl = snd_trident_ioctl, @@ -2061,7 +2095,7 @@ static snd_pcm_ops_t snd_trident_capture_ops = { .pointer = snd_trident_capture_pointer, }; -static snd_pcm_ops_t snd_trident_si7018_capture_ops = { +static struct snd_pcm_ops snd_trident_si7018_capture_ops = { .open = snd_trident_capture_open, .close = snd_trident_capture_close, .ioctl = snd_trident_ioctl, @@ -2072,7 +2106,7 @@ static snd_pcm_ops_t snd_trident_si7018_capture_ops = { .pointer = snd_trident_playback_pointer, }; -static snd_pcm_ops_t snd_trident_foldback_ops = { +static struct snd_pcm_ops snd_trident_foldback_ops = { .open = snd_trident_foldback_open, .close = snd_trident_foldback_close, .ioctl = snd_trident_ioctl, @@ -2083,7 +2117,7 @@ static snd_pcm_ops_t snd_trident_foldback_ops = { .pointer = snd_trident_playback_pointer, }; -static snd_pcm_ops_t snd_trident_nx_foldback_ops = { +static struct snd_pcm_ops snd_trident_nx_foldback_ops = { .open = snd_trident_foldback_open, .close = snd_trident_foldback_close, .ioctl = snd_trident_ioctl, @@ -2095,7 +2129,7 @@ static snd_pcm_ops_t snd_trident_nx_foldback_ops = { .page = snd_pcm_sgbuf_ops_page, }; -static snd_pcm_ops_t snd_trident_spdif_ops = { +static struct snd_pcm_ops snd_trident_spdif_ops = { .open = snd_trident_spdif_open, .close = snd_trident_spdif_close, .ioctl = snd_trident_ioctl, @@ -2106,7 +2140,7 @@ static snd_pcm_ops_t snd_trident_spdif_ops = { .pointer = snd_trident_spdif_pointer, }; -static snd_pcm_ops_t snd_trident_spdif_7018_ops = { +static struct snd_pcm_ops snd_trident_spdif_7018_ops = { .open = snd_trident_spdif_open, .close = snd_trident_spdif_close, .ioctl = snd_trident_ioctl, @@ -2128,9 +2162,10 @@ static snd_pcm_ops_t snd_trident_spdif_7018_ops = { ---------------------------------------------------------------------------*/ -int __devinit snd_trident_pcm(trident_t * trident, int device, snd_pcm_t ** rpcm) +int __devinit snd_trident_pcm(struct snd_trident * trident, + int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -2156,7 +2191,7 @@ int __devinit snd_trident_pcm(trident_t * trident, int device, snd_pcm_t ** rpcm trident->pcm = pcm; if (trident->tlb.entries) { - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; for (substream = pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream; substream; substream = substream->next) snd_pcm_lib_preallocate_pages(substream, SNDRV_DMA_TYPE_DEV_SG, snd_dma_pci_data(trident->pci), @@ -2185,12 +2220,13 @@ int __devinit snd_trident_pcm(trident_t * trident, int device, snd_pcm_t ** rpcm ---------------------------------------------------------------------------*/ -int __devinit snd_trident_foldback_pcm(trident_t * trident, int device, snd_pcm_t ** rpcm) +int __devinit snd_trident_foldback_pcm(struct snd_trident * trident, + int device, struct snd_pcm ** rpcm) { - snd_pcm_t *foldback; + struct snd_pcm *foldback; int err; int num_chan = 3; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; if (rpcm) *rpcm = NULL; @@ -2241,9 +2277,10 @@ int __devinit snd_trident_foldback_pcm(trident_t * trident, int device, snd_pcm_ ---------------------------------------------------------------------------*/ -int __devinit snd_trident_spdif_pcm(trident_t * trident, int device, snd_pcm_t ** rpcm) +int __devinit snd_trident_spdif_pcm(struct snd_trident * trident, + int device, struct snd_pcm ** rpcm) { - snd_pcm_t *spdif; + struct snd_pcm *spdif; int err; if (rpcm) @@ -2279,7 +2316,8 @@ int __devinit snd_trident_spdif_pcm(trident_t * trident, int device, snd_pcm_t * Description: enable/disable S/PDIF out from ac97 mixer ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_spdif_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2288,10 +2326,10 @@ static int snd_trident_spdif_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_trident_spdif_control_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_spdif_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned char val; spin_lock_irq(&trident->reg_lock); @@ -2301,10 +2339,10 @@ static int snd_trident_spdif_control_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_trident_spdif_control_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_spdif_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned char val; int change; @@ -2332,7 +2370,7 @@ static int snd_trident_spdif_control_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_spdif_control __devinitdata = +static struct snd_kcontrol_new snd_trident_spdif_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH), @@ -2348,17 +2386,18 @@ static snd_kcontrol_new_t snd_trident_spdif_control __devinitdata = Description: put/get the S/PDIF default settings ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_default_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_spdif_default_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_trident_spdif_default_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_spdif_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); spin_lock_irq(&trident->reg_lock); ucontrol->value.iec958.status[0] = (trident->spdif_bits >> 0) & 0xff; @@ -2369,10 +2408,10 @@ static int snd_trident_spdif_default_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_trident_spdif_default_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_spdif_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -2394,7 +2433,7 @@ static int snd_trident_spdif_default_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_spdif_default __devinitdata = +static struct snd_kcontrol_new snd_trident_spdif_default __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -2409,15 +2448,16 @@ static snd_kcontrol_new_t snd_trident_spdif_default __devinitdata = Description: put/get the S/PDIF mask ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_spdif_mask_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_trident_spdif_mask_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_spdif_mask_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -2426,7 +2466,7 @@ static int snd_trident_spdif_mask_get(snd_kcontrol_t * kcontrol, return 0; } -static snd_kcontrol_new_t snd_trident_spdif_mask __devinitdata = +static struct snd_kcontrol_new snd_trident_spdif_mask __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -2441,17 +2481,18 @@ static snd_kcontrol_new_t snd_trident_spdif_mask __devinitdata = Description: put/get the S/PDIF stream settings ---------------------------------------------------------------------------*/ -static int snd_trident_spdif_stream_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_spdif_stream_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_trident_spdif_stream_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_spdif_stream_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); spin_lock_irq(&trident->reg_lock); ucontrol->value.iec958.status[0] = (trident->spdif_pcm_bits >> 0) & 0xff; @@ -2462,10 +2503,10 @@ static int snd_trident_spdif_stream_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_trident_spdif_stream_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_spdif_stream_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -2487,7 +2528,7 @@ static int snd_trident_spdif_stream_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_spdif_stream __devinitdata = +static struct snd_kcontrol_new snd_trident_spdif_stream __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -2503,7 +2544,8 @@ static snd_kcontrol_new_t snd_trident_spdif_stream __devinitdata = Description: enable/disable rear path for ac97 ---------------------------------------------------------------------------*/ -static int snd_trident_ac97_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_ac97_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2512,10 +2554,10 @@ static int snd_trident_ac97_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_trident_ac97_control_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_ac97_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned char val; spin_lock_irq(&trident->reg_lock); @@ -2525,10 +2567,10 @@ static int snd_trident_ac97_control_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_trident_ac97_control_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_ac97_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned char val; int change = 0; @@ -2544,7 +2586,7 @@ static int snd_trident_ac97_control_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_ac97_rear_control __devinitdata = +static struct snd_kcontrol_new snd_trident_ac97_rear_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Rear Path", @@ -2560,7 +2602,8 @@ static snd_kcontrol_new_t snd_trident_ac97_rear_control __devinitdata = Description: wave & music volume control ---------------------------------------------------------------------------*/ -static int snd_trident_vol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_vol_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -2569,10 +2612,10 @@ static int snd_trident_vol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_trident_vol_control_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_vol_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned int val; val = trident->musicvol_wavevol; @@ -2581,10 +2624,10 @@ static int snd_trident_vol_control_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_trident_vol_control_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_vol_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); unsigned int val; int change = 0; @@ -2599,7 +2642,7 @@ static int snd_trident_vol_control_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_vol_music_control __devinitdata = +static struct snd_kcontrol_new snd_trident_vol_music_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Music Playback Volume", @@ -2609,7 +2652,7 @@ static snd_kcontrol_new_t snd_trident_vol_music_control __devinitdata = .private_value = 16, }; -static snd_kcontrol_new_t snd_trident_vol_wave_control __devinitdata = +static struct snd_kcontrol_new snd_trident_vol_wave_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Wave Playback Volume", @@ -2625,9 +2668,10 @@ static snd_kcontrol_new_t snd_trident_vol_wave_control __devinitdata = Description: PCM front volume control ---------------------------------------------------------------------------*/ -static int snd_trident_pcm_vol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_pcm_vol_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { - trident_t *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -2638,11 +2682,11 @@ static int snd_trident_pcm_vol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_trident_pcm_vol_control_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_vol_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; if (trident->device == TRIDENT_DEVICE_ID_SI7018) { ucontrol->value.integer.value[0] = 1023 - mix->vol; @@ -2652,11 +2696,11 @@ static int snd_trident_pcm_vol_control_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_trident_pcm_vol_control_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_vol_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; unsigned int val; int change = 0; @@ -2674,7 +2718,7 @@ static int snd_trident_pcm_vol_control_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_pcm_vol_control __devinitdata = +static struct snd_kcontrol_new snd_trident_pcm_vol_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Front Playback Volume", @@ -2691,7 +2735,8 @@ static snd_kcontrol_new_t snd_trident_pcm_vol_control __devinitdata = Description: PCM front pan control ---------------------------------------------------------------------------*/ -static int snd_trident_pcm_pan_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_pcm_pan_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -2700,11 +2745,11 @@ static int snd_trident_pcm_pan_control_info(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_trident_pcm_pan_control_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_pan_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; ucontrol->value.integer.value[0] = mix->pan; if (ucontrol->value.integer.value[0] & 0x40) { @@ -2715,11 +2760,11 @@ static int snd_trident_pcm_pan_control_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_trident_pcm_pan_control_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_pan_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; unsigned char val; int change = 0; @@ -2736,7 +2781,7 @@ static int snd_trident_pcm_pan_control_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_pcm_pan_control __devinitdata = +static struct snd_kcontrol_new snd_trident_pcm_pan_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Pan Playback Control", @@ -2753,7 +2798,8 @@ static snd_kcontrol_new_t snd_trident_pcm_pan_control __devinitdata = Description: PCM reverb volume control ---------------------------------------------------------------------------*/ -static int snd_trident_pcm_rvol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_pcm_rvol_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -2762,21 +2808,21 @@ static int snd_trident_pcm_rvol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_trident_pcm_rvol_control_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_rvol_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; ucontrol->value.integer.value[0] = 127 - mix->rvol; return 0; } -static int snd_trident_pcm_rvol_control_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_rvol_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; unsigned short val; int change = 0; @@ -2790,7 +2836,7 @@ static int snd_trident_pcm_rvol_control_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_pcm_rvol_control __devinitdata = +static struct snd_kcontrol_new snd_trident_pcm_rvol_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Reverb Playback Volume", @@ -2807,7 +2853,8 @@ static snd_kcontrol_new_t snd_trident_pcm_rvol_control __devinitdata = Description: PCM chorus volume control ---------------------------------------------------------------------------*/ -static int snd_trident_pcm_cvol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_trident_pcm_cvol_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -2816,21 +2863,21 @@ static int snd_trident_pcm_cvol_control_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_trident_pcm_cvol_control_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_cvol_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; ucontrol->value.integer.value[0] = 127 - mix->cvol; return 0; } -static int snd_trident_pcm_cvol_control_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_trident_pcm_cvol_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - trident_t *trident = snd_kcontrol_chip(kcontrol); - snd_trident_pcm_mixer_t *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; + struct snd_trident *trident = snd_kcontrol_chip(kcontrol); + struct snd_trident_pcm_mixer *mix = &trident->pcm_mixer[snd_ctl_get_ioffnum(kcontrol, &ucontrol->id)]; unsigned short val; int change = 0; @@ -2844,7 +2891,7 @@ static int snd_trident_pcm_cvol_control_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_trident_pcm_cvol_control __devinitdata = +static struct snd_kcontrol_new snd_trident_pcm_cvol_control __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Chorus Playback Volume", @@ -2855,9 +2902,11 @@ static snd_kcontrol_new_t snd_trident_pcm_cvol_control __devinitdata = .put = snd_trident_pcm_cvol_control_put, }; -static void snd_trident_notify_pcm_change1(snd_card_t * card, snd_kcontrol_t *kctl, int num, int activate) +static void snd_trident_notify_pcm_change1(struct snd_card *card, + struct snd_kcontrol *kctl, + int num, int activate) { - snd_ctl_elem_id_t id; + struct snd_ctl_elem_id id; if (! kctl) return; @@ -2870,7 +2919,9 @@ static void snd_trident_notify_pcm_change1(snd_card_t * card, snd_kcontrol_t *kc snd_ctl_build_ioff(&id, kctl, num)); } -static void snd_trident_notify_pcm_change(trident_t *trident, snd_trident_pcm_mixer_t *tmix, int num, int activate) +static void snd_trident_notify_pcm_change(struct snd_trident *trident, + struct snd_trident_pcm_mixer *tmix, + int num, int activate) { snd_trident_notify_pcm_change1(trident->card, trident->ctl_vol, num, activate); snd_trident_notify_pcm_change1(trident->card, trident->ctl_pan, num, activate); @@ -2878,9 +2929,11 @@ static void snd_trident_notify_pcm_change(trident_t *trident, snd_trident_pcm_mi snd_trident_notify_pcm_change1(trident->card, trident->ctl_cvol, num, activate); } -static int snd_trident_pcm_mixer_build(trident_t *trident, snd_trident_voice_t *voice, snd_pcm_substream_t *substream) +static int snd_trident_pcm_mixer_build(struct snd_trident *trident, + struct snd_trident_voice *voice, + struct snd_pcm_substream *substream) { - snd_trident_pcm_mixer_t *tmix; + struct snd_trident_pcm_mixer *tmix; snd_assert(trident != NULL && voice != NULL && substream != NULL, return -EINVAL); tmix = &trident->pcm_mixer[substream->number]; @@ -2893,9 +2946,9 @@ static int snd_trident_pcm_mixer_build(trident_t *trident, snd_trident_voice_t * return 0; } -static int snd_trident_pcm_mixer_free(trident_t *trident, snd_trident_voice_t *voice, snd_pcm_substream_t *substream) +static int snd_trident_pcm_mixer_free(struct snd_trident *trident, struct snd_trident_voice *voice, struct snd_pcm_substream *substream) { - snd_trident_pcm_mixer_t *tmix; + struct snd_trident_pcm_mixer *tmix; snd_assert(trident != NULL && substream != NULL, return -EINVAL); tmix = &trident->pcm_mixer[substream->number]; @@ -2915,14 +2968,14 @@ static int snd_trident_pcm_mixer_free(trident_t *trident, snd_trident_voice_t *v ---------------------------------------------------------------------------*/ -static int __devinit snd_trident_mixer(trident_t * trident, int pcm_spdif_device) +static int __devinit snd_trident_mixer(struct snd_trident * trident, int pcm_spdif_device) { - ac97_template_t _ac97; - snd_card_t * card = trident->card; - snd_kcontrol_t *kctl; - snd_ctl_elem_value_t *uctl; + struct snd_ac97_template _ac97; + struct snd_card *card = trident->card; + struct snd_kcontrol *kctl; + struct snd_ctl_elem_value *uctl; int idx, err, retries = 2; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_trident_codec_write, .read = snd_trident_codec_read, }; @@ -2959,7 +3012,7 @@ static int __devinit snd_trident_mixer(trident_t * trident, int pcm_spdif_device snd_printk(KERN_ERR "SI7018: the secondary codec - invalid access\n"); #if 0 // only for my testing purpose --jk { - ac97_t *mc97; + struct snd_ac97 *mc97; err = snd_ac97_modem(trident->card, &_ac97, &mc97); if (err < 0) snd_printk(KERN_ERR "snd_ac97_modem returned error %i\n", err); @@ -2982,7 +3035,7 @@ static int __devinit snd_trident_mixer(trident_t * trident, int pcm_spdif_device } for (idx = 0; idx < 32; idx++) { - snd_trident_pcm_mixer_t *tmix; + struct snd_trident_pcm_mixer *tmix; tmix = &trident->pcm_mixer[idx]; tmix->voice = NULL; @@ -3080,7 +3133,7 @@ static int __devinit snd_trident_mixer(trident_t * trident, int pcm_spdif_device static unsigned char snd_trident_gameport_read(struct gameport *gameport) { - trident_t *chip = gameport_get_port_data(gameport); + struct snd_trident *chip = gameport_get_port_data(gameport); snd_assert(chip, return 0); return inb(TRID_REG(chip, GAMEPORT_LEGACY)); @@ -3088,7 +3141,7 @@ static unsigned char snd_trident_gameport_read(struct gameport *gameport) static void snd_trident_gameport_trigger(struct gameport *gameport) { - trident_t *chip = gameport_get_port_data(gameport); + struct snd_trident *chip = gameport_get_port_data(gameport); snd_assert(chip, return); outb(0xff, TRID_REG(chip, GAMEPORT_LEGACY)); @@ -3096,7 +3149,7 @@ static void snd_trident_gameport_trigger(struct gameport *gameport) static int snd_trident_gameport_cooked_read(struct gameport *gameport, int *axes, int *buttons) { - trident_t *chip = gameport_get_port_data(gameport); + struct snd_trident *chip = gameport_get_port_data(gameport); int i; snd_assert(chip, return 0); @@ -3113,7 +3166,7 @@ static int snd_trident_gameport_cooked_read(struct gameport *gameport, int *axes static int snd_trident_gameport_open(struct gameport *gameport, int mode) { - trident_t *chip = gameport_get_port_data(gameport); + struct snd_trident *chip = gameport_get_port_data(gameport); snd_assert(chip, return 0); @@ -3130,7 +3183,7 @@ static int snd_trident_gameport_open(struct gameport *gameport, int mode) } } -int __devinit snd_trident_create_gameport(trident_t *chip) +int __devinit snd_trident_create_gameport(struct snd_trident *chip) { struct gameport *gp; @@ -3156,7 +3209,7 @@ int __devinit snd_trident_create_gameport(trident_t *chip) return 0; } -static inline void snd_trident_free_gameport(trident_t *chip) +static inline void snd_trident_free_gameport(struct snd_trident *chip) { if (chip->gameport) { gameport_unregister_port(chip->gameport); @@ -3164,14 +3217,14 @@ static inline void snd_trident_free_gameport(trident_t *chip) } } #else -int __devinit snd_trident_create_gameport(trident_t *chip) { return -ENOSYS; } -static inline void snd_trident_free_gameport(trident_t *chip) { } +int __devinit snd_trident_create_gameport(struct snd_trident *chip) { return -ENOSYS; } +static inline void snd_trident_free_gameport(struct snd_trident *chip) { } #endif /* CONFIG_GAMEPORT */ /* * delay for 1 tick */ -static inline void do_delay(trident_t *chip) +static inline void do_delay(struct snd_trident *chip) { schedule_timeout_uninterruptible(1); } @@ -3180,7 +3233,7 @@ static inline void do_delay(trident_t *chip) * SiS reset routine */ -static int snd_trident_sis_reset(trident_t *trident) +static int snd_trident_sis_reset(struct snd_trident *trident) { unsigned long end_time; unsigned int i; @@ -3233,10 +3286,10 @@ static int snd_trident_sis_reset(trident_t *trident) * /proc interface */ -static void snd_trident_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_trident_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - trident_t *trident = entry->private_data; + struct snd_trident *trident = entry->private_data; char *s; switch (trident->device) { @@ -3274,9 +3327,9 @@ static void snd_trident_proc_read(snd_info_entry_t *entry, #endif } -static void __devinit snd_trident_proc_init(trident_t * trident) +static void __devinit snd_trident_proc_init(struct snd_trident * trident) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; const char *s = "trident"; if (trident->device == TRIDENT_DEVICE_ID_SI7018) @@ -3285,9 +3338,9 @@ static void __devinit snd_trident_proc_init(trident_t * trident) snd_info_set_text_ops(entry, trident, 1024, snd_trident_proc_read); } -static int snd_trident_dev_free(snd_device_t *device) +static int snd_trident_dev_free(struct snd_device *device) { - trident_t *trident = device->device_data; + struct snd_trident *trident = device->device_data; return snd_trident_free(trident); } @@ -3303,7 +3356,7 @@ static int snd_trident_dev_free(snd_device_t *device) ---------------------------------------------------------------------------*/ -static int __devinit snd_trident_tlb_alloc(trident_t *trident) +static int __devinit snd_trident_tlb_alloc(struct snd_trident *trident) { int i; @@ -3318,7 +3371,7 @@ static int __devinit snd_trident_tlb_alloc(trident_t *trident) trident->tlb.entries = (unsigned int*)(((unsigned long)trident->tlb.buffer.area + SNDRV_TRIDENT_MAX_PAGES * 4 - 1) & ~(SNDRV_TRIDENT_MAX_PAGES * 4 - 1)); trident->tlb.entries_dmaaddr = (trident->tlb.buffer.addr + SNDRV_TRIDENT_MAX_PAGES * 4 - 1) & ~(SNDRV_TRIDENT_MAX_PAGES * 4 - 1); /* allocate shadow TLB page table (virtual addresses) */ - trident->tlb.shadow_entries = (unsigned long *)vmalloc(SNDRV_TRIDENT_MAX_PAGES*sizeof(unsigned long)); + trident->tlb.shadow_entries = vmalloc(SNDRV_TRIDENT_MAX_PAGES*sizeof(unsigned long)); if (trident->tlb.shadow_entries == NULL) { snd_printk(KERN_ERR "trident: unable to allocate shadow TLB entries\n"); return -ENOMEM; @@ -3340,7 +3393,7 @@ static int __devinit snd_trident_tlb_alloc(trident_t *trident) if (trident->tlb.memhdr == NULL) return -ENOMEM; - trident->tlb.memhdr->block_extra_size = sizeof(snd_trident_memblk_arg_t); + trident->tlb.memhdr->block_extra_size = sizeof(struct snd_trident_memblk_arg); return 0; } @@ -3348,7 +3401,7 @@ static int __devinit snd_trident_tlb_alloc(trident_t *trident) * initialize 4D DX chip */ -static void snd_trident_stop_all_voices(trident_t *trident) +static void snd_trident_stop_all_voices(struct snd_trident *trident) { outl(0xffffffff, TRID_REG(trident, T4D_STOP_A)); outl(0xffffffff, TRID_REG(trident, T4D_STOP_B)); @@ -3356,7 +3409,7 @@ static void snd_trident_stop_all_voices(trident_t *trident) outl(0, TRID_REG(trident, T4D_AINTEN_B)); } -static int snd_trident_4d_dx_init(trident_t *trident) +static int snd_trident_4d_dx_init(struct snd_trident *trident) { struct pci_dev *pci = trident->pci; unsigned long end_time; @@ -3396,7 +3449,7 @@ static int snd_trident_4d_dx_init(trident_t *trident) /* * initialize 4D NX chip */ -static int snd_trident_4d_nx_init(trident_t *trident) +static int snd_trident_4d_nx_init(struct snd_trident *trident) { struct pci_dev *pci = trident->pci; unsigned long end_time; @@ -3453,7 +3506,7 @@ static int snd_trident_4d_nx_init(trident_t *trident) /* * initialize sis7018 chip */ -static int snd_trident_sis_init(trident_t *trident) +static int snd_trident_sis_init(struct snd_trident *trident) { int err; @@ -3484,18 +3537,18 @@ static int snd_trident_sis_init(trident_t *trident) ---------------------------------------------------------------------------*/ -int __devinit snd_trident_create(snd_card_t * card, +int __devinit snd_trident_create(struct snd_card *card, struct pci_dev *pci, int pcm_streams, int pcm_spdif_device, int max_wavetable_size, - trident_t ** rtrident) + struct snd_trident ** rtrident) { - trident_t *trident; + struct snd_trident *trident; int i, err; - snd_trident_voice_t *voice; - snd_trident_pcm_mixer_t *tmix; - static snd_device_ops_t ops = { + struct snd_trident_voice *voice; + struct snd_trident_pcm_mixer *tmix; + static struct snd_device_ops ops = { .dev_free = snd_trident_dev_free, }; @@ -3543,7 +3596,8 @@ int __devinit snd_trident_create(snd_card_t * card, } trident->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_trident_interrupt, SA_INTERRUPT|SA_SHIRQ, "Trident Audio", (void *) trident)) { + if (request_irq(pci->irq, snd_trident_interrupt, SA_INTERRUPT|SA_SHIRQ, + "Trident Audio", trident)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_trident_free(trident); return -EBUSY; @@ -3627,7 +3681,7 @@ int __devinit snd_trident_create(snd_card_t * card, ---------------------------------------------------------------------------*/ -static int snd_trident_free(trident_t *trident) +static int snd_trident_free(struct snd_trident *trident) { snd_trident_free_gameport(trident); snd_trident_disable_eso(trident); @@ -3647,7 +3701,7 @@ static int snd_trident_free(trident_t *trident) snd_dma_free_pages(&trident->tlb.buffer); } if (trident->irq >= 0) - free_irq(trident->irq, (void *)trident); + free_irq(trident->irq, trident); pci_release_regions(trident->pci); pci_disable_device(trident->pci); kfree(trident); @@ -3674,10 +3728,10 @@ static int snd_trident_free(trident_t *trident) static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - trident_t *trident = dev_id; + struct snd_trident *trident = dev_id; unsigned int audio_int, chn_int, stimer, channel, mask, tmp; int delta; - snd_trident_voice_t *voice; + struct snd_trident_voice *voice; audio_int = inl(TRID_REG(trident, T4D_MISCINT)); if ((audio_int & (ADDRESS_IRQ|MPU401_IRQ)) == 0) @@ -3779,21 +3833,21 @@ static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs * Returns: None. ---------------------------------------------------------------------------*/ -int snd_trident_attach_synthesizer(trident_t *trident) +int snd_trident_attach_synthesizer(struct snd_trident *trident) { #if defined(CONFIG_SND_SEQUENCER) || (defined(MODULE) && defined(CONFIG_SND_SEQUENCER_MODULE)) if (snd_seq_device_new(trident->card, 1, SNDRV_SEQ_DEV_ID_TRIDENT, - sizeof(trident_t*), &trident->seq_dev) >= 0) { + sizeof(struct snd_trident *), &trident->seq_dev) >= 0) { strcpy(trident->seq_dev->name, "4DWave"); - *(trident_t**)SNDRV_SEQ_DEVICE_ARGPTR(trident->seq_dev) = trident; + *(struct snd_trident **)SNDRV_SEQ_DEVICE_ARGPTR(trident->seq_dev) = trident; } #endif return 0; } -snd_trident_voice_t *snd_trident_alloc_voice(trident_t * trident, int type, int client, int port) +struct snd_trident_voice *snd_trident_alloc_voice(struct snd_trident * trident, int type, int client, int port) { - snd_trident_voice_t *pvoice; + struct snd_trident_voice *pvoice; unsigned long flags; int idx; @@ -3835,10 +3889,10 @@ snd_trident_voice_t *snd_trident_alloc_voice(trident_t * trident, int type, int return NULL; } -void snd_trident_free_voice(trident_t * trident, snd_trident_voice_t *voice) +void snd_trident_free_voice(struct snd_trident * trident, struct snd_trident_voice *voice) { unsigned long flags; - void (*private_free)(snd_trident_voice_t *); + void (*private_free)(struct snd_trident_voice *); void *private_data; if (voice == NULL || !voice->use) @@ -3863,7 +3917,7 @@ void snd_trident_free_voice(trident_t * trident, snd_trident_voice_t *voice) private_free(voice); } -static void snd_trident_clear_voices(trident_t * trident, unsigned short v_min, unsigned short v_max) +static void snd_trident_clear_voices(struct snd_trident * trident, unsigned short v_min, unsigned short v_max) { unsigned int i, val, mask[2] = { 0, 0 }; @@ -3884,9 +3938,9 @@ static void snd_trident_clear_voices(trident_t * trident, unsigned short v_min, } #ifdef CONFIG_PM -static int snd_trident_suspend(snd_card_t *card, pm_message_t state) +static int snd_trident_suspend(struct snd_card *card, pm_message_t state) { - trident_t *trident = card->pm_private_data; + struct snd_trident *trident = card->pm_private_data; trident->in_suspend = 1; snd_pcm_suspend_all(trident->pcm); @@ -3910,9 +3964,9 @@ static int snd_trident_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int snd_trident_resume(snd_card_t *card) +static int snd_trident_resume(struct snd_card *card) { - trident_t *trident = card->pm_private_data; + struct snd_trident *trident = card->pm_private_data; pci_enable_device(trident->pci); if (pci_set_dma_mask(trident->pci, 0x3fffffff) < 0 || diff --git a/sound/pci/trident/trident_memory.c b/sound/pci/trident/trident_memory.c index f3e6c546af7..cf09ea99755 100644 --- a/sound/pci/trident/trident_memory.c +++ b/sound/pci/trident/trident_memory.c @@ -68,13 +68,14 @@ #define page_to_addr(trident,page) __tlb_to_addr(trident, (page) << 1) /* fill TLB entries -- we need to fill two entries */ -static inline void set_tlb_bus(trident_t *trident, int page, unsigned long ptr, dma_addr_t addr) +static inline void set_tlb_bus(struct snd_trident *trident, int page, + unsigned long ptr, dma_addr_t addr) { page <<= 1; __set_tlb_bus(trident, page, ptr, addr); __set_tlb_bus(trident, page+1, ptr + SNDRV_TRIDENT_PAGE_SIZE, addr + SNDRV_TRIDENT_PAGE_SIZE); } -static inline void set_silent_tlb(trident_t *trident, int page) +static inline void set_silent_tlb(struct snd_trident *trident, int page) { page <<= 1; __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr); @@ -97,7 +98,8 @@ static inline void set_silent_tlb(trident_t *trident, int page) #define page_to_addr(trident,page) __tlb_to_addr(trident, (page) * UNIT_PAGES) /* fill TLB entries -- UNIT_PAGES entries must be filled */ -static inline void set_tlb_bus(trident_t *trident, int page, unsigned long ptr, dma_addr_t addr) +static inline void set_tlb_bus(struct snd_trident *trident, int page, + unsigned long ptr, dma_addr_t addr) { int i; page *= UNIT_PAGES; @@ -107,7 +109,7 @@ static inline void set_tlb_bus(trident_t *trident, int page, unsigned long ptr, addr += SNDRV_TRIDENT_PAGE_SIZE; } } -static inline void set_silent_tlb(trident_t *trident, int page) +static inline void set_silent_tlb(struct snd_trident *trident, int page) { int i; page *= UNIT_PAGES; @@ -118,7 +120,7 @@ static inline void set_silent_tlb(trident_t *trident, int page) #endif /* PAGE_SIZE */ /* calculate buffer pointer from offset address */ -static inline void *offset_ptr(trident_t *trident, int offset) +static inline void *offset_ptr(struct snd_trident *trident, int offset) { char *ptr; ptr = page_to_ptr(trident, get_aligned_page(offset)); @@ -127,16 +129,16 @@ static inline void *offset_ptr(trident_t *trident, int offset) } /* first and last (aligned) pages of memory block */ -#define firstpg(blk) (((snd_trident_memblk_arg_t*)snd_util_memblk_argptr(blk))->first_page) -#define lastpg(blk) (((snd_trident_memblk_arg_t*)snd_util_memblk_argptr(blk))->last_page) +#define firstpg(blk) (((struct snd_trident_memblk_arg *)snd_util_memblk_argptr(blk))->first_page) +#define lastpg(blk) (((struct snd_trident_memblk_arg *)snd_util_memblk_argptr(blk))->last_page) /* * search empty pages which may contain given size */ -static snd_util_memblk_t * -search_empty(snd_util_memhdr_t *hdr, int size) +static struct snd_util_memblk * +search_empty(struct snd_util_memhdr *hdr, int size) { - snd_util_memblk_t *blk, *prev; + struct snd_util_memblk *blk, *prev; int page, psize; struct list_head *p; @@ -144,7 +146,7 @@ search_empty(snd_util_memhdr_t *hdr, int size) prev = NULL; page = 0; list_for_each(p, &hdr->block) { - blk = list_entry(p, snd_util_memblk_t, list); + blk = list_entry(p, struct snd_util_memblk, list); if (page + psize <= firstpg(blk)) goto __found_pages; page = lastpg(blk) + 1; @@ -183,12 +185,13 @@ static int is_valid_page(unsigned long ptr) /* * page allocation for DMA (Scatter-Gather version) */ -static snd_util_memblk_t * -snd_trident_alloc_sg_pages(trident_t *trident, snd_pcm_substream_t *substream) +static struct snd_util_memblk * +snd_trident_alloc_sg_pages(struct snd_trident *trident, + struct snd_pcm_substream *substream) { - snd_util_memhdr_t *hdr; - snd_util_memblk_t *blk; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_util_memhdr *hdr; + struct snd_util_memblk *blk; + struct snd_pcm_runtime *runtime = substream->runtime; int idx, page; struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); @@ -230,13 +233,14 @@ snd_trident_alloc_sg_pages(trident_t *trident, snd_pcm_substream_t *substream) /* * page allocation for DMA (contiguous version) */ -static snd_util_memblk_t * -snd_trident_alloc_cont_pages(trident_t *trident, snd_pcm_substream_t *substream) +static struct snd_util_memblk * +snd_trident_alloc_cont_pages(struct snd_trident *trident, + struct snd_pcm_substream *substream) { - snd_util_memhdr_t *hdr; - snd_util_memblk_t *blk; + struct snd_util_memhdr *hdr; + struct snd_util_memblk *blk; int page; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; dma_addr_t addr; unsigned long ptr; @@ -270,8 +274,9 @@ snd_trident_alloc_cont_pages(trident_t *trident, snd_pcm_substream_t *substream) /* * page allocation for DMA */ -snd_util_memblk_t * -snd_trident_alloc_pages(trident_t *trident, snd_pcm_substream_t *substream) +struct snd_util_memblk * +snd_trident_alloc_pages(struct snd_trident *trident, + struct snd_pcm_substream *substream) { snd_assert(trident != NULL, return NULL); snd_assert(substream != NULL, return NULL); @@ -285,9 +290,10 @@ snd_trident_alloc_pages(trident_t *trident, snd_pcm_substream_t *substream) /* * release DMA buffer from page table */ -int snd_trident_free_pages(trident_t *trident, snd_util_memblk_t *blk) +int snd_trident_free_pages(struct snd_trident *trident, + struct snd_util_memblk *blk) { - snd_util_memhdr_t *hdr; + struct snd_util_memhdr *hdr; int page; snd_assert(trident != NULL, return -EINVAL); @@ -314,17 +320,17 @@ int snd_trident_free_pages(trident_t *trident, snd_util_memblk_t *blk) /* */ -static int synth_alloc_pages(trident_t *hw, snd_util_memblk_t *blk); -static int synth_free_pages(trident_t *hw, snd_util_memblk_t *blk); +static int synth_alloc_pages(struct snd_trident *hw, struct snd_util_memblk *blk); +static int synth_free_pages(struct snd_trident *hw, struct snd_util_memblk *blk); /* * allocate a synth sample area */ -snd_util_memblk_t * -snd_trident_synth_alloc(trident_t *hw, unsigned int size) +struct snd_util_memblk * +snd_trident_synth_alloc(struct snd_trident *hw, unsigned int size) { - snd_util_memblk_t *blk; - snd_util_memhdr_t *hdr = hw->tlb.memhdr; + struct snd_util_memblk *blk; + struct snd_util_memhdr *hdr = hw->tlb.memhdr; down(&hdr->block_mutex); blk = __snd_util_mem_alloc(hdr, size); @@ -346,9 +352,9 @@ snd_trident_synth_alloc(trident_t *hw, unsigned int size) * free a synth sample area */ int -snd_trident_synth_free(trident_t *hw, snd_util_memblk_t *blk) +snd_trident_synth_free(struct snd_trident *hw, struct snd_util_memblk *blk) { - snd_util_memhdr_t *hdr = hw->tlb.memhdr; + struct snd_util_memhdr *hdr = hw->tlb.memhdr; down(&hdr->block_mutex); synth_free_pages(hw, blk); @@ -361,7 +367,7 @@ snd_trident_synth_free(trident_t *hw, snd_util_memblk_t *blk) /* * reset TLB entry and free kernel page */ -static void clear_tlb(trident_t *trident, int page) +static void clear_tlb(struct snd_trident *trident, int page) { void *ptr = page_to_ptr(trident, page); dma_addr_t addr = page_to_addr(trident, page); @@ -378,20 +384,22 @@ static void clear_tlb(trident_t *trident, int page) } /* check new allocation range */ -static void get_single_page_range(snd_util_memhdr_t *hdr, snd_util_memblk_t *blk, int *first_page_ret, int *last_page_ret) +static void get_single_page_range(struct snd_util_memhdr *hdr, + struct snd_util_memblk *blk, + int *first_page_ret, int *last_page_ret) { struct list_head *p; - snd_util_memblk_t *q; + struct snd_util_memblk *q; int first_page, last_page; first_page = firstpg(blk); if ((p = blk->list.prev) != &hdr->block) { - q = list_entry(p, snd_util_memblk_t, list); + q = list_entry(p, struct snd_util_memblk, list); if (lastpg(q) == first_page) first_page++; /* first page was already allocated */ } last_page = lastpg(blk); if ((p = blk->list.next) != &hdr->block) { - q = list_entry(p, snd_util_memblk_t, list); + q = list_entry(p, struct snd_util_memblk, list); if (firstpg(q) == last_page) last_page--; /* last page was already allocated */ } @@ -402,7 +410,7 @@ static void get_single_page_range(snd_util_memhdr_t *hdr, snd_util_memblk_t *blk /* * allocate kernel pages and assign them to TLB */ -static int synth_alloc_pages(trident_t *hw, snd_util_memblk_t *blk) +static int synth_alloc_pages(struct snd_trident *hw, struct snd_util_memblk *blk) { int page, first_page, last_page; struct snd_dma_buffer dmab; @@ -438,7 +446,7 @@ __fail: /* * free pages */ -static int synth_free_pages(trident_t *trident, snd_util_memblk_t *blk) +static int synth_free_pages(struct snd_trident *trident, struct snd_util_memblk *blk) { int page, first_page, last_page; @@ -452,7 +460,9 @@ static int synth_free_pages(trident_t *trident, snd_util_memblk_t *blk) /* * copy_from_user(blk + offset, data, size) */ -int snd_trident_synth_copy_from_user(trident_t *trident, snd_util_memblk_t *blk, int offset, const char __user *data, int size) +int snd_trident_synth_copy_from_user(struct snd_trident *trident, + struct snd_util_memblk *blk, + int offset, const char __user *data, int size) { int page, nextofs, end_offset, temp, temp1; diff --git a/sound/pci/trident/trident_synth.c b/sound/pci/trident/trident_synth.c index 5d5a719b058..a49682ef3e3 100644 --- a/sound/pci/trident/trident_synth.c +++ b/sound/pci/trident/trident_synth.c @@ -192,15 +192,15 @@ static unsigned short log_from_linear( unsigned short value ) * Sample handling operations */ -static void sample_start(trident_t * trident, snd_trident_voice_t * voice, snd_seq_position_t position); -static void sample_stop(trident_t * trident, snd_trident_voice_t * voice, snd_seq_stop_mode_t mode); -static void sample_freq(trident_t * trident, snd_trident_voice_t * voice, snd_seq_frequency_t freq); -static void sample_volume(trident_t * trident, snd_trident_voice_t * voice, snd_seq_ev_volume_t * volume); -static void sample_loop(trident_t * trident, snd_trident_voice_t * voice, snd_seq_ev_loop_t * loop); -static void sample_pos(trident_t * trident, snd_trident_voice_t * voice, snd_seq_position_t position); -static void sample_private1(trident_t * trident, snd_trident_voice_t * voice, unsigned char *data); - -static snd_trident_sample_ops_t sample_ops = +static void sample_start(struct snd_trident * trident, struct snd_trident_voice * voice, snd_seq_position_t position); +static void sample_stop(struct snd_trident * trident, struct snd_trident_voice * voice, int mode); +static void sample_freq(struct snd_trident * trident, struct snd_trident_voice * voice, snd_seq_frequency_t freq); +static void sample_volume(struct snd_trident * trident, struct snd_trident_voice * voice, struct snd_seq_ev_volume * volume); +static void sample_loop(struct snd_trident * trident, struct snd_trident_voice * voice, struct snd_seq_ev_loop * loop); +static void sample_pos(struct snd_trident * trident, struct snd_trident_voice * voice, snd_seq_position_t position); +static void sample_private1(struct snd_trident * trident, struct snd_trident_voice * voice, unsigned char *data); + +static struct snd_trident_sample_ops sample_ops = { sample_start, sample_stop, @@ -211,7 +211,7 @@ static snd_trident_sample_ops_t sample_ops = sample_private1 }; -static void snd_trident_simple_init(snd_trident_voice_t * voice) +static void snd_trident_simple_init(struct snd_trident_voice * voice) { //voice->handler_wave = interrupt_wave; //voice->handler_volume = interrupt_volume; @@ -220,10 +220,10 @@ static void snd_trident_simple_init(snd_trident_voice_t * voice) voice->sample_ops = &sample_ops; } -static void sample_start(trident_t * trident, snd_trident_voice_t * voice, snd_seq_position_t position) +static void sample_start(struct snd_trident * trident, struct snd_trident_voice * voice, snd_seq_position_t position) { - simple_instrument_t *simple; - snd_seq_kinstr_t *instr; + struct simple_instrument *simple; + struct snd_seq_kinstr *instr; unsigned long flags; unsigned int loop_start, loop_end, sample_start, sample_end, start_offset; unsigned int value; @@ -305,7 +305,7 @@ static void sample_start(trident_t * trident, snd_trident_voice_t * voice, snd_s snd_seq_instr_free_use(trident->synth.ilist, instr); } -static void sample_stop(trident_t * trident, snd_trident_voice_t * voice, snd_seq_stop_mode_t mode) +static void sample_stop(struct snd_trident * trident, struct snd_trident_voice * voice, int mode) { unsigned long flags; @@ -329,7 +329,7 @@ static void sample_stop(trident_t * trident, snd_trident_voice_t * voice, snd_se } } -static void sample_freq(trident_t * trident, snd_trident_voice_t * voice, snd_seq_frequency_t freq) +static void sample_freq(struct snd_trident * trident, struct snd_trident_voice * voice, snd_seq_frequency_t freq) { unsigned long flags; freq >>= 4; @@ -355,7 +355,7 @@ static void sample_freq(trident_t * trident, snd_trident_voice_t * voice, snd_se spin_unlock_irqrestore(&trident->reg_lock, flags); } -static void sample_volume(trident_t * trident, snd_trident_voice_t * voice, snd_seq_ev_volume_t * volume) +static void sample_volume(struct snd_trident * trident, struct snd_trident_voice * voice, struct snd_seq_ev_volume * volume) { unsigned long flags; unsigned short value; @@ -407,11 +407,11 @@ static void sample_volume(trident_t * trident, snd_trident_voice_t * voice, snd_ spin_unlock_irqrestore(&trident->reg_lock, flags); } -static void sample_loop(trident_t * trident, snd_trident_voice_t * voice, snd_seq_ev_loop_t * loop) +static void sample_loop(struct snd_trident * trident, struct snd_trident_voice * voice, struct snd_seq_ev_loop * loop) { unsigned long flags; - simple_instrument_t *simple; - snd_seq_kinstr_t *instr; + struct simple_instrument *simple; + struct snd_seq_kinstr *instr; unsigned int loop_start, loop_end; instr = snd_seq_instr_find(trident->synth.ilist, &voice->instr, 0, 1); @@ -446,11 +446,11 @@ static void sample_loop(trident_t * trident, snd_trident_voice_t * voice, snd_se snd_seq_instr_free_use(trident->synth.ilist, instr); } -static void sample_pos(trident_t * trident, snd_trident_voice_t * voice, snd_seq_position_t position) +static void sample_pos(struct snd_trident * trident, struct snd_trident_voice * voice, snd_seq_position_t position) { unsigned long flags; - simple_instrument_t *simple; - snd_seq_kinstr_t *instr; + struct simple_instrument *simple; + struct snd_seq_kinstr *instr; unsigned int value; instr = snd_seq_instr_find(trident->synth.ilist, &voice->instr, 0, 1); @@ -496,7 +496,7 @@ static void sample_pos(trident_t * trident, snd_trident_voice_t * voice, snd_seq snd_seq_instr_free_use(trident->synth.ilist, instr); } -static void sample_private1(trident_t * trident, snd_trident_voice_t * voice, unsigned char *data) +static void sample_private1(struct snd_trident * trident, struct snd_trident_voice * voice, unsigned char *data) { } @@ -504,10 +504,11 @@ static void sample_private1(trident_t * trident, snd_trident_voice_t * voice, un * Memory management / sample loading */ -static int snd_trident_simple_put_sample(void *private_data, simple_instrument_t * instr, +static int snd_trident_simple_put_sample(void *private_data, + struct simple_instrument * instr, char __user *data, long len, int atomic) { - trident_t *trident = private_data; + struct snd_trident *trident = private_data; int size = instr->size; int shift = 0; @@ -529,7 +530,7 @@ static int snd_trident_simple_put_sample(void *private_data, simple_instrument_t return -EFAULT; if (trident->tlb.entries) { - snd_util_memblk_t *memblk; + struct snd_util_memblk *memblk; memblk = snd_trident_synth_alloc(trident, size); if (memblk == NULL) return -ENOMEM; @@ -557,10 +558,11 @@ static int snd_trident_simple_put_sample(void *private_data, simple_instrument_t return 0; } -static int snd_trident_simple_get_sample(void *private_data, simple_instrument_t * instr, +static int snd_trident_simple_get_sample(void *private_data, + struct simple_instrument * instr, char __user *data, long len, int atomic) { - //trident_t *trident = private_data; + //struct snd_trident *trident = private_data; int size = instr->size; int shift = 0; @@ -578,10 +580,11 @@ static int snd_trident_simple_get_sample(void *private_data, simple_instrument_t return -EBUSY; } -static int snd_trident_simple_remove_sample(void *private_data, simple_instrument_t * instr, +static int snd_trident_simple_remove_sample(void *private_data, + struct simple_instrument * instr, int atomic) { - trident_t *trident = private_data; + struct snd_trident *trident = private_data; int size = instr->size; if (instr->format & SIMPLE_WAVE_16BIT) @@ -590,7 +593,7 @@ static int snd_trident_simple_remove_sample(void *private_data, simple_instrumen size <<= 1; if (trident->tlb.entries) { - snd_util_memblk_t *memblk = (snd_util_memblk_t*)instr->address.ptr; + struct snd_util_memblk *memblk = (struct snd_util_memblk *)instr->address.ptr; if (memblk) snd_trident_synth_free(trident, memblk); else @@ -612,9 +615,9 @@ static int snd_trident_simple_remove_sample(void *private_data, simple_instrumen return 0; } -static void select_instrument(trident_t * trident, snd_trident_voice_t * v) +static void select_instrument(struct snd_trident * trident, struct snd_trident_voice * v) { - snd_seq_kinstr_t *instr; + struct snd_seq_kinstr *instr; instr = snd_seq_instr_find(trident->synth.ilist, &v->instr, 0, 1); if (instr != NULL) { if (instr->ops) { @@ -629,7 +632,7 @@ static void select_instrument(trident_t * trident, snd_trident_voice_t * v) */ -static void event_sample(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_sample(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_stop) v->sample_ops->sample_stop(p->trident, v, SAMPLE_STOP_IMMEDIATELY); @@ -643,7 +646,7 @@ static void event_sample(snd_seq_event_t * ev, snd_trident_port_t * p, snd_tride select_instrument(p->trident, v); } -static void event_cluster(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_cluster(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_stop) v->sample_ops->sample_stop(p->trident, v, SAMPLE_STOP_IMMEDIATELY); @@ -651,49 +654,49 @@ static void event_cluster(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trid select_instrument(p->trident, v); } -static void event_start(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_start(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_start) v->sample_ops->sample_start(p->trident, v, ev->data.sample.param.position); } -static void event_stop(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_stop(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_stop) v->sample_ops->sample_stop(p->trident, v, ev->data.sample.param.stop_mode); } -static void event_freq(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_freq(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_freq) v->sample_ops->sample_freq(p->trident, v, ev->data.sample.param.frequency); } -static void event_volume(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_volume(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_volume) v->sample_ops->sample_volume(p->trident, v, &ev->data.sample.param.volume); } -static void event_loop(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_loop(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_loop) v->sample_ops->sample_loop(p->trident, v, &ev->data.sample.param.loop); } -static void event_position(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_position(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_pos) v->sample_ops->sample_pos(p->trident, v, ev->data.sample.param.position); } -static void event_private1(snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v) +static void event_private1(struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v) { if (v->sample_ops && v->sample_ops->sample_private1) v->sample_ops->sample_private1(p->trident, v, (unsigned char *) &ev->data.sample.param.raw8); } -typedef void (trident_sample_event_handler_t) (snd_seq_event_t * ev, snd_trident_port_t * p, snd_trident_voice_t * v); +typedef void (trident_sample_event_handler_t) (struct snd_seq_event * ev, struct snd_trident_port * p, struct snd_trident_voice * v); static trident_sample_event_handler_t *trident_sample_event_handlers[9] = { @@ -708,11 +711,11 @@ static trident_sample_event_handler_t *trident_sample_event_handlers[9] = event_private1 }; -static void snd_trident_sample_event(snd_seq_event_t * ev, snd_trident_port_t * p) +static void snd_trident_sample_event(struct snd_seq_event * ev, struct snd_trident_port * p) { int idx, voice; - trident_t *trident = p->trident; - snd_trident_voice_t *v; + struct snd_trident *trident = p->trident; + struct snd_trident_voice *v; unsigned long flags; idx = ev->type - SNDRV_SEQ_EVENT_SAMPLE; @@ -735,10 +738,10 @@ static void snd_trident_sample_event(snd_seq_event_t * ev, snd_trident_port_t * */ -static void snd_trident_synth_free_voices(trident_t * trident, int client, int port) +static void snd_trident_synth_free_voices(struct snd_trident * trident, int client, int port) { int idx; - snd_trident_voice_t *voice; + struct snd_trident_voice *voice; for (idx = 0; idx < 32; idx++) { voice = &trident->synth.voices[idx]; @@ -747,11 +750,11 @@ static void snd_trident_synth_free_voices(trident_t * trident, int client, int p } } -static int snd_trident_synth_use(void *private_data, snd_seq_port_subscribe_t * info) +static int snd_trident_synth_use(void *private_data, struct snd_seq_port_subscribe * info) { - snd_trident_port_t *port = (snd_trident_port_t *) private_data; - trident_t *trident = port->trident; - snd_trident_voice_t *voice; + struct snd_trident_port *port = private_data; + struct snd_trident *trident = port->trident; + struct snd_trident_voice *voice; unsigned int idx; unsigned long flags; @@ -786,10 +789,10 @@ static int snd_trident_synth_use(void *private_data, snd_seq_port_subscribe_t * return 0; } -static int snd_trident_synth_unuse(void *private_data, snd_seq_port_subscribe_t * info) +static int snd_trident_synth_unuse(void *private_data, struct snd_seq_port_subscribe * info) { - snd_trident_port_t *port = (snd_trident_port_t *) private_data; - trident_t *trident = port->trident; + struct snd_trident_port *port = private_data; + struct snd_trident *trident = port->trident; unsigned long flags; spin_lock_irqsave(&trident->reg_lock, flags); @@ -802,18 +805,18 @@ static int snd_trident_synth_unuse(void *private_data, snd_seq_port_subscribe_t */ -static void snd_trident_synth_free_private_instruments(snd_trident_port_t * p, int client) +static void snd_trident_synth_free_private_instruments(struct snd_trident_port * p, int client) { - snd_seq_instr_header_t ifree; + struct snd_seq_instr_header ifree; memset(&ifree, 0, sizeof(ifree)); ifree.cmd = SNDRV_SEQ_INSTR_FREE_CMD_PRIVATE; snd_seq_instr_list_free_cond(p->trident->synth.ilist, &ifree, client, 0); } -static int snd_trident_synth_event_input(snd_seq_event_t * ev, int direct, void *private_data, int atomic, int hop) +static int snd_trident_synth_event_input(struct snd_seq_event * ev, int direct, void *private_data, int atomic, int hop) { - snd_trident_port_t *p = (snd_trident_port_t *) private_data; + struct snd_trident_port *p = (struct snd_trident_port *) private_data; if (p == NULL) return -EINVAL; @@ -841,12 +844,12 @@ static int snd_trident_synth_event_input(snd_seq_event_t * ev, int direct, void } static void snd_trident_synth_instr_notify(void *private_data, - snd_seq_kinstr_t * instr, + struct snd_seq_kinstr * instr, int what) { int idx; - trident_t *trident = private_data; - snd_trident_voice_t *pvoice; + struct snd_trident *trident = private_data; + struct snd_trident_voice *pvoice; unsigned long flags; spin_lock_irqsave(&trident->event_lock, flags); @@ -870,16 +873,16 @@ static void snd_trident_synth_instr_notify(void *private_data, static void snd_trident_synth_free_port(void *private_data) { - snd_trident_port_t *p = (snd_trident_port_t *) private_data; + struct snd_trident_port *p = (struct snd_trident_port *) private_data; if (p) snd_midi_channel_free_set(p->chset); } -static int snd_trident_synth_create_port(trident_t * trident, int idx) +static int snd_trident_synth_create_port(struct snd_trident * trident, int idx) { - snd_trident_port_t *p; - snd_seq_port_callback_t callbacks; + struct snd_trident_port *p; + struct snd_seq_port_callback callbacks; char name[32]; char *str; int result; @@ -927,17 +930,17 @@ static int snd_trident_synth_create_port(trident_t * trident, int idx) */ -static int snd_trident_synth_new_device(snd_seq_device_t *dev) +static int snd_trident_synth_new_device(struct snd_seq_device *dev) { - trident_t *trident; + struct snd_trident *trident; int client, i; - snd_seq_client_callback_t callbacks; - snd_seq_client_info_t cinfo; - snd_seq_port_subscribe_t sub; - snd_simple_ops_t *simpleops; + struct snd_seq_client_callback callbacks; + struct snd_seq_client_info cinfo; + struct snd_seq_port_subscribe sub; + struct snd_simple_ops *simpleops; char *str; - trident = *(trident_t **)SNDRV_SEQ_DEVICE_ARGPTR(dev); + trident = *(struct snd_trident **)SNDRV_SEQ_DEVICE_ARGPTR(dev); if (trident == NULL) return -EINVAL; @@ -993,11 +996,11 @@ static int snd_trident_synth_new_device(snd_seq_device_t *dev) return 0; } -static int snd_trident_synth_delete_device(snd_seq_device_t *dev) +static int snd_trident_synth_delete_device(struct snd_seq_device *dev) { - trident_t *trident; + struct snd_trident *trident; - trident = *(trident_t **)SNDRV_SEQ_DEVICE_ARGPTR(dev); + trident = *(struct snd_trident **)SNDRV_SEQ_DEVICE_ARGPTR(dev); if (trident == NULL) return -EINVAL; @@ -1012,14 +1015,14 @@ static int snd_trident_synth_delete_device(snd_seq_device_t *dev) static int __init alsa_trident_synth_init(void) { - static snd_seq_dev_ops_t ops = + static struct snd_seq_dev_ops ops = { snd_trident_synth_new_device, snd_trident_synth_delete_device }; return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_TRIDENT, &ops, - sizeof(trident_t*)); + sizeof(struct snd_trident *)); } static void __exit alsa_trident_synth_exit(void) -- cgit v1.2.3-70-g09d2 From 208a1b4cb5ad97510aa9cbe51d09e55656691cb4 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:53:41 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI YMFPCI Modules: YMFPCI driver Remove xxx_t typedefs from the PCI YMFPCI driver. Signed-off-by: Takashi Iwai --- include/sound/ymfpci.h | 109 +++++----- sound/pci/ymfpci/ymfpci.c | 14 +- sound/pci/ymfpci/ymfpci_main.c | 470 +++++++++++++++++++++-------------------- 3 files changed, 298 insertions(+), 295 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/ymfpci.h b/include/sound/ymfpci.h index c3bccbfd8d4..ec790a9c496 100644 --- a/include/sound/ymfpci.h +++ b/include/sound/ymfpci.h @@ -184,7 +184,7 @@ * */ -typedef struct _snd_ymfpci_playback_bank { +struct snd_ymfpci_playback_bank { u32 format; u32 loop_default; u32 base; /* 32-bit address */ @@ -215,46 +215,45 @@ typedef struct _snd_ymfpci_playback_bank { u32 eff3_gain; u32 lpfD1; u32 lpfD2; -} snd_ymfpci_playback_bank_t; + }; -typedef struct _snd_ymfpci_capture_bank { +struct snd_ymfpci_capture_bank { u32 base; /* 32-bit address */ u32 loop_end; /* 32-bit offset */ u32 start; /* 32-bit offset */ u32 num_of_loops; /* counter */ -} snd_ymfpci_capture_bank_t; +}; -typedef struct _snd_ymfpci_effect_bank { +struct snd_ymfpci_effect_bank { u32 base; /* 32-bit address */ u32 loop_end; /* 32-bit offset */ u32 start; /* 32-bit offset */ u32 temp; -} snd_ymfpci_effect_bank_t; +}; -typedef struct _snd_ymfpci_voice ymfpci_voice_t; -typedef struct _snd_ymfpci_pcm ymfpci_pcm_t; -typedef struct _snd_ymfpci ymfpci_t; +struct snd_ymfpci_pcm; +struct snd_ymfpci; -typedef enum { +enum snd_ymfpci_voice_type { YMFPCI_PCM, YMFPCI_SYNTH, YMFPCI_MIDI -} ymfpci_voice_type_t; +}; -struct _snd_ymfpci_voice { - ymfpci_t *chip; +struct snd_ymfpci_voice { + struct snd_ymfpci *chip; int number; unsigned int use: 1, pcm: 1, synth: 1, midi: 1; - snd_ymfpci_playback_bank_t *bank; + struct snd_ymfpci_playback_bank *bank; dma_addr_t bank_addr; - void (*interrupt)(ymfpci_t *chip, ymfpci_voice_t *voice); - ymfpci_pcm_t *ypcm; + void (*interrupt)(struct snd_ymfpci *chip, struct snd_ymfpci_voice *voice); + struct snd_ymfpci_pcm *ypcm; }; -typedef enum { +enum snd_ymfpci_pcm_type { PLAYBACK_VOICE, CAPTURE_REC, CAPTURE_AC97, @@ -263,13 +262,13 @@ typedef enum { EFFECT_EFF1, EFFECT_EFF2, EFFECT_EFF3 -} snd_ymfpci_pcm_type_t; +}; -struct _snd_ymfpci_pcm { - ymfpci_t *chip; - snd_ymfpci_pcm_type_t type; - snd_pcm_substream_t *substream; - ymfpci_voice_t *voices[2]; /* playback only */ +struct snd_ymfpci_pcm { + struct snd_ymfpci *chip; + enum snd_ymfpci_pcm_type type; + struct snd_pcm_substream *substream; + struct snd_ymfpci_voice *voices[2]; /* playback only */ unsigned int running: 1; unsigned int output_front: 1; unsigned int output_rear: 1; @@ -282,7 +281,7 @@ struct _snd_ymfpci_pcm { u32 shift; }; -struct _snd_ymfpci { +struct snd_ymfpci { int irq; unsigned int device_id; /* PCI device ID */ @@ -316,47 +315,47 @@ struct _snd_ymfpci { struct snd_dma_buffer ac3_tmp_base; u32 *ctrl_playback; - snd_ymfpci_playback_bank_t *bank_playback[YDSXG_PLAYBACK_VOICES][2]; - snd_ymfpci_capture_bank_t *bank_capture[YDSXG_CAPTURE_VOICES][2]; - snd_ymfpci_effect_bank_t *bank_effect[YDSXG_EFFECT_VOICES][2]; + struct snd_ymfpci_playback_bank *bank_playback[YDSXG_PLAYBACK_VOICES][2]; + struct snd_ymfpci_capture_bank *bank_capture[YDSXG_CAPTURE_VOICES][2]; + struct snd_ymfpci_effect_bank *bank_effect[YDSXG_EFFECT_VOICES][2]; int start_count; u32 active_bank; - ymfpci_voice_t voices[64]; + struct snd_ymfpci_voice voices[64]; - ac97_bus_t *ac97_bus; - ac97_t *ac97; - snd_rawmidi_t *rawmidi; - snd_timer_t *timer; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97; + struct snd_rawmidi *rawmidi; + struct snd_timer *timer; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; - snd_pcm_t *pcm2; - snd_pcm_t *pcm_spdif; - snd_pcm_t *pcm_4ch; - snd_pcm_substream_t *capture_substream[YDSXG_CAPTURE_VOICES]; - snd_pcm_substream_t *effect_substream[YDSXG_EFFECT_VOICES]; - snd_kcontrol_t *ctl_vol_recsrc; - snd_kcontrol_t *ctl_vol_adcrec; - snd_kcontrol_t *ctl_vol_spdifrec; + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_pcm *pcm2; + struct snd_pcm *pcm_spdif; + struct snd_pcm *pcm_4ch; + struct snd_pcm_substream *capture_substream[YDSXG_CAPTURE_VOICES]; + struct snd_pcm_substream *effect_substream[YDSXG_EFFECT_VOICES]; + struct snd_kcontrol *ctl_vol_recsrc; + struct snd_kcontrol *ctl_vol_adcrec; + struct snd_kcontrol *ctl_vol_spdifrec; unsigned short spdif_bits, spdif_pcm_bits; - snd_kcontrol_t *spdif_pcm_ctl; + struct snd_kcontrol *spdif_pcm_ctl; int mode_dup4ch; int rear_opened; int spdif_opened; struct { u16 left; u16 right; - snd_kcontrol_t *ctl; + struct snd_kcontrol *ctl; } pcm_mixer[32]; spinlock_t reg_lock; spinlock_t voice_lock; wait_queue_head_t interrupt_sleep; atomic_t interrupt_sleep_count; - snd_info_entry_t *proc_entry; + struct snd_info_entry *proc_entry; #ifdef CONFIG_PM u32 *saved_regs; @@ -364,17 +363,17 @@ struct _snd_ymfpci { #endif }; -int snd_ymfpci_create(snd_card_t * card, +int snd_ymfpci_create(struct snd_card *card, struct pci_dev *pci, unsigned short old_legacy_ctrl, - ymfpci_t ** rcodec); -void snd_ymfpci_free_gameport(ymfpci_t *chip); - -int snd_ymfpci_pcm(ymfpci_t *chip, int device, snd_pcm_t **rpcm); -int snd_ymfpci_pcm2(ymfpci_t *chip, int device, snd_pcm_t **rpcm); -int snd_ymfpci_pcm_spdif(ymfpci_t *chip, int device, snd_pcm_t **rpcm); -int snd_ymfpci_pcm_4ch(ymfpci_t *chip, int device, snd_pcm_t **rpcm); -int snd_ymfpci_mixer(ymfpci_t *chip, int rear_switch); -int snd_ymfpci_timer(ymfpci_t *chip, int device); + struct snd_ymfpci ** rcodec); +void snd_ymfpci_free_gameport(struct snd_ymfpci *chip); + +int snd_ymfpci_pcm(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); +int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); +int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); +int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); +int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch); +int snd_ymfpci_timer(struct snd_ymfpci *chip, int device); #endif /* __SOUND_YMFPCI_H */ diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c index d013237205d..42499a94df4 100644 --- a/sound/pci/ymfpci/ymfpci.c +++ b/sound/pci/ymfpci/ymfpci.c @@ -80,7 +80,7 @@ static struct pci_device_id snd_ymfpci_ids[] = { MODULE_DEVICE_TABLE(pci, snd_ymfpci_ids); #ifdef SUPPORT_JOYSTICK -static int __devinit snd_ymfpci_create_gameport(ymfpci_t *chip, int dev, +static int __devinit snd_ymfpci_create_gameport(struct snd_ymfpci *chip, int dev, int legacy_ctrl, int legacy_ctrl2) { struct gameport *gp; @@ -152,7 +152,7 @@ static int __devinit snd_ymfpci_create_gameport(ymfpci_t *chip, int dev, return 0; } -void snd_ymfpci_free_gameport(ymfpci_t *chip) +void snd_ymfpci_free_gameport(struct snd_ymfpci *chip) { if (chip->gameport) { struct resource *r = gameport_get_port_data(chip->gameport); @@ -164,19 +164,19 @@ void snd_ymfpci_free_gameport(ymfpci_t *chip) } } #else -static inline int snd_ymfpci_create_gameport(ymfpci_t *chip, int dev, int l, int l2) { return -ENOSYS; } -void snd_ymfpci_free_gameport(ymfpci_t *chip) { } +static inline int snd_ymfpci_create_gameport(struct snd_ymfpci *chip, int dev, int l, int l2) { return -ENOSYS; } +void snd_ymfpci_free_gameport(struct snd_ymfpci *chip) { } #endif /* SUPPORT_JOYSTICK */ static int __devinit snd_card_ymfpci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; + struct snd_card *card; struct resource *fm_res = NULL; struct resource *mpu_res = NULL; - ymfpci_t *chip; - opl3_t *opl3; + struct snd_ymfpci *chip; + struct snd_opl3 *opl3; char *str; int err; u16 legacy_ctrl, legacy_ctrl2, old_legacy_ctrl; diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index 8229703c80c..62c9f25e8e7 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -50,39 +50,39 @@ * common I/O routines */ -static void snd_ymfpci_irq_wait(ymfpci_t *chip); +static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip); -static inline u8 snd_ymfpci_readb(ymfpci_t *chip, u32 offset) +static inline u8 snd_ymfpci_readb(struct snd_ymfpci *chip, u32 offset) { return readb(chip->reg_area_virt + offset); } -static inline void snd_ymfpci_writeb(ymfpci_t *chip, u32 offset, u8 val) +static inline void snd_ymfpci_writeb(struct snd_ymfpci *chip, u32 offset, u8 val) { writeb(val, chip->reg_area_virt + offset); } -static inline u16 snd_ymfpci_readw(ymfpci_t *chip, u32 offset) +static inline u16 snd_ymfpci_readw(struct snd_ymfpci *chip, u32 offset) { return readw(chip->reg_area_virt + offset); } -static inline void snd_ymfpci_writew(ymfpci_t *chip, u32 offset, u16 val) +static inline void snd_ymfpci_writew(struct snd_ymfpci *chip, u32 offset, u16 val) { writew(val, chip->reg_area_virt + offset); } -static inline u32 snd_ymfpci_readl(ymfpci_t *chip, u32 offset) +static inline u32 snd_ymfpci_readl(struct snd_ymfpci *chip, u32 offset) { return readl(chip->reg_area_virt + offset); } -static inline void snd_ymfpci_writel(ymfpci_t *chip, u32 offset, u32 val) +static inline void snd_ymfpci_writel(struct snd_ymfpci *chip, u32 offset, u32 val) { writel(val, chip->reg_area_virt + offset); } -static int snd_ymfpci_codec_ready(ymfpci_t *chip, int secondary) +static int snd_ymfpci_codec_ready(struct snd_ymfpci *chip, int secondary) { unsigned long end_time; u32 reg = secondary ? YDSXGR_SECSTATUSADR : YDSXGR_PRISTATUSADR; @@ -98,9 +98,9 @@ static int snd_ymfpci_codec_ready(ymfpci_t *chip, int secondary) return -EBUSY; } -static void snd_ymfpci_codec_write(ac97_t *ac97, u16 reg, u16 val) +static void snd_ymfpci_codec_write(struct snd_ac97 *ac97, u16 reg, u16 val) { - ymfpci_t *chip = ac97->private_data; + struct snd_ymfpci *chip = ac97->private_data; u32 cmd; snd_ymfpci_codec_ready(chip, 0); @@ -108,9 +108,9 @@ static void snd_ymfpci_codec_write(ac97_t *ac97, u16 reg, u16 val) snd_ymfpci_writel(chip, YDSXGR_AC97CMDDATA, cmd); } -static u16 snd_ymfpci_codec_read(ac97_t *ac97, u16 reg) +static u16 snd_ymfpci_codec_read(struct snd_ac97 *ac97, u16 reg) { - ymfpci_t *chip = ac97->private_data; + struct snd_ymfpci *chip = ac97->private_data; if (snd_ymfpci_codec_ready(chip, 0)) return ~0; @@ -182,7 +182,7 @@ static u32 snd_ymfpci_calc_lpfQ(u32 rate) * Hardware start management */ -static void snd_ymfpci_hw_start(ymfpci_t *chip) +static void snd_ymfpci_hw_start(struct snd_ymfpci *chip) { unsigned long flags; @@ -196,7 +196,7 @@ static void snd_ymfpci_hw_start(ymfpci_t *chip) spin_unlock_irqrestore(&chip->reg_lock, flags); } -static void snd_ymfpci_hw_stop(ymfpci_t *chip) +static void snd_ymfpci_hw_stop(struct snd_ymfpci *chip) { unsigned long flags; long timeout = 1000; @@ -222,9 +222,11 @@ static void snd_ymfpci_hw_stop(ymfpci_t *chip) * Playback voice management */ -static int voice_alloc(ymfpci_t *chip, ymfpci_voice_type_t type, int pair, ymfpci_voice_t **rvoice) +static int voice_alloc(struct snd_ymfpci *chip, + enum snd_ymfpci_voice_type type, int pair, + struct snd_ymfpci_voice **rvoice) { - ymfpci_voice_t *voice, *voice2; + struct snd_ymfpci_voice *voice, *voice2; int idx; *rvoice = NULL; @@ -258,7 +260,9 @@ static int voice_alloc(ymfpci_t *chip, ymfpci_voice_type_t type, int pair, ymfpc return -ENOMEM; } -static int snd_ymfpci_voice_alloc(ymfpci_t *chip, ymfpci_voice_type_t type, int pair, ymfpci_voice_t **rvoice) +static int snd_ymfpci_voice_alloc(struct snd_ymfpci *chip, + enum snd_ymfpci_voice_type type, int pair, + struct snd_ymfpci_voice **rvoice) { unsigned long flags; int result; @@ -278,7 +282,7 @@ static int snd_ymfpci_voice_alloc(ymfpci_t *chip, ymfpci_voice_type_t type, int return result; } -static int snd_ymfpci_voice_free(ymfpci_t *chip, ymfpci_voice_t *pvoice) +static int snd_ymfpci_voice_free(struct snd_ymfpci *chip, struct snd_ymfpci_voice *pvoice) { unsigned long flags; @@ -296,9 +300,9 @@ static int snd_ymfpci_voice_free(ymfpci_t *chip, ymfpci_voice_t *pvoice) * PCM part */ -static void snd_ymfpci_pcm_interrupt(ymfpci_t *chip, ymfpci_voice_t *voice) +static void snd_ymfpci_pcm_interrupt(struct snd_ymfpci *chip, struct snd_ymfpci_voice *voice) { - ymfpci_pcm_t *ypcm; + struct snd_ymfpci_pcm *ypcm; u32 pos, delta; if ((ypcm = voice->ypcm) == NULL) @@ -325,7 +329,7 @@ static void snd_ymfpci_pcm_interrupt(ymfpci_t *chip, ymfpci_voice_t *voice) if (unlikely(ypcm->update_pcm_vol)) { unsigned int subs = ypcm->substream->number; unsigned int next_bank = 1 - chip->active_bank; - snd_ymfpci_playback_bank_t *bank; + struct snd_ymfpci_playback_bank *bank; u32 volume; bank = &voice->bank[next_bank]; @@ -345,11 +349,11 @@ static void snd_ymfpci_pcm_interrupt(ymfpci_t *chip, ymfpci_voice_t *voice) spin_unlock(&chip->reg_lock); } -static void snd_ymfpci_pcm_capture_interrupt(snd_pcm_substream_t *substream) +static void snd_ymfpci_pcm_capture_interrupt(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm = runtime->private_data; - ymfpci_t *chip = ypcm->chip; + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm = runtime->private_data; + struct snd_ymfpci *chip = ypcm->chip; u32 pos, delta; spin_lock(&chip->reg_lock); @@ -372,11 +376,11 @@ static void snd_ymfpci_pcm_capture_interrupt(snd_pcm_substream_t *substream) spin_unlock(&chip->reg_lock); } -static int snd_ymfpci_playback_trigger(snd_pcm_substream_t * substream, +static int snd_ymfpci_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - ymfpci_pcm_t *ypcm = substream->runtime->private_data; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data; int result = 0; spin_lock(&chip->reg_lock); @@ -409,11 +413,11 @@ static int snd_ymfpci_playback_trigger(snd_pcm_substream_t * substream, spin_unlock(&chip->reg_lock); return result; } -static int snd_ymfpci_capture_trigger(snd_pcm_substream_t * substream, +static int snd_ymfpci_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - ymfpci_pcm_t *ypcm = substream->runtime->private_data; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data; int result = 0; u32 tmp; @@ -441,7 +445,7 @@ static int snd_ymfpci_capture_trigger(snd_pcm_substream_t * substream, return result; } -static int snd_ymfpci_pcm_voice_alloc(ymfpci_pcm_t *ypcm, int voices) +static int snd_ymfpci_pcm_voice_alloc(struct snd_ymfpci_pcm *ypcm, int voices) { int err; @@ -471,16 +475,16 @@ static int snd_ymfpci_pcm_voice_alloc(ymfpci_pcm_t *ypcm, int voices) return 0; } -static void snd_ymfpci_pcm_init_voice(ymfpci_pcm_t *ypcm, unsigned int voiceidx, - snd_pcm_runtime_t *runtime, +static void snd_ymfpci_pcm_init_voice(struct snd_ymfpci_pcm *ypcm, unsigned int voiceidx, + struct snd_pcm_runtime *runtime, int has_pcm_volume) { - ymfpci_voice_t *voice = ypcm->voices[voiceidx]; + struct snd_ymfpci_voice *voice = ypcm->voices[voiceidx]; u32 format; u32 delta = snd_ymfpci_calc_delta(runtime->rate); u32 lpfQ = snd_ymfpci_calc_lpfQ(runtime->rate); u32 lpfK = snd_ymfpci_calc_lpfK(runtime->rate); - snd_ymfpci_playback_bank_t *bank; + struct snd_ymfpci_playback_bank *bank; unsigned int nbank; u32 vol_left, vol_right; u8 use_left, use_right; @@ -544,7 +548,7 @@ static void snd_ymfpci_pcm_init_voice(ymfpci_pcm_t *ypcm, unsigned int voiceidx, } } -static int __devinit snd_ymfpci_ac3_init(ymfpci_t *chip) +static int __devinit snd_ymfpci_ac3_init(struct snd_ymfpci *chip) { if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(chip->pci), 4096, &chip->ac3_tmp_base) < 0) @@ -566,7 +570,7 @@ static int __devinit snd_ymfpci_ac3_init(ymfpci_t *chip) return 0; } -static int snd_ymfpci_ac3_done(ymfpci_t *chip) +static int snd_ymfpci_ac3_done(struct snd_ymfpci *chip) { spin_lock_irq(&chip->reg_lock); snd_ymfpci_writel(chip, YDSXGR_MAPOFEFFECT, @@ -580,11 +584,11 @@ static int snd_ymfpci_ac3_done(ymfpci_t *chip) return 0; } -static int snd_ymfpci_playback_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ymfpci_playback_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm = runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm = runtime->private_data; int err; if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0) @@ -594,11 +598,11 @@ static int snd_ymfpci_playback_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_ymfpci_playback_hw_free(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_hw_free(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm; if (runtime->private_data == NULL) return 0; @@ -618,11 +622,11 @@ static int snd_ymfpci_playback_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_ymfpci_playback_prepare(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_prepare(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm = runtime->private_data; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm = runtime->private_data; unsigned int nvoice; ypcm->period_size = runtime->period_size; @@ -635,27 +639,27 @@ static int snd_ymfpci_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_ymfpci_capture_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ymfpci_capture_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_ymfpci_capture_hw_free(snd_pcm_substream_t * substream) +static int snd_ymfpci_capture_hw_free(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); /* wait, until the PCI operations are not finished */ snd_ymfpci_irq_wait(chip); return snd_pcm_lib_free_pages(substream); } -static int snd_ymfpci_capture_prepare(snd_pcm_substream_t * substream) +static int snd_ymfpci_capture_prepare(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm = runtime->private_data; - snd_ymfpci_capture_bank_t * bank; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm = runtime->private_data; + struct snd_ymfpci_capture_bank * bank; int nbank; u32 rate, format; @@ -694,30 +698,30 @@ static int snd_ymfpci_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_ymfpci_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ymfpci_playback_pointer(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm = runtime->private_data; - ymfpci_voice_t *voice = ypcm->voices[0]; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm = runtime->private_data; + struct snd_ymfpci_voice *voice = ypcm->voices[0]; if (!(ypcm->running && voice)) return 0; return le32_to_cpu(voice->bank[chip->active_bank].start); } -static snd_pcm_uframes_t snd_ymfpci_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ymfpci_capture_pointer(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm = runtime->private_data; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm = runtime->private_data; if (!ypcm->running) return 0; return le32_to_cpu(chip->bank_capture[ypcm->capture_bank_number][chip->active_bank]->start) >> ypcm->shift; } -static void snd_ymfpci_irq_wait(ymfpci_t *chip) +static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip) { wait_queue_t wait; int loops = 4; @@ -735,9 +739,9 @@ static void snd_ymfpci_irq_wait(ymfpci_t *chip) static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - ymfpci_t *chip = dev_id; + struct snd_ymfpci *chip = dev_id; u32 status, nvoice, mode; - ymfpci_voice_t *voice; + struct snd_ymfpci_voice *voice; status = snd_ymfpci_readl(chip, YDSXGR_STATUS); if (status & 0x80000000) { @@ -783,7 +787,7 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *r return IRQ_HANDLED; } -static snd_pcm_hardware_t snd_ymfpci_playback = +static struct snd_pcm_hardware snd_ymfpci_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -805,7 +809,7 @@ static snd_pcm_hardware_t snd_ymfpci_playback = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_ymfpci_capture = +static struct snd_pcm_hardware snd_ymfpci_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -827,16 +831,16 @@ static snd_pcm_hardware_t snd_ymfpci_capture = .fifo_size = 0, }; -static void snd_ymfpci_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_ymfpci_pcm_free_substream(struct snd_pcm_runtime *runtime) { kfree(runtime->private_data); } -static int snd_ymfpci_playback_open_1(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_open_1(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm; ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL); if (ypcm == NULL) @@ -853,7 +857,7 @@ static int snd_ymfpci_playback_open_1(snd_pcm_substream_t * substream) } /* call with spinlock held */ -static void ymfpci_open_extension(ymfpci_t *chip) +static void ymfpci_open_extension(struct snd_ymfpci *chip) { if (! chip->rear_opened) { if (! chip->spdif_opened) /* set AC3 */ @@ -866,7 +870,7 @@ static void ymfpci_open_extension(ymfpci_t *chip) } /* call with spinlock held */ -static void ymfpci_close_extension(ymfpci_t *chip) +static void ymfpci_close_extension(struct snd_ymfpci *chip) { if (! chip->rear_opened) { if (! chip->spdif_opened) @@ -877,12 +881,12 @@ static void ymfpci_close_extension(ymfpci_t *chip) } } -static int snd_ymfpci_playback_open(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_open(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm; - snd_kcontrol_t *kctl; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm; + struct snd_kcontrol *kctl; int err; if ((err = snd_ymfpci_playback_open_1(substream)) < 0) @@ -903,11 +907,11 @@ static int snd_ymfpci_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ymfpci_playback_spdif_open(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_spdif_open(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm; int err; if ((err = snd_ymfpci_playback_open_1(substream)) < 0) @@ -930,11 +934,11 @@ static int snd_ymfpci_playback_spdif_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ymfpci_playback_4ch_open(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_4ch_open(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm; int err; if ((err = snd_ymfpci_playback_open_1(substream)) < 0) @@ -949,12 +953,12 @@ static int snd_ymfpci_playback_4ch_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ymfpci_capture_open(snd_pcm_substream_t * substream, +static int snd_ymfpci_capture_open(struct snd_pcm_substream *substream, u32 capture_bank_number) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm; ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL); if (ypcm == NULL) @@ -973,26 +977,26 @@ static int snd_ymfpci_capture_open(snd_pcm_substream_t * substream, return 0; } -static int snd_ymfpci_capture_rec_open(snd_pcm_substream_t * substream) +static int snd_ymfpci_capture_rec_open(struct snd_pcm_substream *substream) { return snd_ymfpci_capture_open(substream, 0); } -static int snd_ymfpci_capture_ac97_open(snd_pcm_substream_t * substream) +static int snd_ymfpci_capture_ac97_open(struct snd_pcm_substream *substream) { return snd_ymfpci_capture_open(substream, 1); } -static int snd_ymfpci_playback_close_1(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_close_1(struct snd_pcm_substream *substream) { return 0; } -static int snd_ymfpci_playback_close(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_close(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - ymfpci_pcm_t *ypcm = substream->runtime->private_data; - snd_kcontrol_t *kctl; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data; + struct snd_kcontrol *kctl; spin_lock_irq(&chip->reg_lock); if (ypcm->output_rear && chip->rear_opened > 0) { @@ -1006,9 +1010,9 @@ static int snd_ymfpci_playback_close(snd_pcm_substream_t * substream) return snd_ymfpci_playback_close_1(substream); } -static int snd_ymfpci_playback_spdif_close(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_spdif_close(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); spin_lock_irq(&chip->reg_lock); chip->spdif_opened = 0; @@ -1023,9 +1027,9 @@ static int snd_ymfpci_playback_spdif_close(snd_pcm_substream_t * substream) return snd_ymfpci_playback_close_1(substream); } -static int snd_ymfpci_playback_4ch_close(snd_pcm_substream_t * substream) +static int snd_ymfpci_playback_4ch_close(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); spin_lock_irq(&chip->reg_lock); if (chip->rear_opened > 0) { @@ -1036,11 +1040,11 @@ static int snd_ymfpci_playback_4ch_close(snd_pcm_substream_t * substream) return snd_ymfpci_playback_close_1(substream); } -static int snd_ymfpci_capture_close(snd_pcm_substream_t * substream) +static int snd_ymfpci_capture_close(struct snd_pcm_substream *substream) { - ymfpci_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ymfpci_pcm_t *ypcm = runtime->private_data; + struct snd_ymfpci *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ymfpci_pcm *ypcm = runtime->private_data; if (ypcm != NULL) { chip->capture_substream[ypcm->capture_bank_number] = NULL; @@ -1049,7 +1053,7 @@ static int snd_ymfpci_capture_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_ymfpci_playback_ops = { +static struct snd_pcm_ops snd_ymfpci_playback_ops = { .open = snd_ymfpci_playback_open, .close = snd_ymfpci_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1060,7 +1064,7 @@ static snd_pcm_ops_t snd_ymfpci_playback_ops = { .pointer = snd_ymfpci_playback_pointer, }; -static snd_pcm_ops_t snd_ymfpci_capture_rec_ops = { +static struct snd_pcm_ops snd_ymfpci_capture_rec_ops = { .open = snd_ymfpci_capture_rec_open, .close = snd_ymfpci_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1071,9 +1075,9 @@ static snd_pcm_ops_t snd_ymfpci_capture_rec_ops = { .pointer = snd_ymfpci_capture_pointer, }; -int __devinit snd_ymfpci_pcm(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_ymfpci_pcm(struct snd_ymfpci *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1098,7 +1102,7 @@ int __devinit snd_ymfpci_pcm(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) return 0; } -static snd_pcm_ops_t snd_ymfpci_capture_ac97_ops = { +static struct snd_pcm_ops snd_ymfpci_capture_ac97_ops = { .open = snd_ymfpci_capture_ac97_open, .close = snd_ymfpci_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1109,9 +1113,9 @@ static snd_pcm_ops_t snd_ymfpci_capture_ac97_ops = { .pointer = snd_ymfpci_capture_pointer, }; -int __devinit snd_ymfpci_pcm2(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1136,7 +1140,7 @@ int __devinit snd_ymfpci_pcm2(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) return 0; } -static snd_pcm_ops_t snd_ymfpci_playback_spdif_ops = { +static struct snd_pcm_ops snd_ymfpci_playback_spdif_ops = { .open = snd_ymfpci_playback_spdif_open, .close = snd_ymfpci_playback_spdif_close, .ioctl = snd_pcm_lib_ioctl, @@ -1147,9 +1151,9 @@ static snd_pcm_ops_t snd_ymfpci_playback_spdif_ops = { .pointer = snd_ymfpci_playback_pointer, }; -int __devinit snd_ymfpci_pcm_spdif(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1173,7 +1177,7 @@ int __devinit snd_ymfpci_pcm_spdif(ymfpci_t *chip, int device, snd_pcm_t ** rpcm return 0; } -static snd_pcm_ops_t snd_ymfpci_playback_4ch_ops = { +static struct snd_pcm_ops snd_ymfpci_playback_4ch_ops = { .open = snd_ymfpci_playback_4ch_open, .close = snd_ymfpci_playback_4ch_close, .ioctl = snd_pcm_lib_ioctl, @@ -1184,9 +1188,9 @@ static snd_pcm_ops_t snd_ymfpci_playback_4ch_ops = { .pointer = snd_ymfpci_playback_pointer, }; -int __devinit snd_ymfpci_pcm_4ch(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) +int __devinit snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1210,17 +1214,17 @@ int __devinit snd_ymfpci_pcm_4ch(ymfpci_t *chip, int device, snd_pcm_t ** rpcm) return 0; } -static int snd_ymfpci_spdif_default_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ymfpci_spdif_default_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_ymfpci_spdif_default_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_spdif_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); spin_lock_irq(&chip->reg_lock); ucontrol->value.iec958.status[0] = (chip->spdif_bits >> 0) & 0xff; @@ -1229,10 +1233,10 @@ static int snd_ymfpci_spdif_default_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ymfpci_spdif_default_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_spdif_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -1247,7 +1251,7 @@ static int snd_ymfpci_spdif_default_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_ymfpci_spdif_default __devinitdata = +static struct snd_kcontrol_new snd_ymfpci_spdif_default __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -1256,17 +1260,17 @@ static snd_kcontrol_new_t snd_ymfpci_spdif_default __devinitdata = .put = snd_ymfpci_spdif_default_put }; -static int snd_ymfpci_spdif_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ymfpci_spdif_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_ymfpci_spdif_mask_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_spdif_mask_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); spin_lock_irq(&chip->reg_lock); ucontrol->value.iec958.status[0] = 0x3e; @@ -1275,7 +1279,7 @@ static int snd_ymfpci_spdif_mask_get(snd_kcontrol_t * kcontrol, return 0; } -static snd_kcontrol_new_t snd_ymfpci_spdif_mask __devinitdata = +static struct snd_kcontrol_new snd_ymfpci_spdif_mask __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1284,17 +1288,17 @@ static snd_kcontrol_new_t snd_ymfpci_spdif_mask __devinitdata = .get = snd_ymfpci_spdif_mask_get, }; -static int snd_ymfpci_spdif_stream_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ymfpci_spdif_stream_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_ymfpci_spdif_stream_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_spdif_stream_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); spin_lock_irq(&chip->reg_lock); ucontrol->value.iec958.status[0] = (chip->spdif_pcm_bits >> 0) & 0xff; @@ -1303,10 +1307,10 @@ static int snd_ymfpci_spdif_stream_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ymfpci_spdif_stream_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_spdif_stream_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -1321,7 +1325,7 @@ static int snd_ymfpci_spdif_stream_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_ymfpci_spdif_stream __devinitdata = +static struct snd_kcontrol_new snd_ymfpci_spdif_stream __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1331,7 +1335,7 @@ static snd_kcontrol_new_t snd_ymfpci_spdif_stream __devinitdata = .put = snd_ymfpci_spdif_stream_put }; -static int snd_ymfpci_drec_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *info) +static int snd_ymfpci_drec_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *info) { static char *texts[3] = {"AC'97", "IEC958", "ZV Port"}; @@ -1344,9 +1348,9 @@ static int snd_ymfpci_drec_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_in return 0; } -static int snd_ymfpci_drec_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_ymfpci_drec_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *value) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); u16 reg; spin_lock_irq(&chip->reg_lock); @@ -1359,9 +1363,9 @@ static int snd_ymfpci_drec_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return 0; } -static int snd_ymfpci_drec_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_ymfpci_drec_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *value) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); u16 reg, old_reg; spin_lock_irq(&chip->reg_lock); @@ -1375,7 +1379,7 @@ static int snd_ymfpci_drec_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return reg != old_reg; } -static snd_kcontrol_new_t snd_ymfpci_drec_source __devinitdata = { +static struct snd_kcontrol_new snd_ymfpci_drec_source __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Direct Recording Source", @@ -1394,8 +1398,8 @@ static snd_kcontrol_new_t snd_ymfpci_drec_source __devinitdata = { .get = snd_ymfpci_get_single, .put = snd_ymfpci_put_single, \ .private_value = ((reg) | ((shift) << 16)) } -static int snd_ymfpci_info_single(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_ymfpci_info_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { int reg = kcontrol->private_value & 0xffff; @@ -1411,10 +1415,10 @@ static int snd_ymfpci_info_single(snd_kcontrol_t *kcontrol, return 0; } -static int snd_ymfpci_get_single(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_ymfpci_get_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xffff; unsigned int shift = (kcontrol->private_value >> 16) & 0xff; unsigned int mask = 1; @@ -1429,10 +1433,10 @@ static int snd_ymfpci_get_single(snd_kcontrol_t *kcontrol, return 0; } -static int snd_ymfpci_put_single(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_ymfpci_put_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xffff; unsigned int shift = (kcontrol->private_value >> 16) & 0xff; unsigned int mask = 1; @@ -1461,7 +1465,7 @@ static int snd_ymfpci_put_single(snd_kcontrol_t *kcontrol, .get = snd_ymfpci_get_double, .put = snd_ymfpci_put_double, \ .private_value = reg } -static int snd_ymfpci_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ymfpci_info_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { unsigned int reg = kcontrol->private_value; @@ -1474,9 +1478,9 @@ static int snd_ymfpci_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_ymfpci_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_get_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); unsigned int reg = kcontrol->private_value; unsigned int shift_left = 0, shift_right = 16, mask = 16383; unsigned int val; @@ -1491,9 +1495,9 @@ static int snd_ymfpci_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_ymfpci_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_put_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); unsigned int reg = kcontrol->private_value; unsigned int shift_left = 0, shift_right = 16, mask = 16383; int change; @@ -1517,7 +1521,7 @@ static int snd_ymfpci_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t /* * 4ch duplication */ -static int snd_ymfpci_info_dup4ch(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ymfpci_info_dup4ch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1526,16 +1530,16 @@ static int snd_ymfpci_info_dup4ch(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_ymfpci_get_dup4ch(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_get_dup4ch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = chip->mode_dup4ch; return 0; } -static int snd_ymfpci_put_dup4ch(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ymfpci_put_dup4ch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); int change; change = (ucontrol->value.integer.value[0] != chip->mode_dup4ch); if (change) @@ -1544,7 +1548,7 @@ static int snd_ymfpci_put_dup4ch(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t } -static snd_kcontrol_new_t snd_ymfpci_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_ymfpci_controls[] __devinitdata = { YMFPCI_DOUBLE("Wave Playback Volume", 0, YDSXGR_NATIVEDACOUTVOL), YMFPCI_DOUBLE("Wave Capture Volume", 0, YDSXGR_NATIVEDACLOOPVOL), YMFPCI_DOUBLE("Digital Capture Volume", 0, YDSXGR_NATIVEDACINVOL), @@ -1575,7 +1579,7 @@ YMFPCI_SINGLE(SNDRV_CTL_NAME_IEC958("Loop",NONE,NONE), 0, YDSXGR_SPDIFINCTRL, 4) * GPIO */ -static int snd_ymfpci_get_gpio_out(ymfpci_t *chip, int pin) +static int snd_ymfpci_get_gpio_out(struct snd_ymfpci *chip, int pin) { u16 reg, mode; unsigned long flags; @@ -1595,7 +1599,7 @@ static int snd_ymfpci_get_gpio_out(ymfpci_t *chip, int pin) return (mode >> pin) & 1; } -static int snd_ymfpci_set_gpio_out(ymfpci_t *chip, int pin, int enable) +static int snd_ymfpci_set_gpio_out(struct snd_ymfpci *chip, int pin, int enable) { u16 reg; unsigned long flags; @@ -1612,7 +1616,7 @@ static int snd_ymfpci_set_gpio_out(ymfpci_t *chip, int pin, int enable) return 0; } -static int snd_ymfpci_gpio_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ymfpci_gpio_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1621,17 +1625,17 @@ static int snd_ymfpci_gpio_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_ymfpci_gpio_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ymfpci_gpio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); int pin = (int)kcontrol->private_value; ucontrol->value.integer.value[0] = snd_ymfpci_get_gpio_out(chip, pin); return 0; } -static int snd_ymfpci_gpio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ymfpci_gpio_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); int pin = (int)kcontrol->private_value; if (snd_ymfpci_get_gpio_out(chip, pin) != ucontrol->value.integer.value[0]) { @@ -1642,7 +1646,7 @@ static int snd_ymfpci_gpio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static snd_kcontrol_new_t snd_ymfpci_rear_shared __devinitdata = { +static struct snd_kcontrol_new snd_ymfpci_rear_shared __devinitdata = { .name = "Shared Rear/Line-In Switch", .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .info = snd_ymfpci_gpio_sw_info, @@ -1655,8 +1659,8 @@ static snd_kcontrol_new_t snd_ymfpci_rear_shared __devinitdata = { * PCM voice volume */ -static int snd_ymfpci_pcm_vol_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_ymfpci_pcm_vol_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -1665,10 +1669,10 @@ static int snd_ymfpci_pcm_vol_info(snd_kcontrol_t *kcontrol, return 0; } -static int snd_ymfpci_pcm_vol_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_ymfpci_pcm_vol_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); unsigned int subs = kcontrol->id.subdevice; ucontrol->value.integer.value[0] = chip->pcm_mixer[subs].left; @@ -1676,12 +1680,12 @@ static int snd_ymfpci_pcm_vol_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_ymfpci_pcm_vol_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_ymfpci_pcm_vol_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ymfpci_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_ymfpci *chip = snd_kcontrol_chip(kcontrol); unsigned int subs = kcontrol->id.subdevice; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; unsigned long flags; if (ucontrol->value.integer.value[0] != chip->pcm_mixer[subs].left || @@ -1689,10 +1693,10 @@ static int snd_ymfpci_pcm_vol_put(snd_kcontrol_t *kcontrol, chip->pcm_mixer[subs].left = ucontrol->value.integer.value[0]; chip->pcm_mixer[subs].right = ucontrol->value.integer.value[1]; - substream = (snd_pcm_substream_t *)kcontrol->private_value; + substream = (struct snd_pcm_substream *)kcontrol->private_value; spin_lock_irqsave(&chip->voice_lock, flags); if (substream->runtime && substream->runtime->private_data) { - ymfpci_pcm_t *ypcm = substream->runtime->private_data; + struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data; ypcm->update_pcm_vol = 2; } spin_unlock_irqrestore(&chip->voice_lock, flags); @@ -1701,7 +1705,7 @@ static int snd_ymfpci_pcm_vol_put(snd_kcontrol_t *kcontrol, return 0; } -static snd_kcontrol_new_t snd_ymfpci_pcm_volume __devinitdata = { +static struct snd_kcontrol_new snd_ymfpci_pcm_volume __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = "PCM Playback Volume", .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | @@ -1716,26 +1720,26 @@ static snd_kcontrol_new_t snd_ymfpci_pcm_volume __devinitdata = { * Mixer routines */ -static void snd_ymfpci_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_ymfpci_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - ymfpci_t *chip = bus->private_data; + struct snd_ymfpci *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_ymfpci_mixer_free_ac97(ac97_t *ac97) +static void snd_ymfpci_mixer_free_ac97(struct snd_ac97 *ac97) { - ymfpci_t *chip = ac97->private_data; + struct snd_ymfpci *chip = ac97->private_data; chip->ac97 = NULL; } -int __devinit snd_ymfpci_mixer(ymfpci_t *chip, int rear_switch) +int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch) { - ac97_template_t ac97; - snd_kcontrol_t *kctl; - snd_pcm_substream_t *substream; + struct snd_ac97_template ac97; + struct snd_kcontrol *kctl; + struct snd_pcm_substream *substream; unsigned int idx; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_ymfpci_codec_write, .read = snd_ymfpci_codec_read, }; @@ -1811,9 +1815,9 @@ int __devinit snd_ymfpci_mixer(ymfpci_t *chip, int rear_switch) * timer */ -static int snd_ymfpci_timer_start(snd_timer_t *timer) +static int snd_ymfpci_timer_start(struct snd_timer *timer) { - ymfpci_t *chip; + struct snd_ymfpci *chip; unsigned long flags; unsigned int count; @@ -1826,9 +1830,9 @@ static int snd_ymfpci_timer_start(snd_timer_t *timer) return 0; } -static int snd_ymfpci_timer_stop(snd_timer_t *timer) +static int snd_ymfpci_timer_stop(struct snd_timer *timer) { - ymfpci_t *chip; + struct snd_ymfpci *chip; unsigned long flags; chip = snd_timer_chip(timer); @@ -1838,7 +1842,7 @@ static int snd_ymfpci_timer_stop(snd_timer_t *timer) return 0; } -static int snd_ymfpci_timer_precise_resolution(snd_timer_t *timer, +static int snd_ymfpci_timer_precise_resolution(struct snd_timer *timer, unsigned long *num, unsigned long *den) { *num = 1; @@ -1846,7 +1850,7 @@ static int snd_ymfpci_timer_precise_resolution(snd_timer_t *timer, return 0; } -static struct _snd_timer_hardware snd_ymfpci_timer_hw = { +static struct snd_timer_hardware snd_ymfpci_timer_hw = { .flags = SNDRV_TIMER_HW_AUTO, .resolution = 20833, /* 1/fs = 20.8333...us */ .ticks = 0x8000, @@ -1855,10 +1859,10 @@ static struct _snd_timer_hardware snd_ymfpci_timer_hw = { .precise_resolution = snd_ymfpci_timer_precise_resolution, }; -int __devinit snd_ymfpci_timer(ymfpci_t *chip, int device) +int __devinit snd_ymfpci_timer(struct snd_ymfpci *chip, int device) { - 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; @@ -1880,10 +1884,10 @@ int __devinit snd_ymfpci_timer(ymfpci_t *chip, int device) * proc interface */ -static void snd_ymfpci_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ymfpci_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ymfpci_t *chip = entry->private_data; + struct snd_ymfpci *chip = entry->private_data; int i; snd_iprintf(buffer, "YMFPCI\n\n"); @@ -1891,9 +1895,9 @@ static void snd_ymfpci_proc_read(snd_info_entry_t *entry, snd_iprintf(buffer, "%04x: %04x\n", i, snd_ymfpci_readl(chip, i)); } -static int __devinit snd_ymfpci_proc_init(snd_card_t * card, ymfpci_t *chip) +static int __devinit snd_ymfpci_proc_init(struct snd_card *card, struct snd_ymfpci *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(card, "ymfpci", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_ymfpci_proc_read); @@ -1922,12 +1926,12 @@ static void snd_ymfpci_aclink_reset(struct pci_dev * pci) #endif } -static void snd_ymfpci_enable_dsp(ymfpci_t *chip) +static void snd_ymfpci_enable_dsp(struct snd_ymfpci *chip) { snd_ymfpci_writel(chip, YDSXGR_CONFIG, 0x00000001); } -static void snd_ymfpci_disable_dsp(ymfpci_t *chip) +static void snd_ymfpci_disable_dsp(struct snd_ymfpci *chip) { u32 val; int timeout = 1000; @@ -1944,7 +1948,7 @@ static void snd_ymfpci_disable_dsp(ymfpci_t *chip) #include "ymfpci_image.h" -static void snd_ymfpci_download_image(ymfpci_t *chip) +static void snd_ymfpci_download_image(struct snd_ymfpci *chip) { int i; u16 ctrl; @@ -1984,7 +1988,7 @@ static void snd_ymfpci_download_image(ymfpci_t *chip) snd_ymfpci_enable_dsp(chip); } -static int __devinit snd_ymfpci_memalloc(ymfpci_t *chip) +static int __devinit snd_ymfpci_memalloc(struct snd_ymfpci *chip) { long size, playback_ctrl_size; int voice, bank, reg; @@ -2019,10 +2023,10 @@ static int __devinit snd_ymfpci_memalloc(ymfpci_t *chip) ptr_addr += (playback_ctrl_size + 0x00ff) & ~0x00ff; for (voice = 0; voice < YDSXG_PLAYBACK_VOICES; voice++) { chip->voices[voice].number = voice; - chip->voices[voice].bank = (snd_ymfpci_playback_bank_t *)ptr; + chip->voices[voice].bank = (struct snd_ymfpci_playback_bank *)ptr; chip->voices[voice].bank_addr = ptr_addr; for (bank = 0; bank < 2; bank++) { - chip->bank_playback[voice][bank] = (snd_ymfpci_playback_bank_t *)ptr; + chip->bank_playback[voice][bank] = (struct snd_ymfpci_playback_bank *)ptr; ptr += chip->bank_size_playback; ptr_addr += chip->bank_size_playback; } @@ -2033,7 +2037,7 @@ static int __devinit snd_ymfpci_memalloc(ymfpci_t *chip) chip->bank_base_capture_addr = ptr_addr; for (voice = 0; voice < YDSXG_CAPTURE_VOICES; voice++) for (bank = 0; bank < 2; bank++) { - chip->bank_capture[voice][bank] = (snd_ymfpci_capture_bank_t *)ptr; + chip->bank_capture[voice][bank] = (struct snd_ymfpci_capture_bank *)ptr; ptr += chip->bank_size_capture; ptr_addr += chip->bank_size_capture; } @@ -2043,7 +2047,7 @@ static int __devinit snd_ymfpci_memalloc(ymfpci_t *chip) chip->bank_base_effect_addr = ptr_addr; for (voice = 0; voice < YDSXG_EFFECT_VOICES; voice++) for (bank = 0; bank < 2; bank++) { - chip->bank_effect[voice][bank] = (snd_ymfpci_effect_bank_t *)ptr; + chip->bank_effect[voice][bank] = (struct snd_ymfpci_effect_bank *)ptr; ptr += chip->bank_size_effect; ptr_addr += chip->bank_size_effect; } @@ -2082,7 +2086,7 @@ static int __devinit snd_ymfpci_memalloc(ymfpci_t *chip) return 0; } -static int snd_ymfpci_free(ymfpci_t *chip) +static int snd_ymfpci_free(struct snd_ymfpci *chip) { u16 ctrl; @@ -2135,9 +2139,9 @@ static int snd_ymfpci_free(ymfpci_t *chip) return 0; } -static int snd_ymfpci_dev_free(snd_device_t *device) +static int snd_ymfpci_dev_free(struct snd_device *device) { - ymfpci_t *chip = device->device_data; + struct snd_ymfpci *chip = device->device_data; return snd_ymfpci_free(chip); } @@ -2171,9 +2175,9 @@ static int saved_regs_index[] = { }; #define YDSXGR_NUM_SAVED_REGS ARRAY_SIZE(saved_regs_index) -static int snd_ymfpci_suspend(snd_card_t *card, pm_message_t state) +static int snd_ymfpci_suspend(struct snd_card *card, pm_message_t state) { - ymfpci_t *chip = card->pm_private_data; + struct snd_ymfpci *chip = card->pm_private_data; unsigned int i; snd_pcm_suspend_all(chip->pcm); @@ -2190,9 +2194,9 @@ static int snd_ymfpci_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int snd_ymfpci_resume(snd_card_t *card) +static int snd_ymfpci_resume(struct snd_card *card) { - ymfpci_t *chip = card->pm_private_data; + struct snd_ymfpci *chip = card->pm_private_data; unsigned int i; pci_enable_device(chip->pci); @@ -2218,14 +2222,14 @@ static int snd_ymfpci_resume(snd_card_t *card) } #endif /* CONFIG_PM */ -int __devinit snd_ymfpci_create(snd_card_t * card, +int __devinit snd_ymfpci_create(struct snd_card *card, struct pci_dev * pci, unsigned short old_legacy_ctrl, - ymfpci_t ** rchip) + struct snd_ymfpci ** rchip) { - ymfpci_t *chip; + struct snd_ymfpci *chip; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_ymfpci_dev_free, }; -- cgit v1.2.3-70-g09d2 From 2fd16874aa6322e8b61879a78f3b485999506833 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:55:19 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI AU88x0 Modules: au88x0 driver Remove xxx_t typedefs from the PCI AU88x0 drivers. Signed-off-by: Takashi Iwai --- sound/pci/au88x0/au88x0.c | 8 +++---- sound/pci/au88x0/au88x0.h | 20 ++++++++-------- sound/pci/au88x0/au88x0_a3d.c | 32 ++++++++++++------------- sound/pci/au88x0/au88x0_core.c | 8 +++---- sound/pci/au88x0/au88x0_eq.c | 28 +++++++++++----------- sound/pci/au88x0/au88x0_mixer.c | 6 ++--- sound/pci/au88x0/au88x0_mpu401.c | 4 ++-- sound/pci/au88x0/au88x0_pcm.c | 50 ++++++++++++++++++++-------------------- 8 files changed, 78 insertions(+), 78 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c index d965609d8b3..7c547859ae0 100644 --- a/sound/pci/au88x0/au88x0.c +++ b/sound/pci/au88x0/au88x0.c @@ -118,7 +118,7 @@ static void __devinit snd_vortex_workaround(struct pci_dev *vortex, int fix) // component-destructor // (see "Management of Cards and Components") -static int snd_vortex_dev_free(snd_device_t * device) +static int snd_vortex_dev_free(struct snd_device *device) { vortex_t *vortex = device->device_data; @@ -137,11 +137,11 @@ static int snd_vortex_dev_free(snd_device_t * device) // chip-specific constructor // (see "Management of Cards and Components") static int __devinit -snd_vortex_create(snd_card_t * card, struct pci_dev *pci, vortex_t ** rchip) +snd_vortex_create(struct snd_card *card, struct pci_dev *pci, vortex_t ** rchip) { vortex_t *chip; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_vortex_dev_free, }; @@ -233,7 +233,7 @@ static int __devinit snd_vortex_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; + struct snd_card *card; vortex_t *chip; int err; diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h index b1197cfab3f..745f995a20d 100644 --- a/sound/pci/au88x0/au88x0.h +++ b/sound/pci/au88x0/au88x0.h @@ -129,21 +129,21 @@ typedef struct { /* Virtual page extender stuff */ int nr_periods; int period_bytes; - snd_pcm_sgbuf_t *sgbuf; /* DMA Scatter Gather struct */ + struct snd_sg_buf *sgbuf; /* DMA Scatter Gather struct */ int period_real; int period_virt; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; } stream_t; typedef struct snd_vortex vortex_t; struct snd_vortex { /* ALSA structs. */ - snd_card_t *card; - snd_pcm_t *pcm[VORTEX_PCM_LAST]; + struct snd_card *card; + struct snd_pcm *pcm[VORTEX_PCM_LAST]; - snd_rawmidi_t *rmidi; /* Legacy Midi interface. */ - ac97_t *codec; + struct snd_rawmidi *rmidi; /* Legacy Midi interface. */ + struct snd_ac97 *codec; /* Stream structs. */ stream_t dma_adb[NR_ADB]; @@ -199,7 +199,7 @@ static void vortex_adb_setsrc(vortex_t * vortex, int adbdma, /* DMA Engines. */ static void vortex_adbdma_setbuffers(vortex_t * vortex, int adbdma, - snd_pcm_sgbuf_t * sgbuf, int size, + struct snd_sg_buf * sgbuf, int size, int count); static void vortex_adbdma_setmode(vortex_t * vortex, int adbdma, int ie, int dir, int fmt, int d, @@ -207,7 +207,7 @@ static void vortex_adbdma_setmode(vortex_t * vortex, int adbdma, int ie, static void vortex_adbdma_setstartbuffer(vortex_t * vortex, int adbdma, int sb); #ifndef CHIP_AU8810 static void vortex_wtdma_setbuffers(vortex_t * vortex, int wtdma, - snd_pcm_sgbuf_t * sgbuf, int size, + struct snd_sg_buf * sgbuf, int size, int count); static void vortex_wtdma_setmode(vortex_t * vortex, int wtdma, int ie, int fmt, int d, /*int e, */ unsigned long offset); @@ -231,9 +231,9 @@ static int inline vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma); /* global stuff. */ static void vortex_codec_init(vortex_t * vortex); -static void vortex_codec_write(ac97_t * codec, unsigned short addr, +static void vortex_codec_write(struct snd_ac97 * codec, unsigned short addr, unsigned short data); -static unsigned short vortex_codec_read(ac97_t * codec, unsigned short addr); +static unsigned short vortex_codec_read(struct snd_ac97 * codec, unsigned short addr); static void vortex_spdif_init(vortex_t * vortex, int spdif_sr, int spdif_mode); static int vortex_core_init(vortex_t * card); diff --git a/sound/pci/au88x0/au88x0_a3d.c b/sound/pci/au88x0/au88x0_a3d.c index d5755db5141..d215f393ea6 100644 --- a/sound/pci/au88x0/au88x0_a3d.c +++ b/sound/pci/au88x0/au88x0_a3d.c @@ -725,7 +725,7 @@ static void vortex_a3d_translate_filter(a3d_atmos_t filter, int *params) /* ALSA control interface. */ static int -snd_vortex_a3d_hrtf_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +snd_vortex_a3d_hrtf_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 6; @@ -734,7 +734,7 @@ snd_vortex_a3d_hrtf_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) return 0; } static int -snd_vortex_a3d_itd_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +snd_vortex_a3d_itd_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -743,7 +743,7 @@ snd_vortex_a3d_itd_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) return 0; } static int -snd_vortex_a3d_ild_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +snd_vortex_a3d_ild_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -752,8 +752,8 @@ snd_vortex_a3d_ild_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) return 0; } static int -snd_vortex_a3d_filter_info(snd_kcontrol_t * - kcontrol, snd_ctl_elem_info_t * uinfo) +snd_vortex_a3d_filter_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 4; @@ -763,7 +763,7 @@ snd_vortex_a3d_filter_info(snd_kcontrol_t * } static int -snd_vortex_a3d_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_a3d_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { //a3dsrc_t *a = kcontrol->private_data; /* No read yet. Would this be really useable/needed ? */ @@ -772,8 +772,8 @@ snd_vortex_a3d_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) } static int -snd_vortex_a3d_hrtf_put(snd_kcontrol_t * - kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_a3d_hrtf_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { a3dsrc_t *a = kcontrol->private_data; int changed = 1, i; @@ -789,8 +789,8 @@ snd_vortex_a3d_hrtf_put(snd_kcontrol_t * } static int -snd_vortex_a3d_itd_put(snd_kcontrol_t * - kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_a3d_itd_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { a3dsrc_t *a = kcontrol->private_data; int coord[6]; @@ -808,8 +808,8 @@ snd_vortex_a3d_itd_put(snd_kcontrol_t * } static int -snd_vortex_a3d_ild_put(snd_kcontrol_t * - kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_a3d_ild_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { a3dsrc_t *a = kcontrol->private_data; int changed = 1; @@ -825,8 +825,8 @@ snd_vortex_a3d_ild_put(snd_kcontrol_t * } static int -snd_vortex_a3d_filter_put(snd_kcontrol_t - * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_a3d_filter_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { a3dsrc_t *a = kcontrol->private_data; int i, changed = 1; @@ -845,7 +845,7 @@ snd_vortex_a3d_filter_put(snd_kcontrol_t return changed; } -static snd_kcontrol_new_t vortex_a3d_kcontrol __devinitdata = { +static struct snd_kcontrol_new vortex_a3d_kcontrol __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = "Playback PCM advanced processing", .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, @@ -857,7 +857,7 @@ static snd_kcontrol_new_t vortex_a3d_kcontrol __devinitdata = { /* Control (un)registration. */ static int vortex_a3d_register_controls(vortex_t * vortex) { - snd_kcontrol_t *kcontrol; + struct snd_kcontrol *kcontrol; int err, i; /* HRTF controls. */ for (i = 0; i < NR_A3D; i++) { diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c index 5905188d06b..e3394fe6325 100644 --- a/sound/pci/au88x0/au88x0_core.c +++ b/sound/pci/au88x0/au88x0_core.c @@ -1097,7 +1097,7 @@ static void vortex_adbdma_setstartbuffer(vortex_t * vortex, int adbdma, int sb) static void vortex_adbdma_setbuffers(vortex_t * vortex, int adbdma, - snd_pcm_sgbuf_t * sgbuf, int psize, int count) + struct snd_sg_buf * sgbuf, int psize, int count) { stream_t *dma = &vortex->dma_adb[adbdma]; @@ -1367,7 +1367,7 @@ static void vortex_wtdma_setstartbuffer(vortex_t * vortex, int wtdma, int sb) static void vortex_wtdma_setbuffers(vortex_t * vortex, int wtdma, - snd_pcm_sgbuf_t * sgbuf, int psize, int count) + struct snd_sg_buf * sgbuf, int psize, int count) { stream_t *dma = &vortex->dma_wt[wtdma]; @@ -2514,7 +2514,7 @@ static void vortex_codec_init(vortex_t * vortex) } static void -vortex_codec_write(ac97_t * codec, unsigned short addr, unsigned short data) +vortex_codec_write(struct snd_ac97 * codec, unsigned short addr, unsigned short data) { vortex_t *card = (vortex_t *) codec->private_data; @@ -2539,7 +2539,7 @@ vortex_codec_write(ac97_t * codec, unsigned short addr, unsigned short data) hwread(card->mmio, VORTEX_CODEC_IO); } -static unsigned short vortex_codec_read(ac97_t * codec, unsigned short addr) +static unsigned short vortex_codec_read(struct snd_ac97 * codec, unsigned short addr) { vortex_t *card = (vortex_t *) codec->private_data; diff --git a/sound/pci/au88x0/au88x0_eq.c b/sound/pci/au88x0/au88x0_eq.c index 9d933cc0ea0..13bc8ed301c 100644 --- a/sound/pci/au88x0/au88x0_eq.c +++ b/sound/pci/au88x0/au88x0_eq.c @@ -730,7 +730,7 @@ static void vortex_Eqlzr_shutdown(vortex_t * vortex) /* Control interface */ static int -snd_vortex_eqtoggle_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +snd_vortex_eqtoggle_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -740,8 +740,8 @@ snd_vortex_eqtoggle_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) } static int -snd_vortex_eqtoggle_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_vortex_eqtoggle_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); eqlzr_t *eq = &(vortex->eq); @@ -753,8 +753,8 @@ snd_vortex_eqtoggle_get(snd_kcontrol_t * kcontrol, } static int -snd_vortex_eqtoggle_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_vortex_eqtoggle_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); eqlzr_t *eq = &(vortex->eq); @@ -766,7 +766,7 @@ snd_vortex_eqtoggle_put(snd_kcontrol_t * kcontrol, return 1; /* Allways changes */ } -static snd_kcontrol_new_t vortex_eqtoggle_kcontrol __devinitdata = { +static struct snd_kcontrol_new vortex_eqtoggle_kcontrol __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "EQ Enable", .index = 0, @@ -778,7 +778,7 @@ static snd_kcontrol_new_t vortex_eqtoggle_kcontrol __devinitdata = { }; static int -snd_vortex_eq_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +snd_vortex_eq_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -788,7 +788,7 @@ snd_vortex_eq_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) } static int -snd_vortex_eq_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_eq_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); int i = kcontrol->private_value; @@ -802,7 +802,7 @@ snd_vortex_eq_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) } static int -snd_vortex_eq_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_eq_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); int changed = 0, i = kcontrol->private_value; @@ -824,7 +824,7 @@ snd_vortex_eq_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) return changed; } -static snd_kcontrol_new_t vortex_eq_kcontrol __devinitdata = { +static struct snd_kcontrol_new vortex_eq_kcontrol __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = " .", .index = 0, @@ -836,7 +836,7 @@ static snd_kcontrol_new_t vortex_eq_kcontrol __devinitdata = { }; static int -snd_vortex_peaks_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +snd_vortex_peaks_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 20; @@ -846,7 +846,7 @@ snd_vortex_peaks_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) } static int -snd_vortex_peaks_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_vortex_peaks_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); int i, count; @@ -863,7 +863,7 @@ snd_vortex_peaks_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) return 0; } -static snd_kcontrol_new_t vortex_levels_kcontrol __devinitdata = { +static struct snd_kcontrol_new vortex_levels_kcontrol __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "EQ Peaks", .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, @@ -888,7 +888,7 @@ static char *EqBandLabels[10] __devinitdata = { /* ALSA driver entry points. Init and exit. */ static int vortex_eq_init(vortex_t * vortex) { - snd_kcontrol_t *kcontrol; + struct snd_kcontrol *kcontrol; int err, i; vortex_Eqlzr_init(vortex); diff --git a/sound/pci/au88x0/au88x0_mixer.c b/sound/pci/au88x0/au88x0_mixer.c index 86e27d695c3..c96da1dab86 100644 --- a/sound/pci/au88x0/au88x0_mixer.c +++ b/sound/pci/au88x0/au88x0_mixer.c @@ -13,10 +13,10 @@ static int __devinit snd_vortex_mixer(vortex_t * vortex) { - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = vortex_codec_write, .read = vortex_codec_read, }; diff --git a/sound/pci/au88x0/au88x0_mpu401.c b/sound/pci/au88x0/au88x0_mpu401.c index c0c23466eb0..8ba6dd36222 100644 --- a/sound/pci/au88x0/au88x0_mpu401.c +++ b/sound/pci/au88x0/au88x0_mpu401.c @@ -44,9 +44,9 @@ static int __devinit snd_vortex_midi(vortex_t * vortex) { - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; int temp, mode; - mpu401_t *mpu; + struct snd_mpu401 *mpu; int port; #ifdef VORTEX_MPU401_LEGACY diff --git a/sound/pci/au88x0/au88x0_pcm.c b/sound/pci/au88x0/au88x0_pcm.c index 38bd2b5dd43..6a13ca1d545 100644 --- a/sound/pci/au88x0/au88x0_pcm.c +++ b/sound/pci/au88x0/au88x0_pcm.c @@ -31,7 +31,7 @@ #define VORTEX_PCM_TYPE(x) (x->name[40]) /* hardware definition */ -static snd_pcm_hardware_t snd_vortex_playback_hw_adb = { +static struct snd_pcm_hardware snd_vortex_playback_hw_adb = { .info = (SNDRV_PCM_INFO_MMAP | /* SNDRV_PCM_INFO_RESUME | */ SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_INTERLEAVED | @@ -56,7 +56,7 @@ static snd_pcm_hardware_t snd_vortex_playback_hw_adb = { }; #ifndef CHIP_AU8820 -static snd_pcm_hardware_t snd_vortex_playback_hw_a3d = { +static struct snd_pcm_hardware snd_vortex_playback_hw_a3d = { .info = (SNDRV_PCM_INFO_MMAP | /* SNDRV_PCM_INFO_RESUME | */ SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_INTERLEAVED | @@ -76,7 +76,7 @@ static snd_pcm_hardware_t snd_vortex_playback_hw_a3d = { .periods_max = 64, }; #endif -static snd_pcm_hardware_t snd_vortex_playback_hw_spdif = { +static struct snd_pcm_hardware snd_vortex_playback_hw_spdif = { .info = (SNDRV_PCM_INFO_MMAP | /* SNDRV_PCM_INFO_RESUME | */ SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_INTERLEAVED | @@ -99,7 +99,7 @@ static snd_pcm_hardware_t snd_vortex_playback_hw_spdif = { }; #ifndef CHIP_AU8810 -static snd_pcm_hardware_t snd_vortex_playback_hw_wt = { +static struct snd_pcm_hardware snd_vortex_playback_hw_wt = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID), @@ -117,10 +117,10 @@ static snd_pcm_hardware_t snd_vortex_playback_hw_wt = { }; #endif /* open callback */ -static int snd_vortex_pcm_open(snd_pcm_substream_t * substream) +static int snd_vortex_pcm_open(struct snd_pcm_substream *substream) { vortex_t *vortex = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; int err; /* Force equal size periods */ @@ -169,7 +169,7 @@ static int snd_vortex_pcm_open(snd_pcm_substream_t * substream) } /* close callback */ -static int snd_vortex_pcm_close(snd_pcm_substream_t * substream) +static int snd_vortex_pcm_close(struct snd_pcm_substream *substream) { //vortex_t *chip = snd_pcm_substream_chip(substream); stream_t *stream = (stream_t *) substream->runtime->private_data; @@ -185,12 +185,12 @@ static int snd_vortex_pcm_close(snd_pcm_substream_t * substream) /* hw_params callback */ static int -snd_vortex_pcm_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +snd_vortex_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { vortex_t *chip = snd_pcm_substream_chip(substream); stream_t *stream = (stream_t *) (substream->runtime->private_data); - snd_pcm_sgbuf_t *sgbuf; + struct snd_sg_buf *sgbuf; int err; // Alloc buffer memory. @@ -200,7 +200,7 @@ snd_vortex_pcm_hw_params(snd_pcm_substream_t * substream, printk(KERN_ERR "Vortex: pcm page alloc failed!\n"); return err; } - //sgbuf = (snd_pcm_sgbuf_t *) substream->runtime->dma_private; + //sgbuf = (struct snd_sg_buf *) substream->runtime->dma_private; sgbuf = snd_pcm_substream_sgbuf(substream); /* printk(KERN_INFO "Vortex: periods %d, period_bytes %d, channels = %d\n", params_periods(hw_params), @@ -251,7 +251,7 @@ snd_vortex_pcm_hw_params(snd_pcm_substream_t * substream, } /* hw_free callback */ -static int snd_vortex_pcm_hw_free(snd_pcm_substream_t * substream) +static int snd_vortex_pcm_hw_free(struct snd_pcm_substream *substream) { vortex_t *chip = snd_pcm_substream_chip(substream); stream_t *stream = (stream_t *) (substream->runtime->private_data); @@ -277,10 +277,10 @@ static int snd_vortex_pcm_hw_free(snd_pcm_substream_t * substream) } /* prepare callback */ -static int snd_vortex_pcm_prepare(snd_pcm_substream_t * substream) +static int snd_vortex_pcm_prepare(struct snd_pcm_substream *substream) { vortex_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; stream_t *stream = (stream_t *) substream->runtime->private_data; int dma = stream->dma, fmt, dir; @@ -310,7 +310,7 @@ static int snd_vortex_pcm_prepare(snd_pcm_substream_t * substream) } /* trigger callback */ -static int snd_vortex_pcm_trigger(snd_pcm_substream_t * substream, int cmd) +static int snd_vortex_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { vortex_t *chip = snd_pcm_substream_chip(substream); stream_t *stream = (stream_t *) substream->runtime->private_data; @@ -374,7 +374,7 @@ static int snd_vortex_pcm_trigger(snd_pcm_substream_t * substream, int cmd) } /* pointer callback */ -static snd_pcm_uframes_t snd_vortex_pcm_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_vortex_pcm_pointer(struct snd_pcm_substream *substream) { vortex_t *chip = snd_pcm_substream_chip(substream); stream_t *stream = (stream_t *) substream->runtime->private_data; @@ -395,13 +395,13 @@ static snd_pcm_uframes_t snd_vortex_pcm_pointer(snd_pcm_substream_t * substream) /* Page callback. */ /* -static struct page *snd_pcm_sgbuf_ops_page(snd_pcm_substream_t *substream, unsigned long offset) { +static struct page *snd_pcm_sgbuf_ops_page(struct snd_pcm_substream *substream, unsigned long offset) { } */ /* operators */ -static snd_pcm_ops_t snd_vortex_playback_ops = { +static struct snd_pcm_ops snd_vortex_playback_ops = { .open = snd_vortex_pcm_open, .close = snd_vortex_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -434,14 +434,14 @@ static char *vortex_pcm_name[VORTEX_PCM_LAST] = { /* SPDIF kcontrol */ -static int snd_vortex_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vortex_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_vortex_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vortex_spdif_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -450,7 +450,7 @@ static int snd_vortex_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return 0; } -static int snd_vortex_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vortex_spdif_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); ucontrol->value.iec958.status[0] = 0x00; @@ -464,7 +464,7 @@ static int snd_vortex_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_vortex_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vortex_spdif_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { vortex_t *vortex = snd_kcontrol_chip(kcontrol); int spdif_sr = 48000; @@ -481,7 +481,7 @@ static int snd_vortex_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t } /* spdif controls */ -static snd_kcontrol_new_t snd_vortex_mixer_spdif[] __devinitdata = { +static struct snd_kcontrol_new snd_vortex_mixer_spdif[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -501,8 +501,8 @@ static snd_kcontrol_new_t snd_vortex_mixer_spdif[] __devinitdata = { /* create a pcm device */ static int __devinit snd_vortex_new_pcm(vortex_t * chip, int idx, int nr) { - snd_pcm_t *pcm; - snd_kcontrol_t *kctl; + struct snd_pcm *pcm; + struct snd_kcontrol *kctl; int i; int err, nr_capt; -- cgit v1.2.3-70-g09d2 From e4a3d145455159955d6ac1df976b2ed2a135b858 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:55:40 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI CA0106 Modules: CA0106 driver Remove xxx_t typedefs from the PCI CA0106 driver. Signed-off-by: Takashi Iwai --- sound/pci/ca0106/ca0106.h | 54 +++++----- sound/pci/ca0106/ca0106_main.c | 234 ++++++++++++++++++++-------------------- sound/pci/ca0106/ca0106_mixer.c | 99 +++++++++-------- sound/pci/ca0106/ca0106_proc.c | 60 +++++------ sound/pci/ca0106/ca_midi.c | 49 +++++---- sound/pci/ca0106/ca_midi.h | 25 ++--- 6 files changed, 263 insertions(+), 258 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ca0106/ca0106.h b/sound/pci/ca0106/ca0106.h index 9a4b6406f7a..7088317ec4c 100644 --- a/sound/pci/ca0106/ca0106.h +++ b/sound/pci/ca0106/ca0106.h @@ -554,37 +554,35 @@ #include "ca_midi.h" -typedef struct snd_ca0106_channel ca0106_channel_t; -typedef struct snd_ca0106 ca0106_t; -typedef struct snd_ca0106_pcm ca0106_pcm_t; +struct snd_ca0106; struct snd_ca0106_channel { - ca0106_t *emu; + struct snd_ca0106 *emu; int number; int use; - void (*interrupt)(ca0106_t *emu, ca0106_channel_t *channel); - ca0106_pcm_t *epcm; + void (*interrupt)(struct snd_ca0106 *emu, struct snd_ca0106_channel *channel); + struct snd_ca0106_pcm *epcm; }; struct snd_ca0106_pcm { - ca0106_t *emu; - snd_pcm_substream_t *substream; + struct snd_ca0106 *emu; + struct snd_pcm_substream *substream; int channel_id; unsigned short running; }; -typedef struct { +struct snd_ca0106_details { u32 serial; char * name; int ac97; int gpio_type; int i2c_adc; -} ca0106_details_t; +}; // definition of the chip-specific record struct snd_ca0106 { - snd_card_t *card; - ca0106_details_t *details; + struct snd_card *card; + struct snd_ca0106_details *details; struct pci_dev *pci; unsigned long port; @@ -597,11 +595,11 @@ struct snd_ca0106 { spinlock_t emu_lock; - ac97_t *ac97; - snd_pcm_t *pcm; + struct snd_ac97 *ac97; + struct snd_pcm *pcm; - ca0106_channel_t playback_channels[4]; - ca0106_channel_t capture_channels[4]; + struct snd_ca0106_channel playback_channels[4]; + struct snd_ca0106_channel capture_channels[4]; u32 spdif_bits[4]; /* s/pdif out setup */ int spdif_enable; int capture_source; @@ -609,22 +607,22 @@ struct snd_ca0106 { struct snd_dma_buffer buffer; - ca_midi_t midi; - ca_midi_t midi2; + struct snd_ca_midi midi; + struct snd_ca_midi midi2; }; -int __devinit snd_ca0106_mixer(ca0106_t *emu); -int __devinit snd_ca0106_proc_init(ca0106_t * emu); +int snd_ca0106_mixer(struct snd_ca0106 *emu); +int snd_ca0106_proc_init(struct snd_ca0106 * emu); -unsigned int snd_ca0106_ptr_read(ca0106_t * emu, - unsigned int reg, - unsigned int chn); +unsigned int snd_ca0106_ptr_read(struct snd_ca0106 * emu, + unsigned int reg, + unsigned int chn); -void snd_ca0106_ptr_write(ca0106_t *emu, - unsigned int reg, - unsigned int chn, - unsigned int data); +void snd_ca0106_ptr_write(struct snd_ca0106 *emu, + unsigned int reg, + unsigned int chn, + unsigned int data); -int snd_ca0106_i2c_write(ca0106_t *emu, u32 reg, u32 value); +int snd_ca0106_i2c_write(struct snd_ca0106 *emu, u32 reg, u32 value); diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 0120c4683c7..744f9718372 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -164,7 +164,7 @@ MODULE_PARM_DESC(enable, "Enable the CA0106 soundcard."); #include "ca0106.h" -static ca0106_details_t ca0106_chip_details[] = { +static struct snd_ca0106_details ca0106_chip_details[] = { /* AudigyLS[SB0310] */ { .serial = 0x10021102, .name = "AudigyLS [SB0310]", @@ -201,7 +201,7 @@ static ca0106_details_t ca0106_chip_details[] = { }; /* hardware definition */ -static snd_pcm_hardware_t snd_ca0106_playback_hw = { +static struct snd_pcm_hardware snd_ca0106_playback_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -221,7 +221,7 @@ static snd_pcm_hardware_t snd_ca0106_playback_hw = { .fifo_size = 0, }; -static snd_pcm_hardware_t snd_ca0106_capture_hw = { +static struct snd_pcm_hardware snd_ca0106_capture_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -241,7 +241,7 @@ static snd_pcm_hardware_t snd_ca0106_capture_hw = { .fifo_size = 0, }; -unsigned int snd_ca0106_ptr_read(ca0106_t * emu, +unsigned int snd_ca0106_ptr_read(struct snd_ca0106 * emu, unsigned int reg, unsigned int chn) { @@ -257,7 +257,7 @@ unsigned int snd_ca0106_ptr_read(ca0106_t * emu, return val; } -void snd_ca0106_ptr_write(ca0106_t *emu, +void snd_ca0106_ptr_write(struct snd_ca0106 *emu, unsigned int reg, unsigned int chn, unsigned int data) @@ -273,7 +273,7 @@ void snd_ca0106_ptr_write(ca0106_t *emu, spin_unlock_irqrestore(&emu->emu_lock, flags); } -int snd_ca0106_i2c_write(ca0106_t *emu, +int snd_ca0106_i2c_write(struct snd_ca0106 *emu, u32 reg, u32 value) { @@ -325,7 +325,7 @@ int snd_ca0106_i2c_write(ca0106_t *emu, } -static void snd_ca0106_intr_enable(ca0106_t *emu, unsigned int intrenb) +static void snd_ca0106_intr_enable(struct snd_ca0106 *emu, unsigned int intrenb) { unsigned long flags; unsigned int enable; @@ -336,7 +336,7 @@ static void snd_ca0106_intr_enable(ca0106_t *emu, unsigned int intrenb) spin_unlock_irqrestore(&emu->emu_lock, flags); } -static void snd_ca0106_intr_disable(ca0106_t *emu, unsigned int intrenb) +static void snd_ca0106_intr_disable(struct snd_ca0106 *emu, unsigned int intrenb) { unsigned long flags; unsigned int enable; @@ -348,18 +348,19 @@ static void snd_ca0106_intr_disable(ca0106_t *emu, unsigned int intrenb) } -static void snd_ca0106_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_ca0106_pcm_free_substream(struct snd_pcm_runtime *runtime) { kfree(runtime->private_data); } /* open_playback callback */ -static int snd_ca0106_pcm_open_playback_channel(snd_pcm_substream_t *substream, int channel_id) +static int snd_ca0106_pcm_open_playback_channel(struct snd_pcm_substream *substream, + int channel_id) { - ca0106_t *chip = snd_pcm_substream_chip(substream); - ca0106_channel_t *channel = &(chip->playback_channels[channel_id]); - ca0106_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ca0106 *chip = snd_pcm_substream_chip(substream); + struct snd_ca0106_channel *channel = &(chip->playback_channels[channel_id]); + struct snd_ca0106_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; int err; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); @@ -390,43 +391,44 @@ static int snd_ca0106_pcm_open_playback_channel(snd_pcm_substream_t *substream, } /* close callback */ -static int snd_ca0106_pcm_close_playback(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_close_playback(struct snd_pcm_substream *substream) { - ca0106_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ca0106_pcm_t *epcm = runtime->private_data; - chip->playback_channels[epcm->channel_id].use=0; -/* FIXME: maybe zero others */ + struct snd_ca0106 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ca0106_pcm *epcm = runtime->private_data; + chip->playback_channels[epcm->channel_id].use = 0; + /* FIXME: maybe zero others */ return 0; } -static int snd_ca0106_pcm_open_playback_front(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_playback_front(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_playback_channel(substream, PCM_FRONT_CHANNEL); } -static int snd_ca0106_pcm_open_playback_center_lfe(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_playback_center_lfe(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_playback_channel(substream, PCM_CENTER_LFE_CHANNEL); } -static int snd_ca0106_pcm_open_playback_unknown(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_playback_unknown(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_playback_channel(substream, PCM_UNKNOWN_CHANNEL); } -static int snd_ca0106_pcm_open_playback_rear(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_playback_rear(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_playback_channel(substream, PCM_REAR_CHANNEL); } /* open_capture callback */ -static int snd_ca0106_pcm_open_capture_channel(snd_pcm_substream_t *substream, int channel_id) +static int snd_ca0106_pcm_open_capture_channel(struct snd_pcm_substream *substream, + int channel_id) { - ca0106_t *chip = snd_pcm_substream_chip(substream); - ca0106_channel_t *channel = &(chip->capture_channels[channel_id]); - ca0106_pcm_t *epcm; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ca0106 *chip = snd_pcm_substream_chip(substream); + struct snd_ca0106_channel *channel = &(chip->capture_channels[channel_id]); + struct snd_ca0106_pcm *epcm; + struct snd_pcm_runtime *runtime = substream->runtime; int err; epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); @@ -449,7 +451,7 @@ static int snd_ca0106_pcm_open_capture_channel(snd_pcm_substream_t *substream, i channel->use = 1; //printk("open:channel_id=%d, chip=%p, channel=%p\n",channel_id, chip, channel); //channel->interrupt = snd_ca0106_pcm_channel_interrupt; - channel->epcm = epcm; + channel->epcm = epcm; if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; //snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, &hw_constraints_capture_period_sizes); @@ -459,70 +461,70 @@ static int snd_ca0106_pcm_open_capture_channel(snd_pcm_substream_t *substream, i } /* close callback */ -static int snd_ca0106_pcm_close_capture(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_close_capture(struct snd_pcm_substream *substream) { - ca0106_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ca0106_pcm_t *epcm = runtime->private_data; - chip->capture_channels[epcm->channel_id].use=0; -/* FIXME: maybe zero others */ + struct snd_ca0106 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ca0106_pcm *epcm = runtime->private_data; + chip->capture_channels[epcm->channel_id].use = 0; + /* FIXME: maybe zero others */ return 0; } -static int snd_ca0106_pcm_open_0_capture(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_0_capture(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_capture_channel(substream, 0); } -static int snd_ca0106_pcm_open_1_capture(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_1_capture(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_capture_channel(substream, 1); } -static int snd_ca0106_pcm_open_2_capture(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_2_capture(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_capture_channel(substream, 2); } -static int snd_ca0106_pcm_open_3_capture(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_open_3_capture(struct snd_pcm_substream *substream) { return snd_ca0106_pcm_open_capture_channel(substream, 3); } /* hw_params callback */ -static int snd_ca0106_pcm_hw_params_playback(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ca0106_pcm_hw_params_playback(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } /* hw_free callback */ -static int snd_ca0106_pcm_hw_free_playback(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_hw_free_playback(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } /* hw_params callback */ -static int snd_ca0106_pcm_hw_params_capture(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ca0106_pcm_hw_params_capture(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } /* hw_free callback */ -static int snd_ca0106_pcm_hw_free_capture(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_hw_free_capture(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } /* prepare playback callback */ -static int snd_ca0106_pcm_prepare_playback(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_prepare_playback(struct snd_pcm_substream *substream) { - ca0106_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ca0106_pcm_t *epcm = runtime->private_data; + struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ca0106_pcm *epcm = runtime->private_data; int channel = epcm->channel_id; u32 *table_base = (u32 *)(emu->buffer.area+(8*16*channel)); u32 period_size_bytes = frames_to_bytes(runtime, runtime->period_size); @@ -619,11 +621,11 @@ static int snd_ca0106_pcm_prepare_playback(snd_pcm_substream_t *substream) } /* prepare capture callback */ -static int snd_ca0106_pcm_prepare_capture(snd_pcm_substream_t *substream) +static int snd_ca0106_pcm_prepare_capture(struct snd_pcm_substream *substream) { - ca0106_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ca0106_pcm_t *epcm = runtime->private_data; + struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ca0106_pcm *epcm = runtime->private_data; int channel = epcm->channel_id; u32 hcfg_mask = HCFG_CAPTURE_S32_LE; u32 hcfg_set = 0x00000000; @@ -690,16 +692,16 @@ static int snd_ca0106_pcm_prepare_capture(snd_pcm_substream_t *substream) } /* trigger_playback callback */ -static int snd_ca0106_pcm_trigger_playback(snd_pcm_substream_t *substream, +static int snd_ca0106_pcm_trigger_playback(struct snd_pcm_substream *substream, int cmd) { - ca0106_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime; - ca0106_pcm_t *epcm; + struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime; + struct snd_ca0106_pcm *epcm; int channel; int result = 0; struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; u32 basic = 0; u32 extended = 0; int running=0; @@ -743,12 +745,12 @@ static int snd_ca0106_pcm_trigger_playback(snd_pcm_substream_t *substream, } /* trigger_capture callback */ -static int snd_ca0106_pcm_trigger_capture(snd_pcm_substream_t *substream, +static int snd_ca0106_pcm_trigger_capture(struct snd_pcm_substream *substream, int cmd) { - ca0106_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ca0106_pcm_t *epcm = runtime->private_data; + struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ca0106_pcm *epcm = runtime->private_data; int channel = epcm->channel_id; int result = 0; @@ -772,11 +774,11 @@ static int snd_ca0106_pcm_trigger_capture(snd_pcm_substream_t *substream, /* pointer_playback callback */ static snd_pcm_uframes_t -snd_ca0106_pcm_pointer_playback(snd_pcm_substream_t *substream) +snd_ca0106_pcm_pointer_playback(struct snd_pcm_substream *substream) { - ca0106_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ca0106_pcm_t *epcm = runtime->private_data; + struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ca0106_pcm *epcm = runtime->private_data; snd_pcm_uframes_t ptr, ptr1, ptr2,ptr3,ptr4 = 0; int channel = epcm->channel_id; @@ -799,11 +801,11 @@ snd_ca0106_pcm_pointer_playback(snd_pcm_substream_t *substream) /* pointer_capture callback */ static snd_pcm_uframes_t -snd_ca0106_pcm_pointer_capture(snd_pcm_substream_t *substream) +snd_ca0106_pcm_pointer_capture(struct snd_pcm_substream *substream) { - ca0106_t *emu = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ca0106_pcm_t *epcm = runtime->private_data; + struct snd_ca0106 *emu = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ca0106_pcm *epcm = runtime->private_data; snd_pcm_uframes_t ptr, ptr1, ptr2 = 0; int channel = channel=epcm->channel_id; @@ -821,7 +823,7 @@ snd_ca0106_pcm_pointer_capture(snd_pcm_substream_t *substream) } /* operators */ -static snd_pcm_ops_t snd_ca0106_playback_front_ops = { +static struct snd_pcm_ops snd_ca0106_playback_front_ops = { .open = snd_ca0106_pcm_open_playback_front, .close = snd_ca0106_pcm_close_playback, .ioctl = snd_pcm_lib_ioctl, @@ -832,7 +834,7 @@ static snd_pcm_ops_t snd_ca0106_playback_front_ops = { .pointer = snd_ca0106_pcm_pointer_playback, }; -static snd_pcm_ops_t snd_ca0106_capture_0_ops = { +static struct snd_pcm_ops snd_ca0106_capture_0_ops = { .open = snd_ca0106_pcm_open_0_capture, .close = snd_ca0106_pcm_close_capture, .ioctl = snd_pcm_lib_ioctl, @@ -843,7 +845,7 @@ static snd_pcm_ops_t snd_ca0106_capture_0_ops = { .pointer = snd_ca0106_pcm_pointer_capture, }; -static snd_pcm_ops_t snd_ca0106_capture_1_ops = { +static struct snd_pcm_ops snd_ca0106_capture_1_ops = { .open = snd_ca0106_pcm_open_1_capture, .close = snd_ca0106_pcm_close_capture, .ioctl = snd_pcm_lib_ioctl, @@ -854,7 +856,7 @@ static snd_pcm_ops_t snd_ca0106_capture_1_ops = { .pointer = snd_ca0106_pcm_pointer_capture, }; -static snd_pcm_ops_t snd_ca0106_capture_2_ops = { +static struct snd_pcm_ops snd_ca0106_capture_2_ops = { .open = snd_ca0106_pcm_open_2_capture, .close = snd_ca0106_pcm_close_capture, .ioctl = snd_pcm_lib_ioctl, @@ -865,7 +867,7 @@ static snd_pcm_ops_t snd_ca0106_capture_2_ops = { .pointer = snd_ca0106_pcm_pointer_capture, }; -static snd_pcm_ops_t snd_ca0106_capture_3_ops = { +static struct snd_pcm_ops snd_ca0106_capture_3_ops = { .open = snd_ca0106_pcm_open_3_capture, .close = snd_ca0106_pcm_close_capture, .ioctl = snd_pcm_lib_ioctl, @@ -876,7 +878,7 @@ static snd_pcm_ops_t snd_ca0106_capture_3_ops = { .pointer = snd_ca0106_pcm_pointer_capture, }; -static snd_pcm_ops_t snd_ca0106_playback_center_lfe_ops = { +static struct snd_pcm_ops snd_ca0106_playback_center_lfe_ops = { .open = snd_ca0106_pcm_open_playback_center_lfe, .close = snd_ca0106_pcm_close_playback, .ioctl = snd_pcm_lib_ioctl, @@ -887,7 +889,7 @@ static snd_pcm_ops_t snd_ca0106_playback_center_lfe_ops = { .pointer = snd_ca0106_pcm_pointer_playback, }; -static snd_pcm_ops_t snd_ca0106_playback_unknown_ops = { +static struct snd_pcm_ops snd_ca0106_playback_unknown_ops = { .open = snd_ca0106_pcm_open_playback_unknown, .close = snd_ca0106_pcm_close_playback, .ioctl = snd_pcm_lib_ioctl, @@ -898,7 +900,7 @@ static snd_pcm_ops_t snd_ca0106_playback_unknown_ops = { .pointer = snd_ca0106_pcm_pointer_playback, }; -static snd_pcm_ops_t snd_ca0106_playback_rear_ops = { +static struct snd_pcm_ops snd_ca0106_playback_rear_ops = { .open = snd_ca0106_pcm_open_playback_rear, .close = snd_ca0106_pcm_close_playback, .ioctl = snd_pcm_lib_ioctl, @@ -910,10 +912,10 @@ static snd_pcm_ops_t snd_ca0106_playback_rear_ops = { }; -static unsigned short snd_ca0106_ac97_read(ac97_t *ac97, +static unsigned short snd_ca0106_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - ca0106_t *emu = ac97->private_data; + struct snd_ca0106 *emu = ac97->private_data; unsigned long flags; unsigned short val; @@ -924,10 +926,10 @@ static unsigned short snd_ca0106_ac97_read(ac97_t *ac97, return val; } -static void snd_ca0106_ac97_write(ac97_t *ac97, +static void snd_ca0106_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - ca0106_t *emu = ac97->private_data; + struct snd_ca0106 *emu = ac97->private_data; unsigned long flags; spin_lock_irqsave(&emu->emu_lock, flags); @@ -936,12 +938,12 @@ static void snd_ca0106_ac97_write(ac97_t *ac97, spin_unlock_irqrestore(&emu->emu_lock, flags); } -static int snd_ca0106_ac97(ca0106_t *chip) +static int snd_ca0106_ac97(struct snd_ca0106 *chip) { - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_ca0106_ac97_write, .read = snd_ca0106_ac97_read, }; @@ -956,7 +958,7 @@ static int snd_ca0106_ac97(ca0106_t *chip) return snd_ac97_mixer(pbus, &ac97, &chip->ac97); } -static int snd_ca0106_free(ca0106_t *chip) +static int snd_ca0106_free(struct snd_ca0106 *chip) { if (chip->res_port != NULL) { /* avoid access to already used hardware */ // disable interrupts @@ -989,9 +991,9 @@ static int snd_ca0106_free(ca0106_t *chip) return 0; } -static int snd_ca0106_dev_free(snd_device_t *device) +static int snd_ca0106_dev_free(struct snd_device *device) { - ca0106_t *chip = device->device_data; + struct snd_ca0106 *chip = device->device_data; return snd_ca0106_free(chip); } @@ -1000,14 +1002,13 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, { unsigned int status; - ca0106_t *chip = dev_id; + struct snd_ca0106 *chip = dev_id; int i; int mask; unsigned int stat76; - ca0106_channel_t *pchannel; + struct snd_ca0106_channel *pchannel; status = inl(chip->port + IPR); - if (! status) return IRQ_NONE; @@ -1059,10 +1060,10 @@ static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, return IRQ_HANDLED; } -static int __devinit snd_ca0106_pcm(ca0106_t *emu, int device, snd_pcm_t **rpcm) +static int __devinit snd_ca0106_pcm(struct snd_ca0106 *emu, int device, struct snd_pcm **rpcm) { - snd_pcm_t *pcm; - snd_pcm_substream_t *substream; + struct snd_pcm *pcm; + struct snd_pcm_substream *substream; int err; if (rpcm) @@ -1122,15 +1123,15 @@ static int __devinit snd_ca0106_pcm(ca0106_t *emu, int device, snd_pcm_t **rpcm) return 0; } -static int __devinit snd_ca0106_create(snd_card_t *card, +static int __devinit snd_ca0106_create(struct snd_card *card, struct pci_dev *pci, - ca0106_t **rchip) + struct snd_ca0106 **rchip) { - ca0106_t *chip; - ca0106_details_t *c; + struct snd_ca0106 *chip; + struct snd_ca0106_details *c; int err; int ch; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_ca0106_dev_free, }; @@ -1314,39 +1315,40 @@ static int __devinit snd_ca0106_create(snd_card_t *card, } -static void ca0106_midi_interrupt_enable(ca_midi_t *midi, int intr) +static void ca0106_midi_interrupt_enable(struct snd_ca_midi *midi, int intr) { - snd_ca0106_intr_enable((ca0106_t *)(midi->dev_id), intr); + snd_ca0106_intr_enable((struct snd_ca0106 *)(midi->dev_id), intr); } -static void ca0106_midi_interrupt_disable(ca_midi_t *midi, int intr) +static void ca0106_midi_interrupt_disable(struct snd_ca_midi *midi, int intr) { - snd_ca0106_intr_disable((ca0106_t *)(midi->dev_id), intr); + snd_ca0106_intr_disable((struct snd_ca0106 *)(midi->dev_id), intr); } -static unsigned char ca0106_midi_read(ca_midi_t *midi, int idx) +static unsigned char ca0106_midi_read(struct snd_ca_midi *midi, int idx) { - return (unsigned char)snd_ca0106_ptr_read((ca0106_t *)(midi->dev_id), midi->port + idx, 0); + return (unsigned char)snd_ca0106_ptr_read((struct snd_ca0106 *)(midi->dev_id), + midi->port + idx, 0); } -static void ca0106_midi_write(ca_midi_t *midi, int data, int idx) +static void ca0106_midi_write(struct snd_ca_midi *midi, int data, int idx) { - snd_ca0106_ptr_write((ca0106_t *)(midi->dev_id), midi->port + idx, 0, data); + snd_ca0106_ptr_write((struct snd_ca0106 *)(midi->dev_id), midi->port + idx, 0, data); } -static snd_card_t *ca0106_dev_id_card(void *dev_id) +static struct snd_card *ca0106_dev_id_card(void *dev_id) { - return ((ca0106_t *)dev_id)->card; + return ((struct snd_ca0106 *)dev_id)->card; } static int ca0106_dev_id_port(void *dev_id) { - return ((ca0106_t *)dev_id)->port; + return ((struct snd_ca0106 *)dev_id)->port; } -static int __devinit snd_ca0106_midi(ca0106_t *chip, unsigned int channel) +static int __devinit snd_ca0106_midi(struct snd_ca0106 *chip, unsigned int channel) { - ca_midi_t *midi; + struct snd_ca_midi *midi; char *name; int err; @@ -1399,8 +1401,8 @@ static int __devinit snd_ca0106_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - ca0106_t *chip; + struct snd_card *card; + struct snd_ca0106 *chip; int err; if (dev >= SNDRV_CARDS) diff --git a/sound/pci/ca0106/ca0106_mixer.c b/sound/pci/ca0106/ca0106_mixer.c index 0730dc7c66e..39100cb62c4 100644 --- a/sound/pci/ca0106/ca0106_mixer.c +++ b/sound/pci/ca0106/ca0106_mixer.c @@ -73,7 +73,8 @@ #include "ca0106.h" -static int snd_ca0106_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ca0106_shared_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -82,19 +83,19 @@ static int snd_ca0106_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_ca0106_shared_spdif_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_shared_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = emu->spdif_enable; return 0; } -static int snd_ca0106_shared_spdif_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_shared_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); unsigned int val; int change = 0; u32 mask; @@ -125,7 +126,8 @@ static int snd_ca0106_shared_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static int snd_ca0106_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ca0106_capture_source_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[6] = { "SPDIF out", "i2s mixer out", "SPDIF in", "i2s in", "AC97 in", "SRC out" @@ -140,19 +142,19 @@ static int snd_ca0106_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_ca0106_capture_source_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_capture_source_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = emu->capture_source; return 0; } -static int snd_ca0106_capture_source_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_capture_source_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); unsigned int val; int change = 0; u32 mask; @@ -169,7 +171,8 @@ static int snd_ca0106_capture_source_put(snd_kcontrol_t * kcontrol, return change; } -static int snd_ca0106_capture_mic_line_in_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ca0106_capture_mic_line_in_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[2] = { "Line in", "Mic in" }; @@ -182,19 +185,19 @@ static int snd_ca0106_capture_mic_line_in_info(snd_kcontrol_t *kcontrol, snd_ctl return 0; } -static int snd_ca0106_capture_mic_line_in_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_capture_mic_line_in_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = emu->capture_mic_line_in; return 0; } -static int snd_ca0106_capture_mic_line_in_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_capture_mic_line_in_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); unsigned int val; int change = 0; u32 tmp; @@ -219,7 +222,7 @@ static int snd_ca0106_capture_mic_line_in_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_ca0106_capture_mic_line_in __devinitdata = +static struct snd_kcontrol_new snd_ca0106_capture_mic_line_in __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Mic/Line in Capture", @@ -228,17 +231,18 @@ static snd_kcontrol_new_t snd_ca0106_capture_mic_line_in __devinitdata = .put = snd_ca0106_capture_mic_line_in_put }; -static int snd_ca0106_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ca0106_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_ca0106_spdif_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); ucontrol->value.iec958.status[0] = (emu->spdif_bits[idx] >> 0) & 0xff; @@ -248,8 +252,8 @@ static int snd_ca0106_spdif_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ca0106_spdif_get_mask(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_spdif_get_mask(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -258,10 +262,10 @@ static int snd_ca0106_spdif_get_mask(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ca0106_spdif_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int change; unsigned int val; @@ -278,7 +282,8 @@ static int snd_ca0106_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static int snd_ca0106_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ca0106_volume_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -287,10 +292,10 @@ static int snd_ca0106_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_ca0106_volume_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); unsigned int value; int channel_id, reg; @@ -303,10 +308,10 @@ static int snd_ca0106_volume_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ca0106_volume_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ca0106_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ca0106_t *emu = snd_kcontrol_chip(kcontrol); + struct snd_ca0106 *emu = snd_kcontrol_chip(kcontrol); unsigned int oval, nval; int channel_id, reg; @@ -334,7 +339,7 @@ static int snd_ca0106_volume_put(snd_kcontrol_t * kcontrol, } -static snd_kcontrol_new_t snd_ca0106_volume_ctls[] __devinitdata = { +static struct snd_kcontrol_new snd_ca0106_volume_ctls[] __devinitdata = { CA_VOLUME("Analog Front Playback Volume", CONTROL_FRONT_CHANNEL, PLAYBACK_VOLUME2), CA_VOLUME("Analog Rear Playback Volume", @@ -388,18 +393,18 @@ static snd_kcontrol_new_t snd_ca0106_volume_ctls[] __devinitdata = { }, }; -static int __devinit remove_ctl(snd_card_t *card, const char *name) +static int __devinit remove_ctl(struct snd_card *card, const char *name) { - snd_ctl_elem_id_t id; + struct snd_ctl_elem_id id; memset(&id, 0, sizeof(id)); strcpy(id.name, name); id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; return snd_ctl_remove_id(card, &id); } -static snd_kcontrol_t __devinit *ctl_find(snd_card_t *card, const char *name) +static struct snd_kcontrol __devinit *ctl_find(struct snd_card *card, const char *name) { - snd_ctl_elem_id_t sid; + struct snd_ctl_elem_id sid; memset(&sid, 0, sizeof(sid)); /* FIXME: strcpy is bad. */ strcpy(sid.name, name); @@ -407,9 +412,9 @@ static snd_kcontrol_t __devinit *ctl_find(snd_card_t *card, const char *name) return snd_ctl_find_id(card, &sid); } -static int __devinit rename_ctl(snd_card_t *card, const char *src, const char *dst) +static int __devinit rename_ctl(struct snd_card *card, const char *src, const char *dst) { - snd_kcontrol_t *kctl = ctl_find(card, src); + struct snd_kcontrol *kctl = ctl_find(card, src); if (kctl) { strcpy(kctl->id.name, dst); return 0; @@ -417,10 +422,10 @@ static int __devinit rename_ctl(snd_card_t *card, const char *src, const char *d return -ENOENT; } -int __devinit snd_ca0106_mixer(ca0106_t *emu) +int __devinit snd_ca0106_mixer(struct snd_ca0106 *emu) { int i, err; - snd_card_t *card = emu->card; + struct snd_card *card = emu->card; char **c; static char *ca0106_remove_ctls[] = { "Master Mono Playback Switch", diff --git a/sound/pci/ca0106/ca0106_proc.c b/sound/pci/ca0106/ca0106_proc.c index 1c9cc821d1b..94b62259938 100644 --- a/sound/pci/ca0106/ca0106_proc.c +++ b/sound/pci/ca0106/ca0106_proc.c @@ -97,7 +97,7 @@ static struct snd_ca0106_category_str snd_ca0106_con_category[] = { }; -static void snd_ca0106_proc_dump_iec958( snd_info_buffer_t *buffer, u32 value) +static void snd_ca0106_proc_dump_iec958( struct snd_info_buffer *buffer, u32 value) { int i; u32 status[4]; @@ -271,10 +271,10 @@ static void snd_ca0106_proc_dump_iec958( snd_info_buffer_t *buffer, u32 value) } } -static void snd_ca0106_proc_iec958(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_iec958(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; u32 value; value = snd_ca0106_ptr_read(emu, SAMPLE_RATE_TRACKER_STATUS, 0); @@ -293,10 +293,10 @@ static void snd_ca0106_proc_iec958(snd_info_entry_t *entry, snd_iprintf(buffer, "\n"); } -static void snd_ca0106_proc_reg_write32(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_reg_write32(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; unsigned long flags; char line[64]; u32 reg, val; @@ -311,10 +311,10 @@ static void snd_ca0106_proc_reg_write32(snd_info_entry_t *entry, } } -static void snd_ca0106_proc_reg_read32(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_reg_read32(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; unsigned long value; unsigned long flags; int i; @@ -327,10 +327,10 @@ static void snd_ca0106_proc_reg_read32(snd_info_entry_t *entry, } } -static void snd_ca0106_proc_reg_read16(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_reg_read16(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; unsigned int value; unsigned long flags; int i; @@ -343,10 +343,10 @@ static void snd_ca0106_proc_reg_read16(snd_info_entry_t *entry, } } -static void snd_ca0106_proc_reg_read8(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_reg_read8(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; unsigned int value; unsigned long flags; int i; @@ -359,10 +359,10 @@ static void snd_ca0106_proc_reg_read8(snd_info_entry_t *entry, } } -static void snd_ca0106_proc_reg_read1(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_reg_read1(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; unsigned long value; int i,j; @@ -377,10 +377,10 @@ static void snd_ca0106_proc_reg_read1(snd_info_entry_t *entry, } } -static void snd_ca0106_proc_reg_read2(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_reg_read2(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; unsigned long value; int i,j; @@ -395,10 +395,10 @@ static void snd_ca0106_proc_reg_read2(snd_info_entry_t *entry, } } -static void snd_ca0106_proc_reg_write(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_reg_write(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; char line[64]; unsigned int reg, channel_id , val; while (!snd_info_get_line(buffer, line, sizeof(line))) { @@ -409,10 +409,10 @@ static void snd_ca0106_proc_reg_write(snd_info_entry_t *entry, } } -static void snd_ca0106_proc_i2c_write(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ca0106_proc_i2c_write(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ca0106_t *emu = entry->private_data; + struct snd_ca0106 *emu = entry->private_data; char line[64]; unsigned int reg, val; while (!snd_info_get_line(buffer, line, sizeof(line))) { @@ -424,9 +424,9 @@ static void snd_ca0106_proc_i2c_write(snd_info_entry_t *entry, } } -int __devinit snd_ca0106_proc_init(ca0106_t * emu) +int __devinit snd_ca0106_proc_init(struct snd_ca0106 * emu) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if(! snd_card_proc_new(emu->card, "iec958", &entry)) snd_info_set_text_ops(entry, emu, 1024, snd_ca0106_proc_iec958); diff --git a/sound/pci/ca0106/ca_midi.c b/sound/pci/ca0106/ca_midi.c index 2e08b27b834..2e6eab1f118 100644 --- a/sound/pci/ca0106/ca_midi.c +++ b/sound/pci/ca0106/ca_midi.c @@ -40,18 +40,20 @@ #define ca_midi_input_avail(midi) (!(ca_midi_read_stat(midi) & midi->input_avail)) #define ca_midi_output_ready(midi) (!(ca_midi_read_stat(midi) & midi->output_ready)) -static void ca_midi_clear_rx(ca_midi_t *midi) +static void ca_midi_clear_rx(struct snd_ca_midi *midi) { int timeout = 100000; for (; timeout > 0 && ca_midi_input_avail(midi); timeout--) ca_midi_read_data(midi); #ifdef CONFIG_SND_DEBUG if (timeout <= 0) - snd_printk(KERN_ERR "ca_midi_clear_rx: timeout (status = 0x%x)\n", ca_midi_read_stat(midi)); + snd_printk(KERN_ERR "ca_midi_clear_rx: timeout (status = 0x%x)\n", + ca_midi_read_stat(midi)); #endif } -static void ca_midi_interrupt(ca_midi_t *midi, unsigned int status) { +static void ca_midi_interrupt(struct snd_ca_midi *midi, unsigned int status) +{ unsigned char byte; if (midi->rmidi == NULL) { @@ -86,7 +88,7 @@ static void ca_midi_interrupt(ca_midi_t *midi, unsigned int status) { } -static void ca_midi_cmd(ca_midi_t *midi, unsigned char cmd, int ack) +static void ca_midi_cmd(struct snd_ca_midi *midi, unsigned char cmd, int ack) { unsigned long flags; int timeout, ok; @@ -119,9 +121,9 @@ static void ca_midi_cmd(ca_midi_t *midi, unsigned char cmd, int ack) ca_midi_read_data(midi)); } -static int ca_midi_input_open(snd_rawmidi_substream_t * substream) +static int ca_midi_input_open(struct snd_rawmidi_substream *substream) { - ca_midi_t *midi = (ca_midi_t *)substream->rmidi->private_data; + struct snd_ca_midi *midi = substream->rmidi->private_data; unsigned long flags; snd_assert(midi->dev_id, return -ENXIO); @@ -138,9 +140,9 @@ static int ca_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int ca_midi_output_open(snd_rawmidi_substream_t * substream) +static int ca_midi_output_open(struct snd_rawmidi_substream *substream) { - ca_midi_t *midi = (ca_midi_t *)substream->rmidi->private_data; + struct snd_ca_midi *midi = substream->rmidi->private_data; unsigned long flags; snd_assert(midi->dev_id, return -ENXIO); @@ -157,9 +159,9 @@ static int ca_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int ca_midi_input_close(snd_rawmidi_substream_t * substream) +static int ca_midi_input_close(struct snd_rawmidi_substream *substream) { - ca_midi_t *midi = (ca_midi_t *)substream->rmidi->private_data; + struct snd_ca_midi *midi = substream->rmidi->private_data; unsigned long flags; snd_assert(midi->dev_id, return -ENXIO); @@ -176,9 +178,9 @@ static int ca_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int ca_midi_output_close(snd_rawmidi_substream_t * substream) +static int ca_midi_output_close(struct snd_rawmidi_substream *substream) { - ca_midi_t *midi = (ca_midi_t *)substream->rmidi->private_data; + struct snd_ca_midi *midi = substream->rmidi->private_data; unsigned long flags; snd_assert(midi->dev_id, return -ENXIO); @@ -197,9 +199,9 @@ static int ca_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static void ca_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void ca_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { - ca_midi_t *midi = (ca_midi_t *)substream->rmidi->private_data; + struct snd_ca_midi *midi = substream->rmidi->private_data; snd_assert(midi->dev_id, return); if (up) { @@ -209,9 +211,9 @@ static void ca_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) } } -static void ca_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void ca_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { - ca_midi_t *midi = (ca_midi_t *)substream->rmidi->private_data; + struct snd_ca_midi *midi = substream->rmidi->private_data; unsigned long flags; snd_assert(midi->dev_id, return); @@ -246,21 +248,22 @@ static void ca_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) } } -static snd_rawmidi_ops_t ca_midi_output = +static struct snd_rawmidi_ops ca_midi_output = { .open = ca_midi_output_open, .close = ca_midi_output_close, .trigger = ca_midi_output_trigger, }; -static snd_rawmidi_ops_t ca_midi_input = +static struct snd_rawmidi_ops ca_midi_input = { .open = ca_midi_input_open, .close = ca_midi_input_close, .trigger = ca_midi_input_trigger, }; -static void ca_midi_free(ca_midi_t *midi) { +static void ca_midi_free(struct snd_ca_midi *midi) +{ midi->interrupt = NULL; midi->interrupt_enable = NULL; midi->interrupt_disable = NULL; @@ -271,14 +274,14 @@ static void ca_midi_free(ca_midi_t *midi) { midi->rmidi = NULL; } -static void ca_rmidi_free(snd_rawmidi_t *rmidi) +static void ca_rmidi_free(struct snd_rawmidi *rmidi) { - ca_midi_free((ca_midi_t *)rmidi->private_data); + ca_midi_free(rmidi->private_data); } -int __devinit ca_midi_init(void *dev_id, ca_midi_t *midi, int device, char *name) +int __devinit ca_midi_init(void *dev_id, struct snd_ca_midi *midi, int device, char *name) { - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; int err; if ((err = snd_rawmidi_new(midi->get_dev_id_card(midi->dev_id), name, device, 1, 1, &rmidi)) < 0) diff --git a/sound/pci/ca0106/ca_midi.h b/sound/pci/ca0106/ca_midi.h index b452cec2bf5..b72c0933bd2 100644 --- a/sound/pci/ca0106/ca_midi.h +++ b/sound/pci/ca0106/ca_midi.h @@ -29,12 +29,11 @@ #define CA_MIDI_MODE_INPUT MPU401_MODE_INPUT #define CA_MIDI_MODE_OUTPUT MPU401_MODE_OUTPUT -typedef struct ca_midi ca_midi_t; -struct ca_midi { +struct snd_ca_midi { - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *substream_input; - snd_rawmidi_substream_t *substream_output; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *substream_input; + struct snd_rawmidi_substream *substream_output; void *dev_id; @@ -52,18 +51,16 @@ struct ca_midi { int input_avail, output_ready; int ack, reset, enter_uart; - void (*interrupt)(ca_midi_t *midi, unsigned int status); - void (*interrupt_enable)(ca_midi_t *midi, int intr); - void (*interrupt_disable)(ca_midi_t *midi, int intr); + void (*interrupt)(struct snd_ca_midi *midi, unsigned int status); + void (*interrupt_enable)(struct snd_ca_midi *midi, int intr); + void (*interrupt_disable)(struct snd_ca_midi *midi, int intr); - unsigned char (*read)(ca_midi_t *midi, int idx); - void (*write)(ca_midi_t *midi, int data, int idx); + unsigned char (*read)(struct snd_ca_midi *midi, int idx); + void (*write)(struct snd_ca_midi *midi, int data, int idx); /* get info from dev_id */ - snd_card_t *(*get_dev_id_card)(void *dev_id); + struct snd_card *(*get_dev_id_card)(void *dev_id); int (*get_dev_id_port)(void *dev_id); }; -int __devinit ca_midi_init(void *card, ca_midi_t *midi, int device, char *name); - - +int ca_midi_init(void *card, struct snd_ca_midi *midi, int device, char *name); -- cgit v1.2.3-70-g09d2 From d1fabd9cbc2f17b525a39adc16331443dddbb15b Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:56:03 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ALI5451 Modules: ALI5451 driver Remove xxx_t typedefs from the PCI ALI5451 driver. Signed-off-by: Takashi Iwai --- sound/pci/ali5451/ali5451.c | 368 ++++++++++++++++++++++---------------------- 1 file changed, 183 insertions(+), 185 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index 21be4c26ebc..2538cda2521 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -170,10 +170,10 @@ module_param(enable, bool, 0444); #define MAX_CODECS 2 -typedef struct snd_stru_ali ali_t; -typedef struct snd_ali_stru_voice snd_ali_voice_t; +struct snd_ali; +struct snd_ali_voice; -typedef struct snd_ali_channel_control { +struct snd_ali_channel_control { // register data struct REGDATA { unsigned int start; @@ -192,9 +192,9 @@ typedef struct snd_ali_channel_control { unsigned int ac97write; } regs; -} snd_ali_channel_control_t; +}; -struct snd_ali_stru_voice { +struct snd_ali_voice { unsigned int number; unsigned int use: 1, pcm: 1, @@ -203,9 +203,9 @@ struct snd_ali_stru_voice { synth: 1; /* PCM data */ - ali_t *codec; - snd_pcm_substream_t *substream; - snd_ali_voice_t *extra; + struct snd_ali *codec; + struct snd_pcm_substream *substream; + struct snd_ali_voice *extra; unsigned int running: 1; @@ -219,28 +219,28 @@ struct snd_ali_stru_voice { }; -typedef struct snd_stru_alidev { +struct snd_alidev { - snd_ali_voice_t voices[ALI_CHANNELS]; + struct snd_ali_voice voices[ALI_CHANNELS]; unsigned int chcnt; /* num of opened channels */ unsigned int chmap; /* bitmap for opened channels */ unsigned int synthcount; -} alidev_t; +}; #ifdef CONFIG_PM #define ALI_GLOBAL_REGS 56 #define ALI_CHANNEL_REGS 8 -typedef struct snd_ali_image { +struct snd_ali_image { unsigned long regs[ALI_GLOBAL_REGS]; unsigned long channel_regs[ALI_CHANNELS][ALI_CHANNEL_REGS]; -} ali_image_t; +}; #endif -struct snd_stru_ali { +struct snd_ali { unsigned long irq; unsigned long port; unsigned char revision; @@ -252,10 +252,10 @@ struct snd_stru_ali { struct pci_dev *pci_m1533; struct pci_dev *pci_m7101; - snd_card_t *card; - snd_pcm_t *pcm[MAX_CODECS]; - alidev_t synth; - snd_ali_channel_control_t chregs; + struct snd_card *card; + struct snd_pcm *pcm[MAX_CODECS]; + struct snd_alidev synth; + struct snd_ali_channel_control chregs; /* S/PDIF Mask */ unsigned int spdif_mask; @@ -265,8 +265,8 @@ struct snd_stru_ali { unsigned int num_of_codecs; - ac97_bus_t *ac97_bus; - ac97_t *ac97[MAX_CODECS]; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97[MAX_CODECS]; unsigned short ac97_ext_id; unsigned short ac97_ext_status; @@ -274,7 +274,7 @@ struct snd_stru_ali { spinlock_t voice_alloc; #ifdef CONFIG_PM - ali_image_t *image; + struct snd_ali_image *image; #endif }; @@ -284,9 +284,9 @@ static struct pci_device_id snd_ali_ids[] = { }; MODULE_DEVICE_TABLE(pci, snd_ali_ids); -static void snd_ali_clear_voices(ali_t *, unsigned int, unsigned int); -static unsigned short snd_ali_codec_peek(ali_t *, int, unsigned short); -static void snd_ali_codec_poke(ali_t *, int, unsigned short, unsigned short); +static void snd_ali_clear_voices(struct snd_ali *, unsigned int, unsigned int); +static unsigned short snd_ali_codec_peek(struct snd_ali *, int, unsigned short); +static void snd_ali_codec_poke(struct snd_ali *, int, unsigned short, unsigned short); /* * Debug Part @@ -294,7 +294,7 @@ static void snd_ali_codec_poke(ali_t *, int, unsigned short, unsigned short); #ifdef ALI_DEBUG -static void ali_read_regs(ali_t *codec, int channel) +static void ali_read_regs(struct snd_ali *codec, int channel) { int i,j; unsigned int dwVal; @@ -344,7 +344,7 @@ static void ali_read_cfg(unsigned int vendor, unsigned deviceid) } pci_dev_put(pci_dev); } -static void ali_read_ac97regs(ali_t *codec, int secondary) +static void ali_read_ac97regs(struct snd_ali *codec, int secondary) { unsigned short i,j; unsigned short wVal; @@ -373,20 +373,20 @@ static void ali_read_ac97regs(ali_t *codec, int secondary) * AC97 ACCESS */ -static inline unsigned int snd_ali_5451_peek(ali_t *codec, +static inline unsigned int snd_ali_5451_peek(struct snd_ali *codec, unsigned int port ) { return (unsigned int)inl(ALI_REG(codec, port)); } -static inline void snd_ali_5451_poke( ali_t *codec, +static inline void snd_ali_5451_poke( struct snd_ali *codec, unsigned int port, unsigned int val ) { outl((unsigned int)val, ALI_REG(codec, port)); } -static int snd_ali_codec_ready( ali_t *codec, +static int snd_ali_codec_ready( struct snd_ali *codec, unsigned int port ) { unsigned long end_time; @@ -404,7 +404,7 @@ static int snd_ali_codec_ready( ali_t *codec, return -EIO; } -static int snd_ali_stimer_ready(ali_t *codec) +static int snd_ali_stimer_ready(struct snd_ali *codec) { unsigned long end_time; unsigned long dwChk1,dwChk2; @@ -423,7 +423,7 @@ static int snd_ali_stimer_ready(ali_t *codec) return -EIO; } -static void snd_ali_codec_poke(ali_t *codec,int secondary, +static void snd_ali_codec_poke(struct snd_ali *codec,int secondary, unsigned short reg, unsigned short val) { @@ -452,7 +452,7 @@ static void snd_ali_codec_poke(ali_t *codec,int secondary, return ; } -static unsigned short snd_ali_codec_peek( ali_t *codec, +static unsigned short snd_ali_codec_peek( struct snd_ali *codec, int secondary, unsigned short reg) { @@ -485,11 +485,11 @@ static unsigned short snd_ali_codec_peek( ali_t *codec, return (snd_ali_5451_peek(codec, port) & 0xffff0000)>>16; } -static void snd_ali_codec_write(ac97_t *ac97, +static void snd_ali_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val ) { - ali_t *codec = ac97->private_data; + struct snd_ali *codec = ac97->private_data; snd_ali_printk("codec_write: reg=%xh data=%xh.\n", reg, val); if(reg == AC97_GPIO_STATUS) { @@ -502,9 +502,9 @@ static void snd_ali_codec_write(ac97_t *ac97, } -static unsigned short snd_ali_codec_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_ali_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - ali_t *codec = ac97->private_data; + struct snd_ali *codec = ac97->private_data; snd_ali_printk("codec_read reg=%xh.\n", reg); return (snd_ali_codec_peek(codec, ac97->num, reg)); @@ -514,7 +514,7 @@ static unsigned short snd_ali_codec_read(ac97_t *ac97, unsigned short reg) * AC97 Reset */ -static int snd_ali_reset_5451(ali_t *codec) +static int snd_ali_reset_5451(struct snd_ali *codec) { struct pci_dev *pci_dev = NULL; unsigned short wCount, wReg; @@ -552,7 +552,7 @@ static int snd_ali_reset_5451(ali_t *codec) #ifdef CODEC_RESET -static int snd_ali_reset_codec(ali_t *codec) +static int snd_ali_reset_codec(struct snd_ali *codec) { struct pci_dev *pci_dev = NULL; unsigned char bVal = 0; @@ -593,7 +593,7 @@ static int snd_ali_reset_codec(ali_t *codec) * ALI 5451 Controller */ -static void snd_ali_enable_special_channel(ali_t *codec, unsigned int channel) +static void snd_ali_enable_special_channel(struct snd_ali *codec, unsigned int channel) { unsigned long dwVal = 0; @@ -602,7 +602,7 @@ static void snd_ali_enable_special_channel(ali_t *codec, unsigned int channel) outl(dwVal, ALI_REG(codec,ALI_GLOBAL_CONTROL)); } -static void snd_ali_disable_special_channel(ali_t *codec, unsigned int channel) +static void snd_ali_disable_special_channel(struct snd_ali *codec, unsigned int channel) { unsigned long dwVal = 0; @@ -611,7 +611,7 @@ static void snd_ali_disable_special_channel(ali_t *codec, unsigned int channel) outl(dwVal, ALI_REG(codec,ALI_GLOBAL_CONTROL)); } -static void snd_ali_enable_address_interrupt(ali_t * codec) +static void snd_ali_enable_address_interrupt(struct snd_ali * codec) { unsigned int gc; @@ -621,7 +621,7 @@ static void snd_ali_enable_address_interrupt(ali_t * codec) outl( gc, ALI_REG(codec, ALI_GC_CIR)); } -static void snd_ali_disable_address_interrupt(ali_t * codec) +static void snd_ali_disable_address_interrupt(struct snd_ali * codec) { unsigned int gc; @@ -632,10 +632,10 @@ static void snd_ali_disable_address_interrupt(ali_t * codec) } #if 0 // not used -static void snd_ali_enable_voice_irq(ali_t *codec, unsigned int channel) +static void snd_ali_enable_voice_irq(struct snd_ali *codec, unsigned int channel) { unsigned int mask; - snd_ali_channel_control_t *pchregs = &(codec->chregs); + struct snd_ali_channel_control *pchregs = &(codec->chregs); snd_ali_printk("enable_voice_irq channel=%d\n",channel); @@ -646,10 +646,10 @@ static void snd_ali_enable_voice_irq(ali_t *codec, unsigned int channel) } #endif -static void snd_ali_disable_voice_irq(ali_t *codec, unsigned int channel) +static void snd_ali_disable_voice_irq(struct snd_ali *codec, unsigned int channel) { unsigned int mask; - snd_ali_channel_control_t *pchregs = &(codec->chregs); + struct snd_ali_channel_control *pchregs = &(codec->chregs); snd_ali_printk("disable_voice_irq channel=%d\n",channel); @@ -659,7 +659,7 @@ static void snd_ali_disable_voice_irq(ali_t *codec, unsigned int channel) outl(pchregs->data.ainten,ALI_REG(codec,pchregs->regs.ainten)); } -static int snd_ali_alloc_pcm_channel(ali_t *codec, int channel) +static int snd_ali_alloc_pcm_channel(struct snd_ali *codec, int channel) { unsigned int idx = channel & 0x1f; @@ -677,7 +677,7 @@ static int snd_ali_alloc_pcm_channel(ali_t *codec, int channel) return -1; } -static int snd_ali_find_free_channel(ali_t * codec, int rec) +static int snd_ali_find_free_channel(struct snd_ali * codec, int rec) { int idx; int result = -1; @@ -719,7 +719,7 @@ static int snd_ali_find_free_channel(ali_t * codec, int rec) return -1; } -static void snd_ali_free_channel_pcm(ali_t *codec, int channel) +static void snd_ali_free_channel_pcm(struct snd_ali *codec, int channel) { unsigned int idx = channel & 0x0000001f; @@ -738,7 +738,7 @@ static void snd_ali_free_channel_pcm(ali_t *codec, int channel) } #if 0 // not used -static void snd_ali_start_voice(ali_t * codec, unsigned int channel) +static void snd_ali_start_voice(struct snd_ali * codec, unsigned int channel) { unsigned int mask = 1 << (channel & 0x1f); @@ -747,7 +747,7 @@ static void snd_ali_start_voice(ali_t * codec, unsigned int channel) } #endif -static void snd_ali_stop_voice(ali_t * codec, unsigned int channel) +static void snd_ali_stop_voice(struct snd_ali * codec, unsigned int channel) { unsigned int mask = 1 << (channel & 0x1f); @@ -759,7 +759,7 @@ static void snd_ali_stop_voice(ali_t * codec, unsigned int channel) * S/PDIF Part */ -static void snd_ali_delay(ali_t *codec,int interval) +static void snd_ali_delay(struct snd_ali *codec,int interval) { unsigned long begintimer,currenttimer; @@ -773,7 +773,7 @@ static void snd_ali_delay(ali_t *codec,int interval) } } -static void snd_ali_detect_spdif_rate(ali_t *codec) +static void snd_ali_detect_spdif_rate(struct snd_ali *codec) { u16 wval = 0; u16 count = 0; @@ -827,7 +827,7 @@ static void snd_ali_detect_spdif_rate(ali_t *codec) } } -static unsigned int snd_ali_get_spdif_in_rate(ali_t *codec) +static unsigned int snd_ali_get_spdif_in_rate(struct snd_ali *codec) { u32 dwRate = 0; u8 bval = 0; @@ -849,7 +849,7 @@ static unsigned int snd_ali_get_spdif_in_rate(ali_t *codec) return dwRate; } -static void snd_ali_enable_spdif_in(ali_t *codec) +static void snd_ali_enable_spdif_in(struct snd_ali *codec) { unsigned int dwVal; @@ -864,7 +864,7 @@ static void snd_ali_enable_spdif_in(ali_t *codec) snd_ali_enable_special_channel(codec, ALI_SPDIF_IN_CHANNEL); } -static void snd_ali_disable_spdif_in(ali_t *codec) +static void snd_ali_disable_spdif_in(struct snd_ali *codec) { unsigned int dwVal; @@ -876,7 +876,7 @@ static void snd_ali_disable_spdif_in(ali_t *codec) } -static void snd_ali_set_spdif_out_rate(ali_t *codec, unsigned int rate) +static void snd_ali_set_spdif_out_rate(struct snd_ali *codec, unsigned int rate) { unsigned char bVal; unsigned int dwRate = 0; @@ -897,7 +897,7 @@ static void snd_ali_set_spdif_out_rate(ali_t *codec, unsigned int rate) outw(rate | 0x10, ALI_REG(codec, ALI_SPDIF_CS + 2)); } -static void snd_ali_enable_spdif_out(ali_t *codec) +static void snd_ali_enable_spdif_out(struct snd_ali *codec) { unsigned short wVal; unsigned char bVal; @@ -933,7 +933,7 @@ static void snd_ali_enable_spdif_out(ali_t *codec) } } -static void snd_ali_enable_spdif_chnout(ali_t *codec) +static void snd_ali_enable_spdif_chnout(struct snd_ali *codec) { unsigned short wVal = 0; @@ -951,7 +951,7 @@ static void snd_ali_enable_spdif_chnout(ali_t *codec) snd_ali_enable_special_channel(codec,ALI_SPDIF_OUT_CHANNEL); } -static void snd_ali_disable_spdif_chnout(ali_t *codec) +static void snd_ali_disable_spdif_chnout(struct snd_ali *codec) { unsigned short wVal = 0; wVal = inw(ALI_REG(codec, ALI_GLOBAL_CONTROL)); @@ -961,7 +961,7 @@ static void snd_ali_disable_spdif_chnout(ali_t *codec) snd_ali_enable_special_channel(codec, ALI_SPDIF_OUT_CHANNEL); } -static void snd_ali_disable_spdif_out(ali_t *codec) +static void snd_ali_disable_spdif_out(struct snd_ali *codec) { unsigned char bVal; @@ -971,11 +971,11 @@ static void snd_ali_disable_spdif_out(ali_t *codec) snd_ali_disable_spdif_chnout(codec); } -static void snd_ali_update_ptr(ali_t *codec,int channel) +static void snd_ali_update_ptr(struct snd_ali *codec,int channel) { - snd_ali_voice_t *pvoice = NULL; - snd_pcm_runtime_t *runtime; - snd_ali_channel_control_t *pchregs = NULL; + struct snd_ali_voice *pvoice = NULL; + struct snd_pcm_runtime *runtime; + struct snd_ali_channel_control *pchregs = NULL; unsigned int old, mask; #ifdef ALI_DEBUG unsigned int temp, cspf; @@ -1026,11 +1026,11 @@ static void snd_ali_update_ptr(ali_t *codec,int channel) pchregs->data.aint = old & (~mask); } -static void snd_ali_interrupt(ali_t * codec) +static void snd_ali_interrupt(struct snd_ali * codec) { int channel; unsigned int audio_int; - snd_ali_channel_control_t *pchregs = NULL; + struct snd_ali_channel_control *pchregs = NULL; pchregs = &(codec->chregs); audio_int = inl(ALI_REG(codec, ALI_MISCINT)); @@ -1050,7 +1050,7 @@ static irqreturn_t snd_ali_card_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - ali_t *codec = dev_id; + struct snd_ali *codec = dev_id; if (codec == NULL) return IRQ_NONE; @@ -1059,9 +1059,9 @@ static irqreturn_t snd_ali_card_interrupt(int irq, } -static snd_ali_voice_t *snd_ali_alloc_voice(ali_t * codec, int type, int rec, int channel) +static struct snd_ali_voice *snd_ali_alloc_voice(struct snd_ali * codec, int type, int rec, int channel) { - snd_ali_voice_t *pvoice = NULL; + struct snd_ali_voice *pvoice = NULL; int idx; snd_ali_printk("alloc_voice: type=%d rec=%d\n",type,rec); @@ -1088,7 +1088,7 @@ static snd_ali_voice_t *snd_ali_alloc_voice(ali_t * codec, int type, int rec, in } -static void snd_ali_free_voice(ali_t * codec, snd_ali_voice_t *pvoice) +static void snd_ali_free_voice(struct snd_ali * codec, struct snd_ali_voice *pvoice) { void (*private_free)(void *); void *private_data; @@ -1113,7 +1113,7 @@ static void snd_ali_free_voice(ali_t * codec, snd_ali_voice_t *pvoice) } -static void snd_ali_clear_voices(ali_t * codec, +static void snd_ali_clear_voices(struct snd_ali * codec, unsigned int v_min, unsigned int v_max) { @@ -1125,7 +1125,7 @@ static void snd_ali_clear_voices(ali_t * codec, } } -static void snd_ali_write_voice_regs(ali_t * codec, +static void snd_ali_write_voice_regs(struct snd_ali * codec, unsigned int Channel, unsigned int LBA, unsigned int CSO, @@ -1192,10 +1192,10 @@ static unsigned int snd_ali_convert_rate(unsigned int rate, int rec) return delta; } -static unsigned int snd_ali_control_mode(snd_pcm_substream_t *substream) +static unsigned int snd_ali_control_mode(struct snd_pcm_substream *substream) { unsigned int CTRL; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; /* set ctrl mode CTRL default: 8-bit (unsigned) mono, loop mode enabled @@ -1214,21 +1214,21 @@ static unsigned int snd_ali_control_mode(snd_pcm_substream_t *substream) * PCM part */ -static int snd_ali_ioctl(snd_pcm_substream_t * substream, +static int snd_ali_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg) { return snd_pcm_lib_ioctl(substream, cmd, arg); } -static int snd_ali_trigger(snd_pcm_substream_t *substream, +static int snd_ali_trigger(struct snd_pcm_substream *substream, int cmd) { - ali_t *codec = snd_pcm_substream_chip(substream); + struct snd_ali *codec = snd_pcm_substream_chip(substream); struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; unsigned int what, whati, capture_flag; - snd_ali_voice_t *pvoice = NULL, *evoice = NULL; + struct snd_ali_voice *pvoice = NULL, *evoice = NULL; unsigned int val; int do_start; @@ -1246,8 +1246,8 @@ static int snd_ali_trigger(snd_pcm_substream_t *substream, what = whati = capture_flag = 0; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); - if ((ali_t *) snd_pcm_substream_chip(s) == codec) { - pvoice = (snd_ali_voice_t *) s->runtime->private_data; + if ((struct snd_ali *) snd_pcm_substream_chip(s) == codec) { + pvoice = s->runtime->private_data; evoice = pvoice->extra; what |= 1 << (pvoice->number & 0x1f); if (evoice == NULL) { @@ -1290,13 +1290,13 @@ static int snd_ali_trigger(snd_pcm_substream_t *substream, return 0; } -static int snd_ali_playback_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ali_playback_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; - snd_ali_voice_t *evoice = pvoice->extra; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ali_voice *pvoice = runtime->private_data; + struct snd_ali_voice *evoice = pvoice->extra; int err; err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); if (err < 0) return err; @@ -1321,12 +1321,12 @@ static int snd_ali_playback_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_ali_playback_hw_free(snd_pcm_substream_t * substream) +static int snd_ali_playback_hw_free(struct snd_pcm_substream *substream) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; - snd_ali_voice_t *evoice = pvoice ? pvoice->extra : NULL; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ali_voice *pvoice = runtime->private_data; + struct snd_ali_voice *evoice = pvoice ? pvoice->extra : NULL; snd_pcm_lib_free_pages(substream); if (evoice != NULL) { @@ -1336,23 +1336,23 @@ static int snd_ali_playback_hw_free(snd_pcm_substream_t * substream) return 0; } -static int snd_ali_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ali_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_ali_hw_free(snd_pcm_substream_t * substream) +static int snd_ali_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static int snd_ali_playback_prepare(snd_pcm_substream_t * substream) +static int snd_ali_playback_prepare(struct snd_pcm_substream *substream) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; - snd_ali_voice_t *evoice = pvoice->extra; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ali_voice *pvoice = runtime->private_data; + struct snd_ali_voice *evoice = pvoice->extra; unsigned int LBA; unsigned int Delta; @@ -1435,11 +1435,11 @@ static int snd_ali_playback_prepare(snd_pcm_substream_t * substream) } -static int snd_ali_prepare(snd_pcm_substream_t * substream) +static int snd_ali_prepare(struct snd_pcm_substream *substream) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ali_voice *pvoice = runtime->private_data; unsigned int LBA; unsigned int Delta; unsigned int ESO; @@ -1522,11 +1522,11 @@ static int snd_ali_prepare(snd_pcm_substream_t * substream) } -static snd_pcm_uframes_t snd_ali_playback_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_ali_playback_pointer(struct snd_pcm_substream *substream) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ali_voice *pvoice = runtime->private_data; unsigned int cso; spin_lock(&codec->reg_lock); @@ -1543,11 +1543,11 @@ static snd_pcm_uframes_t snd_ali_playback_pointer(snd_pcm_substream_t *substream } -static snd_pcm_uframes_t snd_ali_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_ali_pointer(struct snd_pcm_substream *substream) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ali_voice *pvoice = runtime->private_data; unsigned int cso; spin_lock(&codec->reg_lock); @@ -1562,7 +1562,7 @@ static snd_pcm_uframes_t snd_ali_pointer(snd_pcm_substream_t *substream) return cso; } -static snd_pcm_hardware_t snd_ali_playback = +static struct snd_pcm_hardware snd_ali_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1588,7 +1588,7 @@ static snd_pcm_hardware_t snd_ali_playback = * Capture support device description */ -static snd_pcm_hardware_t snd_ali_capture = +static struct snd_pcm_hardware snd_ali_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1610,10 +1610,10 @@ static snd_pcm_hardware_t snd_ali_capture = .fifo_size = 0, }; -static void snd_ali_pcm_free_substream(snd_pcm_runtime_t *runtime) +static void snd_ali_pcm_free_substream(struct snd_pcm_runtime *runtime) { - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) runtime->private_data; - ali_t *codec; + struct snd_ali_voice *pvoice = runtime->private_data; + struct snd_ali *codec; if (pvoice) { codec = pvoice->codec; @@ -1621,12 +1621,12 @@ static void snd_ali_pcm_free_substream(snd_pcm_runtime_t *runtime) } } -static int snd_ali_open(snd_pcm_substream_t * substream, int rec, int channel, - snd_pcm_hardware_t *phw) +static int snd_ali_open(struct snd_pcm_substream *substream, int rec, int channel, + struct snd_pcm_hardware *phw) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - snd_ali_voice_t *pvoice; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ali_voice *pvoice; pvoice = snd_ali_alloc_voice(codec, SNDRV_ALI_VOICE_TYPE_PCM, rec, channel); if (pvoice == NULL) @@ -1642,32 +1642,32 @@ static int snd_ali_open(snd_pcm_substream_t * substream, int rec, int channel, return 0; } -static int snd_ali_playback_open(snd_pcm_substream_t * substream) +static int snd_ali_playback_open(struct snd_pcm_substream *substream) { return snd_ali_open(substream, 0, -1, &snd_ali_playback); } -static int snd_ali_capture_open(snd_pcm_substream_t * substream) +static int snd_ali_capture_open(struct snd_pcm_substream *substream) { return snd_ali_open(substream, 1, -1, &snd_ali_capture); } -static int snd_ali_playback_close(snd_pcm_substream_t * substream) +static int snd_ali_playback_close(struct snd_pcm_substream *substream) { return 0; } -static int snd_ali_close(snd_pcm_substream_t * substream) +static int snd_ali_close(struct snd_pcm_substream *substream) { - ali_t *codec = snd_pcm_substream_chip(substream); - snd_ali_voice_t *pvoice = (snd_ali_voice_t *) substream->runtime->private_data; + struct snd_ali *codec = snd_pcm_substream_chip(substream); + struct snd_ali_voice *pvoice = substream->runtime->private_data; snd_ali_disable_special_channel(codec,pvoice->number); return 0; } -static snd_pcm_ops_t snd_ali_playback_ops = { +static struct snd_pcm_ops snd_ali_playback_ops = { .open = snd_ali_playback_open, .close = snd_ali_playback_close, .ioctl = snd_ali_ioctl, @@ -1678,7 +1678,7 @@ static snd_pcm_ops_t snd_ali_playback_ops = { .pointer = snd_ali_playback_pointer, }; -static snd_pcm_ops_t snd_ali_capture_ops = { +static struct snd_pcm_ops snd_ali_capture_ops = { .open = snd_ali_capture_open, .close = snd_ali_close, .ioctl = snd_ali_ioctl, @@ -1693,17 +1693,17 @@ static snd_pcm_ops_t snd_ali_capture_ops = { * Modem PCM */ -static int snd_ali_modem_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ali_modem_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - ali_t *chip = snd_pcm_substream_chip(substream); + struct snd_ali *chip = snd_pcm_substream_chip(substream); unsigned int modem_num = chip->num_of_codecs - 1; snd_ac97_write(chip->ac97[modem_num], AC97_LINE1_RATE, params_rate(hw_params)); snd_ac97_write(chip->ac97[modem_num], AC97_LINE1_LEVEL, 0); return snd_ali_hw_params(substream, hw_params); } -static snd_pcm_hardware_t snd_ali_modem = +static struct snd_pcm_hardware snd_ali_modem = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1724,10 +1724,10 @@ static snd_pcm_hardware_t snd_ali_modem = .fifo_size = 0, }; -static int snd_ali_modem_open(snd_pcm_substream_t * substream, int rec, int channel) +static int snd_ali_modem_open(struct snd_pcm_substream *substream, int rec, int channel) { static unsigned int rates [] = {8000,9600,12000,16000}; - static snd_pcm_hw_constraint_list_t hw_constraint_rates = { + static struct snd_pcm_hw_constraint_list hw_constraint_rates = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, @@ -1739,17 +1739,17 @@ static int snd_ali_modem_open(snd_pcm_substream_t * substream, int rec, int chan SNDRV_PCM_HW_PARAM_RATE, &hw_constraint_rates); } -static int snd_ali_modem_playback_open(snd_pcm_substream_t * substream) +static int snd_ali_modem_playback_open(struct snd_pcm_substream *substream) { return snd_ali_modem_open(substream, 0, ALI_MODEM_OUT_CHANNEL); } -static int snd_ali_modem_capture_open(snd_pcm_substream_t * substream) +static int snd_ali_modem_capture_open(struct snd_pcm_substream *substream) { return snd_ali_modem_open(substream, 1, ALI_MODEM_IN_CHANNEL); } -static snd_pcm_ops_t snd_ali_modem_playback_ops = { +static struct snd_pcm_ops snd_ali_modem_playback_ops = { .open = snd_ali_modem_playback_open, .close = snd_ali_close, .ioctl = snd_pcm_lib_ioctl, @@ -1760,7 +1760,7 @@ static snd_pcm_ops_t snd_ali_modem_playback_ops = { .pointer = snd_ali_pointer, }; -static snd_pcm_ops_t snd_ali_modem_capture_ops = { +static struct snd_pcm_ops snd_ali_modem_capture_ops = { .open = snd_ali_modem_capture_open, .close = snd_ali_close, .ioctl = snd_pcm_lib_ioctl, @@ -1776,22 +1776,22 @@ struct ali_pcm_description { char *name; unsigned int playback_num; unsigned int capture_num; - snd_pcm_ops_t *playback_ops; - snd_pcm_ops_t *capture_ops; + struct snd_pcm_ops *playback_ops; + struct snd_pcm_ops *capture_ops; unsigned short class; }; -static void snd_ali_pcm_free(snd_pcm_t *pcm) +static void snd_ali_pcm_free(struct snd_pcm *pcm) { - ali_t *codec = pcm->private_data; + struct snd_ali *codec = pcm->private_data; codec->pcm[pcm->device] = NULL; } -static int __devinit snd_ali_pcm(ali_t * codec, int device, struct ali_pcm_description *desc) +static int __devinit snd_ali_pcm(struct snd_ali * codec, int device, struct ali_pcm_description *desc) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; err = snd_pcm_new(codec->card, desc->name, device, @@ -1823,7 +1823,7 @@ static struct ali_pcm_description ali_pcms[] = { { "ALI 5451 modem", 1, 1, &snd_ali_modem_playback_ops, &snd_ali_modem_capture_ops, SNDRV_PCM_CLASS_MODEM } }; -static int __devinit snd_ali_build_pcms(ali_t *codec) +static int __devinit snd_ali_build_pcms(struct snd_ali *codec) { int i, err; for(i = 0 ; i < codec->num_of_codecs && i < ARRAY_SIZE(ali_pcms) ; i++) @@ -1838,7 +1838,7 @@ static int __devinit snd_ali_build_pcms(ali_t *codec) .info = snd_ali5451_spdif_info, .get = snd_ali5451_spdif_get, \ .put = snd_ali5451_spdif_put, .private_value = value} -static int snd_ali5451_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ali5451_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1847,9 +1847,9 @@ static int snd_ali5451_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_ali5451_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ali5451_spdif_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ali_t *codec = kcontrol->private_data; + struct snd_ali *codec = kcontrol->private_data; unsigned int enable; enable = ucontrol->value.integer.value[0] ? 1 : 0; @@ -1873,9 +1873,9 @@ static int snd_ali5451_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_ali5451_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ali5451_spdif_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ali_t *codec = kcontrol->private_data; + struct snd_ali *codec = kcontrol->private_data; unsigned int change = 0, enable = 0; enable = ucontrol->value.integer.value[0] ? 1 : 0; @@ -1930,7 +1930,7 @@ static int snd_ali5451_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return change; } -static snd_kcontrol_new_t snd_ali5451_mixer_spdif[] __devinitdata = { +static struct snd_kcontrol_new snd_ali5451_mixer_spdif[] __devinitdata = { /* spdif aplayback switch */ /* FIXME: "IEC958 Playback Switch" may conflict with one on ac97_codec */ ALI5451_SPDIF(SNDRV_CTL_NAME_IEC958("Output ",NONE,SWITCH), 0, 0), @@ -1940,24 +1940,24 @@ static snd_kcontrol_new_t snd_ali5451_mixer_spdif[] __devinitdata = { ALI5451_SPDIF(SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), 0, 2) }; -static void snd_ali_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_ali_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - ali_t *codec = bus->private_data; + struct snd_ali *codec = bus->private_data; codec->ac97_bus = NULL; } -static void snd_ali_mixer_free_ac97(ac97_t *ac97) +static void snd_ali_mixer_free_ac97(struct snd_ac97 *ac97) { - ali_t *codec = ac97->private_data; + struct snd_ali *codec = ac97->private_data; codec->ac97[ac97->num] = NULL; } -static int __devinit snd_ali_mixer(ali_t * codec) +static int __devinit snd_ali_mixer(struct snd_ali * codec) { - ac97_template_t ac97; + struct snd_ac97_template ac97; unsigned int idx; int i, err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_ali_codec_write, .read = snd_ali_codec_read, }; @@ -1991,10 +1991,10 @@ static int __devinit snd_ali_mixer(ali_t * codec) } #ifdef CONFIG_PM -static int ali_suspend(snd_card_t *card, pm_message_t state) +static int ali_suspend(struct snd_card *card, pm_message_t state) { - ali_t *chip = card->pm_private_data; - ali_image_t *im; + struct snd_ali *chip = card->pm_private_data; + struct snd_ali_image *im; int i, j; im = chip->image; @@ -2037,10 +2037,10 @@ static int ali_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int ali_resume(snd_card_t *card) +static int ali_resume(struct snd_card *card) { - ali_t *chip = card->pm_private_data; - ali_image_t *im; + struct snd_ali *chip = card->pm_private_data; + struct snd_ali_image *im; int i, j; im = chip->image; @@ -2078,7 +2078,7 @@ static int ali_resume(snd_card_t *card) } #endif /* CONFIG_PM */ -static int snd_ali_free(ali_t * codec) +static int snd_ali_free(struct snd_ali * codec) { if (codec->hw_initialized) snd_ali_disable_address_interrupt(codec); @@ -2098,7 +2098,7 @@ static int snd_ali_free(ali_t * codec) return 0; } -static int snd_ali_chip_init(ali_t *codec) +static int snd_ali_chip_init(struct snd_ali *codec) { unsigned int legacy; unsigned char temp; @@ -2157,22 +2157,22 @@ static int snd_ali_chip_init(ali_t *codec) } /* proc for register dump */ -static void snd_ali_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buf) +static void snd_ali_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buf) { - ali_t *codec = entry->private_data; + struct snd_ali *codec = entry->private_data; int i; for(i = 0 ; i < 256 ; i+= 4) snd_iprintf(buf, "%02x: %08x\n", i, inl(ALI_REG(codec, i))); } -static void __devinit snd_ali_proc_init(ali_t *codec) +static void __devinit snd_ali_proc_init(struct snd_ali *codec) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if(!snd_card_proc_new(codec->card, "ali5451", &entry)) snd_info_set_text_ops(entry, codec, 1024, snd_ali_proc_read); } -static int __devinit snd_ali_resources(ali_t *codec) +static int __devinit snd_ali_resources(struct snd_ali *codec) { int err; @@ -2189,27 +2189,25 @@ static int __devinit snd_ali_resources(ali_t *codec) snd_ali_printk("resouces allocated.\n"); return 0; } -static int snd_ali_dev_free(snd_device_t *device) +static int snd_ali_dev_free(struct snd_device *device) { - ali_t *codec=device->device_data; + struct snd_ali *codec=device->device_data; snd_ali_free(codec); return 0; } -static int __devinit snd_ali_create(snd_card_t * card, +static int __devinit snd_ali_create(struct snd_card *card, struct pci_dev *pci, int pcm_streams, int spdif_support, - ali_t ** r_ali) + struct snd_ali ** r_ali) { - ali_t *codec; + struct snd_ali *codec; int i, err; unsigned short cmdw = 0; struct pci_dev *pci_dev = NULL; - static snd_device_ops_t ops = { - (snd_dev_free_t *)snd_ali_dev_free, - NULL, - NULL + static struct snd_device_ops ops = { + .dev_free = snd_ali_dev_free, }; *r_ali = NULL; @@ -2334,8 +2332,8 @@ static int __devinit snd_ali_create(snd_card_t * card, static int __devinit snd_ali_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - ali_t *codec; + struct snd_card *card; + struct snd_ali *codec; int err; snd_ali_printk("probe ...\n"); -- cgit v1.2.3-70-g09d2 From 66f8df6bdd388d209c38197785148c994c8a738d Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:56:21 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI CS5535 Modules: CS5535 driver Remove xxx_t typedefs from the PCI CS5535 driver. Signed-off-by: Takashi Iwai --- sound/pci/cs5535audio/cs5535audio.c | 74 +++++++++--------- sound/pci/cs5535audio/cs5535audio.h | 44 +++++------ sound/pci/cs5535audio/cs5535audio_pcm.c | 128 ++++++++++++++++---------------- 3 files changed, 123 insertions(+), 123 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c index 3f4379da4d2..189935659a9 100644 --- a/sound/pci/cs5535audio/cs5535audio.c +++ b/sound/pci/cs5535audio/cs5535audio.c @@ -53,7 +53,7 @@ static struct pci_device_id snd_cs5535audio_ids[] = { MODULE_DEVICE_TABLE(pci, snd_cs5535audio_ids); -static void wait_till_cmd_acked(cs5535audio_t *cs5535au, unsigned long timeout) +static void wait_till_cmd_acked(struct cs5535audio *cs5535au, unsigned long timeout) { unsigned int tmp; do { @@ -66,11 +66,11 @@ static void wait_till_cmd_acked(cs5535audio_t *cs5535au, unsigned long timeout) snd_printk(KERN_ERR "Failure writing to cs5535 codec\n"); } -static unsigned short snd_cs5535audio_codec_read(cs5535audio_t *cs5535au, - unsigned short reg) +static unsigned short snd_cs5535audio_codec_read(struct cs5535audio *cs5535au, + unsigned short reg) { unsigned int regdata; - int timeout; + unsigned int timeout; unsigned int val; regdata = ((unsigned int) reg) << 24; @@ -93,8 +93,8 @@ static unsigned short snd_cs5535audio_codec_read(cs5535audio_t *cs5535au, return (unsigned short) val; } -static void snd_cs5535audio_codec_write(cs5535audio_t *cs5535au, - unsigned short reg, unsigned short val) +static void snd_cs5535audio_codec_write(struct cs5535audio *cs5535au, + unsigned short reg, unsigned short val) { unsigned int regdata; @@ -108,27 +108,27 @@ static void snd_cs5535audio_codec_write(cs5535audio_t *cs5535au, wait_till_cmd_acked(cs5535au, 50); } -static void snd_cs5535audio_ac97_codec_write(ac97_t *ac97, - unsigned short reg, unsigned short val) +static void snd_cs5535audio_ac97_codec_write(struct snd_ac97 *ac97, + unsigned short reg, unsigned short val) { - cs5535audio_t *cs5535au = ac97->private_data; + struct cs5535audio *cs5535au = ac97->private_data; snd_cs5535audio_codec_write(cs5535au, reg, val); } -static unsigned short snd_cs5535audio_ac97_codec_read(ac97_t *ac97, - unsigned short reg) +static unsigned short snd_cs5535audio_ac97_codec_read(struct snd_ac97 *ac97, + unsigned short reg) { - cs5535audio_t *cs5535au = ac97->private_data; + struct cs5535audio *cs5535au = ac97->private_data; return snd_cs5535audio_codec_read(cs5535au, reg); } -static int snd_cs5535audio_mixer(cs5535audio_t *cs5535au) +static int snd_cs5535audio_mixer(struct cs5535audio *cs5535au) { - snd_card_t *card = cs5535au->card; - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_card *card = cs5535au->card; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_cs5535audio_ac97_codec_write, .read = snd_cs5535audio_ac97_codec_read, }; @@ -149,14 +149,14 @@ static int snd_cs5535audio_mixer(cs5535audio_t *cs5535au) return 0; } -static void process_bm0_irq(cs5535audio_t *cs5535au) +static void process_bm0_irq(struct cs5535audio *cs5535au) { u8 bm_stat; spin_lock(&cs5535au->reg_lock); bm_stat = cs_readb(cs5535au, ACC_BM0_STATUS); spin_unlock(&cs5535au->reg_lock); if (bm_stat & EOP) { - cs5535audio_dma_t *dma; + struct cs5535audio_dma *dma; dma = cs5535au->playback_substream->runtime->private_data; snd_pcm_period_elapsed(cs5535au->playback_substream); } else { @@ -165,26 +165,26 @@ static void process_bm0_irq(cs5535audio_t *cs5535au) } } -static void process_bm1_irq(cs5535audio_t *cs5535au) +static void process_bm1_irq(struct cs5535audio *cs5535au) { u8 bm_stat; spin_lock(&cs5535au->reg_lock); bm_stat = cs_readb(cs5535au, ACC_BM1_STATUS); spin_unlock(&cs5535au->reg_lock); if (bm_stat & EOP) { - cs5535audio_dma_t *dma; + struct cs5535audio_dma *dma; dma = cs5535au->capture_substream->runtime->private_data; snd_pcm_period_elapsed(cs5535au->capture_substream); } } static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id, - struct pt_regs *regs) + struct pt_regs *regs) { u16 acc_irq_stat; u8 bm_stat; unsigned char count; - cs5535audio_t *cs5535au = dev_id; + struct cs5535audio *cs5535au = dev_id; if (cs5535au == NULL) return IRQ_NONE; @@ -235,7 +235,7 @@ static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id, return IRQ_HANDLED; } -static int snd_cs5535audio_free(cs5535audio_t *cs5535au) +static int snd_cs5535audio_free(struct cs5535audio *cs5535au) { synchronize_irq(cs5535au->irq); pci_set_power_state(cs5535au->pci, 3); @@ -249,20 +249,20 @@ static int snd_cs5535audio_free(cs5535audio_t *cs5535au) return 0; } -static int snd_cs5535audio_dev_free(snd_device_t *device) +static int snd_cs5535audio_dev_free(struct snd_device *device) { - cs5535audio_t *cs5535au = device->device_data; + struct cs5535audio *cs5535au = device->device_data; return snd_cs5535audio_free(cs5535au); } -static int __devinit snd_cs5535audio_create(snd_card_t *card, - struct pci_dev *pci, - cs5535audio_t **rcs5535au) +static int __devinit snd_cs5535audio_create(struct snd_card *card, + struct pci_dev *pci, + struct cs5535audio **rcs5535au) { - cs5535audio_t *cs5535au; + struct cs5535audio *cs5535au; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_cs5535audio_dev_free, }; @@ -271,7 +271,7 @@ static int __devinit snd_cs5535audio_create(snd_card_t *card, return err; if (pci_set_dma_mask(pci, DMA_32BIT_MASK) < 0 || - pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK) < 0) { + pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK) < 0) { printk(KERN_WARNING "unable to get 32bit dma\n"); err = -ENXIO; goto pcifail; @@ -296,7 +296,7 @@ static int __devinit snd_cs5535audio_create(snd_card_t *card, cs5535au->port = pci_resource_start(pci, 0); if (request_irq(pci->irq, snd_cs5535audio_interrupt, - SA_INTERRUPT|SA_SHIRQ, "CS5535 Audio", cs5535au)) { + SA_INTERRUPT|SA_SHIRQ, "CS5535 Audio", cs5535au)) { snd_printk("unable to grab IRQ %d\n", pci->irq); err = -EBUSY; goto sndfail; @@ -306,7 +306,7 @@ static int __devinit snd_cs5535audio_create(snd_card_t *card, pci_set_master(pci); if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, - cs5535au, &ops)) < 0) + cs5535au, &ops)) < 0) goto sndfail; snd_card_set_dev(card, &pci->dev); @@ -324,11 +324,11 @@ pcifail: } static int __devinit snd_cs5535audio_probe(struct pci_dev *pci, - const struct pci_device_id *pci_id) + const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - cs5535audio_t *cs5535au; + struct snd_card *card; + struct cs5535audio *cs5535au; int err; if (dev >= SNDRV_CARDS) diff --git a/sound/pci/cs5535audio/cs5535audio.h b/sound/pci/cs5535audio/cs5535audio.h index 774185e026d..5e55a1a1ed6 100644 --- a/sound/pci/cs5535audio/cs5535audio.h +++ b/sound/pci/cs5535audio/cs5535audio.h @@ -78,46 +78,46 @@ #define PRD_EOP 0x4000 #define PRD_EOT 0x8000 -typedef struct _snd_cs5535audio cs5535audio_t; -typedef struct snd_cs5535audio_dma cs5535audio_dma_t; -typedef struct snd_cs5535audio_dma_ops cs5535audio_dma_ops_t; - enum { CS5535AUDIO_DMA_PLAYBACK, CS5535AUDIO_DMA_CAPTURE, NUM_CS5535AUDIO_DMAS }; -struct snd_cs5535audio_dma_ops { + +struct cs5535audio; + +struct cs5535audio_dma_ops { int type; - void (*enable_dma)(cs5535audio_t *cs5535au); - void (*disable_dma)(cs5535audio_t *cs5535au); - void (*pause_dma)(cs5535audio_t *cs5535au); - void (*setup_prd)(cs5535audio_t *cs5535au, u32 prd_addr); - u32 (*read_dma_pntr)(cs5535audio_t *cs5535au); + void (*enable_dma)(struct cs5535audio *cs5535au); + void (*disable_dma)(struct cs5535audio *cs5535au); + void (*pause_dma)(struct cs5535audio *cs5535au); + void (*setup_prd)(struct cs5535audio *cs5535au, u32 prd_addr); + u32 (*read_dma_pntr)(struct cs5535audio *cs5535au); }; -typedef struct cs5535audio_dma_desc { +struct cs5535audio_dma_desc { u32 addr; u16 size; u16 ctlreserved; -} cs5535audio_dma_desc_t; +}; -struct snd_cs5535audio_dma { - const cs5535audio_dma_ops_t *ops; +struct cs5535audio_dma { + const struct cs5535audio_dma_ops *ops; struct snd_dma_buffer desc_buf; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; unsigned int buf_addr, buf_bytes; unsigned int period_bytes, periods; }; -struct _snd_cs5535audio { - snd_card_t *card; - ac97_t *ac97; +struct cs5535audio { + struct snd_card *card; + struct snd_ac97 *ac97; int irq; struct pci_dev *pci; unsigned long port; spinlock_t reg_lock; - snd_pcm_substream_t *playback_substream; - snd_pcm_substream_t *capture_substream; - cs5535audio_dma_t dmas[NUM_CS5535AUDIO_DMAS]; + struct snd_pcm_substream *playback_substream; + struct snd_pcm_substream *capture_substream; + struct cs5535audio_dma dmas[NUM_CS5535AUDIO_DMAS]; }; -int __devinit snd_cs5535audio_pcm(cs5535audio_t *cs5535audio); +int __devinit snd_cs5535audio_pcm(struct cs5535audio *cs5535audio); + #endif /* __SOUND_CS5535AUDIO_H */ diff --git a/sound/pci/cs5535audio/cs5535audio_pcm.c b/sound/pci/cs5535audio/cs5535audio_pcm.c index d32b23f202c..60bb82b2ff4 100644 --- a/sound/pci/cs5535audio/cs5535audio_pcm.c +++ b/sound/pci/cs5535audio/cs5535audio_pcm.c @@ -35,7 +35,7 @@ #include #include "cs5535audio.h" -static snd_pcm_hardware_t snd_cs5535audio_playback = +static struct snd_pcm_hardware snd_cs5535audio_playback = { .info = ( SNDRV_PCM_INFO_MMAP | @@ -64,7 +64,7 @@ static snd_pcm_hardware_t snd_cs5535audio_playback = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_cs5535audio_capture = +static struct snd_pcm_hardware snd_cs5535audio_capture = { .info = ( SNDRV_PCM_INFO_MMAP | @@ -92,11 +92,11 @@ static snd_pcm_hardware_t snd_cs5535audio_capture = .fifo_size = 0, }; -static int snd_cs5535audio_playback_open(snd_pcm_substream_t *substream) +static int snd_cs5535audio_playback_open(struct snd_pcm_substream *substream) { int err; - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; runtime->hw = snd_cs5535audio_playback; cs5535au->playback_substream = substream; @@ -109,23 +109,23 @@ static int snd_cs5535audio_playback_open(snd_pcm_substream_t *substream) return 0; } -static int snd_cs5535audio_playback_close(snd_pcm_substream_t *substream) +static int snd_cs5535audio_playback_close(struct snd_pcm_substream *substream) { return 0; } #define CS5535AUDIO_DESC_LIST_SIZE \ - PAGE_ALIGN(CS5535AUDIO_MAX_DESCRIPTORS * sizeof(cs5535audio_dma_desc_t)) + PAGE_ALIGN(CS5535AUDIO_MAX_DESCRIPTORS * sizeof(struct cs5535audio_dma_desc)) -static int cs5535audio_build_dma_packets(cs5535audio_t *cs5535au, - cs5535audio_dma_t *dma, - snd_pcm_substream_t *substream, - unsigned int periods, - unsigned int period_bytes) +static int cs5535audio_build_dma_packets(struct cs5535audio *cs5535au, + struct cs5535audio_dma *dma, + struct snd_pcm_substream *substream, + unsigned int periods, + unsigned int period_bytes) { unsigned int i; u32 addr, desc_addr, jmpprd_addr; - cs5535audio_dma_desc_t *lastdesc; + struct cs5535audio_dma_desc *lastdesc; if (periods > CS5535AUDIO_MAX_DESCRIPTORS) return -ENOMEM; @@ -147,21 +147,21 @@ static int cs5535audio_build_dma_packets(cs5535audio_t *cs5535au, addr = (u32) substream->runtime->dma_addr; desc_addr = (u32) dma->desc_buf.addr; for (i = 0; i < periods; i++) { - cs5535audio_dma_desc_t *desc = - &((cs5535audio_dma_desc_t *) dma->desc_buf.area)[i]; + struct cs5535audio_dma_desc *desc = + &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[i]; desc->addr = cpu_to_le32(addr); desc->size = cpu_to_le32(period_bytes); desc->ctlreserved = cpu_to_le32(PRD_EOP); - desc_addr += sizeof(cs5535audio_dma_desc_t); + desc_addr += sizeof(struct cs5535audio_dma_desc); addr += period_bytes; } /* we reserved one dummy descriptor at the end to do the PRD jump */ - lastdesc = &((cs5535audio_dma_desc_t *) dma->desc_buf.area)[periods]; + lastdesc = &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[periods]; lastdesc->addr = cpu_to_le32((u32) dma->desc_buf.addr); lastdesc->size = 0; lastdesc->ctlreserved = cpu_to_le32(PRD_JMP); jmpprd_addr = cpu_to_le32(lastdesc->addr + - (sizeof(cs5535audio_dma_desc_t)*periods)); + (sizeof(struct cs5535audio_dma_desc)*periods)); dma->period_bytes = period_bytes; dma->periods = periods; @@ -172,71 +172,71 @@ static int cs5535audio_build_dma_packets(cs5535audio_t *cs5535au, return 0; } -static void cs5535audio_playback_enable_dma(cs5535audio_t *cs5535au) +static void cs5535audio_playback_enable_dma(struct cs5535audio *cs5535au) { cs_writeb(cs5535au, ACC_BM0_CMD, BM_CTL_EN); } -static void cs5535audio_playback_disable_dma(cs5535audio_t *cs5535au) +static void cs5535audio_playback_disable_dma(struct cs5535audio *cs5535au) { cs_writeb(cs5535au, ACC_BM0_CMD, 0); } -static void cs5535audio_playback_pause_dma(cs5535audio_t *cs5535au) +static void cs5535audio_playback_pause_dma(struct cs5535audio *cs5535au) { cs_writeb(cs5535au, ACC_BM0_CMD, BM_CTL_PAUSE); } -static void cs5535audio_playback_setup_prd(cs5535audio_t *cs5535au, - u32 prd_addr) +static void cs5535audio_playback_setup_prd(struct cs5535audio *cs5535au, + u32 prd_addr) { cs_writel(cs5535au, ACC_BM0_PRD, prd_addr); } -static u32 cs5535audio_playback_read_dma_pntr(cs5535audio_t *cs5535au) +static u32 cs5535audio_playback_read_dma_pntr(struct cs5535audio *cs5535au) { return cs_readl(cs5535au, ACC_BM0_PNTR); } -static void cs5535audio_capture_enable_dma(cs5535audio_t *cs5535au) +static void cs5535audio_capture_enable_dma(struct cs5535audio *cs5535au) { cs_writeb(cs5535au, ACC_BM1_CMD, BM_CTL_EN); } -static void cs5535audio_capture_disable_dma(cs5535audio_t *cs5535au) +static void cs5535audio_capture_disable_dma(struct cs5535audio *cs5535au) { cs_writeb(cs5535au, ACC_BM1_CMD, 0); } -static void cs5535audio_capture_pause_dma(cs5535audio_t *cs5535au) +static void cs5535audio_capture_pause_dma(struct cs5535audio *cs5535au) { cs_writeb(cs5535au, ACC_BM1_CMD, BM_CTL_PAUSE); } -static void cs5535audio_capture_setup_prd(cs5535audio_t *cs5535au, - u32 prd_addr) +static void cs5535audio_capture_setup_prd(struct cs5535audio *cs5535au, + u32 prd_addr) { cs_writel(cs5535au, ACC_BM1_PRD, prd_addr); } -static u32 cs5535audio_capture_read_dma_pntr(cs5535audio_t *cs5535au) +static u32 cs5535audio_capture_read_dma_pntr(struct cs5535audio *cs5535au) { return cs_readl(cs5535au, ACC_BM1_PNTR); } -static void cs5535audio_clear_dma_packets(cs5535audio_t *cs5535au, - cs5535audio_dma_t *dma, - snd_pcm_substream_t *substream) +static void cs5535audio_clear_dma_packets(struct cs5535audio *cs5535au, + struct cs5535audio_dma *dma, + struct snd_pcm_substream *substream) { snd_dma_free_pages(&dma->desc_buf); dma->desc_buf.area = NULL; } -static int snd_cs5535audio_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *hw_params) +static int snd_cs5535audio_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); - cs5535audio_dma_t *dma = substream->runtime->private_data; + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); + struct cs5535audio_dma *dma = substream->runtime->private_data; int err; err = snd_pcm_lib_malloc_pages(substream, @@ -247,31 +247,31 @@ static int snd_cs5535audio_hw_params(snd_pcm_substream_t *substream, dma->buf_bytes = params_buffer_bytes(hw_params); err = cs5535audio_build_dma_packets(cs5535au, dma, substream, - params_periods(hw_params), - params_period_bytes(hw_params)); + params_periods(hw_params), + params_period_bytes(hw_params)); return err; } -static int snd_cs5535audio_hw_free(snd_pcm_substream_t *substream) +static int snd_cs5535audio_hw_free(struct snd_pcm_substream *substream) { - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); - cs5535audio_dma_t *dma = substream->runtime->private_data; + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); + struct cs5535audio_dma *dma = substream->runtime->private_data; cs5535audio_clear_dma_packets(cs5535au, dma, substream); return snd_pcm_lib_free_pages(substream); } -static int snd_cs5535audio_playback_prepare(snd_pcm_substream_t *substream) +static int snd_cs5535audio_playback_prepare(struct snd_pcm_substream *substream) { - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); return snd_ac97_set_rate(cs5535au->ac97, AC97_PCM_FRONT_DAC_RATE, - substream->runtime->rate); + substream->runtime->rate); } -static int snd_cs5535audio_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_cs5535audio_trigger(struct snd_pcm_substream *substream, int cmd) { - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); - cs5535audio_dma_t *dma = substream->runtime->private_data; + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); + struct cs5535audio_dma *dma = substream->runtime->private_data; int err = 0; spin_lock(&cs5535au->reg_lock); @@ -297,12 +297,12 @@ static int snd_cs5535audio_trigger(snd_pcm_substream_t *substream, int cmd) return err; } -static snd_pcm_uframes_t snd_cs5535audio_pcm_pointer(snd_pcm_substream_t +static snd_pcm_uframes_t snd_cs5535audio_pcm_pointer(struct snd_pcm_substream *substream) { - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); u32 curdma; - cs5535audio_dma_t *dma; + struct cs5535audio_dma *dma; dma = substream->runtime->private_data; curdma = dma->ops->read_dma_pntr(cs5535au); @@ -320,11 +320,11 @@ static snd_pcm_uframes_t snd_cs5535audio_pcm_pointer(snd_pcm_substream_t return bytes_to_frames(substream->runtime, curdma); } -static int snd_cs5535audio_capture_open(snd_pcm_substream_t *substream) +static int snd_cs5535audio_capture_open(struct snd_pcm_substream *substream) { int err; - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; runtime->hw = snd_cs5535audio_capture; cs5535au->capture_substream = substream; @@ -336,19 +336,19 @@ static int snd_cs5535audio_capture_open(snd_pcm_substream_t *substream) return 0; } -static int snd_cs5535audio_capture_close(snd_pcm_substream_t *substream) +static int snd_cs5535audio_capture_close(struct snd_pcm_substream *substream) { return 0; } -static int snd_cs5535audio_capture_prepare(snd_pcm_substream_t *substream) +static int snd_cs5535audio_capture_prepare(struct snd_pcm_substream *substream) { - cs5535audio_t *cs5535au = snd_pcm_substream_chip(substream); + struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream); return snd_ac97_set_rate(cs5535au->ac97, AC97_PCM_LR_ADC_RATE, - substream->runtime->rate); + substream->runtime->rate); } -static snd_pcm_ops_t snd_cs5535audio_playback_ops = { +static struct snd_pcm_ops snd_cs5535audio_playback_ops = { .open = snd_cs5535audio_playback_open, .close = snd_cs5535audio_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -359,7 +359,7 @@ static snd_pcm_ops_t snd_cs5535audio_playback_ops = { .pointer = snd_cs5535audio_pcm_pointer, }; -static snd_pcm_ops_t snd_cs5535audio_capture_ops = { +static struct snd_pcm_ops snd_cs5535audio_capture_ops = { .open = snd_cs5535audio_capture_open, .close = snd_cs5535audio_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -370,7 +370,7 @@ static snd_pcm_ops_t snd_cs5535audio_capture_ops = { .pointer = snd_cs5535audio_pcm_pointer, }; -static cs5535audio_dma_ops_t snd_cs5535audio_playback_dma_ops = { +static struct cs5535audio_dma_ops snd_cs5535audio_playback_dma_ops = { .type = CS5535AUDIO_DMA_PLAYBACK, .enable_dma = cs5535audio_playback_enable_dma, .disable_dma = cs5535audio_playback_disable_dma, @@ -379,7 +379,7 @@ static cs5535audio_dma_ops_t snd_cs5535audio_playback_dma_ops = { .read_dma_pntr = cs5535audio_playback_read_dma_pntr, }; -static cs5535audio_dma_ops_t snd_cs5535audio_capture_dma_ops = { +static struct cs5535audio_dma_ops snd_cs5535audio_capture_dma_ops = { .type = CS5535AUDIO_DMA_CAPTURE, .enable_dma = cs5535audio_capture_enable_dma, .disable_dma = cs5535audio_capture_disable_dma, @@ -388,9 +388,9 @@ static cs5535audio_dma_ops_t snd_cs5535audio_capture_dma_ops = { .read_dma_pntr = cs5535audio_capture_read_dma_pntr, }; -int __devinit snd_cs5535audio_pcm(cs5535audio_t *cs5535au) +int __devinit snd_cs5535audio_pcm(struct cs5535audio *cs5535au) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; err = snd_pcm_new(cs5535au->card, "CS5535 Audio", 0, 1, 1, &pcm); -- cgit v1.2.3-70-g09d2 From c8b6bf9b5ef1f595a65a3414a5ca2588e8d993b2 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:57:47 +0100 Subject: [ALSA] Remove xxx_t typedefs: HD-Audio codec Modules: HDA Codec driver,HDA generic driver Remove xxx_t typedefs from the HD-Audio codec support codes. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 90 +++++++++++++++++++++--------------------- sound/pci/hda/hda_codec.h | 14 +++---- sound/pci/hda/hda_generic.c | 20 +++++----- sound/pci/hda/hda_local.h | 36 ++++++++--------- sound/pci/hda/hda_proc.c | 12 +++--- sound/pci/hda/patch_analog.c | 42 ++++++++++---------- sound/pci/hda/patch_cmedia.c | 30 +++++++------- sound/pci/hda/patch_realtek.c | 88 ++++++++++++++++++++--------------------- sound/pci/hda/patch_si3054.c | 20 +++++----- sound/pci/hda/patch_sigmatel.c | 44 ++++++++++----------- 10 files changed, 198 insertions(+), 198 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 2e9f5877386..7f4e19951ba 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -332,7 +332,7 @@ static int snd_hda_bus_free(struct hda_bus *bus) return 0; } -static int snd_hda_bus_dev_free(snd_device_t *device) +static int snd_hda_bus_dev_free(struct snd_device *device) { struct hda_bus *bus = device->device_data; return snd_hda_bus_free(bus); @@ -346,12 +346,12 @@ static int snd_hda_bus_dev_free(snd_device_t *device) * * Returns 0 if successful, or a negative error code. */ -int snd_hda_bus_new(snd_card_t *card, const struct hda_bus_template *temp, +int snd_hda_bus_new(struct snd_card *card, const struct hda_bus_template *temp, struct hda_bus **busp) { struct hda_bus *bus; int err; - static snd_device_ops_t dev_ops = { + static struct snd_device_ops dev_ops = { .dev_free = snd_hda_bus_dev_free, }; @@ -732,7 +732,7 @@ static int snd_hda_codec_amp_update(struct hda_codec *codec, hda_nid_t nid, int #define get_amp_index(kc) (((kc)->private_value >> 19) & 0xf) /* volume */ -int snd_hda_mixer_amp_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +int snd_hda_mixer_amp_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); u16 nid = get_amp_nid(kcontrol); @@ -753,7 +753,7 @@ int snd_hda_mixer_amp_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -int snd_hda_mixer_amp_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +int snd_hda_mixer_amp_volume_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = get_amp_nid(kcontrol); @@ -769,7 +769,7 @@ int snd_hda_mixer_amp_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -int snd_hda_mixer_amp_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +int snd_hda_mixer_amp_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = get_amp_nid(kcontrol); @@ -791,7 +791,7 @@ int snd_hda_mixer_amp_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t } /* switch */ -int snd_hda_mixer_amp_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +int snd_hda_mixer_amp_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int chs = get_amp_channels(kcontrol); @@ -802,7 +802,7 @@ int snd_hda_mixer_amp_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -int snd_hda_mixer_amp_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = get_amp_nid(kcontrol); @@ -818,7 +818,7 @@ int snd_hda_mixer_amp_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -int snd_hda_mixer_amp_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = get_amp_nid(kcontrol); @@ -849,7 +849,7 @@ int snd_hda_mixer_amp_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t #define AMP_VAL_IDX_SHIFT 19 #define AMP_VAL_IDX_MASK (0x0f<<19) -int snd_hda_mixer_bind_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +int snd_hda_mixer_bind_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); unsigned long pval; @@ -864,7 +864,7 @@ int snd_hda_mixer_bind_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return err; } -int snd_hda_mixer_bind_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +int snd_hda_mixer_bind_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); unsigned long pval; @@ -889,14 +889,14 @@ int snd_hda_mixer_bind_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * SPDIF out controls */ -static int snd_hda_spdif_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_hda_spdif_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_hda_spdif_cmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_cmask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = IEC958_AES0_PROFESSIONAL | IEC958_AES0_NONAUDIO | @@ -907,7 +907,7 @@ static int snd_hda_spdif_cmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ return 0; } -static int snd_hda_spdif_pmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_pmask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = IEC958_AES0_PROFESSIONAL | IEC958_AES0_NONAUDIO | @@ -915,7 +915,7 @@ static int snd_hda_spdif_pmask_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ return 0; } -static int snd_hda_spdif_default_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_default_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); @@ -978,7 +978,7 @@ static unsigned int convert_to_spdif_status(unsigned short val) return sbits; } -static int snd_hda_spdif_default_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_default_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = kcontrol->private_value; @@ -1004,7 +1004,7 @@ static int snd_hda_spdif_default_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_valu return change; } -static int snd_hda_spdif_out_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_hda_spdif_out_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1013,7 +1013,7 @@ static int snd_hda_spdif_out_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_hda_spdif_out_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_out_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); @@ -1021,7 +1021,7 @@ static int snd_hda_spdif_out_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_v return 0; } -static int snd_hda_spdif_out_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_out_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = kcontrol->private_value; @@ -1044,7 +1044,7 @@ static int snd_hda_spdif_out_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_v return change; } -static snd_kcontrol_new_t dig_mixes[] = { +static struct snd_kcontrol_new dig_mixes[] = { { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_MIXER, @@ -1089,8 +1089,8 @@ static snd_kcontrol_new_t dig_mixes[] = { int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, hda_nid_t nid) { int err; - snd_kcontrol_t *kctl; - snd_kcontrol_new_t *dig_mix; + struct snd_kcontrol *kctl; + struct snd_kcontrol_new *dig_mix; for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) { kctl = snd_ctl_new1(dig_mix, codec); @@ -1109,7 +1109,7 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, hda_nid_t nid) #define snd_hda_spdif_in_switch_info snd_hda_spdif_out_switch_info -static int snd_hda_spdif_in_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_in_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); @@ -1117,7 +1117,7 @@ static int snd_hda_spdif_in_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return 0; } -static int snd_hda_spdif_in_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_in_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = kcontrol->private_value; @@ -1134,7 +1134,7 @@ static int snd_hda_spdif_in_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return change; } -static int snd_hda_spdif_in_status_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_hda_spdif_in_status_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = kcontrol->private_value; @@ -1150,7 +1150,7 @@ static int snd_hda_spdif_in_status_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return 0; } -static snd_kcontrol_new_t dig_in_ctls[] = { +static struct snd_kcontrol_new dig_in_ctls[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), @@ -1181,8 +1181,8 @@ static snd_kcontrol_new_t dig_in_ctls[] = { int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid) { int err; - snd_kcontrol_t *kctl; - snd_kcontrol_new_t *dig_mix; + struct snd_kcontrol *kctl; + struct snd_kcontrol_new *dig_mix; for (dig_mix = dig_in_ctls; dig_mix->name; dig_mix++) { kctl = snd_ctl_new1(dig_mix, codec); @@ -1498,7 +1498,7 @@ int snd_hda_is_supported_format(struct hda_codec *codec, hda_nid_t nid, */ static int hda_pcm_default_open_close(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { return 0; } @@ -1507,7 +1507,7 @@ static int hda_pcm_default_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { snd_hda_codec_setup_stream(codec, hinfo->nid, stream_tag, 0, format); return 0; @@ -1515,7 +1515,7 @@ static int hda_pcm_default_prepare(struct hda_pcm_stream *hinfo, static int hda_pcm_default_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { snd_hda_codec_setup_stream(codec, hinfo->nid, 0, 0, 0); return 0; @@ -1646,14 +1646,14 @@ int snd_hda_check_board_config(struct hda_codec *codec, const struct hda_board_c /** * snd_hda_add_new_ctls - create controls from the array * @codec: the HDA codec - * @knew: the array of snd_kcontrol_new_t + * @knew: the array of struct snd_kcontrol_new * * This helper function creates and add new controls in the given array. * The array must be terminated with an empty entry as terminator. * * Returns 0 if successful, or a negative error code. */ -int snd_hda_add_new_ctls(struct hda_codec *codec, snd_kcontrol_new_t *knew) +int snd_hda_add_new_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew) { int err; @@ -1666,10 +1666,10 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, snd_kcontrol_new_t *knew) } - /* +/* * Channel mode helper */ -int snd_hda_ch_mode_info(struct hda_codec *codec, snd_ctl_elem_info_t *uinfo, +int snd_hda_ch_mode_info(struct hda_codec *codec, struct snd_ctl_elem_info *uinfo, const struct hda_channel_mode *chmode, int num_chmodes) { uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -1682,7 +1682,7 @@ int snd_hda_ch_mode_info(struct hda_codec *codec, snd_ctl_elem_info_t *uinfo, return 0; } -int snd_hda_ch_mode_get(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, +int snd_hda_ch_mode_get(struct hda_codec *codec, struct snd_ctl_elem_value *ucontrol, const struct hda_channel_mode *chmode, int num_chmodes, int max_channels) { @@ -1697,7 +1697,7 @@ int snd_hda_ch_mode_get(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, return 0; } -int snd_hda_ch_mode_put(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, +int snd_hda_ch_mode_put(struct hda_codec *codec, struct snd_ctl_elem_value *ucontrol, const struct hda_channel_mode *chmode, int num_chmodes, int *max_channelsp) { @@ -1717,7 +1717,7 @@ int snd_hda_ch_mode_put(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, /* * input MUX helper */ -int snd_hda_input_mux_info(const struct hda_input_mux *imux, snd_ctl_elem_info_t *uinfo) +int snd_hda_input_mux_info(const struct hda_input_mux *imux, struct snd_ctl_elem_info *uinfo) { unsigned int index; @@ -1732,7 +1732,7 @@ int snd_hda_input_mux_info(const struct hda_input_mux *imux, snd_ctl_elem_info_t } int snd_hda_input_mux_put(struct hda_codec *codec, const struct hda_input_mux *imux, - snd_ctl_elem_value_t *ucontrol, hda_nid_t nid, + struct snd_ctl_elem_value *ucontrol, hda_nid_t nid, unsigned int *cur_val) { unsigned int idx; @@ -1783,7 +1783,7 @@ int snd_hda_multi_out_dig_close(struct hda_codec *codec, struct hda_multi_out *m * set up more restrictions for analog out */ int snd_hda_multi_out_analog_open(struct hda_codec *codec, struct hda_multi_out *mout, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { substream->runtime->hw.channels_max = mout->max_channels; return snd_pcm_hw_constraint_step(substream->runtime, 0, @@ -1797,7 +1797,7 @@ int snd_hda_multi_out_analog_open(struct hda_codec *codec, struct hda_multi_out int snd_hda_multi_out_analog_prepare(struct hda_codec *codec, struct hda_multi_out *mout, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { hda_nid_t *nids = mout->dac_nids; int chs = substream->runtime->channels; @@ -2019,15 +2019,15 @@ int snd_hda_resume(struct hda_bus *bus) /** * snd_hda_resume_ctls - resume controls in the new control list * @codec: the HDA codec - * @knew: the array of snd_kcontrol_new_t + * @knew: the array of struct snd_kcontrol_new * - * This function resumes the mixer controls in the snd_kcontrol_new_t array, + * This function resumes the mixer controls in the struct snd_kcontrol_new array, * originally for snd_hda_add_new_ctls(). * The array must be terminated with an empty entry as terminator. */ -int snd_hda_resume_ctls(struct hda_codec *codec, snd_kcontrol_new_t *knew) +int snd_hda_resume_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew) { - snd_ctl_elem_value_t *val; + struct snd_ctl_elem_value *val; val = kmalloc(sizeof(*val), GFP_KERNEL); if (! val) diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index 58b9949aca4..0b5c3678889 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h @@ -420,7 +420,7 @@ struct hda_bus_template { * A hda_bus contains several codecs in the list codec_list. */ struct hda_bus { - snd_card_t *card; + struct snd_card *card; /* copied from template */ void *private_data; @@ -437,7 +437,7 @@ struct hda_bus { /* unsolicited event queue */ struct hda_bus_unsolicited *unsol; - snd_info_entry_t *proc; + struct snd_info_entry *proc; }; /* @@ -481,14 +481,14 @@ struct hda_amp_info { /* PCM callbacks */ struct hda_pcm_ops { int (*open)(struct hda_pcm_stream *info, struct hda_codec *codec, - snd_pcm_substream_t *substream); + struct snd_pcm_substream *substream); int (*close)(struct hda_pcm_stream *info, struct hda_codec *codec, - snd_pcm_substream_t *substream); + struct snd_pcm_substream *substream); int (*prepare)(struct hda_pcm_stream *info, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream); + struct snd_pcm_substream *substream); int (*cleanup)(struct hda_pcm_stream *info, struct hda_codec *codec, - snd_pcm_substream_t *substream); + struct snd_pcm_substream *substream); }; /* PCM information for each substream */ @@ -563,7 +563,7 @@ enum { /* * constructors */ -int snd_hda_bus_new(snd_card_t *card, const struct hda_bus_template *temp, +int snd_hda_bus_new(struct snd_card *card, const struct hda_bus_template *temp, struct hda_bus **busp); int snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr, struct hda_codec **codecp); diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index d0eb9f2250a..863e8c6d29a 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -389,14 +389,14 @@ static int parse_output(struct hda_codec *codec) */ /* control callbacks */ -static int capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int capture_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct hda_gspec *spec = codec->spec; return snd_hda_input_mux_info(&spec->input_mux, uinfo); } -static int capture_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int capture_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct hda_gspec *spec = codec->spec; @@ -405,7 +405,7 @@ static int capture_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc return 0; } -static int capture_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int capture_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct hda_gspec *spec = codec->spec; @@ -617,7 +617,7 @@ static int create_mixer(struct hda_codec *codec, struct hda_gnode *node, char name[32]; int err; int created = 0; - snd_kcontrol_new_t knew; + struct snd_kcontrol_new knew; if (type) sprintf(name, "%s %s Switch", type, dir_sfx); @@ -625,14 +625,14 @@ static int create_mixer(struct hda_codec *codec, struct hda_gnode *node, sprintf(name, "%s Switch", dir_sfx); if ((node->wid_caps & AC_WCAP_IN_AMP) && (node->amp_in_caps & AC_AMPCAP_MUTE)) { - knew = (snd_kcontrol_new_t)HDA_CODEC_MUTE(name, node->nid, index, HDA_INPUT); + knew = (struct snd_kcontrol_new)HDA_CODEC_MUTE(name, node->nid, index, HDA_INPUT); snd_printdd("[%s] NID=0x%x, DIR=IN, IDX=0x%x\n", name, node->nid, index); if ((err = snd_ctl_add(codec->bus->card, snd_ctl_new1(&knew, codec))) < 0) return err; created = 1; } else if ((node->wid_caps & AC_WCAP_OUT_AMP) && (node->amp_out_caps & AC_AMPCAP_MUTE)) { - knew = (snd_kcontrol_new_t)HDA_CODEC_MUTE(name, node->nid, 0, HDA_OUTPUT); + knew = (struct snd_kcontrol_new)HDA_CODEC_MUTE(name, node->nid, 0, HDA_OUTPUT); snd_printdd("[%s] NID=0x%x, DIR=OUT\n", name, node->nid); if ((err = snd_ctl_add(codec->bus->card, snd_ctl_new1(&knew, codec))) < 0) return err; @@ -645,14 +645,14 @@ static int create_mixer(struct hda_codec *codec, struct hda_gnode *node, sprintf(name, "%s Volume", dir_sfx); if ((node->wid_caps & AC_WCAP_IN_AMP) && (node->amp_in_caps & AC_AMPCAP_NUM_STEPS)) { - knew = (snd_kcontrol_new_t)HDA_CODEC_VOLUME(name, node->nid, index, HDA_INPUT); + knew = (struct snd_kcontrol_new)HDA_CODEC_VOLUME(name, node->nid, index, HDA_INPUT); snd_printdd("[%s] NID=0x%x, DIR=IN, IDX=0x%x\n", name, node->nid, index); if ((err = snd_ctl_add(codec->bus->card, snd_ctl_new1(&knew, codec))) < 0) return err; created = 1; } else if ((node->wid_caps & AC_WCAP_OUT_AMP) && (node->amp_out_caps & AC_AMPCAP_NUM_STEPS)) { - knew = (snd_kcontrol_new_t)HDA_CODEC_VOLUME(name, node->nid, 0, HDA_OUTPUT); + knew = (struct snd_kcontrol_new)HDA_CODEC_VOLUME(name, node->nid, 0, HDA_OUTPUT); snd_printdd("[%s] NID=0x%x, DIR=OUT\n", name, node->nid); if ((err = snd_ctl_add(codec->bus->card, snd_ctl_new1(&knew, codec))) < 0) return err; @@ -667,7 +667,7 @@ static int create_mixer(struct hda_codec *codec, struct hda_gnode *node, */ static int check_existing_control(struct hda_codec *codec, const char *type, const char *dir) { - snd_ctl_elem_id_t id; + struct snd_ctl_elem_id id; memset(&id, 0, sizeof(id)); sprintf(id.name, "%s %s Volume", type, dir); id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; @@ -710,7 +710,7 @@ static int build_input_controls(struct hda_codec *codec) /* create input MUX if multiple sources are available */ if (spec->input_mux.num_items > 1) { - static snd_kcontrol_new_t cap_sel = { + static struct snd_kcontrol_new cap_sel = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Capture Source", .info = capture_source_info, diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index 31d3c7ef584..502290424c6 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -60,12 +60,12 @@ #define HDA_CODEC_MUTE(xname, nid, xindex, direction) \ HDA_CODEC_MUTE_MONO(xname, nid, 3, xindex, direction) -int snd_hda_mixer_amp_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo); -int snd_hda_mixer_amp_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol); -int snd_hda_mixer_amp_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol); -int snd_hda_mixer_amp_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo); -int snd_hda_mixer_amp_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol); -int snd_hda_mixer_amp_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol); +int snd_hda_mixer_amp_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); +int snd_hda_mixer_amp_volume_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_hda_mixer_amp_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_hda_mixer_amp_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); +int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); /* mono switch binding multiple inputs */ #define HDA_BIND_MUTE_MONO(xname, nid, channel, indices, direction) \ @@ -78,8 +78,8 @@ int snd_hda_mixer_amp_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t /* stereo switch binding multiple inputs */ #define HDA_BIND_MUTE(xname,nid,indices,dir) HDA_BIND_MUTE_MONO(xname,nid,3,indices,dir) -int snd_hda_mixer_bind_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol); -int snd_hda_mixer_bind_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol); +int snd_hda_mixer_bind_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_hda_mixer_bind_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, hda_nid_t nid); int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid); @@ -97,12 +97,12 @@ struct hda_input_mux { struct hda_input_mux_item items[HDA_MAX_NUM_INPUTS]; }; -int snd_hda_input_mux_info(const struct hda_input_mux *imux, snd_ctl_elem_info_t *uinfo); +int snd_hda_input_mux_info(const struct hda_input_mux *imux, struct snd_ctl_elem_info *uinfo); int snd_hda_input_mux_put(struct hda_codec *codec, const struct hda_input_mux *imux, - snd_ctl_elem_value_t *ucontrol, hda_nid_t nid, + struct snd_ctl_elem_value *ucontrol, hda_nid_t nid, unsigned int *cur_val); - /* +/* * Channel mode helper */ struct hda_channel_mode { @@ -110,12 +110,12 @@ struct hda_channel_mode { const struct hda_verb *sequence; }; -int snd_hda_ch_mode_info(struct hda_codec *codec, snd_ctl_elem_info_t *uinfo, +int snd_hda_ch_mode_info(struct hda_codec *codec, struct snd_ctl_elem_info *uinfo, const struct hda_channel_mode *chmode, int num_chmodes); -int snd_hda_ch_mode_get(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, +int snd_hda_ch_mode_get(struct hda_codec *codec, struct snd_ctl_elem_value *ucontrol, const struct hda_channel_mode *chmode, int num_chmodes, int max_channels); -int snd_hda_ch_mode_put(struct hda_codec *codec, snd_ctl_elem_value_t *ucontrol, +int snd_hda_ch_mode_put(struct hda_codec *codec, struct snd_ctl_elem_value *ucontrol, const struct hda_channel_mode *chmode, int num_chmodes, int *max_channelsp); @@ -138,11 +138,11 @@ struct hda_multi_out { int snd_hda_multi_out_dig_open(struct hda_codec *codec, struct hda_multi_out *mout); int snd_hda_multi_out_dig_close(struct hda_codec *codec, struct hda_multi_out *mout); int snd_hda_multi_out_analog_open(struct hda_codec *codec, struct hda_multi_out *mout, - snd_pcm_substream_t *substream); + struct snd_pcm_substream *substream); int snd_hda_multi_out_analog_prepare(struct hda_codec *codec, struct hda_multi_out *mout, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream); + struct snd_pcm_substream *substream); int snd_hda_multi_out_analog_cleanup(struct hda_codec *codec, struct hda_multi_out *mout); /* @@ -170,13 +170,13 @@ struct hda_board_config { }; int snd_hda_check_board_config(struct hda_codec *codec, const struct hda_board_config *tbl); -int snd_hda_add_new_ctls(struct hda_codec *codec, snd_kcontrol_new_t *knew); +int snd_hda_add_new_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew); /* * power management */ #ifdef CONFIG_PM -int snd_hda_resume_ctls(struct hda_codec *codec, snd_kcontrol_new_t *knew); +int snd_hda_resume_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew); int snd_hda_resume_spdif_out(struct hda_codec *codec); int snd_hda_resume_spdif_in(struct hda_codec *codec); #endif diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c index 39ddf1cd901..8cc5773958f 100644 --- a/sound/pci/hda/hda_proc.c +++ b/sound/pci/hda/hda_proc.c @@ -47,7 +47,7 @@ static const char *get_wid_type_name(unsigned int wid_value) return "UNKOWN Widget"; } -static void print_amp_caps(snd_info_buffer_t *buffer, +static void print_amp_caps(struct snd_info_buffer *buffer, struct hda_codec *codec, hda_nid_t nid, int dir) { unsigned int caps; @@ -66,7 +66,7 @@ static void print_amp_caps(snd_info_buffer_t *buffer, (caps & AC_AMPCAP_MUTE) >> AC_AMPCAP_MUTE_SHIFT); } -static void print_amp_vals(snd_info_buffer_t *buffer, +static void print_amp_vals(struct snd_info_buffer *buffer, struct hda_codec *codec, hda_nid_t nid, int dir, int stereo, int indices) { @@ -91,7 +91,7 @@ static void print_amp_vals(snd_info_buffer_t *buffer, snd_iprintf(buffer, "\n"); } -static void print_pcm_caps(snd_info_buffer_t *buffer, +static void print_pcm_caps(struct snd_info_buffer *buffer, struct hda_codec *codec, hda_nid_t nid) { unsigned int pcm = snd_hda_param_read(codec, nid, AC_PAR_PCM); @@ -160,7 +160,7 @@ static const char *get_jack_color(u32 cfg) return "UNKNOWN"; } -static void print_pin_caps(snd_info_buffer_t *buffer, +static void print_pin_caps(struct snd_info_buffer *buffer, struct hda_codec *codec, hda_nid_t nid) { static char *jack_conns[4] = { "Jack", "N/A", "Fixed", "Both" }; @@ -194,7 +194,7 @@ static void print_pin_caps(snd_info_buffer_t *buffer, } -static void print_codec_info(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void print_codec_info(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { struct hda_codec *codec = entry->private_data; char buf[32]; @@ -309,7 +309,7 @@ static void print_codec_info(snd_info_entry_t *entry, snd_info_buffer_t *buffer) int snd_hda_codec_proc_new(struct hda_codec *codec) { char name[32]; - snd_info_entry_t *entry; + struct snd_info_entry *entry; int err; snprintf(name, sizeof(name), "codec#%d", codec->addr); diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 4687736aa0d..1f371fe6b92 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -28,7 +28,7 @@ #include "hda_local.h" struct ad198x_spec { - snd_kcontrol_new_t *mixers[5]; + struct snd_kcontrol_new *mixers[5]; int num_mixers; const struct hda_verb *init_verbs[3]; /* initialization verbs @@ -65,7 +65,7 @@ struct ad198x_spec { /* * input MUX handling (common part) */ -static int ad198x_mux_enum_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int ad198x_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *spec = codec->spec; @@ -73,7 +73,7 @@ static int ad198x_mux_enum_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *u return snd_hda_input_mux_info(spec->input_mux, uinfo); } -static int ad198x_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad198x_mux_enum_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *spec = codec->spec; @@ -83,7 +83,7 @@ static int ad198x_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u return 0; } -static int ad198x_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad198x_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *spec = codec->spec; @@ -135,7 +135,7 @@ static int ad198x_build_controls(struct hda_codec *codec) */ static int ad198x_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct ad198x_spec *spec = codec->spec; return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); @@ -145,7 +145,7 @@ static int ad198x_playback_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct ad198x_spec *spec = codec->spec; return snd_hda_multi_out_analog_prepare(codec, &spec->multiout, stream_tag, @@ -154,7 +154,7 @@ static int ad198x_playback_pcm_prepare(struct hda_pcm_stream *hinfo, static int ad198x_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct ad198x_spec *spec = codec->spec; return snd_hda_multi_out_analog_cleanup(codec, &spec->multiout); @@ -165,7 +165,7 @@ static int ad198x_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, */ static int ad198x_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct ad198x_spec *spec = codec->spec; return snd_hda_multi_out_dig_open(codec, &spec->multiout); @@ -173,7 +173,7 @@ static int ad198x_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, static int ad198x_dig_playback_pcm_close(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct ad198x_spec *spec = codec->spec; return snd_hda_multi_out_dig_close(codec, &spec->multiout); @@ -186,7 +186,7 @@ static int ad198x_capture_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct ad198x_spec *spec = codec->spec; snd_hda_codec_setup_stream(codec, spec->adc_nids[substream->number], @@ -196,7 +196,7 @@ static int ad198x_capture_pcm_prepare(struct hda_pcm_stream *hinfo, static int ad198x_capture_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct ad198x_spec *spec = codec->spec; snd_hda_codec_setup_stream(codec, spec->adc_nids[substream->number], @@ -348,7 +348,7 @@ static struct hda_input_mux ad1986a_capture_source = { #define ad1986a_pcm_amp_vol_info snd_hda_mixer_amp_volume_info -static int ad1986a_pcm_amp_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad1986a_pcm_amp_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *ad = codec->spec; @@ -359,7 +359,7 @@ static int ad1986a_pcm_amp_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ return 0; } -static int ad1986a_pcm_amp_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad1986a_pcm_amp_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *ad = codec->spec; @@ -377,7 +377,7 @@ static int ad1986a_pcm_amp_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ #define ad1986a_pcm_amp_sw_info snd_hda_mixer_amp_switch_info -static int ad1986a_pcm_amp_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad1986a_pcm_amp_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *ad = codec->spec; @@ -388,7 +388,7 @@ static int ad1986a_pcm_amp_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int ad1986a_pcm_amp_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad1986a_pcm_amp_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *ad = codec->spec; @@ -407,7 +407,7 @@ static int ad1986a_pcm_amp_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t /* * mixers */ -static snd_kcontrol_new_t ad1986a_mixers[] = { +static struct snd_kcontrol_new ad1986a_mixers[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Playback Volume", @@ -570,7 +570,7 @@ static struct hda_input_mux ad1983_capture_source = { /* * SPDIF playback route */ -static int ad1983_spdif_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int ad1983_spdif_route_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "PCM", "ADC" }; @@ -583,7 +583,7 @@ static int ad1983_spdif_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int ad1983_spdif_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad1983_spdif_route_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *spec = codec->spec; @@ -592,7 +592,7 @@ static int ad1983_spdif_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int ad1983_spdif_route_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int ad1983_spdif_route_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct ad198x_spec *spec = codec->spec; @@ -606,7 +606,7 @@ static int ad1983_spdif_route_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static snd_kcontrol_new_t ad1983_mixers[] = { +static struct snd_kcontrol_new ad1983_mixers[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x05, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Front Playback Switch", 0x05, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Headphone Playback Volume", 0x06, 0x0, HDA_OUTPUT), @@ -736,7 +736,7 @@ static struct hda_input_mux ad1981_capture_source = { }, }; -static snd_kcontrol_new_t ad1981_mixers[] = { +static struct snd_kcontrol_new ad1981_mixers[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x05, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Front Playback Switch", 0x05, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Headphone Playback Volume", 0x06, 0x0, HDA_OUTPUT), diff --git a/sound/pci/hda/patch_cmedia.c b/sound/pci/hda/patch_cmedia.c index 37ee1246b2d..9a698116298 100644 --- a/sound/pci/hda/patch_cmedia.c +++ b/sound/pci/hda/patch_cmedia.c @@ -79,14 +79,14 @@ struct cmi_spec { /* * input MUX */ -static int cmi_mux_enum_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int cmi_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; return snd_hda_input_mux_info(spec->input_mux, uinfo); } -static int cmi_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cmi_mux_enum_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; @@ -96,7 +96,7 @@ static int cmi_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon return 0; } -static int cmi_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cmi_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; @@ -149,7 +149,7 @@ static struct hda_channel_mode cmi9880_channel_modes[3] = { { 8, cmi9880_ch8_init }, }; -static int cmi_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int cmi_ch_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; @@ -157,7 +157,7 @@ static int cmi_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo spec->num_channel_modes); } -static int cmi_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cmi_ch_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; @@ -165,7 +165,7 @@ static int cmi_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont spec->num_channel_modes, spec->multiout.max_channels); } -static int cmi_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cmi_ch_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cmi_spec *spec = codec->spec; @@ -175,7 +175,7 @@ static int cmi_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont /* */ -static snd_kcontrol_new_t cmi9880_basic_mixer[] = { +static struct snd_kcontrol_new cmi9880_basic_mixer[] = { /* CMI9880 has no playback volumes! */ HDA_CODEC_MUTE("PCM Playback Switch", 0x03, 0x0, HDA_OUTPUT), /* front */ HDA_CODEC_MUTE("Surround Playback Switch", 0x04, 0x0, HDA_OUTPUT), @@ -207,7 +207,7 @@ static snd_kcontrol_new_t cmi9880_basic_mixer[] = { /* * shared I/O pins */ -static snd_kcontrol_new_t cmi9880_ch_mode_mixer[] = { +static struct snd_kcontrol_new cmi9880_ch_mode_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Channel Mode", @@ -452,7 +452,7 @@ static int cmi9880_resume(struct hda_codec *codec) */ static int cmi9880_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct cmi_spec *spec = codec->spec; return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); @@ -462,7 +462,7 @@ static int cmi9880_playback_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct cmi_spec *spec = codec->spec; return snd_hda_multi_out_analog_prepare(codec, &spec->multiout, stream_tag, @@ -471,7 +471,7 @@ static int cmi9880_playback_pcm_prepare(struct hda_pcm_stream *hinfo, static int cmi9880_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct cmi_spec *spec = codec->spec; return snd_hda_multi_out_analog_cleanup(codec, &spec->multiout); @@ -482,7 +482,7 @@ static int cmi9880_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, */ static int cmi9880_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct cmi_spec *spec = codec->spec; return snd_hda_multi_out_dig_open(codec, &spec->multiout); @@ -490,7 +490,7 @@ static int cmi9880_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, static int cmi9880_dig_playback_pcm_close(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct cmi_spec *spec = codec->spec; return snd_hda_multi_out_dig_close(codec, &spec->multiout); @@ -503,7 +503,7 @@ static int cmi9880_capture_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct cmi_spec *spec = codec->spec; @@ -514,7 +514,7 @@ static int cmi9880_capture_pcm_prepare(struct hda_pcm_stream *hinfo, static int cmi9880_capture_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct cmi_spec *spec = codec->spec; diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 3ff72c49cd2..62e6993056e 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -63,7 +63,7 @@ enum { struct alc_spec { /* codec parameterization */ - snd_kcontrol_new_t *mixers[3]; /* mixer arrays */ + struct snd_kcontrol_new *mixers[3]; /* mixer arrays */ unsigned int num_mixers; const struct hda_verb *init_verbs[3]; /* initialization verbs @@ -104,7 +104,7 @@ struct alc_spec { /* dynamic controls, init_verbs and input_mux */ struct auto_pin_cfg autocfg; unsigned int num_kctl_alloc, num_kctl_used; - snd_kcontrol_new_t *kctl_alloc; + struct snd_kcontrol_new *kctl_alloc; struct hda_input_mux private_imux; hda_nid_t private_dac_nids[4]; }; @@ -113,14 +113,14 @@ struct alc_spec { /* * input MUX handling */ -static int alc_mux_enum_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int alc_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; return snd_hda_input_mux_info(spec->input_mux, uinfo); } -static int alc_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_mux_enum_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -130,7 +130,7 @@ static int alc_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon return 0; } -static int alc_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -143,7 +143,7 @@ static int alc_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon /* * channel mode setting */ -static int alc880_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int alc880_ch_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -151,7 +151,7 @@ static int alc880_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui spec->num_channel_mode); } -static int alc880_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc880_ch_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -159,7 +159,7 @@ static int alc880_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc spec->num_channel_mode, spec->multiout.max_channels); } -static int alc880_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc880_ch_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -173,7 +173,7 @@ static int alc880_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc * supported, so VrefEn can't be controlled using these functions as they * stand. */ -static int alc_pinctl_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int alc_pinctl_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -182,7 +182,7 @@ static int alc_pinctl_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int alc_pinctl_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_pinctl_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = kcontrol->private_value & 0xffff; @@ -195,7 +195,7 @@ static int alc_pinctl_switch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int alc_pinctl_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_pinctl_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = kcontrol->private_value & 0xffff; @@ -284,7 +284,7 @@ static struct hda_channel_mode alc880_threestack_modes[2] = { { 6, alc880_threestack_ch6_init }, }; -static snd_kcontrol_new_t alc880_three_stack_mixer[] = { +static struct snd_kcontrol_new alc880_three_stack_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), HDA_CODEC_VOLUME("Surround Playback Volume", 0x0f, 0x0, HDA_OUTPUT), @@ -315,7 +315,7 @@ static snd_kcontrol_new_t alc880_three_stack_mixer[] = { }; /* capture mixer elements */ -static snd_kcontrol_new_t alc880_capture_mixer[] = { +static struct snd_kcontrol_new alc880_capture_mixer[] = { HDA_CODEC_VOLUME("Capture Volume", 0x07, 0x0, HDA_INPUT), HDA_CODEC_MUTE("Capture Switch", 0x07, 0x0, HDA_INPUT), HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x08, 0x0, HDA_INPUT), @@ -339,7 +339,7 @@ static snd_kcontrol_new_t alc880_capture_mixer[] = { }; /* capture mixer elements (in case NID 0x07 not available) */ -static snd_kcontrol_new_t alc880_capture_alt_mixer[] = { +static struct snd_kcontrol_new alc880_capture_alt_mixer[] = { HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x09, 0x0, HDA_INPUT), @@ -371,7 +371,7 @@ static snd_kcontrol_new_t alc880_capture_alt_mixer[] = { */ /* additional mixers to alc880_three_stack_mixer */ -static snd_kcontrol_new_t alc880_five_stack_mixer[] = { +static struct snd_kcontrol_new alc880_five_stack_mixer[] = { HDA_CODEC_VOLUME("Side Playback Volume", 0x0d, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Side Playback Switch", 0x0d, 2, HDA_INPUT), { } /* end */ @@ -428,7 +428,7 @@ static struct hda_channel_mode alc880_sixstack_modes[1] = { { 8, NULL }, }; -static snd_kcontrol_new_t alc880_six_stack_mixer[] = { +static struct snd_kcontrol_new alc880_six_stack_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), @@ -496,7 +496,7 @@ static struct hda_channel_mode alc880_w810_modes[1] = { }; /* Pin assignment: Front = 0x14, Surr = 0x15, CLFE = 0x16, HP = 0x1b */ -static snd_kcontrol_new_t alc880_w810_base_mixer[] = { +static struct snd_kcontrol_new alc880_w810_base_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), @@ -527,7 +527,7 @@ static struct hda_channel_mode alc880_2_jack_modes[1] = { { 2, NULL } }; -static snd_kcontrol_new_t alc880_z71v_mixer[] = { +static struct snd_kcontrol_new alc880_z71v_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0d, 0x0, HDA_OUTPUT), @@ -553,7 +553,7 @@ static hda_nid_t alc880_f1734_dac_nids[1] = { }; #define ALC880_F1734_HP_DAC 0x02 -static snd_kcontrol_new_t alc880_f1734_mixer[] = { +static struct snd_kcontrol_new alc880_f1734_mixer[] = { HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), HDA_CODEC_VOLUME("Internal Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), @@ -578,7 +578,7 @@ static snd_kcontrol_new_t alc880_f1734_mixer[] = { #define alc880_asus_dac_nids alc880_w810_dac_nids /* identical with w810 */ #define alc880_asus_modes alc880_threestack_modes /* 2/6 channel mode */ -static snd_kcontrol_new_t alc880_asus_mixer[] = { +static struct snd_kcontrol_new alc880_asus_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), @@ -613,14 +613,14 @@ static snd_kcontrol_new_t alc880_asus_mixer[] = { */ /* additional mixers to alc880_asus_mixer */ -static snd_kcontrol_new_t alc880_asus_w1v_mixer[] = { +static struct snd_kcontrol_new alc880_asus_w1v_mixer[] = { HDA_CODEC_VOLUME("Line2 Playback Volume", 0x0b, 0x03, HDA_INPUT), HDA_CODEC_MUTE("Line2 Playback Switch", 0x0b, 0x03, HDA_INPUT), { } /* end */ }; /* additional mixers to alc880_asus_mixer */ -static snd_kcontrol_new_t alc880_pcbeep_mixer[] = { +static struct snd_kcontrol_new alc880_pcbeep_mixer[] = { HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x0b, 0x05, HDA_INPUT), HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x0b, 0x05, HDA_INPUT), { } /* end */ @@ -974,7 +974,7 @@ static int alc_resume(struct hda_codec *codec) */ static int alc880_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct alc_spec *spec = codec->spec; return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); @@ -984,7 +984,7 @@ static int alc880_playback_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct alc_spec *spec = codec->spec; return snd_hda_multi_out_analog_prepare(codec, &spec->multiout, stream_tag, @@ -993,7 +993,7 @@ static int alc880_playback_pcm_prepare(struct hda_pcm_stream *hinfo, static int alc880_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct alc_spec *spec = codec->spec; return snd_hda_multi_out_analog_cleanup(codec, &spec->multiout); @@ -1004,7 +1004,7 @@ static int alc880_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, */ static int alc880_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct alc_spec *spec = codec->spec; return snd_hda_multi_out_dig_open(codec, &spec->multiout); @@ -1012,7 +1012,7 @@ static int alc880_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, static int alc880_dig_playback_pcm_close(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct alc_spec *spec = codec->spec; return snd_hda_multi_out_dig_close(codec, &spec->multiout); @@ -1025,7 +1025,7 @@ static int alc880_capture_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct alc_spec *spec = codec->spec; @@ -1036,7 +1036,7 @@ static int alc880_capture_pcm_prepare(struct hda_pcm_stream *hinfo, static int alc880_capture_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct alc_spec *spec = codec->spec; @@ -1185,7 +1185,7 @@ static struct hda_channel_mode alc880_test_modes[4] = { { 8, NULL }, }; -static int alc_test_pin_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int alc_test_pin_ctl_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "N/A", "Line Out", "HP Out", @@ -1200,7 +1200,7 @@ static int alc_test_pin_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int alc_test_pin_ctl_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_test_pin_ctl_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = (hda_nid_t)kcontrol->private_value; @@ -1226,7 +1226,7 @@ static int alc_test_pin_ctl_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int alc_test_pin_ctl_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_test_pin_ctl_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = (hda_nid_t)kcontrol->private_value; @@ -1252,7 +1252,7 @@ static int alc_test_pin_ctl_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int alc_test_pin_src_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int alc_test_pin_src_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "Front", "Surround", "CLFE", "Side" @@ -1266,7 +1266,7 @@ static int alc_test_pin_src_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int alc_test_pin_src_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_test_pin_src_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = (hda_nid_t)kcontrol->private_value; @@ -1277,7 +1277,7 @@ static int alc_test_pin_src_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int alc_test_pin_src_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc_test_pin_src_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); hda_nid_t nid = (hda_nid_t)kcontrol->private_value; @@ -1310,7 +1310,7 @@ static int alc_test_pin_src_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * .private_value = nid \ } -static snd_kcontrol_new_t alc880_test_mixer[] = { +static struct snd_kcontrol_new alc880_test_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("CLFE Playback Volume", 0x0e, 0x0, HDA_OUTPUT), @@ -1527,7 +1527,7 @@ static struct hda_board_config alc880_cfg_tbl[] = { * configuration template - to be copied to the spec instance */ struct alc_config_preset { - snd_kcontrol_new_t *mixers[4]; + struct snd_kcontrol_new *mixers[4]; const struct hda_verb *init_verbs[4]; unsigned int num_dacs; hda_nid_t *dac_nids; @@ -1698,7 +1698,7 @@ enum { ALC_CTL_WIDGET_MUTE, ALC_CTL_BIND_MUTE, }; -static snd_kcontrol_new_t alc880_control_templates[] = { +static struct snd_kcontrol_new alc880_control_templates[] = { HDA_CODEC_VOLUME(NULL, 0, 0, 0), HDA_CODEC_MUTE(NULL, 0, 0, 0), HDA_BIND_MUTE(NULL, 0, 0, 0), @@ -1707,7 +1707,7 @@ static snd_kcontrol_new_t alc880_control_templates[] = { /* add dynamic controls */ static int add_control(struct alc_spec *spec, int type, const char *name, unsigned long val) { - snd_kcontrol_new_t *knew; + struct snd_kcontrol_new *knew; if (spec->num_kctl_used >= spec->num_kctl_alloc) { int num = spec->num_kctl_alloc + NUM_CONTROL_ALLOC; @@ -2168,7 +2168,7 @@ static struct hda_channel_mode alc260_modes[1] = { { 2, NULL }, }; -static snd_kcontrol_new_t alc260_base_mixer[] = { +static struct snd_kcontrol_new alc260_base_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x08, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x08, 2, HDA_INPUT), HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT), @@ -2197,7 +2197,7 @@ static snd_kcontrol_new_t alc260_base_mixer[] = { { } /* end */ }; -static snd_kcontrol_new_t alc260_hp_mixer[] = { +static struct snd_kcontrol_new alc260_hp_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x08, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x08, 2, HDA_INPUT), HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT), @@ -2224,7 +2224,7 @@ static snd_kcontrol_new_t alc260_hp_mixer[] = { { } /* end */ }; -static snd_kcontrol_new_t alc260_fujitsu_mixer[] = { +static struct snd_kcontrol_new alc260_fujitsu_mixer[] = { HDA_CODEC_VOLUME("Headphone Playback Volume", 0x08, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Headphone Playback Switch", 0x08, 2, HDA_INPUT), ALC_PINCTL_SWITCH("Headphone Amp Switch", 0x14, PIN_HP_AMP), @@ -2498,7 +2498,7 @@ static struct hda_input_mux alc882_capture_source = { #define alc882_mux_enum_info alc_mux_enum_info #define alc882_mux_enum_get alc_mux_enum_get -static int alc882_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int alc882_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -2526,7 +2526,7 @@ static int alc882_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b */ -static snd_kcontrol_new_t alc882_base_mixer[] = { +static struct snd_kcontrol_new alc882_base_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), diff --git a/sound/pci/hda/patch_si3054.c b/sound/pci/hda/patch_si3054.c index 12b5de29f42..8f8840e6002 100644 --- a/sound/pci/hda/patch_si3054.c +++ b/sound/pci/hda/patch_si3054.c @@ -95,8 +95,8 @@ struct si3054_spec { #define PRIVATE_REG(val) ((val>>16)&0xffff) #define PRIVATE_MASK(val) (val&0xffff) -static int si3054_switch_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int si3054_switch_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -105,8 +105,8 @@ static int si3054_switch_info(snd_kcontrol_t *kcontrol, return 0; } -static int si3054_switch_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *uvalue) +static int si3054_switch_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *uvalue) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); u16 reg = PRIVATE_REG(kcontrol->private_value); @@ -115,8 +115,8 @@ static int si3054_switch_get(snd_kcontrol_t *kcontrol, return 0; } -static int si3054_switch_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *uvalue) +static int si3054_switch_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *uvalue) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); u16 reg = PRIVATE_REG(kcontrol->private_value); @@ -138,7 +138,7 @@ static int si3054_switch_put(snd_kcontrol_t *kcontrol, } -static snd_kcontrol_new_t si3054_modem_mixer[] = { +static struct snd_kcontrol_new si3054_modem_mixer[] = { SI3054_KCONTROL("Off-hook Switch", SI3054_GPIO_CONTROL, SI3054_GPIO_OH), SI3054_KCONTROL("Caller ID Switch", SI3054_GPIO_CONTROL, SI3054_GPIO_CID), {} @@ -158,7 +158,7 @@ static int si3054_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { u16 val; @@ -175,10 +175,10 @@ static int si3054_pcm_prepare(struct hda_pcm_stream *hinfo, static int si3054_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { static unsigned int rates[] = { 8000, 9600, 16000 }; - static snd_pcm_hw_constraint_list_t hw_constraints_rates = { + static struct snd_pcm_hw_constraint_list hw_constraints_rates = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 33a8adaea76..d8d68f5b613 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -41,7 +41,7 @@ #define STAC_UNSOL_ENABLE (AC_USRSP_EN | STAC_HP_EVENT) struct sigmatel_spec { - snd_kcontrol_new_t *mixers[4]; + struct snd_kcontrol_new *mixers[4]; unsigned int num_mixers; unsigned int surr_switch: 1; @@ -66,7 +66,7 @@ struct sigmatel_spec { /* codec specific stuff */ struct hda_verb *init; - snd_kcontrol_new_t *mixer; + struct snd_kcontrol_new *mixer; /* capture source */ struct hda_input_mux *input_mux; @@ -81,7 +81,7 @@ struct sigmatel_spec { /* dynamic controls and input_mux */ struct auto_pin_cfg autocfg; unsigned int num_kctl_alloc, num_kctl_used; - snd_kcontrol_new_t *kctl_alloc; + struct snd_kcontrol_new *kctl_alloc; struct hda_input_mux private_imux; }; @@ -116,14 +116,14 @@ static hda_nid_t stac922x_pin_nids[10] = { }; #endif -static int stac92xx_mux_enum_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int stac92xx_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; return snd_hda_input_mux_info(spec->input_mux, uinfo); } -static int stac92xx_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac92xx_mux_enum_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; @@ -133,7 +133,7 @@ static int stac92xx_mux_enum_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int stac92xx_mux_enum_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac92xx_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; @@ -157,7 +157,7 @@ static struct hda_verb stac922x_core_init[] = { static int stac922x_channel_modes[3] = {2, 6, 8}; -static int stac922x_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int stac922x_ch_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; @@ -172,7 +172,7 @@ static int stac922x_ch_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int stac922x_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac922x_ch_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; @@ -181,7 +181,7 @@ static int stac922x_ch_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int stac922x_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac922x_ch_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; @@ -198,7 +198,7 @@ static int stac922x_ch_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 1; } -static snd_kcontrol_new_t stac9200_mixer[] = { +static struct snd_kcontrol_new stac9200_mixer[] = { HDA_CODEC_VOLUME("Master Playback Volume", 0xb, 0, HDA_OUTPUT), HDA_CODEC_MUTE("Master Playback Switch", 0xb, 0, HDA_OUTPUT), { @@ -216,7 +216,7 @@ static snd_kcontrol_new_t stac9200_mixer[] = { }; /* This needs to be generated dynamically based on sequence */ -static snd_kcontrol_new_t stac922x_mixer[] = { +static struct snd_kcontrol_new stac922x_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Input Source", @@ -231,7 +231,7 @@ static snd_kcontrol_new_t stac922x_mixer[] = { { } /* end */ }; -static snd_kcontrol_new_t stac922x_ch_mode_mixer[] = { +static struct snd_kcontrol_new stac922x_ch_mode_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Channel Mode", @@ -320,7 +320,7 @@ static void stac92xx_set_config_regs(struct hda_codec *codec) */ static int stac92xx_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); @@ -333,7 +333,7 @@ static int stac92xx_playback_pcm_open(struct hda_pcm_stream *hinfo, static int stac92xx_multi_out_analog_prepare(struct hda_codec *codec, struct hda_multi_out *mout, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { hda_nid_t *nids = mout->dac_nids; int chs = substream->runtime->channels; @@ -380,7 +380,7 @@ static int stac92xx_playback_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; return stac92xx_multi_out_analog_prepare(codec, &spec->multiout, stream_tag, @@ -389,7 +389,7 @@ static int stac92xx_playback_pcm_prepare(struct hda_pcm_stream *hinfo, static int stac92xx_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; return snd_hda_multi_out_analog_cleanup(codec, &spec->multiout); @@ -400,7 +400,7 @@ static int stac92xx_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, */ static int stac92xx_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; return snd_hda_multi_out_dig_open(codec, &spec->multiout); @@ -408,7 +408,7 @@ static int stac92xx_dig_playback_pcm_open(struct hda_pcm_stream *hinfo, static int stac92xx_dig_playback_pcm_close(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; return snd_hda_multi_out_dig_close(codec, &spec->multiout); @@ -422,7 +422,7 @@ static int stac92xx_capture_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, unsigned int format, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; @@ -433,7 +433,7 @@ static int stac92xx_capture_pcm_prepare(struct hda_pcm_stream *hinfo, static int stac92xx_capture_pcm_cleanup(struct hda_pcm_stream *hinfo, struct hda_codec *codec, - snd_pcm_substream_t *substream) + struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; @@ -516,7 +516,7 @@ enum { STAC_CTL_WIDGET_MUTE, }; -static snd_kcontrol_new_t stac92xx_control_templates[] = { +static struct snd_kcontrol_new stac92xx_control_templates[] = { HDA_CODEC_VOLUME(NULL, 0, 0, 0), HDA_CODEC_MUTE(NULL, 0, 0, 0), }; @@ -524,7 +524,7 @@ static snd_kcontrol_new_t stac92xx_control_templates[] = { /* add dynamic controls */ static int stac92xx_add_control(struct sigmatel_spec *spec, int type, const char *name, unsigned long val) { - snd_kcontrol_new_t *knew; + struct snd_kcontrol_new *knew; if (spec->num_kctl_used >= spec->num_kctl_alloc) { int num = spec->num_kctl_alloc + NUM_CONTROL_ALLOC; -- cgit v1.2.3-70-g09d2 From a98f90fd826913519c3f704ea24fb9bea1e0e494 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:59:02 +0100 Subject: [ALSA] Remove xxx_t typedefs: HDA-Intel Modules: HDA Intel driver Remove xxx_t typedefs from the HDA-Intel driver. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_intel.c | 156 ++++++++++++++++++++++------------------------ 1 file changed, 76 insertions(+), 80 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 429ef3810b1..abdbd96d4c0 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -238,11 +238,7 @@ enum { /* */ -typedef struct snd_azx azx_t; -typedef struct snd_azx_rb azx_rb_t; -typedef struct snd_azx_dev azx_dev_t; - -struct snd_azx_dev { +struct azx_dev { u32 *bdl; /* virtual address of the BDL */ dma_addr_t bdl_addr; /* physical address of the BDL */ volatile u32 *posbuf; /* position buffer pointer */ @@ -258,7 +254,7 @@ struct snd_azx_dev { u32 sd_int_sta_mask; /* stream int status mask */ /* pcm support */ - snd_pcm_substream_t *substream; /* assigned substream, set in PCM open */ + struct snd_pcm_substream *substream; /* assigned substream, set in PCM open */ unsigned int format_val; /* format value to be set in the controller and the codec */ unsigned char stream_tag; /* assigned stream */ unsigned char index; /* stream index */ @@ -269,7 +265,7 @@ struct snd_azx_dev { }; /* CORB/RIRB */ -struct snd_azx_rb { +struct azx_rb { u32 *buf; /* CORB/RIRB buffer * Each CORB entry is 4byte, RIRB is 8byte */ @@ -280,8 +276,8 @@ struct snd_azx_rb { u32 res; /* last read value */ }; -struct snd_azx { - snd_card_t *card; +struct azx { + struct snd_card *card; struct pci_dev *pci; /* chip type specific */ @@ -302,19 +298,19 @@ struct snd_azx { struct semaphore open_mutex; /* streams (x num_streams) */ - azx_dev_t *azx_dev; + struct azx_dev *azx_dev; /* PCM */ unsigned int pcm_devs; - snd_pcm_t *pcm[AZX_MAX_PCMS]; + struct snd_pcm *pcm[AZX_MAX_PCMS]; /* HD codec */ unsigned short codec_mask; struct hda_bus *bus; /* CORB/RIRB */ - azx_rb_t corb; - azx_rb_t rirb; + struct azx_rb corb; + struct azx_rb rirb; /* BDL, CORB/RIRB and position buffers */ struct snd_dma_buffer bdl; @@ -375,7 +371,7 @@ static char *driver_short_names[] __devinitdata = { readb((dev)->sd_addr + ICH6_REG_##reg) /* for pcm support */ -#define get_azx_dev(substream) (azx_dev_t*)(substream->runtime->private_data) +#define get_azx_dev(substream) (substream->runtime->private_data) /* Get the upper 32bit of the given dma_addr_t * Compiler should optimize and eliminate the code if dma_addr_t is 32bit @@ -391,7 +387,7 @@ static char *driver_short_names[] __devinitdata = { /* * CORB / RIRB interface */ -static int azx_alloc_cmd_io(azx_t *chip) +static int azx_alloc_cmd_io(struct azx *chip) { int err; @@ -405,7 +401,7 @@ static int azx_alloc_cmd_io(azx_t *chip) return 0; } -static void azx_init_cmd_io(azx_t *chip) +static void azx_init_cmd_io(struct azx *chip) { /* CORB set up */ chip->corb.addr = chip->rb.addr; @@ -443,7 +439,7 @@ static void azx_init_cmd_io(azx_t *chip) chip->rirb.rp = chip->rirb.cmds = 0; } -static void azx_free_cmd_io(azx_t *chip) +static void azx_free_cmd_io(struct azx *chip) { /* disable ringbuffer DMAs */ azx_writeb(chip, RIRBCTL, 0); @@ -454,7 +450,7 @@ static void azx_free_cmd_io(azx_t *chip) static int azx_send_cmd(struct hda_codec *codec, hda_nid_t nid, int direct, unsigned int verb, unsigned int para) { - azx_t *chip = codec->bus->private_data; + struct azx *chip = codec->bus->private_data; unsigned int wp; u32 val; @@ -481,7 +477,7 @@ static int azx_send_cmd(struct hda_codec *codec, hda_nid_t nid, int direct, #define ICH6_RIRB_EX_UNSOL_EV (1<<4) /* retrieve RIRB entry - called from interrupt handler */ -static void azx_update_rirb(azx_t *chip) +static void azx_update_rirb(struct azx *chip) { unsigned int rp, wp; u32 res, res_ex; @@ -510,7 +506,7 @@ static void azx_update_rirb(azx_t *chip) /* receive a response */ static unsigned int azx_get_response(struct hda_codec *codec) { - azx_t *chip = codec->bus->private_data; + struct azx *chip = codec->bus->private_data; int timeout = 50; while (chip->rirb.cmds) { @@ -546,7 +542,7 @@ static unsigned int azx_get_response(struct hda_codec *codec) static int azx_send_cmd(struct hda_codec *codec, hda_nid_t nid, int direct, unsigned int verb, unsigned int para) { - azx_t *chip = codec->bus->private_data; + struct azx *chip = codec->bus->private_data; u32 val; int timeout = 50; @@ -574,7 +570,7 @@ static int azx_send_cmd(struct hda_codec *codec, hda_nid_t nid, int direct, /* receive a response */ static unsigned int azx_get_response(struct hda_codec *codec) { - azx_t *chip = codec->bus->private_data; + struct azx *chip = codec->bus->private_data; int timeout = 50; while (timeout--) { @@ -592,7 +588,7 @@ static unsigned int azx_get_response(struct hda_codec *codec) #endif /* USE_CORB_RIRB */ /* reset codec link */ -static int azx_reset(azx_t *chip) +static int azx_reset(struct azx *chip) { int count; @@ -642,7 +638,7 @@ static int azx_reset(azx_t *chip) */ /* enable interrupts */ -static void azx_int_enable(azx_t *chip) +static void azx_int_enable(struct azx *chip) { /* enable controller CIE and GIE */ azx_writel(chip, INTCTL, azx_readl(chip, INTCTL) | @@ -650,13 +646,13 @@ static void azx_int_enable(azx_t *chip) } /* disable interrupts */ -static void azx_int_disable(azx_t *chip) +static void azx_int_disable(struct azx *chip) { int i; /* disable interrupts in stream descriptor */ for (i = 0; i < chip->num_streams; i++) { - azx_dev_t *azx_dev = &chip->azx_dev[i]; + struct azx_dev *azx_dev = &chip->azx_dev[i]; azx_sd_writeb(azx_dev, SD_CTL, azx_sd_readb(azx_dev, SD_CTL) & ~SD_INT_MASK); } @@ -670,13 +666,13 @@ static void azx_int_disable(azx_t *chip) } /* clear interrupts */ -static void azx_int_clear(azx_t *chip) +static void azx_int_clear(struct azx *chip) { int i; /* clear stream status */ for (i = 0; i < chip->num_streams; i++) { - azx_dev_t *azx_dev = &chip->azx_dev[i]; + struct azx_dev *azx_dev = &chip->azx_dev[i]; azx_sd_writeb(azx_dev, SD_STS, SD_INT_MASK); } @@ -691,7 +687,7 @@ static void azx_int_clear(azx_t *chip) } /* start a stream */ -static void azx_stream_start(azx_t *chip, azx_dev_t *azx_dev) +static void azx_stream_start(struct azx *chip, struct azx_dev *azx_dev) { /* enable SIE */ azx_writeb(chip, INTCTL, @@ -702,7 +698,7 @@ static void azx_stream_start(azx_t *chip, azx_dev_t *azx_dev) } /* stop a stream */ -static void azx_stream_stop(azx_t *chip, azx_dev_t *azx_dev) +static void azx_stream_stop(struct azx *chip, struct azx_dev *azx_dev) { /* stop DMA */ azx_sd_writeb(azx_dev, SD_CTL, azx_sd_readb(azx_dev, SD_CTL) & @@ -717,7 +713,7 @@ static void azx_stream_stop(azx_t *chip, azx_dev_t *azx_dev) /* * initialize the chip */ -static void azx_init_chip(azx_t *chip) +static void azx_init_chip(struct azx *chip) { unsigned char reg; @@ -765,8 +761,8 @@ static void azx_init_chip(azx_t *chip) */ static irqreturn_t azx_interrupt(int irq, void* dev_id, struct pt_regs *regs) { - azx_t *chip = dev_id; - azx_dev_t *azx_dev; + struct azx *chip = dev_id; + struct azx_dev *azx_dev; u32 status; int i; @@ -814,7 +810,7 @@ static irqreturn_t azx_interrupt(int irq, void* dev_id, struct pt_regs *regs) /* * set up BDL entries */ -static void azx_setup_periods(azx_dev_t *azx_dev) +static void azx_setup_periods(struct azx_dev *azx_dev) { u32 *bdl = azx_dev->bdl; dma_addr_t dma_addr = azx_dev->substream->runtime->dma_addr; @@ -843,7 +839,7 @@ static void azx_setup_periods(azx_dev_t *azx_dev) /* * set up the SD for streaming */ -static int azx_setup_controller(azx_t *chip, azx_dev_t *azx_dev) +static int azx_setup_controller(struct azx *chip, struct azx_dev *azx_dev) { unsigned char val; int timeout; @@ -903,7 +899,7 @@ static int azx_setup_controller(azx_t *chip, azx_dev_t *azx_dev) * Codec initialization */ -static int __devinit azx_codec_create(azx_t *chip, const char *model) +static int __devinit azx_codec_create(struct azx *chip, const char *model) { struct hda_bus_template bus_temp; int c, codecs, err; @@ -941,7 +937,7 @@ static int __devinit azx_codec_create(azx_t *chip, const char *model) */ /* assign a stream for the PCM */ -static inline azx_dev_t *azx_assign_device(azx_t *chip, int stream) +static inline struct azx_dev *azx_assign_device(struct azx *chip, int stream) { int dev, i, nums; if (stream == SNDRV_PCM_STREAM_PLAYBACK) { @@ -960,12 +956,12 @@ static inline azx_dev_t *azx_assign_device(azx_t *chip, int stream) } /* release the assigned stream */ -static inline void azx_release_device(azx_dev_t *azx_dev) +static inline void azx_release_device(struct azx_dev *azx_dev) { azx_dev->opened = 0; } -static snd_pcm_hardware_t azx_pcm_hw = { +static struct snd_pcm_hardware azx_pcm_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID | @@ -986,18 +982,18 @@ static snd_pcm_hardware_t azx_pcm_hw = { }; struct azx_pcm { - azx_t *chip; + struct azx *chip; struct hda_codec *codec; struct hda_pcm_stream *hinfo[2]; }; -static int azx_pcm_open(snd_pcm_substream_t *substream) +static int azx_pcm_open(struct snd_pcm_substream *substream) { struct azx_pcm *apcm = snd_pcm_substream_chip(substream); struct hda_pcm_stream *hinfo = apcm->hinfo[substream->stream]; - azx_t *chip = apcm->chip; - azx_dev_t *azx_dev; - snd_pcm_runtime_t *runtime = substream->runtime; + struct azx *chip = apcm->chip; + struct azx_dev *azx_dev; + struct snd_pcm_runtime *runtime = substream->runtime; unsigned long flags; int err; @@ -1029,12 +1025,12 @@ static int azx_pcm_open(snd_pcm_substream_t *substream) return 0; } -static int azx_pcm_close(snd_pcm_substream_t *substream) +static int azx_pcm_close(struct snd_pcm_substream *substream) { struct azx_pcm *apcm = snd_pcm_substream_chip(substream); struct hda_pcm_stream *hinfo = apcm->hinfo[substream->stream]; - azx_t *chip = apcm->chip; - azx_dev_t *azx_dev = get_azx_dev(substream); + struct azx *chip = apcm->chip; + struct azx_dev *azx_dev = get_azx_dev(substream); unsigned long flags; down(&chip->open_mutex); @@ -1048,15 +1044,15 @@ static int azx_pcm_close(snd_pcm_substream_t *substream) return 0; } -static int azx_pcm_hw_params(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *hw_params) +static int azx_pcm_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int azx_pcm_hw_free(snd_pcm_substream_t *substream) +static int azx_pcm_hw_free(struct snd_pcm_substream *substream) { struct azx_pcm *apcm = snd_pcm_substream_chip(substream); - azx_dev_t *azx_dev = get_azx_dev(substream); + struct azx_dev *azx_dev = get_azx_dev(substream); struct hda_pcm_stream *hinfo = apcm->hinfo[substream->stream]; /* reset BDL address */ @@ -1069,13 +1065,13 @@ static int azx_pcm_hw_free(snd_pcm_substream_t *substream) return snd_pcm_lib_free_pages(substream); } -static int azx_pcm_prepare(snd_pcm_substream_t *substream) +static int azx_pcm_prepare(struct snd_pcm_substream *substream) { struct azx_pcm *apcm = snd_pcm_substream_chip(substream); - azx_t *chip = apcm->chip; - azx_dev_t *azx_dev = get_azx_dev(substream); + struct azx *chip = apcm->chip; + struct azx_dev *azx_dev = get_azx_dev(substream); struct hda_pcm_stream *hinfo = apcm->hinfo[substream->stream]; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; azx_dev->bufsize = snd_pcm_lib_buffer_bytes(substream); azx_dev->fragsize = snd_pcm_lib_period_bytes(substream); @@ -1104,11 +1100,11 @@ static int azx_pcm_prepare(snd_pcm_substream_t *substream) azx_dev->format_val, substream); } -static int azx_pcm_trigger(snd_pcm_substream_t *substream, int cmd) +static int azx_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { struct azx_pcm *apcm = snd_pcm_substream_chip(substream); - azx_dev_t *azx_dev = get_azx_dev(substream); - azx_t *chip = apcm->chip; + struct azx_dev *azx_dev = get_azx_dev(substream); + struct azx *chip = apcm->chip; int err = 0; spin_lock(&chip->reg_lock); @@ -1139,11 +1135,11 @@ static int azx_pcm_trigger(snd_pcm_substream_t *substream, int cmd) return err; } -static snd_pcm_uframes_t azx_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t azx_pcm_pointer(struct snd_pcm_substream *substream) { struct azx_pcm *apcm = snd_pcm_substream_chip(substream); - azx_t *chip = apcm->chip; - azx_dev_t *azx_dev = get_azx_dev(substream); + struct azx *chip = apcm->chip; + struct azx_dev *azx_dev = get_azx_dev(substream); unsigned int pos; if (chip->position_fix == POS_FIX_POSBUF) { @@ -1185,7 +1181,7 @@ static snd_pcm_uframes_t azx_pcm_pointer(snd_pcm_substream_t *substream) return bytes_to_frames(substream->runtime, pos); } -static snd_pcm_ops_t azx_pcm_ops = { +static struct snd_pcm_ops azx_pcm_ops = { .open = azx_pcm_open, .close = azx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -1196,16 +1192,16 @@ static snd_pcm_ops_t azx_pcm_ops = { .pointer = azx_pcm_pointer, }; -static void azx_pcm_free(snd_pcm_t *pcm) +static void azx_pcm_free(struct snd_pcm *pcm) { kfree(pcm->private_data); } -static int __devinit create_codec_pcm(azx_t *chip, struct hda_codec *codec, +static int __devinit create_codec_pcm(struct azx *chip, struct hda_codec *codec, struct hda_pcm *cpcm, int pcm_dev) { int err; - snd_pcm_t *pcm; + struct snd_pcm *pcm; struct azx_pcm *apcm; snd_assert(cpcm->stream[0].substreams || cpcm->stream[1].substreams, return -EINVAL); @@ -1239,7 +1235,7 @@ static int __devinit create_codec_pcm(azx_t *chip, struct hda_codec *codec, return 0; } -static int __devinit azx_pcm_create(azx_t *chip) +static int __devinit azx_pcm_create(struct azx *chip) { struct list_head *p; struct hda_codec *codec; @@ -1291,7 +1287,7 @@ static int __devinit azx_pcm_create(azx_t *chip) /* * mixer creation - all stuff is implemented in hda module */ -static int __devinit azx_mixer_create(azx_t *chip) +static int __devinit azx_mixer_create(struct azx *chip) { return snd_hda_build_controls(chip->bus); } @@ -1300,7 +1296,7 @@ static int __devinit azx_mixer_create(azx_t *chip) /* * initialize SD streams */ -static int __devinit azx_init_stream(azx_t *chip) +static int __devinit azx_init_stream(struct azx *chip) { int i; @@ -1309,7 +1305,7 @@ static int __devinit azx_init_stream(azx_t *chip) */ for (i = 0; i < chip->num_streams; i++) { unsigned int off = sizeof(u32) * (i * AZX_MAX_FRAG * 4); - azx_dev_t *azx_dev = &chip->azx_dev[i]; + struct azx_dev *azx_dev = &chip->azx_dev[i]; azx_dev->bdl = (u32 *)(chip->bdl.area + off); azx_dev->bdl_addr = chip->bdl.addr + off; azx_dev->posbuf = (volatile u32 *)(chip->posbuf.area + i * 8); @@ -1330,9 +1326,9 @@ static int __devinit azx_init_stream(azx_t *chip) /* * power management */ -static int azx_suspend(snd_card_t *card, pm_message_t state) +static int azx_suspend(struct snd_card *card, pm_message_t state) { - azx_t *chip = card->pm_private_data; + struct azx *chip = card->pm_private_data; int i; for (i = 0; i < chip->pcm_devs; i++) @@ -1344,9 +1340,9 @@ static int azx_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int azx_resume(snd_card_t *card) +static int azx_resume(struct snd_card *card) { - azx_t *chip = card->pm_private_data; + struct azx *chip = card->pm_private_data; pci_enable_device(chip->pci); pci_set_master(chip->pci); @@ -1360,7 +1356,7 @@ static int azx_resume(snd_card_t *card) /* * destructor */ -static int azx_free(azx_t *chip) +static int azx_free(struct azx *chip) { if (chip->initialized) { int i; @@ -1402,7 +1398,7 @@ static int azx_free(azx_t *chip) return 0; } -static int azx_dev_free(snd_device_t *device) +static int azx_dev_free(struct snd_device *device) { return azx_free(device->device_data); } @@ -1410,13 +1406,13 @@ static int azx_dev_free(snd_device_t *device) /* * constructor */ -static int __devinit azx_create(snd_card_t *card, struct pci_dev *pci, +static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci, int posfix, int driver_type, - azx_t **rchip) + struct azx **rchip) { - azx_t *chip; + struct azx *chip; int err = 0; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = azx_dev_free, }; @@ -1548,8 +1544,8 @@ static int __devinit azx_create(snd_card_t *card, struct pci_dev *pci, static int __devinit azx_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - azx_t *chip; + struct snd_card *card; + struct azx *chip; int err = 0; card = snd_card_new(index, id, THIS_MODULE, 0); -- cgit v1.2.3-70-g09d2 From 6ca308d4edd51c4f34ffff94ae0bbf193087d89f Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 14:59:52 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ICE1712 Modules: ICE1712 driver Remove xxx_t typedefs from the PCI ICE1712 driver. Signed-off-by: Takashi Iwai --- sound/pci/ice1712/ak4xxx.c | 26 +- sound/pci/ice1712/delta.c | 82 +++---- sound/pci/ice1712/ews.c | 144 +++++------ sound/pci/ice1712/hoontech.c | 30 +-- sound/pci/ice1712/ice1712.c | 554 +++++++++++++++++++++++-------------------- sound/pci/ice1712/ice1712.h | 118 ++++----- 6 files changed, 500 insertions(+), 454 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ice1712/ak4xxx.c b/sound/pci/ice1712/ak4xxx.c index ae9dc029ba0..ab00cce2c39 100644 --- a/sound/pci/ice1712/ak4xxx.c +++ b/sound/pci/ice1712/ak4xxx.c @@ -34,16 +34,16 @@ MODULE_AUTHOR("Jaroslav Kysela "); MODULE_DESCRIPTION("ICEnsemble ICE17xx <-> AK4xxx AD/DA chip interface"); MODULE_LICENSE("GPL"); -static void snd_ice1712_akm4xxx_lock(akm4xxx_t *ak, int chip) +static void snd_ice1712_akm4xxx_lock(struct snd_akm4xxx *ak, int chip) { - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_ice1712_save_gpio_status(ice); } -static void snd_ice1712_akm4xxx_unlock(akm4xxx_t *ak, int chip) +static void snd_ice1712_akm4xxx_unlock(struct snd_akm4xxx *ak, int chip) { - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_ice1712_restore_gpio_status(ice); } @@ -51,14 +51,14 @@ static void snd_ice1712_akm4xxx_unlock(akm4xxx_t *ak, int chip) /* * write AK4xxx register */ -static void snd_ice1712_akm4xxx_write(akm4xxx_t *ak, int chip, +static void snd_ice1712_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char addr, unsigned char data) { unsigned int tmp; int idx; unsigned int addrdata; struct snd_ak4xxx_private *priv = (void *)ak->private_value[0]; - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_assert(chip >= 0 && chip < 4, return); @@ -119,10 +119,10 @@ static void snd_ice1712_akm4xxx_write(akm4xxx_t *ak, int chip, } /* - * initialize the akm4xxx_t record with the template + * initialize the struct snd_akm4xxx record with the template */ -int snd_ice1712_akm4xxx_init(akm4xxx_t *ak, const akm4xxx_t *temp, - const struct snd_ak4xxx_private *_priv, ice1712_t *ice) +int snd_ice1712_akm4xxx_init(struct snd_akm4xxx *ak, const struct snd_akm4xxx *temp, + const struct snd_ak4xxx_private *_priv, struct snd_ice1712 *ice) { struct snd_ak4xxx_private *priv; @@ -148,13 +148,13 @@ int snd_ice1712_akm4xxx_init(akm4xxx_t *ak, const akm4xxx_t *temp, return 0; } -void snd_ice1712_akm4xxx_free(ice1712_t *ice) +void snd_ice1712_akm4xxx_free(struct snd_ice1712 *ice) { unsigned int akidx; if (ice->akm == NULL) return; for (akidx = 0; akidx < ice->akm_codecs; akidx++) { - akm4xxx_t *ak = &ice->akm[akidx]; + struct snd_akm4xxx *ak = &ice->akm[akidx]; kfree((void*)ak->private_value[0]); } kfree(ice->akm); @@ -163,13 +163,13 @@ void snd_ice1712_akm4xxx_free(ice1712_t *ice) /* * build AK4xxx controls */ -int snd_ice1712_akm4xxx_build_controls(ice1712_t *ice) +int snd_ice1712_akm4xxx_build_controls(struct snd_ice1712 *ice) { unsigned int akidx; int err; for (akidx = 0; akidx < ice->akm_codecs; akidx++) { - akm4xxx_t *ak = &ice->akm[akidx]; + struct snd_akm4xxx *ak = &ice->akm[akidx]; err = snd_akm4xxx_build_controls(ak); if (err < 0) return err; diff --git a/sound/pci/ice1712/delta.c b/sound/pci/ice1712/delta.c index 576f69d482c..9a51d34e681 100644 --- a/sound/pci/ice1712/delta.c +++ b/sound/pci/ice1712/delta.c @@ -44,7 +44,7 @@ */ /* send 8 bits */ -static void ap_cs8427_write_byte(ice1712_t *ice, unsigned char data, unsigned char tmp) +static void ap_cs8427_write_byte(struct snd_ice1712 *ice, unsigned char data, unsigned char tmp) { int idx; @@ -61,7 +61,7 @@ static void ap_cs8427_write_byte(ice1712_t *ice, unsigned char data, unsigned ch } /* read 8 bits */ -static unsigned char ap_cs8427_read_byte(ice1712_t *ice, unsigned char tmp) +static unsigned char ap_cs8427_read_byte(struct snd_ice1712 *ice, unsigned char tmp) { unsigned char data = 0; int idx; @@ -80,7 +80,7 @@ static unsigned char ap_cs8427_read_byte(ice1712_t *ice, unsigned char tmp) } /* assert chip select */ -static unsigned char ap_cs8427_codec_select(ice1712_t *ice) +static unsigned char ap_cs8427_codec_select(struct snd_ice1712 *ice) { unsigned char tmp; tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA); @@ -105,7 +105,7 @@ static unsigned char ap_cs8427_codec_select(ice1712_t *ice) } /* deassert chip select */ -static void ap_cs8427_codec_deassert(ice1712_t *ice, unsigned char tmp) +static void ap_cs8427_codec_deassert(struct snd_ice1712 *ice, unsigned char tmp) { switch (ice->eeprom.subvendor) { case ICE1712_SUBDEVICE_DELTA1010LT: @@ -124,9 +124,9 @@ static void ap_cs8427_codec_deassert(ice1712_t *ice, unsigned char tmp) } /* sequential write */ -static int ap_cs8427_sendbytes(snd_i2c_device_t *device, unsigned char *bytes, int count) +static int ap_cs8427_sendbytes(struct snd_i2c_device *device, unsigned char *bytes, int count) { - ice1712_t *ice = device->bus->private_data; + struct snd_ice1712 *ice = device->bus->private_data; int res = count; unsigned char tmp; @@ -141,9 +141,9 @@ static int ap_cs8427_sendbytes(snd_i2c_device_t *device, unsigned char *bytes, i } /* sequential read */ -static int ap_cs8427_readbytes(snd_i2c_device_t *device, unsigned char *bytes, int count) +static int ap_cs8427_readbytes(struct snd_i2c_device *device, unsigned char *bytes, int count) { - ice1712_t *ice = device->bus->private_data; + struct snd_ice1712 *ice = device->bus->private_data; int res = count; unsigned char tmp; @@ -157,14 +157,14 @@ static int ap_cs8427_readbytes(snd_i2c_device_t *device, unsigned char *bytes, i return res; } -static int ap_cs8427_probeaddr(snd_i2c_bus_t *bus, unsigned short addr) +static int ap_cs8427_probeaddr(struct snd_i2c_bus *bus, unsigned short addr) { if (addr == 0x10) return 1; return -ENOENT; } -static snd_i2c_ops_t ap_cs8427_i2c_ops = { +static struct snd_i2c_ops ap_cs8427_i2c_ops = { .sendbytes = ap_cs8427_sendbytes, .readbytes = ap_cs8427_readbytes, .probeaddr = ap_cs8427_probeaddr, @@ -173,7 +173,7 @@ static snd_i2c_ops_t ap_cs8427_i2c_ops = { /* */ -static void snd_ice1712_delta_cs8403_spdif_write(ice1712_t *ice, unsigned char bits) +static void snd_ice1712_delta_cs8403_spdif_write(struct snd_ice1712 *ice, unsigned char bits) { unsigned char tmp, mask1, mask2; int idx; @@ -198,12 +198,12 @@ static void snd_ice1712_delta_cs8403_spdif_write(ice1712_t *ice, unsigned char b } -static void delta_spdif_default_get(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static void delta_spdif_default_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_bits); } -static int delta_spdif_default_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static int delta_spdif_default_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { unsigned int val; int change; @@ -221,12 +221,12 @@ static int delta_spdif_default_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontr return change; } -static void delta_spdif_stream_get(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static void delta_spdif_stream_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_stream_bits); } -static int delta_spdif_stream_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static int delta_spdif_stream_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { unsigned int val; int change; @@ -248,10 +248,10 @@ static int delta_spdif_stream_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontro /* * AK4524 on Delta 44 and 66 to choose the chip mask */ -static void delta_ak4524_lock(akm4xxx_t *ak, int chip) +static void delta_ak4524_lock(struct snd_akm4xxx *ak, int chip) { struct snd_ak4xxx_private *priv = (void *)ak->private_value[0]; - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_ice1712_save_gpio_status(ice); priv->cs_mask = @@ -262,10 +262,10 @@ static void delta_ak4524_lock(akm4xxx_t *ak, int chip) /* * AK4524 on Delta1010LT to choose the chip address */ -static void delta1010lt_ak4524_lock(akm4xxx_t *ak, int chip) +static void delta1010lt_ak4524_lock(struct snd_akm4xxx *ak, int chip) { struct snd_ak4xxx_private *priv = (void *)ak->private_value[0]; - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_ice1712_save_gpio_status(ice); priv->cs_mask = ICE1712_DELTA_1010LT_CS; @@ -275,10 +275,10 @@ static void delta1010lt_ak4524_lock(akm4xxx_t *ak, int chip) /* * AK4528 on VX442 to choose the chip mask */ -static void vx442_ak4524_lock(akm4xxx_t *ak, int chip) +static void vx442_ak4524_lock(struct snd_akm4xxx *ak, int chip) { struct snd_ak4xxx_private *priv = (void *)ak->private_value[0]; - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_ice1712_save_gpio_status(ice); priv->cs_mask = @@ -289,7 +289,7 @@ static void vx442_ak4524_lock(akm4xxx_t *ak, int chip) /* * change the DFS bit according rate for Delta1010 */ -static void delta_1010_set_rate_val(ice1712_t *ice, unsigned int rate) +static void delta_1010_set_rate_val(struct snd_ice1712 *ice, unsigned int rate) { unsigned char tmp, tmp2; @@ -309,10 +309,10 @@ static void delta_1010_set_rate_val(ice1712_t *ice, unsigned int rate) /* * change the rate of AK4524 on Delta 44/66, AP, 1010LT */ -static void delta_ak4524_set_rate_val(akm4xxx_t *ak, unsigned int rate) +static void delta_ak4524_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate) { unsigned char tmp, tmp2; - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; if (rate == 0) /* no hint - S/PDIF input is master, simply return */ return; @@ -341,7 +341,7 @@ static void delta_ak4524_set_rate_val(akm4xxx_t *ak, unsigned int rate) /* * change the rate of AK4524 on VX442 */ -static void vx442_ak4524_set_rate_val(akm4xxx_t *ak, unsigned int rate) +static void vx442_ak4524_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate) { unsigned char val; @@ -361,13 +361,13 @@ static void vx442_ak4524_set_rate_val(akm4xxx_t *ak, unsigned int rate) */ /* open callback */ -static void delta_open_spdif(ice1712_t *ice, snd_pcm_substream_t * substream) +static void delta_open_spdif(struct snd_ice1712 *ice, struct snd_pcm_substream *substream) { ice->spdif.cs8403_stream_bits = ice->spdif.cs8403_bits; } /* set up */ -static void delta_setup_spdif(ice1712_t *ice, int rate) +static void delta_setup_spdif(struct snd_ice1712 *ice, int rate) { unsigned long flags; unsigned int tmp; @@ -396,7 +396,7 @@ static void delta_setup_spdif(ice1712_t *ice, int rate) * initialize the chips on M-Audio cards */ -static akm4xxx_t akm_audiophile __devinitdata = { +static struct snd_akm4xxx akm_audiophile __devinitdata = { .type = SND_AK4528, .num_adcs = 2, .num_dacs = 2, @@ -417,7 +417,7 @@ static struct snd_ak4xxx_private akm_audiophile_priv __devinitdata = { .mask_flags = 0, }; -static akm4xxx_t akm_delta410 __devinitdata = { +static struct snd_akm4xxx akm_delta410 __devinitdata = { .type = SND_AK4529, .num_adcs = 2, .num_dacs = 8, @@ -438,7 +438,7 @@ static struct snd_ak4xxx_private akm_delta410_priv __devinitdata = { .mask_flags = 0, }; -static akm4xxx_t akm_delta1010lt __devinitdata = { +static struct snd_akm4xxx akm_delta1010lt __devinitdata = { .type = SND_AK4524, .num_adcs = 8, .num_dacs = 8, @@ -460,7 +460,7 @@ static struct snd_ak4xxx_private akm_delta1010lt_priv __devinitdata = { .mask_flags = 0, }; -static akm4xxx_t akm_delta44 __devinitdata = { +static struct snd_akm4xxx akm_delta44 __devinitdata = { .type = SND_AK4524, .num_adcs = 4, .num_dacs = 4, @@ -482,7 +482,7 @@ static struct snd_ak4xxx_private akm_delta44_priv __devinitdata = { .mask_flags = 0, }; -static akm4xxx_t akm_vx442 __devinitdata = { +static struct snd_akm4xxx akm_vx442 __devinitdata = { .type = SND_AK4524, .num_adcs = 4, .num_dacs = 4, @@ -504,10 +504,10 @@ static struct snd_ak4xxx_private akm_vx442_priv __devinitdata = { .mask_flags = 0, }; -static int __devinit snd_ice1712_delta_init(ice1712_t *ice) +static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice) { int err; - akm4xxx_t *ak; + struct snd_akm4xxx *ak; /* determine I2C, DACs and ADCs */ switch (ice->eeprom.subvendor) { @@ -582,7 +582,7 @@ static int __devinit snd_ice1712_delta_init(ice1712_t *ice) } /* second stage of initialization, analog parts and others */ - ak = ice->akm = kmalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ak) return -ENOMEM; ice->akm_codecs = 1; @@ -617,19 +617,19 @@ static int __devinit snd_ice1712_delta_init(ice1712_t *ice) * additional controls for M-Audio cards */ -static snd_kcontrol_new_t snd_ice1712_delta1010_wordclock_select __devinitdata = +static struct snd_kcontrol_new snd_ice1712_delta1010_wordclock_select __devinitdata = ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Word Clock Sync", 0, ICE1712_DELTA_WORD_CLOCK_SELECT, 1, 0); -static snd_kcontrol_new_t snd_ice1712_delta1010lt_wordclock_select __devinitdata = +static struct snd_kcontrol_new snd_ice1712_delta1010lt_wordclock_select __devinitdata = ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Word Clock Sync", 0, ICE1712_DELTA_1010LT_WORDCLOCK, 1, 0); -static snd_kcontrol_new_t snd_ice1712_delta1010_wordclock_status __devinitdata = +static struct snd_kcontrol_new snd_ice1712_delta1010_wordclock_status __devinitdata = ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Word Clock Status", 0, ICE1712_DELTA_WORD_CLOCK_STATUS, 1, SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE); -static snd_kcontrol_new_t snd_ice1712_deltadio2496_spdif_in_select __devinitdata = +static struct snd_kcontrol_new snd_ice1712_deltadio2496_spdif_in_select __devinitdata = ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "IEC958 Input Optical", 0, ICE1712_DELTA_SPDIF_INPUT_SELECT, 0, 0); -static snd_kcontrol_new_t snd_ice1712_delta_spdif_in_status __devinitdata = +static struct snd_kcontrol_new snd_ice1712_delta_spdif_in_status __devinitdata = ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Delta IEC958 Input Status", 0, ICE1712_DELTA_SPDIF_IN_STAT, 1, SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE); -static int __devinit snd_ice1712_delta_add_controls(ice1712_t *ice) +static int __devinit snd_ice1712_delta_add_controls(struct snd_ice1712 *ice) { int err; diff --git a/sound/pci/ice1712/ews.c b/sound/pci/ice1712/ews.c index c8ec5cac3c1..2127d57da19 100644 --- a/sound/pci/ice1712/ews.c +++ b/sound/pci/ice1712/ews.c @@ -50,9 +50,9 @@ enum { */ /* send SDA and SCL */ -static void ewx_i2c_setlines(snd_i2c_bus_t *bus, int clk, int data) +static void ewx_i2c_setlines(struct snd_i2c_bus *bus, int clk, int data) { - ice1712_t *ice = bus->private_data; + struct snd_ice1712 *ice = bus->private_data; unsigned char tmp = 0; if (clk) tmp |= ICE1712_EWX2496_SERIAL_CLOCK; @@ -62,15 +62,15 @@ static void ewx_i2c_setlines(snd_i2c_bus_t *bus, int clk, int data) udelay(5); } -static int ewx_i2c_getclock(snd_i2c_bus_t *bus) +static int ewx_i2c_getclock(struct snd_i2c_bus *bus) { - ice1712_t *ice = bus->private_data; + struct snd_ice1712 *ice = bus->private_data; return snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ICE1712_EWX2496_SERIAL_CLOCK ? 1 : 0; } -static int ewx_i2c_getdata(snd_i2c_bus_t *bus, int ack) +static int ewx_i2c_getdata(struct snd_i2c_bus *bus, int ack) { - ice1712_t *ice = bus->private_data; + struct snd_ice1712 *ice = bus->private_data; int bit; /* set RW pin to low */ snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~ICE1712_EWX2496_RW); @@ -85,9 +85,9 @@ static int ewx_i2c_getdata(snd_i2c_bus_t *bus, int ack) return bit; } -static void ewx_i2c_start(snd_i2c_bus_t *bus) +static void ewx_i2c_start(struct snd_i2c_bus *bus) { - ice1712_t *ice = bus->private_data; + struct snd_ice1712 *ice = bus->private_data; unsigned char mask; snd_ice1712_save_gpio_status(ice); @@ -104,15 +104,15 @@ static void ewx_i2c_start(snd_i2c_bus_t *bus) snd_ice1712_gpio_write_bits(ice, mask, mask); } -static void ewx_i2c_stop(snd_i2c_bus_t *bus) +static void ewx_i2c_stop(struct snd_i2c_bus *bus) { - ice1712_t *ice = bus->private_data; + struct snd_ice1712 *ice = bus->private_data; snd_ice1712_restore_gpio_status(ice); } -static void ewx_i2c_direction(snd_i2c_bus_t *bus, int clock, int data) +static void ewx_i2c_direction(struct snd_i2c_bus *bus, int clock, int data) { - ice1712_t *ice = bus->private_data; + struct snd_ice1712 *ice = bus->private_data; unsigned char mask = 0; if (clock) @@ -125,7 +125,7 @@ static void ewx_i2c_direction(snd_i2c_bus_t *bus, int clock, int data) snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~mask); } -static snd_i2c_bit_ops_t snd_ice1712_ewx_cs8427_bit_ops = { +static struct snd_i2c_bit_ops snd_ice1712_ewx_cs8427_bit_ops = { .start = ewx_i2c_start, .stop = ewx_i2c_stop, .direction = ewx_i2c_direction, @@ -140,7 +140,7 @@ static snd_i2c_bit_ops_t snd_ice1712_ewx_cs8427_bit_ops = { */ /* AK4524 chip select; address 0x48 bit 0-3 */ -static int snd_ice1712_ews88mt_chip_select(ice1712_t *ice, int chip_mask) +static int snd_ice1712_ews88mt_chip_select(struct snd_ice1712 *ice, int chip_mask) { unsigned char data, ndata; @@ -162,9 +162,9 @@ static int snd_ice1712_ews88mt_chip_select(ice1712_t *ice, int chip_mask) } /* start callback for EWS88MT, needs to select a certain chip mask */ -static void ews88mt_ak4524_lock(akm4xxx_t *ak, int chip) +static void ews88mt_ak4524_lock(struct snd_akm4xxx *ak, int chip) { - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; unsigned char tmp; /* assert AK4524 CS */ if (snd_ice1712_ews88mt_chip_select(ice, ~(1 << chip) & 0x0f) < 0) @@ -179,18 +179,18 @@ static void ews88mt_ak4524_lock(akm4xxx_t *ak, int chip) } /* stop callback for EWS88MT, needs to deselect chip mask */ -static void ews88mt_ak4524_unlock(akm4xxx_t *ak, int chip) +static void ews88mt_ak4524_unlock(struct snd_akm4xxx *ak, int chip) { - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_ice1712_restore_gpio_status(ice); udelay(1); snd_ice1712_ews88mt_chip_select(ice, 0x0f); } /* start callback for EWX24/96 */ -static void ewx2496_ak4524_lock(akm4xxx_t *ak, int chip) +static void ewx2496_ak4524_lock(struct snd_akm4xxx *ak, int chip) { - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; unsigned char tmp; snd_ice1712_save_gpio_status(ice); tmp = ICE1712_EWX2496_SERIAL_DATA | @@ -203,10 +203,10 @@ static void ewx2496_ak4524_lock(akm4xxx_t *ak, int chip) } /* start callback for DMX 6fire */ -static void dmx6fire_ak4524_lock(akm4xxx_t *ak, int chip) +static void dmx6fire_ak4524_lock(struct snd_akm4xxx *ak, int chip) { struct snd_ak4xxx_private *priv = (void *)ak->private_value[0]; - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; unsigned char tmp; snd_ice1712_save_gpio_status(ice); tmp = priv->cs_mask = priv->cs_addr = (1 << chip) & ICE1712_6FIRE_AK4524_CS_MASK; @@ -222,7 +222,7 @@ static void dmx6fire_ak4524_lock(akm4xxx_t *ak, int chip) * CS8404 interface on EWS88MT/D */ -static void snd_ice1712_ews_cs8404_spdif_write(ice1712_t *ice, unsigned char bits) +static void snd_ice1712_ews_cs8404_spdif_write(struct snd_ice1712 *ice, unsigned char bits) { unsigned char bytes[2]; @@ -251,12 +251,12 @@ static void snd_ice1712_ews_cs8404_spdif_write(ice1712_t *ice, unsigned char bit /* */ -static void ews88_spdif_default_get(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static void ews88_spdif_default_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { snd_cs8404_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_bits); } -static int ews88_spdif_default_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static int ews88_spdif_default_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { unsigned int val; int change; @@ -274,12 +274,12 @@ static int ews88_spdif_default_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontr return change; } -static void ews88_spdif_stream_get(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static void ews88_spdif_stream_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { snd_cs8404_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_stream_bits); } -static int ews88_spdif_stream_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontrol) +static int ews88_spdif_stream_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol) { unsigned int val; int change; @@ -299,13 +299,13 @@ static int ews88_spdif_stream_put(ice1712_t *ice, snd_ctl_elem_value_t * ucontro /* open callback */ -static void ews88_open_spdif(ice1712_t *ice, snd_pcm_substream_t * substream) +static void ews88_open_spdif(struct snd_ice1712 *ice, struct snd_pcm_substream *substream) { ice->spdif.cs8403_stream_bits = ice->spdif.cs8403_bits; } /* set up SPDIF for EWS88MT / EWS88D */ -static void ews88_setup_spdif(ice1712_t *ice, int rate) +static void ews88_setup_spdif(struct snd_ice1712 *ice, int rate) { unsigned long flags; unsigned char tmp; @@ -332,7 +332,7 @@ static void ews88_setup_spdif(ice1712_t *ice, int rate) /* */ -static akm4xxx_t akm_ews88mt __devinitdata = { +static struct snd_akm4xxx akm_ews88mt __devinitdata = { .num_adcs = 8, .num_dacs = 8, .type = SND_AK4524, @@ -354,7 +354,7 @@ static struct snd_ak4xxx_private akm_ews88mt_priv __devinitdata = { .mask_flags = 0, }; -static akm4xxx_t akm_ewx2496 __devinitdata = { +static struct snd_akm4xxx akm_ewx2496 __devinitdata = { .num_adcs = 2, .num_dacs = 2, .type = SND_AK4524, @@ -375,7 +375,7 @@ static struct snd_ak4xxx_private akm_ewx2496_priv __devinitdata = { .mask_flags = 0, }; -static akm4xxx_t akm_6fire __devinitdata = { +static struct snd_akm4xxx akm_6fire __devinitdata = { .num_adcs = 6, .num_dacs = 6, .type = SND_AK4524, @@ -406,12 +406,12 @@ static struct snd_ak4xxx_private akm_6fire_priv __devinitdata = { #define PCF9554_REG_POLARITY 2 #define PCF9554_REG_CONFIG 3 -static int snd_ice1712_6fire_write_pca(ice1712_t *ice, unsigned char reg, unsigned char data); +static int snd_ice1712_6fire_write_pca(struct snd_ice1712 *ice, unsigned char reg, unsigned char data); -static int __devinit snd_ice1712_ews_init(ice1712_t *ice) +static int __devinit snd_ice1712_ews_init(struct snd_ice1712 *ice) { int err; - akm4xxx_t *ak; + struct snd_akm4xxx *ak; /* set the analog DACs */ switch (ice->eeprom.subvendor) { @@ -507,7 +507,7 @@ static int __devinit snd_ice1712_ews_init(ice1712_t *ice) } /* analog section */ - ak = ice->akm = kmalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ak) return -ENOMEM; ice->akm_codecs = 1; @@ -536,7 +536,7 @@ static int __devinit snd_ice1712_ews_init(ice1712_t *ice) */ /* i/o sensitivity - this callback is shared among other devices, too */ -static int snd_ice1712_ewx_io_sense_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo){ +static int snd_ice1712_ewx_io_sense_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo){ static char *texts[2] = { "+4dBu", "-10dBV", @@ -550,9 +550,9 @@ static int snd_ice1712_ewx_io_sense_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_ice1712_ewx_io_sense_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_ewx_io_sense_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char mask = kcontrol->private_value & 0xff; snd_ice1712_save_gpio_status(ice); @@ -561,9 +561,9 @@ static int snd_ice1712_ewx_io_sense_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_ return 0; } -static int snd_ice1712_ewx_io_sense_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_ewx_io_sense_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char mask = kcontrol->private_value & 0xff; int val, nval; @@ -578,7 +578,7 @@ static int snd_ice1712_ewx_io_sense_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_ return val != nval; } -static snd_kcontrol_new_t snd_ice1712_ewx2496_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_ewx2496_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Input Sensitivity Switch", @@ -602,9 +602,9 @@ static snd_kcontrol_new_t snd_ice1712_ewx2496_controls[] __devinitdata = { * EWS88MT specific controls */ /* analog output sensitivity;; address 0x48 bit 6 */ -static int snd_ice1712_ews88mt_output_sense_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_ews88mt_output_sense_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char data; snd_i2c_lock(ice->i2c); @@ -618,9 +618,9 @@ static int snd_ice1712_ews88mt_output_sense_get(snd_kcontrol_t *kcontrol, snd_ct } /* analog output sensitivity;; address 0x48 bit 6 */ -static int snd_ice1712_ews88mt_output_sense_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_ews88mt_output_sense_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char data, ndata; snd_i2c_lock(ice->i2c); @@ -638,9 +638,9 @@ static int snd_ice1712_ews88mt_output_sense_put(snd_kcontrol_t *kcontrol, snd_ct } /* analog input sensitivity; address 0x46 */ -static int snd_ice1712_ews88mt_input_sense_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_ews88mt_input_sense_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int channel = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned char data; @@ -657,9 +657,9 @@ static int snd_ice1712_ews88mt_input_sense_get(snd_kcontrol_t *kcontrol, snd_ctl } /* analog output sensitivity; address 0x46 */ -static int snd_ice1712_ews88mt_input_sense_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_ews88mt_input_sense_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int channel = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned char data, ndata; @@ -678,7 +678,7 @@ static int snd_ice1712_ews88mt_input_sense_put(snd_kcontrol_t *kcontrol, snd_ctl return ndata != data; } -static snd_kcontrol_new_t snd_ice1712_ews88mt_input_sense __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_ews88mt_input_sense __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Input Sensitivity Switch", .info = snd_ice1712_ewx_io_sense_info, @@ -687,7 +687,7 @@ static snd_kcontrol_new_t snd_ice1712_ews88mt_input_sense __devinitdata = { .count = 8, }; -static snd_kcontrol_new_t snd_ice1712_ews88mt_output_sense __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_ews88mt_output_sense __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Output Sensitivity Switch", .info = snd_ice1712_ewx_io_sense_info, @@ -700,7 +700,7 @@ static snd_kcontrol_new_t snd_ice1712_ews88mt_output_sense __devinitdata = { * EWS88D specific controls */ -static int snd_ice1712_ews88d_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ice1712_ews88d_control_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -709,9 +709,9 @@ static int snd_ice1712_ews88d_control_info(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_ice1712_ews88d_control_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_ews88d_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value >> 8) & 1; unsigned char data[2]; @@ -729,9 +729,9 @@ static int snd_ice1712_ews88d_control_get(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_ice1712_ews88d_control_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_ews88d_control_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value >> 8) & 1; unsigned char data[2], ndata[2]; @@ -769,7 +769,7 @@ static int snd_ice1712_ews88d_control_put(snd_kcontrol_t * kcontrol, snd_ctl_ele .private_value = xshift | (xinvert << 8),\ } -static snd_kcontrol_new_t snd_ice1712_ews88d_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_ews88d_controls[] __devinitdata = { EWS88D_CONTROL(SNDRV_CTL_ELEM_IFACE_MIXER, "IEC958 Input Optical", 0, 1, 0), /* inverted */ EWS88D_CONTROL(SNDRV_CTL_ELEM_IFACE_MIXER, "ADAT Output Optical", 1, 0, 0), EWS88D_CONTROL(SNDRV_CTL_ELEM_IFACE_MIXER, "ADAT External Master Clock", 2, 0, 0), @@ -782,7 +782,7 @@ static snd_kcontrol_new_t snd_ice1712_ews88d_controls[] __devinitdata = { * DMX 6Fire specific controls */ -static int snd_ice1712_6fire_read_pca(ice1712_t *ice, unsigned char reg) +static int snd_ice1712_6fire_read_pca(struct snd_ice1712 *ice, unsigned char reg) { unsigned char byte; snd_i2c_lock(ice->i2c); @@ -798,7 +798,7 @@ static int snd_ice1712_6fire_read_pca(ice1712_t *ice, unsigned char reg) return byte; } -static int snd_ice1712_6fire_write_pca(ice1712_t *ice, unsigned char reg, unsigned char data) +static int snd_ice1712_6fire_write_pca(struct snd_ice1712 *ice, unsigned char reg, unsigned char data) { unsigned char bytes[2]; snd_i2c_lock(ice->i2c); @@ -812,7 +812,7 @@ static int snd_ice1712_6fire_write_pca(ice1712_t *ice, unsigned char reg, unsign return 0; } -static int snd_ice1712_6fire_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ice1712_6fire_control_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -821,9 +821,9 @@ static int snd_ice1712_6fire_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_ice1712_6fire_control_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_6fire_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value >> 8) & 1; int data; @@ -837,9 +837,9 @@ static int snd_ice1712_6fire_control_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_ice1712_6fire_control_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_6fire_control_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value >> 8) & 1; int data, ndata; @@ -858,7 +858,7 @@ static int snd_ice1712_6fire_control_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_ice1712_6fire_select_input_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ice1712_6fire_select_input_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[4] = { "Internal", "Front Input", "Rear Input", "Wave Table" @@ -872,9 +872,9 @@ static int snd_ice1712_6fire_select_input_info(snd_kcontrol_t *kcontrol, snd_ctl return 0; } -static int snd_ice1712_6fire_select_input_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_6fire_select_input_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int data; if ((data = snd_ice1712_6fire_read_pca(ice, PCF9554_REG_OUTPUT)) < 0) @@ -883,9 +883,9 @@ static int snd_ice1712_6fire_select_input_get(snd_kcontrol_t *kcontrol, snd_ctl_ return 0; } -static int snd_ice1712_6fire_select_input_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_6fire_select_input_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int data, ndata; if ((data = snd_ice1712_6fire_read_pca(ice, PCF9554_REG_OUTPUT)) < 0) @@ -909,7 +909,7 @@ static int snd_ice1712_6fire_select_input_put(snd_kcontrol_t *kcontrol, snd_ctl_ .private_value = xshift | (xinvert << 8),\ } -static snd_kcontrol_new_t snd_ice1712_6fire_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_6fire_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Analog Input Select", @@ -925,7 +925,7 @@ static snd_kcontrol_new_t snd_ice1712_6fire_controls[] __devinitdata = { }; -static int __devinit snd_ice1712_ews_add_controls(ice1712_t *ice) +static int __devinit snd_ice1712_ews_add_controls(struct snd_ice1712 *ice) { unsigned int idx; int err; diff --git a/sound/pci/ice1712/hoontech.c b/sound/pci/ice1712/hoontech.c index ab5fbd0bdfa..3f2f918536f 100644 --- a/sound/pci/ice1712/hoontech.c +++ b/sound/pci/ice1712/hoontech.c @@ -33,7 +33,7 @@ #include "hoontech.h" -static void __devinit snd_ice1712_stdsp24_gpio_write(ice1712_t *ice, unsigned char byte) +static void __devinit snd_ice1712_stdsp24_gpio_write(struct snd_ice1712 *ice, unsigned char byte) { byte |= ICE1712_STDSP24_CLOCK_BIT; udelay(100); @@ -46,7 +46,7 @@ static void __devinit snd_ice1712_stdsp24_gpio_write(ice1712_t *ice, unsigned ch snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, byte); } -static void __devinit snd_ice1712_stdsp24_darear(ice1712_t *ice, int activate) +static void __devinit snd_ice1712_stdsp24_darear(struct snd_ice1712 *ice, int activate) { down(&ice->gpio_mutex); ICE1712_STDSP24_0_DAREAR(ice->spec.hoontech.boxbits, activate); @@ -54,7 +54,7 @@ static void __devinit snd_ice1712_stdsp24_darear(ice1712_t *ice, int activate) up(&ice->gpio_mutex); } -static void __devinit snd_ice1712_stdsp24_mute(ice1712_t *ice, int activate) +static void __devinit snd_ice1712_stdsp24_mute(struct snd_ice1712 *ice, int activate) { down(&ice->gpio_mutex); ICE1712_STDSP24_3_MUTE(ice->spec.hoontech.boxbits, activate); @@ -62,7 +62,7 @@ static void __devinit snd_ice1712_stdsp24_mute(ice1712_t *ice, int activate) up(&ice->gpio_mutex); } -static void __devinit snd_ice1712_stdsp24_insel(ice1712_t *ice, int activate) +static void __devinit snd_ice1712_stdsp24_insel(struct snd_ice1712 *ice, int activate) { down(&ice->gpio_mutex); ICE1712_STDSP24_3_INSEL(ice->spec.hoontech.boxbits, activate); @@ -70,7 +70,7 @@ static void __devinit snd_ice1712_stdsp24_insel(ice1712_t *ice, int activate) up(&ice->gpio_mutex); } -static void __devinit snd_ice1712_stdsp24_box_channel(ice1712_t *ice, int box, int chn, int activate) +static void __devinit snd_ice1712_stdsp24_box_channel(struct snd_ice1712 *ice, int box, int chn, int activate) { down(&ice->gpio_mutex); @@ -118,7 +118,7 @@ static void __devinit snd_ice1712_stdsp24_box_channel(ice1712_t *ice, int box, i up(&ice->gpio_mutex); } -static void __devinit snd_ice1712_stdsp24_box_midi(ice1712_t *ice, int box, int master) +static void __devinit snd_ice1712_stdsp24_box_midi(struct snd_ice1712 *ice, int box, int master) { down(&ice->gpio_mutex); @@ -144,7 +144,7 @@ static void __devinit snd_ice1712_stdsp24_box_midi(ice1712_t *ice, int box, int up(&ice->gpio_mutex); } -static void __devinit snd_ice1712_stdsp24_midi2(ice1712_t *ice, int activate) +static void __devinit snd_ice1712_stdsp24_midi2(struct snd_ice1712 *ice, int activate) { down(&ice->gpio_mutex); ICE1712_STDSP24_3_MIDI2(ice->spec.hoontech.boxbits, activate); @@ -152,7 +152,7 @@ static void __devinit snd_ice1712_stdsp24_midi2(ice1712_t *ice, int activate) up(&ice->gpio_mutex); } -static int __devinit snd_ice1712_hoontech_init(ice1712_t *ice) +static int __devinit snd_ice1712_hoontech_init(struct snd_ice1712 *ice) { int box, chn; @@ -221,9 +221,9 @@ static int __devinit snd_ice1712_hoontech_init(ice1712_t *ice) */ /* start callback for STDSP24 with modified hardware */ -static void stdsp24_ak4524_lock(akm4xxx_t *ak, int chip) +static void stdsp24_ak4524_lock(struct snd_akm4xxx *ak, int chip) { - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; unsigned char tmp; snd_ice1712_save_gpio_status(ice); tmp = ICE1712_STDSP24_SERIAL_DATA | @@ -234,10 +234,10 @@ static void stdsp24_ak4524_lock(akm4xxx_t *ak, int chip) snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~tmp); } -static int __devinit snd_ice1712_value_init(ice1712_t *ice) +static int __devinit snd_ice1712_value_init(struct snd_ice1712 *ice) { /* Hoontech STDSP24 with modified hardware */ - static akm4xxx_t akm_stdsp24_mv __devinitdata = { + static struct snd_akm4xxx akm_stdsp24_mv __devinitdata = { .num_adcs = 2, .num_dacs = 2, .type = SND_AK4524, @@ -258,7 +258,7 @@ static int __devinit snd_ice1712_value_init(ice1712_t *ice) }; int err; - akm4xxx_t *ak; + struct snd_akm4xxx *ak; /* set the analog DACs */ ice->num_total_dacs = 2; @@ -267,7 +267,7 @@ static int __devinit snd_ice1712_value_init(ice1712_t *ice) ice->num_total_adcs = 2; /* analog section */ - ak = ice->akm = kmalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ak) return -ENOMEM; ice->akm_codecs = 1; @@ -284,7 +284,7 @@ static int __devinit snd_ice1712_value_init(ice1712_t *ice) return 0; } -static int __devinit snd_ice1712_ez8_init(ice1712_t *ice) +static int __devinit snd_ice1712_ez8_init(struct snd_ice1712 *ice) { ice->gpio.write_mask = ice->eeprom.gpiomask; ice->gpio.direction = ice->eeprom.gpiodir; diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c index b16c9c1c92c..ef6f18558c9 100644 --- a/sound/pci/ice1712/ice1712.c +++ b/sound/pci/ice1712/ice1712.c @@ -108,8 +108,8 @@ static struct pci_device_id snd_ice1712_ids[] = { MODULE_DEVICE_TABLE(pci, snd_ice1712_ids); -static int snd_ice1712_build_pro_mixer(ice1712_t *ice); -static int snd_ice1712_build_controls(ice1712_t *ice); +static int snd_ice1712_build_pro_mixer(struct snd_ice1712 *ice); +static int snd_ice1712_build_controls(struct snd_ice1712 *ice); static int PRO_RATE_LOCKED; static int PRO_RATE_RESET = 1; @@ -120,33 +120,33 @@ static unsigned int PRO_RATE_DEFAULT = 44100; */ /* check whether the clock mode is spdif-in */ -static inline int is_spdif_master(ice1712_t *ice) +static inline int is_spdif_master(struct snd_ice1712 *ice) { return (inb(ICEMT(ice, RATE)) & ICE1712_SPDIF_MASTER) ? 1 : 0; } -static inline int is_pro_rate_locked(ice1712_t *ice) +static inline int is_pro_rate_locked(struct snd_ice1712 *ice) { return is_spdif_master(ice) || PRO_RATE_LOCKED; } -static inline void snd_ice1712_ds_write(ice1712_t * ice, u8 channel, u8 addr, u32 data) +static inline void snd_ice1712_ds_write(struct snd_ice1712 * ice, u8 channel, u8 addr, u32 data) { outb((channel << 4) | addr, ICEDS(ice, INDEX)); outl(data, ICEDS(ice, DATA)); } -static inline u32 snd_ice1712_ds_read(ice1712_t * ice, u8 channel, u8 addr) +static inline u32 snd_ice1712_ds_read(struct snd_ice1712 * ice, u8 channel, u8 addr) { outb((channel << 4) | addr, ICEDS(ice, INDEX)); return inl(ICEDS(ice, DATA)); } -static void snd_ice1712_ac97_write(ac97_t *ac97, +static void snd_ice1712_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - ice1712_t *ice = (ice1712_t *)ac97->private_data; + struct snd_ice1712 *ice = ac97->private_data; int tm; unsigned char old_cmd = 0; @@ -167,10 +167,10 @@ static void snd_ice1712_ac97_write(ac97_t *ac97, break; } -static unsigned short snd_ice1712_ac97_read(ac97_t *ac97, +static unsigned short snd_ice1712_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - ice1712_t *ice = (ice1712_t *)ac97->private_data; + struct snd_ice1712 *ice = ac97->private_data; int tm; unsigned char old_cmd = 0; @@ -196,11 +196,11 @@ static unsigned short snd_ice1712_ac97_read(ac97_t *ac97, * pro ac97 section */ -static void snd_ice1712_pro_ac97_write(ac97_t *ac97, +static void snd_ice1712_pro_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - ice1712_t *ice = (ice1712_t *)ac97->private_data; + struct snd_ice1712 *ice = ac97->private_data; int tm; unsigned char old_cmd = 0; @@ -222,10 +222,10 @@ static void snd_ice1712_pro_ac97_write(ac97_t *ac97, } -static unsigned short snd_ice1712_pro_ac97_read(ac97_t *ac97, +static unsigned short snd_ice1712_pro_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - ice1712_t *ice = (ice1712_t *)ac97->private_data; + struct snd_ice1712 *ice = ac97->private_data; int tm; unsigned char old_cmd = 0; @@ -250,7 +250,7 @@ static unsigned short snd_ice1712_pro_ac97_read(ac97_t *ac97, /* * consumer ac97 digital mix */ -static int snd_ice1712_digmix_route_ac97_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ice1712_digmix_route_ac97_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -259,17 +259,17 @@ static int snd_ice1712_digmix_route_ac97_info(snd_kcontrol_t *kcontrol, snd_ctl_ return 0; } -static int snd_ice1712_digmix_route_ac97_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_digmix_route_ac97_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = inb(ICEMT(ice, MONITOR_ROUTECTRL)) & ICE1712_ROUTE_AC97 ? 1 : 0; return 0; } -static int snd_ice1712_digmix_route_ac97_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_digmix_route_ac97_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char val, nval; spin_lock_irq(&ice->reg_lock); @@ -281,7 +281,7 @@ static int snd_ice1712_digmix_route_ac97_put(snd_kcontrol_t *kcontrol, snd_ctl_e return val != nval; } -static snd_kcontrol_new_t snd_ice1712_mixer_digmix_route_ac97 __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_mixer_digmix_route_ac97 __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Digital Mixer To AC97", .info = snd_ice1712_digmix_route_ac97_info, @@ -293,24 +293,24 @@ static snd_kcontrol_new_t snd_ice1712_mixer_digmix_route_ac97 __devinitdata = { /* * gpio operations */ -static void snd_ice1712_set_gpio_dir(ice1712_t *ice, unsigned int data) +static void snd_ice1712_set_gpio_dir(struct snd_ice1712 *ice, unsigned int data) { snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION, data); inb(ICEREG(ice, DATA)); /* dummy read for pci-posting */ } -static void snd_ice1712_set_gpio_mask(ice1712_t *ice, unsigned int data) +static void snd_ice1712_set_gpio_mask(struct snd_ice1712 *ice, unsigned int data) { snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, data); inb(ICEREG(ice, DATA)); /* dummy read for pci-posting */ } -static unsigned int snd_ice1712_get_gpio_data(ice1712_t *ice) +static unsigned int snd_ice1712_get_gpio_data(struct snd_ice1712 *ice) { return snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA); } -static void snd_ice1712_set_gpio_data(ice1712_t *ice, unsigned int val) +static void snd_ice1712_set_gpio_data(struct snd_ice1712 *ice, unsigned int val) { snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, val); inb(ICEREG(ice, DATA)); /* dummy read for pci-posting */ @@ -327,7 +327,7 @@ static void snd_ice1712_set_gpio_data(ice1712_t *ice, unsigned int val) * change the input clock selection * spdif_clock = 1 - IEC958 input, 0 - Envy24 */ -static int snd_ice1712_cs8427_set_input_clock(ice1712_t *ice, int spdif_clock) +static int snd_ice1712_cs8427_set_input_clock(struct snd_ice1712 *ice, int spdif_clock) { unsigned char reg[2] = { 0x80 | 4, 0 }; /* CS8427 auto increment | register number 4 + data */ unsigned char val, nval; @@ -362,17 +362,17 @@ static int snd_ice1712_cs8427_set_input_clock(ice1712_t *ice, int spdif_clock) /* * spdif callbacks */ -static void open_cs8427(ice1712_t *ice, snd_pcm_substream_t * substream) +static void open_cs8427(struct snd_ice1712 *ice, struct snd_pcm_substream *substream) { snd_cs8427_iec958_active(ice->cs8427, 1); } -static void close_cs8427(ice1712_t *ice, snd_pcm_substream_t * substream) +static void close_cs8427(struct snd_ice1712 *ice, struct snd_pcm_substream *substream) { snd_cs8427_iec958_active(ice->cs8427, 0); } -static void setup_cs8427(ice1712_t *ice, int rate) +static void setup_cs8427(struct snd_ice1712 *ice, int rate) { snd_cs8427_iec958_pcm(ice->cs8427, rate); } @@ -380,7 +380,7 @@ static void setup_cs8427(ice1712_t *ice, int rate) /* * create and initialize callbacks for cs8427 interface */ -int __devinit snd_ice1712_init_cs8427(ice1712_t *ice, int addr) +int __devinit snd_ice1712_init_cs8427(struct snd_ice1712 *ice, int addr) { int err; @@ -403,7 +403,7 @@ int __devinit snd_ice1712_init_cs8427(ice1712_t *ice, int addr) static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - ice1712_t *ice = dev_id; + struct snd_ice1712 *ice = dev_id; unsigned char status; int handled = 0; @@ -444,7 +444,7 @@ static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs * if (status & ICE1712_IRQ_PBKDS) { u32 idx; u16 pbkstatus; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; pbkstatus = inw(ICEDS(ice, INTSTAT)); //printk("pbkstatus = 0x%x\n", pbkstatus); for (idx = 0; idx < 6; idx++) { @@ -475,13 +475,13 @@ static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs * * PCM part - misc */ -static int snd_ice1712_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ice1712_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_ice1712_hw_free(snd_pcm_substream_t * substream) +static int snd_ice1712_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } @@ -490,10 +490,10 @@ static int snd_ice1712_hw_free(snd_pcm_substream_t * substream) * PCM part - consumer I/O */ -static int snd_ice1712_playback_trigger(snd_pcm_substream_t * substream, +static int snd_ice1712_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); int result = 0; u32 tmp; @@ -515,10 +515,10 @@ static int snd_ice1712_playback_trigger(snd_pcm_substream_t * substream, return result; } -static int snd_ice1712_playback_ds_trigger(snd_pcm_substream_t * substream, +static int snd_ice1712_playback_ds_trigger(struct snd_pcm_substream *substream, int cmd) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); int result = 0; u32 tmp; @@ -540,10 +540,10 @@ static int snd_ice1712_playback_ds_trigger(snd_pcm_substream_t * substream, return result; } -static int snd_ice1712_capture_trigger(snd_pcm_substream_t * substream, +static int snd_ice1712_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); int result = 0; u8 tmp; @@ -561,10 +561,10 @@ static int snd_ice1712_capture_trigger(snd_pcm_substream_t * substream, return result; } -static int snd_ice1712_playback_prepare(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; u32 period_size, buf_size, rate, tmp; period_size = (snd_pcm_lib_period_bytes(substream) >> 2) - 1; @@ -594,10 +594,10 @@ static int snd_ice1712_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_playback_ds_prepare(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_ds_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; u32 period_size, buf_size, rate, tmp, chn; period_size = snd_pcm_lib_period_bytes(substream) - 1; @@ -629,10 +629,10 @@ static int snd_ice1712_playback_ds_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_capture_prepare(snd_pcm_substream_t * substream) +static int snd_ice1712_capture_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; u32 period_size, buf_size; u8 tmp; @@ -654,10 +654,10 @@ static int snd_ice1712_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_ice1712_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ice1712_playback_pointer(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; size_t ptr; if (!(snd_ice1712_read(ice, ICE1712_IREG_PBK_CTRL) & 1)) @@ -668,9 +668,9 @@ static snd_pcm_uframes_t snd_ice1712_playback_pointer(snd_pcm_substream_t * subs return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_uframes_t snd_ice1712_playback_ds_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ice1712_playback_ds_pointer(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); u8 addr; size_t ptr; @@ -687,9 +687,9 @@ static snd_pcm_uframes_t snd_ice1712_playback_ds_pointer(snd_pcm_substream_t * s return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_uframes_t snd_ice1712_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ice1712_capture_pointer(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); size_t ptr; if (!(snd_ice1712_read(ice, ICE1712_IREG_CAP_CTRL) & 1)) @@ -700,7 +700,7 @@ static snd_pcm_uframes_t snd_ice1712_capture_pointer(snd_pcm_substream_t * subst return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_hardware_t snd_ice1712_playback = +static struct snd_pcm_hardware snd_ice1712_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -720,7 +720,7 @@ static snd_pcm_hardware_t snd_ice1712_playback = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_ice1712_playback_ds = +static struct snd_pcm_hardware snd_ice1712_playback_ds = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -740,7 +740,7 @@ static snd_pcm_hardware_t snd_ice1712_playback_ds = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_ice1712_capture = +static struct snd_pcm_hardware snd_ice1712_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -759,20 +759,20 @@ static snd_pcm_hardware_t snd_ice1712_capture = .fifo_size = 0, }; -static int snd_ice1712_playback_open(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_open(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); ice->playback_con_substream = substream; runtime->hw = snd_ice1712_playback; return 0; } -static int snd_ice1712_playback_ds_open(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_ds_open(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); u32 tmp; ice->playback_con_substream_ds[substream->number] = substream; @@ -784,10 +784,10 @@ static int snd_ice1712_playback_ds_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_capture_open(snd_pcm_substream_t * substream) +static int snd_ice1712_capture_open(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); ice->capture_con_substream = substream; runtime->hw = snd_ice1712_capture; @@ -797,17 +797,17 @@ static int snd_ice1712_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_playback_close(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); ice->playback_con_substream = NULL; return 0; } -static int snd_ice1712_playback_ds_close(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_ds_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); u32 tmp; spin_lock_irq(&ice->reg_lock); @@ -818,15 +818,15 @@ static int snd_ice1712_playback_ds_close(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_capture_close(snd_pcm_substream_t * substream) +static int snd_ice1712_capture_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); ice->capture_con_substream = NULL; return 0; } -static snd_pcm_ops_t snd_ice1712_playback_ops = { +static struct snd_pcm_ops snd_ice1712_playback_ops = { .open = snd_ice1712_playback_open, .close = snd_ice1712_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -837,7 +837,7 @@ static snd_pcm_ops_t snd_ice1712_playback_ops = { .pointer = snd_ice1712_playback_pointer, }; -static snd_pcm_ops_t snd_ice1712_playback_ds_ops = { +static struct snd_pcm_ops snd_ice1712_playback_ds_ops = { .open = snd_ice1712_playback_ds_open, .close = snd_ice1712_playback_ds_close, .ioctl = snd_pcm_lib_ioctl, @@ -848,7 +848,7 @@ static snd_pcm_ops_t snd_ice1712_playback_ds_ops = { .pointer = snd_ice1712_playback_ds_pointer, }; -static snd_pcm_ops_t snd_ice1712_capture_ops = { +static struct snd_pcm_ops snd_ice1712_capture_ops = { .open = snd_ice1712_capture_open, .close = snd_ice1712_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -859,9 +859,9 @@ static snd_pcm_ops_t snd_ice1712_capture_ops = { .pointer = snd_ice1712_capture_pointer, }; -static int __devinit snd_ice1712_pcm(ice1712_t * ice, int device, snd_pcm_t ** rpcm) +static int __devinit snd_ice1712_pcm(struct snd_ice1712 * ice, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -889,9 +889,9 @@ static int __devinit snd_ice1712_pcm(ice1712_t * ice, int device, snd_pcm_t ** r return 0; } -static int __devinit snd_ice1712_pcm_ds(ice1712_t * ice, int device, snd_pcm_t ** rpcm) +static int __devinit snd_ice1712_pcm_ds(struct snd_ice1712 * ice, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -923,16 +923,16 @@ static int __devinit snd_ice1712_pcm_ds(ice1712_t * ice, int device, snd_pcm_t * static unsigned int rates[] = { 8000, 9600, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }; -static snd_pcm_hw_constraint_list_t hw_constraints_rates = { +static struct snd_pcm_hw_constraint_list hw_constraints_rates = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, }; -static int snd_ice1712_pro_trigger(snd_pcm_substream_t *substream, +static int snd_ice1712_pro_trigger(struct snd_pcm_substream *substream, int cmd) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); switch (cmd) { case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: @@ -959,7 +959,7 @@ static int snd_ice1712_pro_trigger(snd_pcm_substream_t *substream, unsigned int what = 0; unsigned int old; struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); @@ -989,7 +989,7 @@ static int snd_ice1712_pro_trigger(snd_pcm_substream_t *substream, /* */ -static void snd_ice1712_set_pro_rate(ice1712_t *ice, unsigned int rate, int force) +static void snd_ice1712_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate, int force) { unsigned long flags; unsigned char val, old; @@ -1043,9 +1043,9 @@ static void snd_ice1712_set_pro_rate(ice1712_t *ice, unsigned int rate, int forc ice->spdif.ops.setup_rate(ice, rate); } -static int snd_ice1712_playback_pro_prepare(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_pro_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); ice->playback_pro_size = snd_pcm_lib_buffer_bytes(substream); spin_lock_irq(&ice->reg_lock); @@ -1057,18 +1057,18 @@ static int snd_ice1712_playback_pro_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_playback_pro_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ice1712_playback_pro_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); snd_ice1712_set_pro_rate(ice, params_rate(hw_params), 0); return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_ice1712_capture_pro_prepare(snd_pcm_substream_t * substream) +static int snd_ice1712_capture_pro_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); ice->capture_pro_size = snd_pcm_lib_buffer_bytes(substream); spin_lock_irq(&ice->reg_lock); @@ -1079,18 +1079,18 @@ static int snd_ice1712_capture_pro_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_capture_pro_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ice1712_capture_pro_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); snd_ice1712_set_pro_rate(ice, params_rate(hw_params), 0); return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static snd_pcm_uframes_t snd_ice1712_playback_pro_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ice1712_playback_pro_pointer(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); size_t ptr; if (!(inl(ICEMT(ice, PLAYBACK_CONTROL)) & ICE1712_PLAYBACK_START)) @@ -1101,9 +1101,9 @@ static snd_pcm_uframes_t snd_ice1712_playback_pro_pointer(snd_pcm_substream_t * return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_uframes_t snd_ice1712_capture_pro_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ice1712_capture_pro_pointer(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); size_t ptr; if (!(inl(ICEMT(ice, PLAYBACK_CONTROL)) & ICE1712_CAPTURE_START_SHADOW)) @@ -1114,7 +1114,7 @@ static snd_pcm_uframes_t snd_ice1712_capture_pro_pointer(snd_pcm_substream_t * s return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_hardware_t snd_ice1712_playback_pro = +static struct snd_pcm_hardware snd_ice1712_playback_pro = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1134,7 +1134,7 @@ static snd_pcm_hardware_t snd_ice1712_playback_pro = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_ice1712_capture_pro = +static struct snd_pcm_hardware snd_ice1712_capture_pro = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1154,10 +1154,10 @@ static snd_pcm_hardware_t snd_ice1712_capture_pro = .fifo_size = 0, }; -static int snd_ice1712_playback_pro_open(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_pro_open(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); ice->playback_pro_substream = substream; runtime->hw = snd_ice1712_playback_pro; @@ -1171,10 +1171,10 @@ static int snd_ice1712_playback_pro_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_capture_pro_open(snd_pcm_substream_t * substream) +static int snd_ice1712_capture_pro_open(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; ice->capture_pro_substream = substream; runtime->hw = snd_ice1712_capture_pro; @@ -1184,9 +1184,9 @@ static int snd_ice1712_capture_pro_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_playback_pro_close(snd_pcm_substream_t * substream) +static int snd_ice1712_playback_pro_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (PRO_RATE_RESET) snd_ice1712_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); @@ -1197,9 +1197,9 @@ static int snd_ice1712_playback_pro_close(snd_pcm_substream_t * substream) return 0; } -static int snd_ice1712_capture_pro_close(snd_pcm_substream_t * substream) +static int snd_ice1712_capture_pro_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (PRO_RATE_RESET) snd_ice1712_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); @@ -1207,7 +1207,7 @@ static int snd_ice1712_capture_pro_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_ice1712_playback_pro_ops = { +static struct snd_pcm_ops snd_ice1712_playback_pro_ops = { .open = snd_ice1712_playback_pro_open, .close = snd_ice1712_playback_pro_close, .ioctl = snd_pcm_lib_ioctl, @@ -1218,7 +1218,7 @@ static snd_pcm_ops_t snd_ice1712_playback_pro_ops = { .pointer = snd_ice1712_playback_pro_pointer, }; -static snd_pcm_ops_t snd_ice1712_capture_pro_ops = { +static struct snd_pcm_ops snd_ice1712_capture_pro_ops = { .open = snd_ice1712_capture_pro_open, .close = snd_ice1712_capture_pro_close, .ioctl = snd_pcm_lib_ioctl, @@ -1229,9 +1229,9 @@ static snd_pcm_ops_t snd_ice1712_capture_pro_ops = { .pointer = snd_ice1712_capture_pro_pointer, }; -static int __devinit snd_ice1712_pcm_profi(ice1712_t * ice, int device, snd_pcm_t ** rpcm) +static int __devinit snd_ice1712_pcm_profi(struct snd_ice1712 * ice, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1272,7 +1272,7 @@ static int __devinit snd_ice1712_pcm_profi(ice1712_t * ice, int device, snd_pcm_ * Mixer section */ -static void snd_ice1712_update_volume(ice1712_t *ice, int index) +static void snd_ice1712_update_volume(struct snd_ice1712 *ice, int index) { unsigned int vol = ice->pro_volumes[index]; unsigned short val = 0; @@ -1283,7 +1283,7 @@ static void snd_ice1712_update_volume(ice1712_t *ice, int index) outw(val, ICEMT(ice, MONITOR_VOLUME)); } -static int snd_ice1712_pro_mixer_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_mixer_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; @@ -1292,9 +1292,9 @@ static int snd_ice1712_pro_mixer_switch_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_ice1712_pro_mixer_switch_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_mixer_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int index = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + kcontrol->private_value; spin_lock_irq(&ice->reg_lock); @@ -1304,9 +1304,9 @@ static int snd_ice1712_pro_mixer_switch_get(snd_kcontrol_t * kcontrol, snd_ctl_e return 0; } -static int snd_ice1712_pro_mixer_switch_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_mixer_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int index = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + kcontrol->private_value; unsigned int nval, change; @@ -1321,7 +1321,7 @@ static int snd_ice1712_pro_mixer_switch_put(snd_kcontrol_t * kcontrol, snd_ctl_e return change; } -static int snd_ice1712_pro_mixer_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_mixer_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -1330,9 +1330,9 @@ static int snd_ice1712_pro_mixer_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_ice1712_pro_mixer_volume_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_mixer_volume_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int index = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + kcontrol->private_value; spin_lock_irq(&ice->reg_lock); @@ -1342,9 +1342,9 @@ static int snd_ice1712_pro_mixer_volume_get(snd_kcontrol_t * kcontrol, snd_ctl_e return 0; } -static int snd_ice1712_pro_mixer_volume_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_mixer_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int index = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + kcontrol->private_value; unsigned int nval, change; @@ -1360,7 +1360,7 @@ static int snd_ice1712_pro_mixer_volume_put(snd_kcontrol_t * kcontrol, snd_ctl_e } -static snd_kcontrol_new_t snd_ice1712_multi_playback_ctrls[] __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_multi_playback_ctrls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Playback Switch", @@ -1381,7 +1381,7 @@ static snd_kcontrol_new_t snd_ice1712_multi_playback_ctrls[] __devinitdata = { }, }; -static snd_kcontrol_new_t snd_ice1712_multi_capture_analog_switch __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_multi_capture_analog_switch __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "H/W Multi Capture Switch", .info = snd_ice1712_pro_mixer_switch_info, @@ -1390,7 +1390,7 @@ static snd_kcontrol_new_t snd_ice1712_multi_capture_analog_switch __devinitdata .private_value = 10, }; -static snd_kcontrol_new_t snd_ice1712_multi_capture_spdif_switch __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_multi_capture_spdif_switch __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("Multi ",CAPTURE,SWITCH), .info = snd_ice1712_pro_mixer_switch_info, @@ -1400,7 +1400,7 @@ static snd_kcontrol_new_t snd_ice1712_multi_capture_spdif_switch __devinitdata = .count = 2, }; -static snd_kcontrol_new_t snd_ice1712_multi_capture_analog_volume __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_multi_capture_analog_volume __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "H/W Multi Capture Volume", .info = snd_ice1712_pro_mixer_volume_info, @@ -1409,7 +1409,7 @@ static snd_kcontrol_new_t snd_ice1712_multi_capture_analog_volume __devinitdata .private_value = 10, }; -static snd_kcontrol_new_t snd_ice1712_multi_capture_spdif_volume __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_multi_capture_spdif_volume __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("Multi ",CAPTURE,VOLUME), .info = snd_ice1712_pro_mixer_volume_info, @@ -1419,9 +1419,9 @@ static snd_kcontrol_new_t snd_ice1712_multi_capture_spdif_volume __devinitdata = .count = 2, }; -static int __devinit snd_ice1712_build_pro_mixer(ice1712_t *ice) +static int __devinit snd_ice1712_build_pro_mixer(struct snd_ice1712 *ice) { - snd_card_t * card = ice->card; + struct snd_card *card = ice->card; unsigned int idx; int err; @@ -1433,7 +1433,7 @@ static int __devinit snd_ice1712_build_pro_mixer(ice1712_t *ice) } if (ice->num_total_adcs > 0) { - snd_kcontrol_new_t tmp = snd_ice1712_multi_capture_analog_switch; + struct snd_kcontrol_new tmp = snd_ice1712_multi_capture_analog_switch; tmp.count = ice->num_total_adcs; err = snd_ctl_add(card, snd_ctl_new1(&tmp, ice)); if (err < 0) @@ -1445,7 +1445,7 @@ static int __devinit snd_ice1712_build_pro_mixer(ice1712_t *ice) return err; if (ice->num_total_adcs > 0) { - snd_kcontrol_new_t tmp = snd_ice1712_multi_capture_analog_volume; + struct snd_kcontrol_new tmp = snd_ice1712_multi_capture_analog_volume; tmp.count = ice->num_total_adcs; err = snd_ctl_add(card, snd_ctl_new1(&tmp, ice)); if (err < 0) @@ -1472,22 +1472,22 @@ static int __devinit snd_ice1712_build_pro_mixer(ice1712_t *ice) return 0; } -static void snd_ice1712_mixer_free_ac97(ac97_t *ac97) +static void snd_ice1712_mixer_free_ac97(struct snd_ac97 *ac97) { - ice1712_t *ice = ac97->private_data; + struct snd_ice1712 *ice = ac97->private_data; ice->ac97 = NULL; } -static int __devinit snd_ice1712_ac97_mixer(ice1712_t * ice) +static int __devinit snd_ice1712_ac97_mixer(struct snd_ice1712 * ice) { int err, bus_num = 0; - ac97_template_t ac97; - ac97_bus_t *pbus; - static ac97_bus_ops_t con_ops = { + struct snd_ac97_template ac97; + struct snd_ac97_bus *pbus; + static struct snd_ac97_bus_ops con_ops = { .write = snd_ice1712_ac97_write, .read = snd_ice1712_ac97_read, }; - static ac97_bus_ops_t pro_ops = { + static struct snd_ac97_bus_ops pro_ops = { .write = snd_ice1712_pro_ac97_write, .read = snd_ice1712_pro_ac97_read, }; @@ -1527,15 +1527,15 @@ static int __devinit snd_ice1712_ac97_mixer(ice1712_t * ice) * */ -static inline unsigned int eeprom_double(ice1712_t *ice, int idx) +static inline unsigned int eeprom_double(struct snd_ice1712 *ice, int idx) { return (unsigned int)ice->eeprom.data[idx] | ((unsigned int)ice->eeprom.data[idx + 1] << 8); } -static void snd_ice1712_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ice1712_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ice1712_t *ice = entry->private_data; + struct snd_ice1712 *ice = entry->private_data; unsigned int idx; snd_iprintf(buffer, "%s\n\n", ice->card->longname); @@ -1569,9 +1569,9 @@ static void snd_ice1712_proc_read(snd_info_entry_t *entry, snd_iprintf(buffer, " RATE : 0x%02x\n", (unsigned)inb(ICEMT(ice, RATE))); } -static void __devinit snd_ice1712_proc_init(ice1712_t * ice) +static void __devinit snd_ice1712_proc_init(struct snd_ice1712 * ice) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(ice->card, "ice1712", &entry)) snd_info_set_text_ops(entry, ice, 1024, snd_ice1712_proc_read); @@ -1581,22 +1581,24 @@ static void __devinit snd_ice1712_proc_init(ice1712_t * ice) * */ -static int snd_ice1712_eeprom_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_eeprom_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES; - uinfo->count = sizeof(ice1712_eeprom_t); + uinfo->count = sizeof(struct snd_ice1712_eeprom); return 0; } -static int snd_ice1712_eeprom_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_eeprom_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); memcpy(ucontrol->value.bytes.data, &ice->eeprom, sizeof(ice->eeprom)); return 0; } -static snd_kcontrol_new_t snd_ice1712_eeprom __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_eeprom __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = "ICE1712 EEPROM", .access = SNDRV_CTL_ELEM_ACCESS_READ, @@ -1606,32 +1608,33 @@ static snd_kcontrol_new_t snd_ice1712_eeprom __devinitdata = { /* */ -static int snd_ice1712_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_ice1712_spdif_default_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_spdif_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); if (ice->spdif.ops.default_get) ice->spdif.ops.default_get(ice, ucontrol); return 0; } -static int snd_ice1712_spdif_default_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_spdif_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); if (ice->spdif.ops.default_put) return ice->spdif.ops.default_put(ice, ucontrol); return 0; } -static snd_kcontrol_new_t snd_ice1712_spdif_default __devinitdata = +static struct snd_kcontrol_new snd_ice1712_spdif_default __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -1640,10 +1643,10 @@ static snd_kcontrol_new_t snd_ice1712_spdif_default __devinitdata = .put = snd_ice1712_spdif_default_put }; -static int snd_ice1712_spdif_maskc_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_spdif_maskc_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); if (ice->spdif.ops.default_get) { ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO | IEC958_AES0_PROFESSIONAL | @@ -1662,10 +1665,10 @@ static int snd_ice1712_spdif_maskc_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ice1712_spdif_maskp_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_spdif_maskp_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); if (ice->spdif.ops.default_get) { ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO | IEC958_AES0_PROFESSIONAL | @@ -1682,7 +1685,7 @@ static int snd_ice1712_spdif_maskp_get(snd_kcontrol_t * kcontrol, return 0; } -static snd_kcontrol_new_t snd_ice1712_spdif_maskc __devinitdata = +static struct snd_kcontrol_new snd_ice1712_spdif_maskc __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1691,7 +1694,7 @@ static snd_kcontrol_new_t snd_ice1712_spdif_maskc __devinitdata = .get = snd_ice1712_spdif_maskc_get, }; -static snd_kcontrol_new_t snd_ice1712_spdif_maskp __devinitdata = +static struct snd_kcontrol_new snd_ice1712_spdif_maskp __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1700,27 +1703,28 @@ static snd_kcontrol_new_t snd_ice1712_spdif_maskp __devinitdata = .get = snd_ice1712_spdif_maskp_get, }; -static int snd_ice1712_spdif_stream_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_spdif_stream_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); if (ice->spdif.ops.stream_get) ice->spdif.ops.stream_get(ice, ucontrol); return 0; } -static int snd_ice1712_spdif_stream_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_spdif_stream_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); if (ice->spdif.ops.stream_put) return ice->spdif.ops.stream_put(ice, ucontrol); return 0; } -static snd_kcontrol_new_t snd_ice1712_spdif_stream __devinitdata = +static struct snd_kcontrol_new snd_ice1712_spdif_stream __devinitdata = { - .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, + .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE | + SNDRV_CTL_ELEM_ACCESS_INACTIVE), .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM), .info = snd_ice1712_spdif_info, @@ -1728,7 +1732,8 @@ static snd_kcontrol_new_t snd_ice1712_spdif_stream __devinitdata = .put = snd_ice1712_spdif_stream_put }; -int snd_ice1712_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +int snd_ice1712_gpio_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1737,21 +1742,24 @@ int snd_ice1712_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) return 0; } -int snd_ice1712_gpio_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_ice1712_gpio_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char mask = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value & (1<<24)) ? 1 : 0; snd_ice1712_save_gpio_status(ice); - ucontrol->value.integer.value[0] = (snd_ice1712_gpio_read(ice) & mask ? 1 : 0) ^ invert; + ucontrol->value.integer.value[0] = + (snd_ice1712_gpio_read(ice) & mask ? 1 : 0) ^ invert; snd_ice1712_restore_gpio_status(ice); return 0; } -int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_ice1712_gpio_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char mask = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value & (1<<24)) ? mask : 0; unsigned int val, nval; @@ -1771,7 +1779,8 @@ int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucont /* * rate */ -static int snd_ice1712_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_internal_clock_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "8000", /* 0: 6 */ @@ -1798,9 +1807,10 @@ static int snd_ice1712_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl return 0; } -static int snd_ice1712_pro_internal_clock_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_internal_clock_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); static unsigned char xlate[16] = { 9, 6, 3, 1, 7, 4, 0, 12, 8, 5, 2, 11, 255, 255, 255, 10 }; @@ -1821,9 +1831,10 @@ static int snd_ice1712_pro_internal_clock_get(snd_kcontrol_t * kcontrol, snd_ctl return 0; } -static int snd_ice1712_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_internal_clock_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); static unsigned int xrate[13] = { 8000, 9600, 11025, 12000, 1600, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 @@ -1844,7 +1855,8 @@ static int snd_ice1712_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl change = inb(ICEMT(ice, RATE)) != oval; spin_unlock_irq(&ice->reg_lock); - if ((oval & ICE1712_SPDIF_MASTER) != (inb(ICEMT(ice, RATE)) & ICE1712_SPDIF_MASTER)) { + if ((oval & ICE1712_SPDIF_MASTER) != + (inb(ICEMT(ice, RATE)) & ICE1712_SPDIF_MASTER)) { /* change CS8427 clock source too */ if (ice->cs8427) { snd_ice1712_cs8427_set_input_clock(ice, is_spdif_master(ice)); @@ -1862,7 +1874,7 @@ static int snd_ice1712_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl return change; } -static snd_kcontrol_new_t snd_ice1712_pro_internal_clock __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_pro_internal_clock __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Internal Clock", .info = snd_ice1712_pro_internal_clock_info, @@ -1870,7 +1882,8 @@ static snd_kcontrol_new_t snd_ice1712_pro_internal_clock __devinitdata = { .put = snd_ice1712_pro_internal_clock_put }; -static int snd_ice1712_pro_internal_clock_default_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_internal_clock_default_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "8000", /* 0: 6 */ @@ -1897,7 +1910,8 @@ static int snd_ice1712_pro_internal_clock_default_info(snd_kcontrol_t *kcontrol, return 0; } -static int snd_ice1712_pro_internal_clock_default_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_internal_clock_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int val; static unsigned int xrate[13] = { @@ -1914,7 +1928,8 @@ static int snd_ice1712_pro_internal_clock_default_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ice1712_pro_internal_clock_default_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_internal_clock_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { static unsigned int xrate[13] = { 8000, 9600, 11025, 12000, 1600, 22050, 24000, @@ -1930,7 +1945,7 @@ static int snd_ice1712_pro_internal_clock_default_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_ice1712_pro_internal_clock_default __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_pro_internal_clock_default __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Internal Clock Default", .info = snd_ice1712_pro_internal_clock_default_info, @@ -1938,7 +1953,8 @@ static snd_kcontrol_new_t snd_ice1712_pro_internal_clock_default __devinitdata = .put = snd_ice1712_pro_internal_clock_default_put }; -static int snd_ice1712_pro_rate_locking_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_rate_locking_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1947,15 +1963,17 @@ static int snd_ice1712_pro_rate_locking_info(snd_kcontrol_t *kcontrol, snd_ctl_e return 0; } -static int snd_ice1712_pro_rate_locking_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_rate_locking_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.integer.value[0] = PRO_RATE_LOCKED; return 0; } -static int snd_ice1712_pro_rate_locking_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_rate_locking_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, nval; nval = ucontrol->value.integer.value[0] ? 1 : 0; @@ -1966,7 +1984,7 @@ static int snd_ice1712_pro_rate_locking_put(snd_kcontrol_t * kcontrol, snd_ctl_e return change; } -static snd_kcontrol_new_t snd_ice1712_pro_rate_locking __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_pro_rate_locking __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Rate Locking", .info = snd_ice1712_pro_rate_locking_info, @@ -1974,7 +1992,8 @@ static snd_kcontrol_new_t snd_ice1712_pro_rate_locking __devinitdata = { .put = snd_ice1712_pro_rate_locking_put }; -static int snd_ice1712_pro_rate_reset_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_rate_reset_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1983,15 +2002,17 @@ static int snd_ice1712_pro_rate_reset_info(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_ice1712_pro_rate_reset_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_rate_reset_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.integer.value[0] = PRO_RATE_RESET; return 0; } -static int snd_ice1712_pro_rate_reset_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_rate_reset_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, nval; nval = ucontrol->value.integer.value[0] ? 1 : 0; @@ -2002,7 +2023,7 @@ static int snd_ice1712_pro_rate_reset_put(snd_kcontrol_t * kcontrol, snd_ctl_ele return change; } -static snd_kcontrol_new_t snd_ice1712_pro_rate_reset __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_pro_rate_reset __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Rate Reset", .info = snd_ice1712_pro_rate_reset_info, @@ -2013,7 +2034,8 @@ static snd_kcontrol_new_t snd_ice1712_pro_rate_reset __devinitdata = { /* * routing */ -static int snd_ice1712_pro_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_route_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "PCM Out", /* 0 */ @@ -2025,16 +2047,18 @@ static int snd_ice1712_pro_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; - uinfo->value.enumerated.items = snd_ctl_get_ioffidx(kcontrol, &uinfo->id) < 2 ? 12 : 11; + uinfo->value.enumerated.items = + snd_ctl_get_ioffidx(kcontrol, &uinfo->id) < 2 ? 12 : 11; if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]); return 0; } -static int snd_ice1712_pro_route_analog_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_pro_route_analog_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned int val, cval; @@ -2057,9 +2081,10 @@ static int snd_ice1712_pro_route_analog_get(snd_kcontrol_t * kcontrol, snd_ctl_e return 0; } -static int snd_ice1712_pro_route_analog_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_pro_route_analog_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change, shift; int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned int val, old_val, nval; @@ -2106,9 +2131,10 @@ static int snd_ice1712_pro_route_analog_put(snd_kcontrol_t * kcontrol, snd_ctl_e return change; } -static int snd_ice1712_pro_route_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_pro_route_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned int val, cval; val = inw(ICEMT(ice, ROUTE_SPDOUT)); @@ -2125,9 +2151,10 @@ static int snd_ice1712_pro_route_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_el return 0; } -static int snd_ice1712_pro_route_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_ice1712_pro_route_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change, shift; int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned int val, old_val, nval; @@ -2163,7 +2190,7 @@ static int snd_ice1712_pro_route_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_el return change; } -static snd_kcontrol_new_t snd_ice1712_mixer_pro_analog_route __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_mixer_pro_analog_route __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "H/W Playback Route", .info = snd_ice1712_pro_route_info, @@ -2171,7 +2198,7 @@ static snd_kcontrol_new_t snd_ice1712_mixer_pro_analog_route __devinitdata = { .put = snd_ice1712_pro_route_analog_put, }; -static snd_kcontrol_new_t snd_ice1712_mixer_pro_spdif_route __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_mixer_pro_spdif_route __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Route", .info = snd_ice1712_pro_route_info, @@ -2181,7 +2208,8 @@ static snd_kcontrol_new_t snd_ice1712_mixer_pro_spdif_route __devinitdata = { }; -static int snd_ice1712_pro_volume_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_volume_rate_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -2190,17 +2218,19 @@ static int snd_ice1712_pro_volume_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_ice1712_pro_volume_rate_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_volume_rate_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = inb(ICEMT(ice, MONITOR_RATE)); return 0; } -static int snd_ice1712_pro_volume_rate_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_volume_rate_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change; spin_lock_irq(&ice->reg_lock); @@ -2210,7 +2240,7 @@ static int snd_ice1712_pro_volume_rate_put(snd_kcontrol_t * kcontrol, snd_ctl_el return change; } -static snd_kcontrol_new_t snd_ice1712_mixer_pro_volume_rate __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_mixer_pro_volume_rate __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Volume Rate", .info = snd_ice1712_pro_volume_rate_info, @@ -2218,7 +2248,8 @@ static snd_kcontrol_new_t snd_ice1712_mixer_pro_volume_rate __devinitdata = { .put = snd_ice1712_pro_volume_rate_put }; -static int snd_ice1712_pro_peak_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ice1712_pro_peak_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 22; @@ -2227,9 +2258,10 @@ static int snd_ice1712_pro_peak_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_ice1712_pro_peak_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ice1712_pro_peak_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx; spin_lock_irq(&ice->reg_lock); @@ -2241,7 +2273,7 @@ static int snd_ice1712_pro_peak_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu return 0; } -static snd_kcontrol_new_t snd_ice1712_mixer_pro_peak __devinitdata = { +static struct snd_kcontrol_new snd_ice1712_mixer_pro_peak __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Peak", .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, @@ -2263,7 +2295,7 @@ static struct snd_ice1712_card_info *card_tables[] __devinitdata = { NULL, }; -static unsigned char __devinit snd_ice1712_read_i2c(ice1712_t *ice, +static unsigned char __devinit snd_ice1712_read_i2c(struct snd_ice1712 *ice, unsigned char dev, unsigned char addr) { @@ -2275,7 +2307,8 @@ static unsigned char __devinit snd_ice1712_read_i2c(ice1712_t *ice, return inb(ICEREG(ice, I2C_DATA)); } -static int __devinit snd_ice1712_read_eeprom(ice1712_t *ice, const char *modelname) +static int __devinit snd_ice1712_read_eeprom(struct snd_ice1712 *ice, + const char *modelname) { int dev = 0xa0; /* EEPROM device address */ unsigned int i, size; @@ -2288,7 +2321,8 @@ static int __devinit snd_ice1712_read_eeprom(ice1712_t *ice, const char *modelna (snd_ice1712_read_i2c(ice, dev, 0x01) << 8) | (snd_ice1712_read_i2c(ice, dev, 0x02) << 16) | (snd_ice1712_read_i2c(ice, dev, 0x03) << 24); - if (ice->eeprom.subvendor == 0 || ice->eeprom.subvendor == (unsigned int)-1) { + if (ice->eeprom.subvendor == 0 || + ice->eeprom.subvendor == (unsigned int)-1) { /* invalid subvendor from EEPROM, try the PCI subststem ID instead */ u16 vendor, device; pci_read_config_word(ice->pci, PCI_SUBSYSTEM_VENDOR_ID, &vendor); @@ -2317,7 +2351,8 @@ static int __devinit snd_ice1712_read_eeprom(ice1712_t *ice, const char *modelna goto read_skipped; } } - printk(KERN_WARNING "ice1712: No matching model found for ID 0x%x\n", ice->eeprom.subvendor); + printk(KERN_WARNING "ice1712: No matching model found for ID 0x%x\n", + ice->eeprom.subvendor); found: ice->eeprom.size = snd_ice1712_read_i2c(ice, dev, 0x04); @@ -2329,7 +2364,8 @@ static int __devinit snd_ice1712_read_eeprom(ice1712_t *ice, const char *modelna } ice->eeprom.version = snd_ice1712_read_i2c(ice, dev, 0x05); if (ice->eeprom.version != 1) { - snd_printk(KERN_ERR "invalid EEPROM version %i\n", ice->eeprom.version); + snd_printk(KERN_ERR "invalid EEPROM version %i\n", + ice->eeprom.version); /* return -EIO; */ } size = ice->eeprom.size - 6; @@ -2346,7 +2382,7 @@ static int __devinit snd_ice1712_read_eeprom(ice1712_t *ice, const char *modelna -static int __devinit snd_ice1712_chip_init(ice1712_t *ice) +static int __devinit snd_ice1712_chip_init(struct snd_ice1712 *ice) { outb(ICE1712_RESET | ICE1712_NATIVE, ICEREG(ice, CONTROL)); udelay(200); @@ -2359,15 +2395,19 @@ static int __devinit snd_ice1712_chip_init(ice1712_t *ice) if (ice->eeprom.subvendor != ICE1712_SUBDEVICE_STDSP24) { ice->gpio.write_mask = ice->eeprom.gpiomask; ice->gpio.direction = ice->eeprom.gpiodir; - snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ice->eeprom.gpiomask); - snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION, ice->eeprom.gpiodir); - snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, ice->eeprom.gpiostate); + snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, + ice->eeprom.gpiomask); + snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION, + ice->eeprom.gpiodir); + snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, + ice->eeprom.gpiostate); } else { ice->gpio.write_mask = 0xc0; ice->gpio.direction = 0xff; snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, 0xc0); snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION, 0xff); - snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, ICE1712_STDSP24_CLOCK_BIT); + snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, + ICE1712_STDSP24_CLOCK_BIT); } snd_ice1712_write(ice, ICE1712_IREG_PRO_POWERDOWN, 0); if (!(ice->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_NO_CON_AC97)) { @@ -2382,10 +2422,10 @@ static int __devinit snd_ice1712_chip_init(ice1712_t *ice) return 0; } -int __devinit snd_ice1712_spdif_build_controls(ice1712_t *ice) +int __devinit snd_ice1712_spdif_build_controls(struct snd_ice1712 *ice) { int err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; snd_assert(ice->pcm_pro != NULL, return -EIO); err = snd_ctl_add(ice->card, kctl = snd_ctl_new1(&snd_ice1712_spdif_default, ice)); @@ -2409,7 +2449,7 @@ int __devinit snd_ice1712_spdif_build_controls(ice1712_t *ice) } -static int __devinit snd_ice1712_build_controls(ice1712_t *ice) +static int __devinit snd_ice1712_build_controls(struct snd_ice1712 *ice) { int err; @@ -2431,7 +2471,7 @@ static int __devinit snd_ice1712_build_controls(ice1712_t *ice) return err; if (ice->num_total_dacs > 0) { - snd_kcontrol_new_t tmp = snd_ice1712_mixer_pro_analog_route; + struct snd_kcontrol_new tmp = snd_ice1712_mixer_pro_analog_route; tmp.count = ice->num_total_dacs; err = snd_ctl_add(ice->card, snd_ctl_new1(&tmp, ice)); if (err < 0) @@ -2452,7 +2492,7 @@ static int __devinit snd_ice1712_build_controls(ice1712_t *ice) return 0; } -static int snd_ice1712_free(ice1712_t *ice) +static int snd_ice1712_free(struct snd_ice1712 *ice) { if (! ice->port) goto __hw_end; @@ -2463,7 +2503,7 @@ static int snd_ice1712_free(ice1712_t *ice) __hw_end: if (ice->irq >= 0) { synchronize_irq(ice->irq); - free_irq(ice->irq, (void *) ice); + free_irq(ice->irq, ice); } if (ice->port) pci_release_regions(ice->pci); @@ -2473,22 +2513,22 @@ static int snd_ice1712_free(ice1712_t *ice) return 0; } -static int snd_ice1712_dev_free(snd_device_t *device) +static int snd_ice1712_dev_free(struct snd_device *device) { - ice1712_t *ice = device->device_data; + struct snd_ice1712 *ice = device->device_data; return snd_ice1712_free(ice); } -static int __devinit snd_ice1712_create(snd_card_t * card, +static int __devinit snd_ice1712_create(struct snd_card *card, struct pci_dev *pci, const char *modelname, int omni, int cs8427_timeout, - ice1712_t ** r_ice1712) + struct snd_ice1712 ** r_ice1712) { - ice1712_t *ice; + struct snd_ice1712 *ice; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_ice1712_dev_free, }; @@ -2548,7 +2588,8 @@ static int __devinit snd_ice1712_create(snd_card_t * card, ice->dmapath_port = pci_resource_start(pci, 2); ice->profi_port = pci_resource_start(pci, 3); - if (request_irq(pci->irq, snd_ice1712_interrupt, SA_INTERRUPT|SA_SHIRQ, "ICE1712", (void *) ice)) { + if (request_irq(pci->irq, snd_ice1712_interrupt, SA_INTERRUPT|SA_SHIRQ, + "ICE1712", ice)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_ice1712_free(ice); return -EIO; @@ -2566,8 +2607,10 @@ static int __devinit snd_ice1712_create(snd_card_t * card, } /* unmask used interrupts */ - outb((ice->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_2xMPU401) == 0 ? ICE1712_IRQ_MPU2 : 0 | - (ice->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_NO_CON_AC97) ? ICE1712_IRQ_PBKDS | ICE1712_IRQ_CONCAP | ICE1712_IRQ_CONPBK : 0, + outb(((ice->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_2xMPU401) == 0 ? + ICE1712_IRQ_MPU2 : 0) | + ((ice->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_NO_CON_AC97) ? + ICE1712_IRQ_PBKDS | ICE1712_IRQ_CONCAP | ICE1712_IRQ_CONPBK : 0), ICEREG(ice, IRQMASK)); outb(0x00, ICEMT(ice, IRQ)); @@ -2595,8 +2638,8 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - ice1712_t *ice; + struct snd_card *card; + struct snd_ice1712 *ice; int pcm_dev = 0, err; struct snd_ice1712_card_info **tbl, *c; @@ -2614,7 +2657,8 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci, strcpy(card->driver, "ICE1712"); strcpy(card->shortname, "ICEnsemble ICE1712"); - if ((err = snd_ice1712_create(card, pci, model[dev], omni[dev], cs8427_timeout[dev], &ice)) < 0) { + if ((err = snd_ice1712_create(card, pci, model[dev], omni[dev], + cs8427_timeout[dev], &ice)) < 0) { snd_card_free(card); return err; } diff --git a/sound/pci/ice1712/ice1712.h b/sound/pci/ice1712/ice1712.h index 5ad4728daa7..ce96b3bb653 100644 --- a/sound/pci/ice1712/ice1712.h +++ b/sound/pci/ice1712/ice1712.h @@ -215,9 +215,9 @@ * */ -typedef struct _snd_ice1712 ice1712_t; +struct snd_ice1712; -typedef struct { +struct snd_ice1712_eeprom { unsigned int subvendor; /* PCI[2c-2f] */ unsigned char size; /* size of EEPROM image in bytes */ unsigned char version; /* must be 1 (or 2 for vt1724) */ @@ -225,7 +225,7 @@ typedef struct { unsigned int gpiomask; unsigned int gpiostate; unsigned int gpiodir; -} ice1712_eeprom_t; +}; enum { ICE_EEP1_CODEC = 0, /* 06 */ @@ -266,28 +266,28 @@ struct snd_ak4xxx_private { unsigned int add_flags; /* additional bits at init */ unsigned int mask_flags; /* total mask bits */ struct snd_akm4xxx_ops { - void (*set_rate_val)(akm4xxx_t *ak, unsigned int rate); + void (*set_rate_val)(struct snd_akm4xxx *ak, unsigned int rate); } ops; }; struct snd_ice1712_spdif { unsigned char cs8403_bits; unsigned char cs8403_stream_bits; - snd_kcontrol_t *stream_ctl; + struct snd_kcontrol *stream_ctl; struct snd_ice1712_spdif_ops { - void (*open)(ice1712_t *, snd_pcm_substream_t *); - void (*setup_rate)(ice1712_t *, int rate); - void (*close)(ice1712_t *, snd_pcm_substream_t *); - void (*default_get)(ice1712_t *, snd_ctl_elem_value_t * ucontrol); - int (*default_put)(ice1712_t *, snd_ctl_elem_value_t * ucontrol); - void (*stream_get)(ice1712_t *, snd_ctl_elem_value_t * ucontrol); - int (*stream_put)(ice1712_t *, snd_ctl_elem_value_t * ucontrol); + void (*open)(struct snd_ice1712 *, struct snd_pcm_substream *); + void (*setup_rate)(struct snd_ice1712 *, int rate); + void (*close)(struct snd_ice1712 *, struct snd_pcm_substream *); + void (*default_get)(struct snd_ice1712 *, struct snd_ctl_elem_value *ucontrol); + int (*default_put)(struct snd_ice1712 *, struct snd_ctl_elem_value *ucontrol); + void (*stream_get)(struct snd_ice1712 *, struct snd_ctl_elem_value *ucontrol); + int (*stream_put)(struct snd_ice1712 *, struct snd_ctl_elem_value *ucontrol); } ops; }; -struct _snd_ice1712 { +struct snd_ice1712 { unsigned long conp_dma_size; unsigned long conc_dma_size; unsigned long prop_dma_size; @@ -300,28 +300,28 @@ struct _snd_ice1712 { unsigned long profi_port; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; - snd_pcm_t *pcm_ds; - snd_pcm_t *pcm_pro; - snd_pcm_substream_t *playback_con_substream; - snd_pcm_substream_t *playback_con_substream_ds[6]; - snd_pcm_substream_t *capture_con_substream; - snd_pcm_substream_t *playback_pro_substream; - snd_pcm_substream_t *capture_pro_substream; + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_pcm *pcm_ds; + struct snd_pcm *pcm_pro; + struct snd_pcm_substream *playback_con_substream; + struct snd_pcm_substream *playback_con_substream_ds[6]; + struct snd_pcm_substream *capture_con_substream; + struct snd_pcm_substream *playback_pro_substream; + struct snd_pcm_substream *capture_pro_substream; unsigned int playback_pro_size; unsigned int capture_pro_size; unsigned int playback_con_virt_addr[6]; unsigned int playback_con_active_buf[6]; unsigned int capture_con_virt_addr; unsigned int ac97_ext_id; - ac97_t *ac97; - snd_rawmidi_t *rmidi[2]; + struct snd_ac97 *ac97; + struct snd_rawmidi *rmidi[2]; spinlock_t reg_lock; - snd_info_entry_t *proc_entry; + struct snd_info_entry *proc_entry; - ice1712_eeprom_t eeprom; + struct snd_ice1712_eeprom eeprom; unsigned int pro_volumes[20]; unsigned int omni: 1; /* Delta Omni I/O */ @@ -335,16 +335,16 @@ struct _snd_ice1712 { unsigned int cur_rate; /* current rate */ struct semaphore open_mutex; - snd_pcm_substream_t *pcm_reserved[4]; - snd_pcm_hw_constraint_list_t *hw_rates; /* card-specific rate constraints */ + struct snd_pcm_substream *pcm_reserved[4]; + struct snd_pcm_hw_constraint_list *hw_rates; /* card-specific rate constraints */ unsigned int akm_codecs; - akm4xxx_t *akm; + struct snd_akm4xxx *akm; struct snd_ice1712_spdif spdif; struct semaphore i2c_mutex; /* I2C mutex for ICE1724 registers */ - snd_i2c_bus_t *i2c; /* I2C bus */ - snd_i2c_device_t *cs8427; /* CS8427 I2C device */ + struct snd_i2c_bus *i2c; /* I2C bus */ + struct snd_i2c_device *cs8427; /* CS8427 I2C device */ unsigned int cs8427_timeout; /* CS8427 reset timeout in HZ/100 */ struct ice1712_gpio { @@ -352,20 +352,20 @@ struct _snd_ice1712 { unsigned int write_mask; /* current mask bits */ unsigned int saved[2]; /* for ewx_i2c */ /* operators */ - void (*set_mask)(ice1712_t *ice, unsigned int data); - void (*set_dir)(ice1712_t *ice, unsigned int data); - void (*set_data)(ice1712_t *ice, unsigned int data); - unsigned int (*get_data)(ice1712_t *ice); + void (*set_mask)(struct snd_ice1712 *ice, unsigned int data); + void (*set_dir)(struct snd_ice1712 *ice, unsigned int data); + void (*set_data)(struct snd_ice1712 *ice, unsigned int data); + unsigned int (*get_data)(struct snd_ice1712 *ice); /* misc operators - move to another place? */ - void (*set_pro_rate)(ice1712_t *ice, unsigned int rate); - void (*i2s_mclk_changed)(ice1712_t *ice); + void (*set_pro_rate)(struct snd_ice1712 *ice, unsigned int rate); + void (*i2s_mclk_changed)(struct snd_ice1712 *ice); } gpio; struct semaphore gpio_mutex; /* other board-specific data */ union { /* additional i2c devices for EWS boards */ - snd_i2c_device_t *i2cdevs[3]; + struct snd_i2c_device *i2cdevs[3]; /* AC97 register cache for Aureon */ struct aureon_spec { unsigned short stac9744[64]; @@ -385,7 +385,7 @@ struct _snd_ice1712 { unsigned short boxconfig[4]; } hoontech; struct { - ak4114_t *ak4114; + struct ak4114 *ak4114; unsigned int analog: 1; } juli; } spec; @@ -396,22 +396,22 @@ struct _snd_ice1712 { /* * gpio access functions */ -static inline void snd_ice1712_gpio_set_dir(ice1712_t *ice, unsigned int bits) +static inline void snd_ice1712_gpio_set_dir(struct snd_ice1712 *ice, unsigned int bits) { ice->gpio.set_dir(ice, bits); } -static inline void snd_ice1712_gpio_set_mask(ice1712_t *ice, unsigned int bits) +static inline void snd_ice1712_gpio_set_mask(struct snd_ice1712 *ice, unsigned int bits) { ice->gpio.set_mask(ice, bits); } -static inline void snd_ice1712_gpio_write(ice1712_t *ice, unsigned int val) +static inline void snd_ice1712_gpio_write(struct snd_ice1712 *ice, unsigned int val) { ice->gpio.set_data(ice, val); } -static inline unsigned int snd_ice1712_gpio_read(ice1712_t *ice) +static inline unsigned int snd_ice1712_gpio_read(struct snd_ice1712 *ice) { return ice->gpio.get_data(ice); } @@ -421,14 +421,14 @@ static inline unsigned int snd_ice1712_gpio_read(ice1712_t *ice) * The access to gpio will be protected by mutex, so don't forget to * restore! */ -static inline void snd_ice1712_save_gpio_status(ice1712_t *ice) +static inline void snd_ice1712_save_gpio_status(struct snd_ice1712 *ice) { down(&ice->gpio_mutex); ice->gpio.saved[0] = ice->gpio.direction; ice->gpio.saved[1] = ice->gpio.write_mask; } -static inline void snd_ice1712_restore_gpio_status(ice1712_t *ice) +static inline void snd_ice1712_restore_gpio_status(struct snd_ice1712 *ice) { ice->gpio.set_dir(ice, ice->gpio.saved[0]); ice->gpio.set_mask(ice, ice->gpio.saved[1]); @@ -443,14 +443,15 @@ static inline void snd_ice1712_restore_gpio_status(ice1712_t *ice) .get = snd_ice1712_gpio_get, .put = snd_ice1712_gpio_put, \ .private_value = mask | (invert << 24) } -int snd_ice1712_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo); -int snd_ice1712_gpio_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol); -int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol); +int snd_ice1712_gpio_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); +int snd_ice1712_gpio_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); +int snd_ice1712_gpio_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); /* * set gpio direction, write mask and data */ -static inline void snd_ice1712_gpio_write_bits(ice1712_t *ice, unsigned int mask, unsigned int bits) +static inline void snd_ice1712_gpio_write_bits(struct snd_ice1712 *ice, + unsigned int mask, unsigned int bits) { ice->gpio.direction |= mask; snd_ice1712_gpio_set_dir(ice, ice->gpio.direction); @@ -458,21 +459,22 @@ static inline void snd_ice1712_gpio_write_bits(ice1712_t *ice, unsigned int mask snd_ice1712_gpio_write(ice, mask & bits); } -int snd_ice1712_spdif_build_controls(ice1712_t *ice); +int snd_ice1712_spdif_build_controls(struct snd_ice1712 *ice); -int snd_ice1712_akm4xxx_init(akm4xxx_t *ak, const akm4xxx_t *template, const struct snd_ak4xxx_private *priv, ice1712_t *ice); -void snd_ice1712_akm4xxx_free(ice1712_t *ice); -int snd_ice1712_akm4xxx_build_controls(ice1712_t *ice); +int snd_ice1712_akm4xxx_init(struct snd_akm4xxx *ak, const struct snd_akm4xxx *template, + const struct snd_ak4xxx_private *priv, struct snd_ice1712 *ice); +void snd_ice1712_akm4xxx_free(struct snd_ice1712 *ice); +int snd_ice1712_akm4xxx_build_controls(struct snd_ice1712 *ice); -int snd_ice1712_init_cs8427(ice1712_t *ice, int addr); +int snd_ice1712_init_cs8427(struct snd_ice1712 *ice, int addr); -static inline void snd_ice1712_write(ice1712_t * ice, u8 addr, u8 data) +static inline void snd_ice1712_write(struct snd_ice1712 * ice, u8 addr, u8 data) { outb(addr, ICEREG(ice, INDEX)); outb(data, ICEREG(ice, DATA)); } -static inline u8 snd_ice1712_read(ice1712_t * ice, u8 addr) +static inline u8 snd_ice1712_read(struct snd_ice1712 * ice, u8 addr) { outb(addr, ICEREG(ice, INDEX)); return inb(ICEREG(ice, DATA)); @@ -488,8 +490,8 @@ struct snd_ice1712_card_info { char *name; char *model; char *driver; - int (*chip_init)(ice1712_t *); - int (*build_controls)(ice1712_t *); + int (*chip_init)(struct snd_ice1712 *); + int (*build_controls)(struct snd_ice1712 *); unsigned int no_mpu401: 1; unsigned int eeprom_size; unsigned char *eeprom_data; -- cgit v1.2.3-70-g09d2 From ab0c7d72c32d703d1a2833ce2a1920cd3b46b131 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:00:18 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ICE1724 Modules: ICE1724 driver,ICE1712 driver Remove xxx_t typedefs from the PCI ICE1724 driver. Signed-off-by: Takashi Iwai --- sound/pci/ice1712/amp.c | 6 +- sound/pci/ice1712/aureon.c | 242 +++++++++--------- sound/pci/ice1712/envy24ht.h | 4 +- sound/pci/ice1712/ice1724.c | 532 +++++++++++++++++++++++----------------- sound/pci/ice1712/juli.c | 24 +- sound/pci/ice1712/phase.c | 110 ++++----- sound/pci/ice1712/pontis.c | 130 +++++----- sound/pci/ice1712/prodigy192.c | 82 +++---- sound/pci/ice1712/revo.c | 16 +- sound/pci/ice1712/vt1720_mobo.c | 4 +- 10 files changed, 617 insertions(+), 533 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ice1712/amp.c b/sound/pci/ice1712/amp.c index 289b0b5711e..59c4078ad33 100644 --- a/sound/pci/ice1712/amp.c +++ b/sound/pci/ice1712/amp.c @@ -33,14 +33,14 @@ #include "envy24ht.h" #include "amp.h" -static void wm_put(ice1712_t *ice, int reg, unsigned short val) +static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val) { unsigned short cval; cval = (reg << 9) | val; snd_vt1724_write_i2c(ice, WM_DEV, cval >> 8, cval & 0xff); } -static int __devinit snd_vt1724_amp_init(ice1712_t *ice) +static int __devinit snd_vt1724_amp_init(struct snd_ice1712 *ice) { static unsigned short wm_inits[] = { WM_ATTEN_L, 0x0000, /* 0 db */ @@ -66,7 +66,7 @@ static int __devinit snd_vt1724_amp_init(ice1712_t *ice) return 0; } -static int __devinit snd_vt1724_amp_add_controls(ice1712_t *ice) +static int __devinit snd_vt1724_amp_add_controls(struct snd_ice1712 *ice) { /* we use pins 39 and 41 of the VT1616 for left and right read outputs */ snd_ac97_write_cache(ice->ac97, 0x5a, snd_ac97_read(ice->ac97, 0x5a) & ~0x8000); diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c index db12b038286..8809812a1c2 100644 --- a/sound/pci/ice1712/aureon.c +++ b/sound/pci/ice1712/aureon.c @@ -22,7 +22,7 @@ * * NOTES: * - * - we reuse the akm4xxx_t record for storing the wm8770 codec data. + * - we reuse the struct snd_akm4xxx record for storing the wm8770 codec data. * both wm and akm codecs are pretty similar, so we can integrate * both controls in the future, once if wm codecs are reused in * many boards. @@ -85,7 +85,7 @@ #define CS8415_C_BUFFER 0x20 #define CS8415_ID 0x7F -static void aureon_ac97_write(ice1712_t *ice, unsigned short reg, unsigned short val) { +static void aureon_ac97_write(struct snd_ice1712 *ice, unsigned short reg, unsigned short val) { unsigned int tmp; /* Send address to XILINX chip */ @@ -136,7 +136,7 @@ static void aureon_ac97_write(ice1712_t *ice, unsigned short reg, unsigned short ice->spec.aureon.stac9744[(reg & 0x7F) >> 1] = val; } -static unsigned short aureon_ac97_read(ice1712_t *ice, unsigned short reg) +static unsigned short aureon_ac97_read(struct snd_ice1712 *ice, unsigned short reg) { return ice->spec.aureon.stac9744[(reg & 0x7F) >> 1]; } @@ -144,7 +144,7 @@ static unsigned short aureon_ac97_read(ice1712_t *ice, unsigned short reg) /* * Initialize STAC9744 chip */ -static int aureon_ac97_init (ice1712_t *ice) { +static int aureon_ac97_init (struct snd_ice1712 *ice) { int i; static unsigned short ac97_defaults[] = { 0x00, 0x9640, @@ -196,7 +196,7 @@ static int aureon_ac97_init (ice1712_t *ice) { /* * AC'97 volume controls */ -static int aureon_ac97_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int aureon_ac97_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = kcontrol->private_value & AUREON_AC97_STEREO ? 2 : 1; @@ -205,9 +205,9 @@ static int aureon_ac97_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *u return 0; } -static int aureon_ac97_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_ac97_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short vol; down(&ice->gpio_mutex); @@ -221,9 +221,9 @@ static int aureon_ac97_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u return 0; } -static int aureon_ac97_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_ac97_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short ovol, nvol; int change; @@ -248,9 +248,9 @@ static int aureon_ac97_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u */ #define aureon_ac97_mute_info aureon_mono_bool_info -static int aureon_ac97_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_ac97_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); @@ -260,9 +260,9 @@ static int aureon_ac97_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int aureon_ac97_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int aureon_ac97_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short ovol, nvol; int change; @@ -284,9 +284,9 @@ static int aureon_ac97_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t */ #define aureon_ac97_micboost_info aureon_mono_bool_info -static int aureon_ac97_micboost_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_ac97_micboost_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); @@ -296,9 +296,9 @@ static int aureon_ac97_micboost_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value return 0; } -static int aureon_ac97_micboost_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int aureon_ac97_micboost_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short ovol, nvol; int change; @@ -318,7 +318,7 @@ static int aureon_ac97_micboost_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu /* * write data in the SPI mode */ -static void aureon_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data, int bits) +static void aureon_spi_write(struct snd_ice1712 *ice, unsigned int cs, unsigned int data, int bits) { unsigned int tmp; int i; @@ -359,7 +359,7 @@ static void aureon_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data, /* * Read data in SPI mode */ -static void aureon_spi_read(ice1712_t *ice, unsigned int cs, unsigned int data, int bits, unsigned char *buffer, int size) { +static void aureon_spi_read(struct snd_ice1712 *ice, unsigned int cs, unsigned int data, int bits, unsigned char *buffer, int size) { int i, j; unsigned int tmp; @@ -409,26 +409,26 @@ static void aureon_spi_read(ice1712_t *ice, unsigned int cs, unsigned int data, snd_ice1712_gpio_write(ice, tmp); } -static unsigned char aureon_cs8415_get(ice1712_t *ice, int reg) { +static unsigned char aureon_cs8415_get(struct snd_ice1712 *ice, int reg) { unsigned char val; aureon_spi_write(ice, AUREON_CS8415_CS, 0x2000 | reg, 16); aureon_spi_read(ice, AUREON_CS8415_CS, 0x21, 8, &val, 1); return val; } -static void aureon_cs8415_read(ice1712_t *ice, int reg, unsigned char *buffer, int size) { +static void aureon_cs8415_read(struct snd_ice1712 *ice, int reg, unsigned char *buffer, int size) { aureon_spi_write(ice, AUREON_CS8415_CS, 0x2000 | reg, 16); aureon_spi_read(ice, AUREON_CS8415_CS, 0x21, 8, buffer, size); } -static void aureon_cs8415_put(ice1712_t *ice, int reg, unsigned char val) { +static void aureon_cs8415_put(struct snd_ice1712 *ice, int reg, unsigned char val) { aureon_spi_write(ice, AUREON_CS8415_CS, 0x200000 | (reg << 8) | val, 24); } /* * get the current register value of WM codec */ -static unsigned short wm_get(ice1712_t *ice, int reg) +static unsigned short wm_get(struct snd_ice1712 *ice, int reg) { reg <<= 1; return ((unsigned short)ice->akm[0].images[reg] << 8) | @@ -438,7 +438,7 @@ static unsigned short wm_get(ice1712_t *ice, int reg) /* * set the register value of WM codec */ -static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) +static void wm_put_nocache(struct snd_ice1712 *ice, int reg, unsigned short val) { aureon_spi_write(ice, AUREON_WM_CS, (reg << 9) | (val & 0x1ff), 16); } @@ -446,7 +446,7 @@ static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) /* * set the register value of WM codec and remember it */ -static void wm_put(ice1712_t *ice, int reg, unsigned short val) +static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val) { wm_put_nocache(ice, reg, val); reg <<= 1; @@ -456,7 +456,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val) /* */ -static int aureon_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) +static int aureon_mono_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -470,9 +470,9 @@ static int aureon_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) */ #define aureon_ac97_mmute_info aureon_mono_bool_info -static int aureon_ac97_mmute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_ac97_mmute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); @@ -482,8 +482,8 @@ static int aureon_ac97_mmute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int aureon_ac97_mmute_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); +static int aureon_ac97_mmute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short ovol, nvol; int change; @@ -521,7 +521,7 @@ static unsigned char wm_vol[256] = { #define WM_VOL_MAX (sizeof(wm_vol) - 1) #define WM_VOL_MUTE 0x8000 -static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, unsigned short master) +static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned short vol, unsigned short master) { unsigned char nvol; @@ -539,9 +539,9 @@ static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, u */ #define wm_pcm_mute_info aureon_mono_bool_info -static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); ucontrol->value.integer.value[0] = (wm_get(ice, WM_MUTE) & 0x10) ? 0 : 1; @@ -549,9 +549,9 @@ static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int wm_pcm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short nval, oval; int change; @@ -568,7 +568,7 @@ static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco /* * Master volume attenuation mixer control */ -static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_master_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -577,18 +577,18 @@ static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin return 0; } -static int wm_master_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_master_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i; for (i=0; i<2; i++) ucontrol->value.integer.value[i] = ice->spec.aureon.master[i] & ~WM_VOL_MUTE; return 0; } -static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_master_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int ch, change = 0; snd_ice1712_save_gpio_status(ice); @@ -611,7 +611,7 @@ static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco /* * DAC volume attenuation mixer control */ -static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int voices = kcontrol->private_value >> 8; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -621,9 +621,9 @@ static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, ofs, voices; voices = kcontrol->private_value >> 8; @@ -633,9 +633,9 @@ static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) return 0; } -static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, idx, ofs, voices; int change = 0; @@ -659,7 +659,7 @@ static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) /* * WM8770 mute control */ -static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { +static int wm_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = kcontrol->private_value >> 8; uinfo->value.integer.min = 0; @@ -667,9 +667,9 @@ static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { return 0; } -static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int voices, ofs, i; voices = kcontrol->private_value >> 8; @@ -680,9 +680,9 @@ static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) return 0; } -static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int wm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, voices, ofs, i; voices = kcontrol->private_value >> 8; @@ -708,7 +708,7 @@ static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro /* * WM8770 master mute control */ -static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { +static int wm_master_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; uinfo->value.integer.min = 0; @@ -716,18 +716,18 @@ static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui return 0; } -static int wm_master_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = (ice->spec.aureon.master[0] & WM_VOL_MUTE) ? 0 : 1; ucontrol->value.integer.value[1] = (ice->spec.aureon.master[1] & WM_VOL_MUTE) ? 0 : 1; return 0; } -static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int wm_master_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, i; snd_ice1712_save_gpio_status(ice); @@ -754,7 +754,7 @@ static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * #define PCM_0dB 0xff #define PCM_RES 128 /* -64dB */ #define PCM_MIN (PCM_0dB - PCM_RES) -static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_pcm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -763,9 +763,9 @@ static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_pcm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val; down(&ice->gpio_mutex); @@ -776,9 +776,9 @@ static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr return 0; } -static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short ovol, nvol; int change = 0; @@ -798,7 +798,7 @@ static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr /* * ADC mute control */ -static int wm_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_adc_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; @@ -807,9 +807,9 @@ static int wm_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo return 0; } -static int wm_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val; int i; @@ -822,9 +822,9 @@ static int wm_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int wm_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int wm_adc_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short new, old; int i, change = 0; @@ -845,7 +845,7 @@ static int wm_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco /* * ADC gain mixer control */ -static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_adc_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -854,9 +854,9 @@ static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, idx; unsigned short vol; @@ -870,9 +870,9 @@ static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr return 0; } -static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, idx; unsigned short ovol, nvol; int change = 0; @@ -894,7 +894,7 @@ static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr /* * ADC input mux mixer control */ -static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_adc_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "CD", //AIN1 @@ -913,7 +913,7 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) "Aux3", //AIN7 "AC97" //AIN8 }; - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 2; @@ -932,9 +932,9 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val; down(&ice->gpio_mutex); @@ -945,9 +945,9 @@ static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_mux_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short oval, nval; int change; @@ -966,9 +966,9 @@ static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont /* * CS8415 Input mux */ -static int aureon_cs8415_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int aureon_cs8415_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); static char *aureon_texts[] = { "CD", //RXP0 "Optical" //RXP1 @@ -989,9 +989,9 @@ static int aureon_cs8415_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int aureon_cs8415_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_cs8415_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); //snd_ice1712_save_gpio_status(ice); //val = aureon_cs8415_get(ice, CS8415_CTRL2); @@ -1000,9 +1000,9 @@ static int aureon_cs8415_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int aureon_cs8415_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_cs8415_mux_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short oval, nval; int change; @@ -1018,7 +1018,7 @@ static int aureon_cs8415_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return change; } -static int aureon_cs8415_rate_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int aureon_cs8415_rate_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -1027,9 +1027,9 @@ static int aureon_cs8415_rate_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int aureon_cs8415_rate_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_cs8415_rate_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char ratio; ratio = aureon_cs8415_get(ice, CS8415_RATIO); ucontrol->value.integer.value[0] = (int)((unsigned int)ratio * 750); @@ -1039,25 +1039,25 @@ static int aureon_cs8415_rate_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ /* * CS8415A Mute */ -static int aureon_cs8415_mute_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int aureon_cs8415_mute_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; return 0; } -static int aureon_cs8415_mute_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_cs8415_mute_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); snd_ice1712_save_gpio_status(ice); ucontrol->value.integer.value[0] = (aureon_cs8415_get(ice, CS8415_CTRL1) & 0x20) ? 0 : 1; snd_ice1712_restore_gpio_status(ice); return 0; } -static int aureon_cs8415_mute_put (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_cs8415_mute_put (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char oval, nval; int change; snd_ice1712_save_gpio_status(ice); @@ -1075,14 +1075,14 @@ static int aureon_cs8415_mute_put (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ /* * CS8415A Q-Sub info */ -static int aureon_cs8415_qsub_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { +static int aureon_cs8415_qsub_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES; uinfo->count = 10; return 0; } -static int aureon_cs8415_qsub_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); +static int aureon_cs8415_qsub_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); snd_ice1712_save_gpio_status(ice); aureon_cs8415_read(ice, CS8415_QSUB, ucontrol->value.bytes.data, 10); @@ -1091,19 +1091,19 @@ static int aureon_cs8415_qsub_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ return 0; } -static int aureon_cs8415_spdif_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { +static int aureon_cs8415_spdif_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int aureon_cs8415_mask_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { +static int aureon_cs8415_mask_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { memset(ucontrol->value.iec958.status, 0xFF, 24); return 0; } -static int aureon_cs8415_spdif_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); +static int aureon_cs8415_spdif_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); snd_ice1712_save_gpio_status(ice); aureon_cs8415_read(ice, CS8415_C_BUFFER, ucontrol->value.iec958.status, 24); @@ -1114,7 +1114,7 @@ static int aureon_cs8415_spdif_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value /* * Headphone Amplifier */ -static int aureon_set_headphone_amp(ice1712_t *ice, int enable) +static int aureon_set_headphone_amp(struct snd_ice1712 *ice, int enable) { unsigned int tmp, tmp2; @@ -1130,7 +1130,7 @@ static int aureon_set_headphone_amp(ice1712_t *ice, int enable) return 0; } -static int aureon_get_headphone_amp(ice1712_t *ice) +static int aureon_get_headphone_amp(struct snd_ice1712 *ice) { unsigned int tmp = snd_ice1712_gpio_read(ice); @@ -1139,18 +1139,18 @@ static int aureon_get_headphone_amp(ice1712_t *ice) #define aureon_hpamp_info aureon_mono_bool_info -static int aureon_hpamp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = aureon_get_headphone_amp(ice); return 0; } -static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_hpamp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); return aureon_set_headphone_amp(ice,ucontrol->value.integer.value[0]); } @@ -1161,16 +1161,16 @@ static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon #define aureon_deemp_info aureon_mono_bool_info -static int aureon_deemp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf; return 0; } -static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_deemp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int temp, temp2; temp2 = temp = wm_get(ice, WM_DAC_CTRL2); if (ucontrol->value.integer.value[0]) @@ -1187,7 +1187,7 @@ static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon /* * ADC Oversampling */ -static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) +static int aureon_oversampling_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) { static char *texts[2] = { "128x", "64x" }; @@ -1202,17 +1202,17 @@ static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinf return 0; } -static int aureon_oversampling_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8; return 0; } -static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { int temp, temp2; - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); temp2 = temp = wm_get(ice, WM_MASTER); @@ -1232,7 +1232,7 @@ static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ * mixers */ -static snd_kcontrol_new_t aureon_dac_controls[] __devinitdata = { +static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Master Playback Switch", @@ -1329,7 +1329,7 @@ static snd_kcontrol_new_t aureon_dac_controls[] __devinitdata = { } }; -static snd_kcontrol_new_t wm_controls[] __devinitdata = { +static struct snd_kcontrol_new wm_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Playback Switch", @@ -1389,7 +1389,7 @@ static snd_kcontrol_new_t wm_controls[] __devinitdata = { } }; -static snd_kcontrol_new_t ac97_controls[] __devinitdata = { +static struct snd_kcontrol_new ac97_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "AC97 Playback Switch", @@ -1479,7 +1479,7 @@ static snd_kcontrol_new_t ac97_controls[] __devinitdata = { } }; -static snd_kcontrol_new_t universe_ac97_controls[] __devinitdata = { +static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "AC97 Playback Switch", @@ -1586,7 +1586,7 @@ static snd_kcontrol_new_t universe_ac97_controls[] __devinitdata = { }; -static snd_kcontrol_new_t cs8415_controls[] __devinitdata = { +static struct snd_kcontrol_new cs8415_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), @@ -1632,7 +1632,7 @@ static snd_kcontrol_new_t cs8415_controls[] __devinitdata = { }; -static int __devinit aureon_add_controls(ice1712_t *ice) +static int __devinit aureon_add_controls(struct snd_ice1712 *ice) { unsigned int i, counts; int err; @@ -1677,7 +1677,7 @@ static int __devinit aureon_add_controls(ice1712_t *ice) snd_printk(KERN_INFO "Detected unsupported CS8415 rev. (%c)\n", (char)((id & 0x0F) + 'A' - 1)); else { for (i = 0; i< ARRAY_SIZE(cs8415_controls); i++) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; err = snd_ctl_add(ice->card, (kctl = snd_ctl_new1(&cs8415_controls[i], ice))); if (err < 0) return err; @@ -1695,7 +1695,7 @@ static int __devinit aureon_add_controls(ice1712_t *ice) /* * initialize the chip */ -static int __devinit aureon_init(ice1712_t *ice) +static int __devinit aureon_init(struct snd_ice1712 *ice) { static unsigned short wm_inits_aureon[] = { /* These come first to reduce init pop noise */ @@ -1796,7 +1796,7 @@ static int __devinit aureon_init(ice1712_t *ice) } /* to remeber the register values of CS8415 */ - ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ice->akm) return -ENOMEM; ice->akm_codecs = 1; diff --git a/sound/pci/ice1712/envy24ht.h b/sound/pci/ice1712/envy24ht.h index f7878020eaa..b58afcda9ed 100644 --- a/sound/pci/ice1712/envy24ht.h +++ b/sound/pci/ice1712/envy24ht.h @@ -209,7 +209,7 @@ enum { #define VT1724_MT_PDMA1_COUNT 0x76 /* word */ -unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr); -void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr, unsigned char data); +unsigned char snd_vt1724_read_i2c(struct snd_ice1712 *ice, unsigned char dev, unsigned char addr); +void snd_vt1724_write_i2c(struct snd_ice1712 *ice, unsigned char dev, unsigned char addr, unsigned char data); #endif /* __SOUND_VT1724_H */ diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c index 0b5389ee26d..71f08c03601 100644 --- a/sound/pci/ice1712/ice1724.c +++ b/sound/pci/ice1712/ice1724.c @@ -102,12 +102,12 @@ static unsigned int PRO_RATE_DEFAULT = 44100; */ /* check whether the clock mode is spdif-in */ -static inline int is_spdif_master(ice1712_t *ice) +static inline int is_spdif_master(struct snd_ice1712 *ice) { return (inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER) ? 1 : 0; } -static inline int is_pro_rate_locked(ice1712_t *ice) +static inline int is_pro_rate_locked(struct snd_ice1712 *ice) { return is_spdif_master(ice) || PRO_RATE_LOCKED; } @@ -116,7 +116,7 @@ static inline int is_pro_rate_locked(ice1712_t *ice) * ac97 section */ -static unsigned char snd_vt1724_ac97_ready(ice1712_t *ice) +static unsigned char snd_vt1724_ac97_ready(struct snd_ice1712 *ice) { unsigned char old_cmd; int tm; @@ -132,7 +132,7 @@ static unsigned char snd_vt1724_ac97_ready(ice1712_t *ice) return old_cmd; } -static int snd_vt1724_ac97_wait_bit(ice1712_t *ice, unsigned char bit) +static int snd_vt1724_ac97_wait_bit(struct snd_ice1712 *ice, unsigned char bit) { int tm; for (tm = 0; tm < 0x10000; tm++) @@ -142,11 +142,11 @@ static int snd_vt1724_ac97_wait_bit(ice1712_t *ice, unsigned char bit) return -EIO; } -static void snd_vt1724_ac97_write(ac97_t *ac97, +static void snd_vt1724_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - ice1712_t *ice = (ice1712_t *)ac97->private_data; + struct snd_ice1712 *ice = ac97->private_data; unsigned char old_cmd; old_cmd = snd_vt1724_ac97_ready(ice); @@ -158,9 +158,9 @@ static void snd_vt1724_ac97_write(ac97_t *ac97, snd_vt1724_ac97_wait_bit(ice, VT1724_AC97_WRITE); } -static unsigned short snd_vt1724_ac97_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_vt1724_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - ice1712_t *ice = (ice1712_t *)ac97->private_data; + struct snd_ice1712 *ice = ac97->private_data; unsigned char old_cmd; old_cmd = snd_vt1724_ac97_ready(ice); @@ -179,14 +179,14 @@ static unsigned short snd_vt1724_ac97_read(ac97_t *ac97, unsigned short reg) */ /* set gpio direction 0 = read, 1 = write */ -static void snd_vt1724_set_gpio_dir(ice1712_t *ice, unsigned int data) +static void snd_vt1724_set_gpio_dir(struct snd_ice1712 *ice, unsigned int data) { outl(data, ICEREG1724(ice, GPIO_DIRECTION)); inw(ICEREG1724(ice, GPIO_DIRECTION)); /* dummy read for pci-posting */ } /* set the gpio mask (0 = writable) */ -static void snd_vt1724_set_gpio_mask(ice1712_t *ice, unsigned int data) +static void snd_vt1724_set_gpio_mask(struct snd_ice1712 *ice, unsigned int data) { outw(data, ICEREG1724(ice, GPIO_WRITE_MASK)); if (! ice->vt1720) /* VT1720 supports only 16 GPIO bits */ @@ -194,7 +194,7 @@ static void snd_vt1724_set_gpio_mask(ice1712_t *ice, unsigned int data) inw(ICEREG1724(ice, GPIO_WRITE_MASK)); /* dummy read for pci-posting */ } -static void snd_vt1724_set_gpio_data(ice1712_t *ice, unsigned int data) +static void snd_vt1724_set_gpio_data(struct snd_ice1712 *ice, unsigned int data) { outw(data, ICEREG1724(ice, GPIO_DATA)); if (! ice->vt1720) @@ -202,7 +202,7 @@ static void snd_vt1724_set_gpio_data(ice1712_t *ice, unsigned int data) inw(ICEREG1724(ice, GPIO_DATA)); /* dummy read for pci-posting */ } -static unsigned int snd_vt1724_get_gpio_data(ice1712_t *ice) +static unsigned int snd_vt1724_get_gpio_data(struct snd_ice1712 *ice) { unsigned int data; if (! ice->vt1720) @@ -219,7 +219,7 @@ static unsigned int snd_vt1724_get_gpio_data(ice1712_t *ice) static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - ice1712_t *ice = dev_id; + struct snd_ice1712 *ice = dev_id; unsigned char status; int handled = 0; @@ -229,8 +229,10 @@ static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *r break; handled = 1; - /* these should probably be separated at some point, - but as we don't currently have MPU support on the board I will leave it */ + /* these should probably be separated at some point, + * but as we don't currently have MPU support on the board + * I will leave it + */ if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) { if (ice->rmidi[0]) snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs); @@ -303,19 +305,19 @@ static unsigned int rates[] = { 176400, 192000, }; -static snd_pcm_hw_constraint_list_t hw_constraints_rates_96 = { +static struct snd_pcm_hw_constraint_list hw_constraints_rates_96 = { .count = ARRAY_SIZE(rates) - 2, /* up to 96000 */ .list = rates, .mask = 0, }; -static snd_pcm_hw_constraint_list_t hw_constraints_rates_48 = { +static struct snd_pcm_hw_constraint_list hw_constraints_rates_48 = { .count = ARRAY_SIZE(rates) - 5, /* up to 48000 */ .list = rates, .mask = 0, }; -static snd_pcm_hw_constraint_list_t hw_constraints_rates_192 = { +static struct snd_pcm_hw_constraint_list hw_constraints_rates_192 = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, @@ -328,13 +330,13 @@ struct vt1724_pcm_reg { unsigned int start; /* start & pause bit */ }; -static int snd_vt1724_pcm_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_vt1724_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); unsigned char what; unsigned char old; struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; what = 0; snd_pcm_group_for_each(pos, substream) { @@ -384,7 +386,7 @@ static int snd_vt1724_pcm_trigger(snd_pcm_substream_t *substream, int cmd) #define DMA_PAUSES (VT1724_RDMA0_PAUSE|VT1724_PDMA0_PAUSE|VT1724_RDMA1_PAUSE|\ VT1724_PDMA1_PAUSE|VT1724_PDMA2_PAUSE|VT1724_PDMA3_PAUSE|VT1724_PDMA4_PAUSE) -static int get_max_rate(ice1712_t *ice) +static int get_max_rate(struct snd_ice1712 *ice) { if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) { if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720) @@ -395,7 +397,8 @@ static int get_max_rate(ice1712_t *ice) return 48000; } -static void snd_vt1724_set_pro_rate(ice1712_t *ice, unsigned int rate, int force) +static void snd_vt1724_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate, + int force) { unsigned long flags; unsigned char val, old; @@ -477,10 +480,10 @@ static void snd_vt1724_set_pro_rate(ice1712_t *ice, unsigned int rate, int force ice->spdif.ops.setup_rate(ice, rate); } -static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_vt1724_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); int i, chs; chs = params_channels(hw_params); @@ -490,7 +493,8 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, /* PDMA0 can be multi-channel up to 8 */ chs = chs / 2 - 1; for (i = 0; i < chs; i++) { - if (ice->pcm_reserved[i] && ice->pcm_reserved[i] != substream) { + if (ice->pcm_reserved[i] && + ice->pcm_reserved[i] != substream) { up(&ice->open_mutex); return -EBUSY; } @@ -504,7 +508,8 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, for (i = 0; i < 3; i++) { /* check individual playback stream */ if (ice->playback_con_substream_ds[i] == substream) { - if (ice->pcm_reserved[i] && ice->pcm_reserved[i] != substream) { + if (ice->pcm_reserved[i] && + ice->pcm_reserved[i] != substream) { up(&ice->open_mutex); return -EBUSY; } @@ -518,9 +523,9 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_vt1724_pcm_hw_free(snd_pcm_substream_t * substream) +static int snd_vt1724_pcm_hw_free(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); int i; down(&ice->open_mutex); @@ -532,9 +537,9 @@ static int snd_vt1724_pcm_hw_free(snd_pcm_substream_t * substream) return snd_pcm_lib_free_pages(substream); } -static int snd_vt1724_playback_pro_prepare(snd_pcm_substream_t * substream) +static int snd_vt1724_playback_pro_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); unsigned char val; unsigned int size; @@ -559,9 +564,9 @@ static int snd_vt1724_playback_pro_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); size_t ptr; if (!(inl(ICEMT1724(ice, DMA_CONTROL)) & VT1724_PDMA0_START)) @@ -575,7 +580,8 @@ static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * s ptr -= substream->runtime->dma_addr; ptr = bytes_to_frames(substream->runtime, ptr); if (ptr >= substream->runtime->buffer_size) { - snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->period_size); + snd_printd("ice1724: invalid ptr %d (size=%d)\n", + (int)ptr, (int)substream->runtime->period_size); return 0; } #else /* read PLAYBACK_SIZE */ @@ -587,29 +593,32 @@ static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * s else if (ptr <= substream->runtime->buffer_size) ptr = substream->runtime->buffer_size - ptr; else { - snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->buffer_size); + snd_printd("ice1724: invalid ptr %d (size=%d)\n", + (int)ptr, (int)substream->runtime->buffer_size); ptr = 0; } #endif return ptr; } -static int snd_vt1724_pcm_prepare(snd_pcm_substream_t *substream) +static int snd_vt1724_pcm_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); struct vt1724_pcm_reg *reg = substream->runtime->private_data; spin_lock_irq(&ice->reg_lock); outl(substream->runtime->dma_addr, ice->profi_port + reg->addr); - outw((snd_pcm_lib_buffer_bytes(substream) >> 2) - 1, ice->profi_port + reg->size); - outw((snd_pcm_lib_period_bytes(substream) >> 2) - 1, ice->profi_port + reg->count); + outw((snd_pcm_lib_buffer_bytes(substream) >> 2) - 1, + ice->profi_port + reg->size); + outw((snd_pcm_lib_period_bytes(substream) >> 2) - 1, + ice->profi_port + reg->count); spin_unlock_irq(&ice->reg_lock); return 0; } -static snd_pcm_uframes_t snd_vt1724_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_vt1724_pcm_pointer(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); struct vt1724_pcm_reg *reg = substream->runtime->private_data; size_t ptr; @@ -628,7 +637,8 @@ static snd_pcm_uframes_t snd_vt1724_pcm_pointer(snd_pcm_substream_t *substream) else if (ptr <= substream->runtime->buffer_size) ptr = substream->runtime->buffer_size - ptr; else { - snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->buffer_size); + snd_printd("ice1724: invalid ptr %d (size=%d)\n", + (int)ptr, (int)substream->runtime->buffer_size); ptr = 0; } return ptr; @@ -649,7 +659,7 @@ static struct vt1724_pcm_reg vt1724_capture_pro_reg = { .start = VT1724_RDMA0_START, }; -static snd_pcm_hardware_t snd_vt1724_playback_pro = +static struct snd_pcm_hardware snd_vt1724_playback_pro = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -668,7 +678,7 @@ static snd_pcm_hardware_t snd_vt1724_playback_pro = .periods_max = 1024, }; -static snd_pcm_hardware_t snd_vt1724_spdif = +static struct snd_pcm_hardware snd_vt1724_spdif = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -690,7 +700,7 @@ static snd_pcm_hardware_t snd_vt1724_spdif = .periods_max = 1024, }; -static snd_pcm_hardware_t snd_vt1724_2ch_stereo = +static struct snd_pcm_hardware snd_vt1724_2ch_stereo = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -712,31 +722,41 @@ static snd_pcm_hardware_t snd_vt1724_2ch_stereo = /* * set rate constraints */ -static int set_rate_constraints(ice1712_t *ice, snd_pcm_substream_t *substream) +static int set_rate_constraints(struct snd_ice1712 *ice, + struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; if (ice->hw_rates) { /* hardware specific */ runtime->hw.rate_min = ice->hw_rates->list[0]; runtime->hw.rate_max = ice->hw_rates->list[ice->hw_rates->count - 1]; runtime->hw.rates = SNDRV_PCM_RATE_KNOT; - return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, ice->hw_rates); + return snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_RATE, + ice->hw_rates); } if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) { /* I2S */ /* VT1720 doesn't support more than 96kHz */ if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720) - return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_192); + return snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates_192); else { - runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_96000; + runtime->hw.rates = SNDRV_PCM_RATE_KNOT | + SNDRV_PCM_RATE_8000_96000; runtime->hw.rate_max = 96000; - return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_96); + return snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates_96); } } else if (ice->ac97) { /* ACLINK */ runtime->hw.rate_max = 48000; runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000; - return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_48); + return snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates_48); } return 0; } @@ -746,10 +766,10 @@ static int set_rate_constraints(ice1712_t *ice, snd_pcm_substream_t *substream) */ #define VT1724_BUFFER_ALIGN 0x20 -static int snd_vt1724_playback_pro_open(snd_pcm_substream_t * substream) +static int snd_vt1724_playback_pro_open(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); int chs; runtime->private_data = &vt1724_playback_pro_reg; @@ -776,10 +796,10 @@ static int snd_vt1724_playback_pro_open(snd_pcm_substream_t * substream) return 0; } -static int snd_vt1724_capture_pro_open(snd_pcm_substream_t * substream) +static int snd_vt1724_capture_pro_open(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; runtime->private_data = &vt1724_capture_pro_reg; ice->capture_pro_substream = substream; @@ -794,9 +814,9 @@ static int snd_vt1724_capture_pro_open(snd_pcm_substream_t * substream) return 0; } -static int snd_vt1724_playback_pro_close(snd_pcm_substream_t * substream) +static int snd_vt1724_playback_pro_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (PRO_RATE_RESET) snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); @@ -805,9 +825,9 @@ static int snd_vt1724_playback_pro_close(snd_pcm_substream_t * substream) return 0; } -static int snd_vt1724_capture_pro_close(snd_pcm_substream_t * substream) +static int snd_vt1724_capture_pro_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (PRO_RATE_RESET) snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); @@ -815,7 +835,7 @@ static int snd_vt1724_capture_pro_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_vt1724_playback_pro_ops = { +static struct snd_pcm_ops snd_vt1724_playback_pro_ops = { .open = snd_vt1724_playback_pro_open, .close = snd_vt1724_playback_pro_close, .ioctl = snd_pcm_lib_ioctl, @@ -826,7 +846,7 @@ static snd_pcm_ops_t snd_vt1724_playback_pro_ops = { .pointer = snd_vt1724_playback_pro_pointer, }; -static snd_pcm_ops_t snd_vt1724_capture_pro_ops = { +static struct snd_pcm_ops snd_vt1724_capture_pro_ops = { .open = snd_vt1724_capture_pro_open, .close = snd_vt1724_capture_pro_close, .ioctl = snd_pcm_lib_ioctl, @@ -837,9 +857,9 @@ static snd_pcm_ops_t snd_vt1724_capture_pro_ops = { .pointer = snd_vt1724_pcm_pointer, }; -static int __devinit snd_vt1724_pcm_profi(ice1712_t * ice, int device) +static int __devinit snd_vt1724_pcm_profi(struct snd_ice1712 * ice, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; err = snd_pcm_new(ice->card, "ICE1724", device, 1, 1, &pcm); @@ -854,7 +874,8 @@ static int __devinit snd_vt1724_pcm_profi(ice1712_t * ice, int device) strcpy(pcm->name, "ICE1724"); snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, - snd_dma_pci_data(ice->pci), 256*1024, 256*1024); + snd_dma_pci_data(ice->pci), + 256*1024, 256*1024); ice->pcm_pro = pcm; @@ -881,7 +902,7 @@ static struct vt1724_pcm_reg vt1724_capture_spdif_reg = { }; /* update spdif control bits; call with reg_lock */ -static void update_spdif_bits(ice1712_t *ice, unsigned int val) +static void update_spdif_bits(struct snd_ice1712 *ice, unsigned int val) { unsigned char cbit, disabled; @@ -896,7 +917,7 @@ static void update_spdif_bits(ice1712_t *ice, unsigned int val) } /* update SPDIF control bits according to the given rate */ -static void update_spdif_rate(ice1712_t *ice, unsigned int rate) +static void update_spdif_rate(struct snd_ice1712 *ice, unsigned int rate) { unsigned int val, nval; unsigned long flags; @@ -918,18 +939,18 @@ static void update_spdif_rate(ice1712_t *ice, unsigned int rate) spin_unlock_irqrestore(&ice->reg_lock, flags); } -static int snd_vt1724_playback_spdif_prepare(snd_pcm_substream_t * substream) +static int snd_vt1724_playback_spdif_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (! ice->force_pdma4) update_spdif_rate(ice, substream->runtime->rate); return snd_vt1724_pcm_prepare(substream); } -static int snd_vt1724_playback_spdif_open(snd_pcm_substream_t *substream) +static int snd_vt1724_playback_spdif_open(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; runtime->private_data = &vt1724_playback_spdif_reg; ice->playback_con_substream = substream; @@ -947,9 +968,9 @@ static int snd_vt1724_playback_spdif_open(snd_pcm_substream_t *substream) return 0; } -static int snd_vt1724_playback_spdif_close(snd_pcm_substream_t * substream) +static int snd_vt1724_playback_spdif_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (PRO_RATE_RESET) snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); @@ -958,10 +979,10 @@ static int snd_vt1724_playback_spdif_close(snd_pcm_substream_t * substream) return 0; } -static int snd_vt1724_capture_spdif_open(snd_pcm_substream_t *substream) +static int snd_vt1724_capture_spdif_open(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; runtime->private_data = &vt1724_capture_spdif_reg; ice->capture_con_substream = substream; @@ -979,9 +1000,9 @@ static int snd_vt1724_capture_spdif_open(snd_pcm_substream_t *substream) return 0; } -static int snd_vt1724_capture_spdif_close(snd_pcm_substream_t * substream) +static int snd_vt1724_capture_spdif_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (PRO_RATE_RESET) snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); @@ -990,7 +1011,7 @@ static int snd_vt1724_capture_spdif_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_vt1724_playback_spdif_ops = { +static struct snd_pcm_ops snd_vt1724_playback_spdif_ops = { .open = snd_vt1724_playback_spdif_open, .close = snd_vt1724_playback_spdif_close, .ioctl = snd_pcm_lib_ioctl, @@ -1001,7 +1022,7 @@ static snd_pcm_ops_t snd_vt1724_playback_spdif_ops = { .pointer = snd_vt1724_pcm_pointer, }; -static snd_pcm_ops_t snd_vt1724_capture_spdif_ops = { +static struct snd_pcm_ops snd_vt1724_capture_spdif_ops = { .open = snd_vt1724_capture_spdif_open, .close = snd_vt1724_capture_spdif_close, .ioctl = snd_pcm_lib_ioctl, @@ -1013,10 +1034,10 @@ static snd_pcm_ops_t snd_vt1724_capture_spdif_ops = { }; -static int __devinit snd_vt1724_pcm_spdif(ice1712_t * ice, int device) +static int __devinit snd_vt1724_pcm_spdif(struct snd_ice1712 * ice, int device) { char *name; - snd_pcm_t *pcm; + struct snd_pcm *pcm; int play, capt; int err; @@ -1055,7 +1076,8 @@ static int __devinit snd_vt1724_pcm_spdif(ice1712_t * ice, int device) strcpy(pcm->name, name); snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, - snd_dma_pci_data(ice->pci), 64*1024, 64*1024); + snd_dma_pci_data(ice->pci), + 64*1024, 64*1024); ice->pcm = pcm; @@ -1088,9 +1110,9 @@ static struct vt1724_pcm_reg vt1724_playback_dma_regs[3] = { }, }; -static int snd_vt1724_playback_indep_prepare(snd_pcm_substream_t * substream) +static int snd_vt1724_playback_indep_prepare(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); unsigned char val; spin_lock_irq(&ice->reg_lock); @@ -1101,10 +1123,10 @@ static int snd_vt1724_playback_indep_prepare(snd_pcm_substream_t * substream) return snd_vt1724_pcm_prepare(substream); } -static int snd_vt1724_playback_indep_open(snd_pcm_substream_t *substream) +static int snd_vt1724_playback_indep_open(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; down(&ice->open_mutex); /* already used by PDMA0? */ @@ -1122,9 +1144,9 @@ static int snd_vt1724_playback_indep_open(snd_pcm_substream_t *substream) return 0; } -static int snd_vt1724_playback_indep_close(snd_pcm_substream_t * substream) +static int snd_vt1724_playback_indep_close(struct snd_pcm_substream *substream) { - ice1712_t *ice = snd_pcm_substream_chip(substream); + struct snd_ice1712 *ice = snd_pcm_substream_chip(substream); if (PRO_RATE_RESET) snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); @@ -1134,7 +1156,7 @@ static int snd_vt1724_playback_indep_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_vt1724_playback_indep_ops = { +static struct snd_pcm_ops snd_vt1724_playback_indep_ops = { .open = snd_vt1724_playback_indep_open, .close = snd_vt1724_playback_indep_close, .ioctl = snd_pcm_lib_ioctl, @@ -1146,9 +1168,9 @@ static snd_pcm_ops_t snd_vt1724_playback_indep_ops = { }; -static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device) +static int __devinit snd_vt1724_pcm_indep(struct snd_ice1712 * ice, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int play; int err; @@ -1168,7 +1190,8 @@ static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device) strcpy(pcm->name, "ICE1724 Surround PCM"); snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, - snd_dma_pci_data(ice->pci), 64*1024, 64*1024); + snd_dma_pci_data(ice->pci), + 64*1024, 64*1024); ice->pcm_ds = pcm; @@ -1180,14 +1203,14 @@ static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device) * Mixer section */ -static int __devinit snd_vt1724_ac97_mixer(ice1712_t * ice) +static int __devinit snd_vt1724_ac97_mixer(struct snd_ice1712 * ice) { int err; if (! (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S)) { - ac97_bus_t *pbus; - ac97_template_t ac97; - static ac97_bus_ops_t ops = { + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; + static struct snd_ac97_bus_ops ops = { .write = snd_vt1724_ac97_write, .read = snd_vt1724_ac97_read, }; @@ -1215,17 +1238,17 @@ static int __devinit snd_vt1724_ac97_mixer(ice1712_t * ice) * */ -static inline unsigned int eeprom_triple(ice1712_t *ice, int idx) +static inline unsigned int eeprom_triple(struct snd_ice1712 *ice, int idx) { return (unsigned int)ice->eeprom.data[idx] | \ ((unsigned int)ice->eeprom.data[idx + 1] << 8) | \ ((unsigned int)ice->eeprom.data[idx + 2] << 16); } -static void snd_vt1724_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_vt1724_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ice1712_t *ice = entry->private_data; + struct snd_ice1712 *ice = entry->private_data; unsigned int idx; snd_iprintf(buffer, "%s\n\n", ice->card->longname); @@ -1234,28 +1257,39 @@ static void snd_vt1724_proc_read(snd_info_entry_t *entry, snd_iprintf(buffer, " Subvendor : 0x%x\n", ice->eeprom.subvendor); snd_iprintf(buffer, " Size : %i bytes\n", ice->eeprom.size); snd_iprintf(buffer, " Version : %i\n", ice->eeprom.version); - snd_iprintf(buffer, " System Config : 0x%x\n", ice->eeprom.data[ICE_EEP2_SYSCONF]); - snd_iprintf(buffer, " ACLink : 0x%x\n", ice->eeprom.data[ICE_EEP2_ACLINK]); - snd_iprintf(buffer, " I2S : 0x%x\n", ice->eeprom.data[ICE_EEP2_I2S]); - snd_iprintf(buffer, " S/PDIF : 0x%x\n", ice->eeprom.data[ICE_EEP2_SPDIF]); - snd_iprintf(buffer, " GPIO direction : 0x%x\n", ice->eeprom.gpiodir); - snd_iprintf(buffer, " GPIO mask : 0x%x\n", ice->eeprom.gpiomask); - snd_iprintf(buffer, " GPIO state : 0x%x\n", ice->eeprom.gpiostate); + snd_iprintf(buffer, " System Config : 0x%x\n", + ice->eeprom.data[ICE_EEP2_SYSCONF]); + snd_iprintf(buffer, " ACLink : 0x%x\n", + ice->eeprom.data[ICE_EEP2_ACLINK]); + snd_iprintf(buffer, " I2S : 0x%x\n", + ice->eeprom.data[ICE_EEP2_I2S]); + snd_iprintf(buffer, " S/PDIF : 0x%x\n", + ice->eeprom.data[ICE_EEP2_SPDIF]); + snd_iprintf(buffer, " GPIO direction : 0x%x\n", + ice->eeprom.gpiodir); + snd_iprintf(buffer, " GPIO mask : 0x%x\n", + ice->eeprom.gpiomask); + snd_iprintf(buffer, " GPIO state : 0x%x\n", + ice->eeprom.gpiostate); for (idx = 0x12; idx < ice->eeprom.size; idx++) - snd_iprintf(buffer, " Extra #%02i : 0x%x\n", idx, ice->eeprom.data[idx]); + snd_iprintf(buffer, " Extra #%02i : 0x%x\n", + idx, ice->eeprom.data[idx]); snd_iprintf(buffer, "\nRegisters:\n"); - snd_iprintf(buffer, " PSDOUT03 : 0x%08x\n", (unsigned)inl(ICEMT1724(ice, ROUTE_PLAYBACK))); + snd_iprintf(buffer, " PSDOUT03 : 0x%08x\n", + (unsigned)inl(ICEMT1724(ice, ROUTE_PLAYBACK))); for (idx = 0x0; idx < 0x20 ; idx++) - snd_iprintf(buffer, " CCS%02x : 0x%02x\n", idx, inb(ice->port+idx)); + snd_iprintf(buffer, " CCS%02x : 0x%02x\n", + idx, inb(ice->port+idx)); for (idx = 0x0; idx < 0x30 ; idx++) - snd_iprintf(buffer, " MT%02x : 0x%02x\n", idx, inb(ice->profi_port+idx)); + snd_iprintf(buffer, " MT%02x : 0x%02x\n", + idx, inb(ice->profi_port+idx)); } -static void __devinit snd_vt1724_proc_init(ice1712_t * ice) +static void __devinit snd_vt1724_proc_init(struct snd_ice1712 * ice) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(ice->card, "ice1724", &entry)) snd_info_set_text_ops(entry, ice, 1024, snd_vt1724_proc_read); @@ -1265,22 +1299,24 @@ static void __devinit snd_vt1724_proc_init(ice1712_t * ice) * */ -static int snd_vt1724_eeprom_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_eeprom_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES; - uinfo->count = sizeof(ice1712_eeprom_t); + uinfo->count = sizeof(struct snd_ice1712_eeprom); return 0; } -static int snd_vt1724_eeprom_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_eeprom_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); memcpy(ucontrol->value.bytes.data, &ice->eeprom, sizeof(ice->eeprom)); return 0; } -static snd_kcontrol_new_t snd_vt1724_eeprom __devinitdata = { +static struct snd_kcontrol_new snd_vt1724_eeprom __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = "ICE1724 EEPROM", .access = SNDRV_CTL_ELEM_ACCESS_READ, @@ -1290,21 +1326,23 @@ static snd_kcontrol_new_t snd_vt1724_eeprom __devinitdata = { /* */ -static int snd_vt1724_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga) +static unsigned int encode_spdif_bits(struct snd_aes_iec958 *diga) { unsigned int val, rbits; val = diga->status[0] & 0x03; /* professional, non-audio */ if (val & 0x01) { /* professional */ - if ((diga->status[0] & IEC958_AES0_PRO_EMPHASIS) == IEC958_AES0_PRO_EMPHASIS_5015) + if ((diga->status[0] & IEC958_AES0_PRO_EMPHASIS) == + IEC958_AES0_PRO_EMPHASIS_5015) val |= 1U << 3; rbits = (diga->status[4] >> 3) & 0x0f; if (rbits) { @@ -1329,7 +1367,8 @@ static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga) } else { /* consumer */ val |= diga->status[1] & 0x04; /* copyright */ - if ((diga->status[0] & IEC958_AES0_CON_EMPHASIS)== IEC958_AES0_CON_EMPHASIS_5015) + if ((diga->status[0] & IEC958_AES0_CON_EMPHASIS) == + IEC958_AES0_CON_EMPHASIS_5015) val |= 1U << 3; val |= (unsigned int)(diga->status[1] & 0x3f) << 4; /* category */ val |= (unsigned int)(diga->status[3] & IEC958_AES3_CON_FS) << 12; /* fs */ @@ -1337,7 +1376,7 @@ static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga) return val; } -static void decode_spdif_bits(snd_aes_iec958_t *diga, unsigned int val) +static void decode_spdif_bits(struct snd_aes_iec958 *diga, unsigned int val) { memset(diga->status, 0, sizeof(diga->status)); diga->status[0] = val & 0x03; /* professional, non-audio */ @@ -1365,20 +1404,20 @@ static void decode_spdif_bits(snd_aes_iec958_t *diga, unsigned int val) } } -static int snd_vt1724_spdif_default_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_spdif_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned int val; val = inw(ICEMT1724(ice, SPDIF_CTRL)); decode_spdif_bits(&ucontrol->value.iec958, val); return 0; } -static int snd_vt1724_spdif_default_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_spdif_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned int val, old; val = encode_spdif_bits(&ucontrol->value.iec958); @@ -1390,7 +1429,7 @@ static int snd_vt1724_spdif_default_put(snd_kcontrol_t * kcontrol, return (val != old); } -static snd_kcontrol_new_t snd_vt1724_spdif_default __devinitdata = +static struct snd_kcontrol_new snd_vt1724_spdif_default __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -1399,8 +1438,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_default __devinitdata = .put = snd_vt1724_spdif_default_put }; -static int snd_vt1724_spdif_maskc_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_spdif_maskc_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO | IEC958_AES0_PROFESSIONAL | @@ -1412,8 +1451,8 @@ static int snd_vt1724_spdif_maskc_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_vt1724_spdif_maskp_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_spdif_maskp_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO | IEC958_AES0_PROFESSIONAL | @@ -1422,7 +1461,7 @@ static int snd_vt1724_spdif_maskp_get(snd_kcontrol_t * kcontrol, return 0; } -static snd_kcontrol_new_t snd_vt1724_spdif_maskc __devinitdata = +static struct snd_kcontrol_new snd_vt1724_spdif_maskc __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1431,7 +1470,7 @@ static snd_kcontrol_new_t snd_vt1724_spdif_maskc __devinitdata = .get = snd_vt1724_spdif_maskc_get, }; -static snd_kcontrol_new_t snd_vt1724_spdif_maskp __devinitdata = +static struct snd_kcontrol_new snd_vt1724_spdif_maskp __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1440,7 +1479,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_maskp __devinitdata = .get = snd_vt1724_spdif_maskp_get, }; -static int snd_vt1724_spdif_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_spdif_sw_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1449,16 +1489,19 @@ static int snd_vt1724_spdif_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int snd_vt1724_spdif_sw_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_spdif_sw_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); - ucontrol->value.integer.value[0] = inb(ICEREG1724(ice, SPDIF_CFG)) & VT1724_CFG_SPDIF_OUT_EN ? 1 : 0; + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); + ucontrol->value.integer.value[0] = inb(ICEREG1724(ice, SPDIF_CFG)) & + VT1724_CFG_SPDIF_OUT_EN ? 1 : 0; return 0; } -static int snd_vt1724_spdif_sw_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_spdif_sw_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char old, val; spin_lock_irq(&ice->reg_lock); @@ -1472,7 +1515,7 @@ static int snd_vt1724_spdif_sw_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value return old != val; } -static snd_kcontrol_new_t snd_vt1724_spdif_switch __devinitdata = +static struct snd_kcontrol_new snd_vt1724_spdif_switch __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, /* FIXME: the following conflict with IEC958 Playback Route */ @@ -1489,7 +1532,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_switch __devinitdata = * GPIO access from extern */ -int snd_vt1724_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +int snd_vt1724_gpio_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1498,21 +1542,24 @@ int snd_vt1724_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) return 0; } -int snd_vt1724_gpio_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_vt1724_gpio_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value & (1<<24)) ? 1 : 0; snd_ice1712_save_gpio_status(ice); - ucontrol->value.integer.value[0] = (snd_ice1712_gpio_read(ice) & (1 << shift) ? 1 : 0) ^ invert; + ucontrol->value.integer.value[0] = + (snd_ice1712_gpio_read(ice) & (1 << shift) ? 1 : 0) ^ invert; snd_ice1712_restore_gpio_status(ice); return 0; } -int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +int snd_ice1712_gpio_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int shift = kcontrol->private_value & 0xff; int invert = (kcontrol->private_value & (1<<24)) ? mask : 0; unsigned int val, nval; @@ -1533,7 +1580,8 @@ int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucont /* * rate */ -static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_pro_internal_clock_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts_1724[] = { "8000", /* 0: 6 */ @@ -1569,7 +1617,7 @@ static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_ "96000", /* 12: 7 */ "IEC958 Input", /* 13: -- */ }; - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -1582,9 +1630,10 @@ static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_ return 0; } -static int snd_vt1724_pro_internal_clock_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_pro_internal_clock_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); static unsigned char xlate[16] = { 9, 6, 3, 1, 7, 4, 0, 12, 8, 5, 2, 11, 13, 255, 14, 10 }; @@ -1605,9 +1654,10 @@ static int snd_vt1724_pro_internal_clock_get(snd_kcontrol_t * kcontrol, snd_ctl_ return 0; } -static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_pro_internal_clock_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char oval; int rate; int change = 0; @@ -1629,7 +1679,8 @@ static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_ change = inb(ICEMT1724(ice, RATE)) != oval; spin_unlock_irq(&ice->reg_lock); - if ((oval & VT1724_SPDIF_MASTER) != (inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER)) { + if ((oval & VT1724_SPDIF_MASTER) != + (inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER)) { /* notify akm chips as well */ if (is_spdif_master(ice)) { unsigned int i; @@ -1642,7 +1693,7 @@ static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_ return change; } -static snd_kcontrol_new_t snd_vt1724_pro_internal_clock __devinitdata = { +static struct snd_kcontrol_new snd_vt1724_pro_internal_clock __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Internal Clock", .info = snd_vt1724_pro_internal_clock_info, @@ -1650,7 +1701,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_internal_clock __devinitdata = { .put = snd_vt1724_pro_internal_clock_put }; -static int snd_vt1724_pro_rate_locking_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_pro_rate_locking_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1659,15 +1711,17 @@ static int snd_vt1724_pro_rate_locking_info(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_vt1724_pro_rate_locking_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_pro_rate_locking_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.integer.value[0] = PRO_RATE_LOCKED; return 0; } -static int snd_vt1724_pro_rate_locking_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_pro_rate_locking_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, nval; nval = ucontrol->value.integer.value[0] ? 1 : 0; @@ -1678,7 +1732,7 @@ static int snd_vt1724_pro_rate_locking_put(snd_kcontrol_t * kcontrol, snd_ctl_el return change; } -static snd_kcontrol_new_t snd_vt1724_pro_rate_locking __devinitdata = { +static struct snd_kcontrol_new snd_vt1724_pro_rate_locking __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Rate Locking", .info = snd_vt1724_pro_rate_locking_info, @@ -1686,7 +1740,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_rate_locking __devinitdata = { .put = snd_vt1724_pro_rate_locking_put }; -static int snd_vt1724_pro_rate_reset_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_pro_rate_reset_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1695,15 +1750,17 @@ static int snd_vt1724_pro_rate_reset_info(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_vt1724_pro_rate_reset_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_pro_rate_reset_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.integer.value[0] = PRO_RATE_RESET ? 1 : 0; return 0; } -static int snd_vt1724_pro_rate_reset_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_pro_rate_reset_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, nval; nval = ucontrol->value.integer.value[0] ? 1 : 0; @@ -1714,7 +1771,7 @@ static int snd_vt1724_pro_rate_reset_put(snd_kcontrol_t * kcontrol, snd_ctl_elem return change; } -static snd_kcontrol_new_t snd_vt1724_pro_rate_reset __devinitdata = { +static struct snd_kcontrol_new snd_vt1724_pro_rate_reset __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Rate Reset", .info = snd_vt1724_pro_rate_reset_info, @@ -1726,7 +1783,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_rate_reset __devinitdata = { /* * routing */ -static int snd_vt1724_pro_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_pro_route_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "PCM Out", /* 0 */ @@ -1753,7 +1811,7 @@ static inline int digital_route_shift(int idx) return idx * 3; } -static int get_route_val(ice1712_t *ice, int shift) +static int get_route_val(struct snd_ice1712 *ice, int shift) { unsigned long val; unsigned char eitem; @@ -1772,7 +1830,7 @@ static int get_route_val(ice1712_t *ice, int shift) return eitem; } -static int put_route_val(ice1712_t *ice, unsigned int val, int shift) +static int put_route_val(struct snd_ice1712 *ice, unsigned int val, int shift) { unsigned int old_val, nval; int change; @@ -1794,39 +1852,45 @@ static int put_route_val(ice1712_t *ice, unsigned int val, int shift) return change; } -static int snd_vt1724_pro_route_analog_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_vt1724_pro_route_analog_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); - ucontrol->value.enumerated.item[0] = get_route_val(ice, analog_route_shift(idx)); + ucontrol->value.enumerated.item[0] = + get_route_val(ice, analog_route_shift(idx)); return 0; } -static int snd_vt1724_pro_route_analog_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_vt1724_pro_route_analog_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); return put_route_val(ice, ucontrol->value.enumerated.item[0], analog_route_shift(idx)); } -static int snd_vt1724_pro_route_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_vt1724_pro_route_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); - ucontrol->value.enumerated.item[0] = get_route_val(ice, digital_route_shift(idx)); + ucontrol->value.enumerated.item[0] = + get_route_val(ice, digital_route_shift(idx)); return 0; } -static int snd_vt1724_pro_route_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_vt1724_pro_route_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); return put_route_val(ice, ucontrol->value.enumerated.item[0], digital_route_shift(idx)); } -static snd_kcontrol_new_t snd_vt1724_mixer_pro_analog_route __devinitdata = { +static struct snd_kcontrol_new snd_vt1724_mixer_pro_analog_route __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "H/W Playback Route", .info = snd_vt1724_pro_route_info, @@ -1834,7 +1898,7 @@ static snd_kcontrol_new_t snd_vt1724_mixer_pro_analog_route __devinitdata = { .put = snd_vt1724_pro_route_analog_put, }; -static snd_kcontrol_new_t snd_vt1724_mixer_pro_spdif_route __devinitdata = { +static struct snd_kcontrol_new snd_vt1724_mixer_pro_spdif_route __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Route", .info = snd_vt1724_pro_route_info, @@ -1844,7 +1908,8 @@ static snd_kcontrol_new_t snd_vt1724_mixer_pro_spdif_route __devinitdata = { }; -static int snd_vt1724_pro_peak_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_vt1724_pro_peak_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 22; /* FIXME: for compatibility with ice1712... */ @@ -1853,21 +1918,23 @@ static int snd_vt1724_pro_peak_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int snd_vt1724_pro_peak_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_vt1724_pro_peak_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx; spin_lock_irq(&ice->reg_lock); for (idx = 0; idx < 22; idx++) { outb(idx, ICEMT1724(ice, MONITOR_PEAKINDEX)); - ucontrol->value.integer.value[idx] = inb(ICEMT1724(ice, MONITOR_PEAKDATA)); + ucontrol->value.integer.value[idx] = + inb(ICEMT1724(ice, MONITOR_PEAKDATA)); } spin_unlock_irq(&ice->reg_lock); return 0; } -static snd_kcontrol_new_t snd_vt1724_mixer_pro_peak __devinitdata = { +static struct snd_kcontrol_new snd_vt1724_mixer_pro_peak __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Multi Track Peak", .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, @@ -1897,7 +1964,7 @@ static struct snd_ice1712_card_info *card_tables[] __devinitdata = { /* */ -static void wait_i2c_busy(ice1712_t *ice) +static void wait_i2c_busy(struct snd_ice1712 *ice) { int t = 0x10000; while ((inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_BUSY) && t--) @@ -1906,7 +1973,8 @@ static void wait_i2c_busy(ice1712_t *ice) printk(KERN_ERR "ice1724: i2c busy timeout\n"); } -unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr) +unsigned char snd_vt1724_read_i2c(struct snd_ice1712 *ice, + unsigned char dev, unsigned char addr) { unsigned char val; @@ -1920,7 +1988,8 @@ unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned ch return val; } -void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr, unsigned char data) +void snd_vt1724_write_i2c(struct snd_ice1712 *ice, + unsigned char dev, unsigned char addr, unsigned char data) { down(&ice->i2c_mutex); wait_i2c_busy(ice); @@ -1932,7 +2001,8 @@ void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr, up(&ice->i2c_mutex); } -static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelname) +static int __devinit snd_vt1724_read_eeprom(struct snd_ice1712 *ice, + const char *modelname) { const int dev = 0xa0; /* EEPROM device address */ unsigned int i, size; @@ -1946,13 +2016,19 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam (snd_vt1724_read_i2c(ice, dev, 0x01) << 8) | (snd_vt1724_read_i2c(ice, dev, 0x02) << 16) | (snd_vt1724_read_i2c(ice, dev, 0x03) << 24); - if (ice->eeprom.subvendor == 0 || ice->eeprom.subvendor == (unsigned int)-1) { - /* invalid subvendor from EEPROM, try the PCI subststem ID instead */ + if (ice->eeprom.subvendor == 0 || + ice->eeprom.subvendor == (unsigned int)-1) { + /* invalid subvendor from EEPROM, try the PCI + * subststem ID instead + */ u16 vendor, device; - pci_read_config_word(ice->pci, PCI_SUBSYSTEM_VENDOR_ID, &vendor); + pci_read_config_word(ice->pci, PCI_SUBSYSTEM_VENDOR_ID, + &vendor); pci_read_config_word(ice->pci, PCI_SUBSYSTEM_ID, &device); - ice->eeprom.subvendor = ((unsigned int)swab16(vendor) << 16) | swab16(device); - if (ice->eeprom.subvendor == 0 || ice->eeprom.subvendor == (unsigned int)-1) { + ice->eeprom.subvendor = + ((unsigned int)swab16(vendor) << 16) | swab16(device); + if (ice->eeprom.subvendor == 0 || + ice->eeprom.subvendor == (unsigned int)-1) { printk(KERN_ERR "ice1724: No valid ID is found\n"); return -ENXIO; } @@ -1960,8 +2036,10 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam } for (tbl = card_tables; *tbl; tbl++) { for (c = *tbl; c->subvendor; c++) { - if (modelname && c->model && ! strcmp(modelname, c->model)) { - printk(KERN_INFO "ice1724: Using board model %s\n", c->name); + if (modelname && c->model && + ! strcmp(modelname, c->model)) { + printk(KERN_INFO "ice1724: Using board model %s\n", + c->name); ice->eeprom.subvendor = c->subvendor; } else if (c->subvendor != ice->eeprom.subvendor) continue; @@ -1975,19 +2053,22 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam goto read_skipped; } } - printk(KERN_WARNING "ice1724: No matching model found for ID 0x%x\n", ice->eeprom.subvendor); + printk(KERN_WARNING "ice1724: No matching model found for ID 0x%x\n", + ice->eeprom.subvendor); found: ice->eeprom.size = snd_vt1724_read_i2c(ice, dev, 0x04); if (ice->eeprom.size < 6) ice->eeprom.size = 32; else if (ice->eeprom.size > 32) { - printk(KERN_ERR "ice1724: Invalid EEPROM (size = %i)\n", ice->eeprom.size); + printk(KERN_ERR "ice1724: Invalid EEPROM (size = %i)\n", + ice->eeprom.size); return -EIO; } ice->eeprom.version = snd_vt1724_read_i2c(ice, dev, 0x05); if (ice->eeprom.version != 2) - printk(KERN_WARNING "ice1724: Invalid EEPROM version %i\n", ice->eeprom.version); + printk(KERN_WARNING "ice1724: Invalid EEPROM version %i\n", + ice->eeprom.version); size = ice->eeprom.size - 6; for (i = 0; i < size; i++) ice->eeprom.data[i] = snd_vt1724_read_i2c(ice, dev, i + 6); @@ -2002,7 +2083,7 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam -static int __devinit snd_vt1724_chip_init(ice1712_t *ice) +static int __devinit snd_vt1724_chip_init(struct snd_ice1712 *ice) { outb(VT1724_RESET , ICEREG1724(ice, CONTROL)); udelay(200); @@ -2024,10 +2105,10 @@ static int __devinit snd_vt1724_chip_init(ice1712_t *ice) return 0; } -static int __devinit snd_vt1724_spdif_build_controls(ice1712_t *ice) +static int __devinit snd_vt1724_spdif_build_controls(struct snd_ice1712 *ice) { int err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; snd_assert(ice->pcm != NULL, return -EIO); @@ -2062,7 +2143,7 @@ static int __devinit snd_vt1724_spdif_build_controls(ice1712_t *ice) } -static int __devinit snd_vt1724_build_controls(ice1712_t *ice) +static int __devinit snd_vt1724_build_controls(struct snd_ice1712 *ice) { int err; @@ -2081,7 +2162,7 @@ static int __devinit snd_vt1724_build_controls(ice1712_t *ice) return err; if (ice->num_total_dacs > 0) { - snd_kcontrol_new_t tmp = snd_vt1724_mixer_pro_analog_route; + struct snd_kcontrol_new tmp = snd_vt1724_mixer_pro_analog_route; tmp.count = ice->num_total_dacs; if (ice->vt1720 && tmp.count > 2) tmp.count = 2; @@ -2097,7 +2178,7 @@ static int __devinit snd_vt1724_build_controls(ice1712_t *ice) return 0; } -static int snd_vt1724_free(ice1712_t *ice) +static int snd_vt1724_free(struct snd_ice1712 *ice) { if (! ice->port) goto __hw_end; @@ -2108,7 +2189,7 @@ static int snd_vt1724_free(ice1712_t *ice) __hw_end: if (ice->irq >= 0) { synchronize_irq(ice->irq); - free_irq(ice->irq, (void *) ice); + free_irq(ice->irq, ice); } pci_release_regions(ice->pci); snd_ice1712_akm4xxx_free(ice); @@ -2117,21 +2198,21 @@ static int snd_vt1724_free(ice1712_t *ice) return 0; } -static int snd_vt1724_dev_free(snd_device_t *device) +static int snd_vt1724_dev_free(struct snd_device *device) { - ice1712_t *ice = device->device_data; + struct snd_ice1712 *ice = device->device_data; return snd_vt1724_free(ice); } -static int __devinit snd_vt1724_create(snd_card_t * card, +static int __devinit snd_vt1724_create(struct snd_card *card, struct pci_dev *pci, const char *modelname, - ice1712_t ** r_ice1712) + struct snd_ice1712 ** r_ice1712) { - ice1712_t *ice; + struct snd_ice1712 *ice; int err; unsigned char mask; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_vt1724_dev_free, }; @@ -2170,7 +2251,8 @@ static int __devinit snd_vt1724_create(snd_card_t * card, ice->port = pci_resource_start(pci, 0); ice->profi_port = pci_resource_start(pci, 1); - if (request_irq(pci->irq, snd_vt1724_interrupt, SA_INTERRUPT|SA_SHIRQ, "ICE1724", (void *) ice)) { + if (request_irq(pci->irq, snd_vt1724_interrupt, + SA_INTERRUPT|SA_SHIRQ, "ICE1724", ice)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_vt1724_free(ice); return -EIO; @@ -2193,7 +2275,9 @@ static int __devinit snd_vt1724_create(snd_card_t * card, else mask = 0; outb(mask, ICEREG1724(ice, IRQMASK)); - /* don't handle FIFO overrun/underruns (just yet), since they cause machine lockups */ + /* don't handle FIFO overrun/underruns (just yet), + * since they cause machine lockups + */ outb(VT1724_MULTI_FIFO_ERR, ICEMT1724(ice, DMA_INT_MASK)); if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, ice, &ops)) < 0) { @@ -2218,8 +2302,8 @@ static int __devinit snd_vt1724_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - ice1712_t *ice; + struct snd_card *card; + struct snd_ice1712 *ice; int pcm_dev = 0, err; struct snd_ice1712_card_info **tbl, *c; diff --git a/sound/pci/ice1712/juli.c b/sound/pci/ice1712/juli.c index a5e04a3136b..5176b41ea9d 100644 --- a/sound/pci/ice1712/juli.c +++ b/sound/pci/ice1712/juli.c @@ -65,30 +65,30 @@ static void juli_ak4114_write(void *private_data, unsigned char reg, unsigned char val) { - snd_vt1724_write_i2c((ice1712_t *)private_data, AK4114_ADDR, reg, val); + snd_vt1724_write_i2c((struct snd_ice1712 *)private_data, AK4114_ADDR, reg, val); } static unsigned char juli_ak4114_read(void *private_data, unsigned char reg) { - return snd_vt1724_read_i2c((ice1712_t *)private_data, AK4114_ADDR, reg); + return snd_vt1724_read_i2c((struct snd_ice1712 *)private_data, AK4114_ADDR, reg); } /* * AK4358 section */ -static void juli_akm_lock(akm4xxx_t *ak, int chip) +static void juli_akm_lock(struct snd_akm4xxx *ak, int chip) { } -static void juli_akm_unlock(akm4xxx_t *ak, int chip) +static void juli_akm_unlock(struct snd_akm4xxx *ak, int chip) { } -static void juli_akm_write(akm4xxx_t *ak, int chip, +static void juli_akm_write(struct snd_akm4xxx *ak, int chip, unsigned char addr, unsigned char data) { - ice1712_t *ice = ak->private_data[0]; + struct snd_ice1712 *ice = ak->private_data[0]; snd_assert(chip == 0, return); snd_vt1724_write_i2c(ice, AK4358_ADDR, addr, data); @@ -97,7 +97,7 @@ static void juli_akm_write(akm4xxx_t *ak, int chip, /* * change the rate of envy24HT, AK4358 */ -static void juli_akm_set_rate_val(akm4xxx_t *ak, unsigned int rate) +static void juli_akm_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate) { unsigned char old, tmp, dfs; @@ -125,7 +125,7 @@ static void juli_akm_set_rate_val(akm4xxx_t *ak, unsigned int rate) snd_akm4xxx_reset(ak, 0); } -static akm4xxx_t akm_juli_dac __devinitdata = { +static struct snd_akm4xxx akm_juli_dac __devinitdata = { .type = SND_AK4358, .num_dacs = 2, .ops = { @@ -136,7 +136,7 @@ static akm4xxx_t akm_juli_dac __devinitdata = { } }; -static int __devinit juli_add_controls(ice1712_t *ice) +static int __devinit juli_add_controls(struct snd_ice1712 *ice) { return snd_ice1712_akm4xxx_build_controls(ice); } @@ -144,7 +144,7 @@ static int __devinit juli_add_controls(ice1712_t *ice) /* * initialize the chip */ -static int __devinit juli_init(ice1712_t *ice) +static int __devinit juli_init(struct snd_ice1712 *ice) { static unsigned char ak4114_init_vals[] = { /* AK4117_REG_PWRDN */ AK4114_RST | AK4114_PWN | AK4114_OCKS0 | AK4114_OCKS1, @@ -158,7 +158,7 @@ static int __devinit juli_init(ice1712_t *ice) 0x41, 0x02, 0x2c, 0x00, 0x00 }; int err; - akm4xxx_t *ak; + struct snd_akm4xxx *ak; #if 0 for (err = 0; err < 0x20; err++) @@ -189,7 +189,7 @@ static int __devinit juli_init(ice1712_t *ice) ice->num_total_dacs = 2; ice->num_total_adcs = 2; - ak = ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ak) return -ENOMEM; ice->akm_codecs = 1; diff --git a/sound/pci/ice1712/phase.c b/sound/pci/ice1712/phase.c index dcf1e8ca3f6..ec3757834b9 100644 --- a/sound/pci/ice1712/phase.c +++ b/sound/pci/ice1712/phase.c @@ -86,7 +86,7 @@ static unsigned char wm_vol[256] = { #define WM_VOL_MAX (sizeof(wm_vol) - 1) #define WM_VOL_MUTE 0x8000 -static akm4xxx_t akm_phase22 __devinitdata = { +static struct snd_akm4xxx akm_phase22 __devinitdata = { .type = SND_AK4524, .num_dacs = 2, .num_adcs = 2, @@ -104,9 +104,9 @@ static struct snd_ak4xxx_private akm_phase22_priv __devinitdata = { .mask_flags = 0, }; -static int __devinit phase22_init(ice1712_t *ice) +static int __devinit phase22_init(struct snd_ice1712 *ice) { - akm4xxx_t *ak; + struct snd_akm4xxx *ak; int err; // Configure DAC/ADC description for generic part of ice1724 @@ -122,7 +122,7 @@ static int __devinit phase22_init(ice1712_t *ice) } // Initialize analog chips - ak = ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ak) return -ENOMEM; ice->akm_codecs = 1; @@ -136,7 +136,7 @@ static int __devinit phase22_init(ice1712_t *ice) return 0; } -static int __devinit phase22_add_controls(ice1712_t *ice) +static int __devinit phase22_add_controls(struct snd_ice1712 *ice) { int err = 0; @@ -184,7 +184,7 @@ static unsigned char phase28_eeprom[] __devinitdata = { /* * write data in the SPI mode */ -static void phase28_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data, int bits) +static void phase28_spi_write(struct snd_ice1712 *ice, unsigned int cs, unsigned int data, int bits) { unsigned int tmp; int i; @@ -225,7 +225,7 @@ static void phase28_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data /* * get the current register value of WM codec */ -static unsigned short wm_get(ice1712_t *ice, int reg) +static unsigned short wm_get(struct snd_ice1712 *ice, int reg) { reg <<= 1; return ((unsigned short)ice->akm[0].images[reg] << 8) | @@ -235,7 +235,7 @@ static unsigned short wm_get(ice1712_t *ice, int reg) /* * set the register value of WM codec */ -static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) +static void wm_put_nocache(struct snd_ice1712 *ice, int reg, unsigned short val) { phase28_spi_write(ice, PHASE28_WM_CS, (reg << 9) | (val & 0x1ff), 16); } @@ -243,7 +243,7 @@ static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) /* * set the register value of WM codec and remember it */ -static void wm_put(ice1712_t *ice, int reg, unsigned short val) +static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val) { wm_put_nocache(ice, reg, val); reg <<= 1; @@ -251,7 +251,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val) ice->akm[0].images[reg + 1] = val; } -static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, unsigned short master) +static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned short vol, unsigned short master) { unsigned char nvol; @@ -269,9 +269,9 @@ static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, u */ #define wm_pcm_mute_info phase28_mono_bool_info -static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); ucontrol->value.integer.value[0] = (wm_get(ice, WM_MUTE) & 0x10) ? 0 : 1; @@ -279,9 +279,9 @@ static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int wm_pcm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short nval, oval; int change; @@ -298,7 +298,7 @@ static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco /* * Master volume attenuation mixer control */ -static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_master_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -307,18 +307,18 @@ static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin return 0; } -static int wm_master_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_master_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i; for (i=0; i<2; i++) ucontrol->value.integer.value[i] = ice->spec.phase28.master[i] & ~WM_VOL_MUTE; return 0; } -static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_master_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int ch, change = 0; snd_ice1712_save_gpio_status(ice); @@ -338,7 +338,7 @@ static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return change; } -static int __devinit phase28_init(ice1712_t *ice) +static int __devinit phase28_init(struct snd_ice1712 *ice) { static unsigned short wm_inits_phase28[] = { /* These come first to reduce init pop noise */ @@ -378,7 +378,7 @@ static int __devinit phase28_init(ice1712_t *ice) }; unsigned int tmp; - akm4xxx_t *ak; + struct snd_akm4xxx *ak; unsigned short *p; int i; @@ -386,7 +386,7 @@ static int __devinit phase28_init(ice1712_t *ice) ice->num_total_adcs = 2; // Initialize analog chips - ak = ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (!ak) return -ENOMEM; ice->akm_codecs = 1; @@ -427,7 +427,7 @@ static int __devinit phase28_init(ice1712_t *ice) /* * DAC volume attenuation mixer control */ -static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int voices = kcontrol->private_value >> 8; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -437,9 +437,9 @@ static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, ofs, voices; voices = kcontrol->private_value >> 8; @@ -449,9 +449,9 @@ static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) return 0; } -static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, idx, ofs, voices; int change = 0; @@ -475,7 +475,7 @@ static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) /* * WM8770 mute control */ -static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { +static int wm_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = kcontrol->private_value >> 8; uinfo->value.integer.min = 0; @@ -483,9 +483,9 @@ static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { return 0; } -static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int voices, ofs, i; voices = kcontrol->private_value >> 8; @@ -496,9 +496,9 @@ static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) return 0; } -static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int wm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, voices, ofs, i; voices = kcontrol->private_value >> 8; @@ -524,7 +524,7 @@ static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro /* * WM8770 master mute control */ -static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { +static int wm_master_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; uinfo->value.integer.min = 0; @@ -532,18 +532,18 @@ static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui return 0; } -static int wm_master_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = (ice->spec.phase28.master[0] & WM_VOL_MUTE) ? 0 : 1; ucontrol->value.integer.value[1] = (ice->spec.phase28.master[1] & WM_VOL_MUTE) ? 0 : 1; return 0; } -static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int wm_master_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int change = 0, i; snd_ice1712_save_gpio_status(ice); @@ -570,7 +570,7 @@ static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * #define PCM_0dB 0xff #define PCM_RES 128 /* -64dB */ #define PCM_MIN (PCM_0dB - PCM_RES) -static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_pcm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -579,9 +579,9 @@ static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_pcm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val; down(&ice->gpio_mutex); @@ -592,9 +592,9 @@ static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr return 0; } -static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short ovol, nvol; int change = 0; @@ -613,7 +613,7 @@ static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr /* */ -static int phase28_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) +static int phase28_mono_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -627,16 +627,16 @@ static int phase28_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) */ #define phase28_deemp_info phase28_mono_bool_info -static int phase28_deemp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int phase28_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf; return 0; } -static int phase28_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int phase28_deemp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int temp, temp2; temp2 = temp = wm_get(ice, WM_DAC_CTRL2); if (ucontrol->value.integer.value[0]) @@ -653,7 +653,7 @@ static int phase28_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco /* * ADC Oversampling */ -static int phase28_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) +static int phase28_oversampling_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) { static char *texts[2] = { "128x", "64x" }; @@ -668,17 +668,17 @@ static int phase28_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uin return 0; } -static int phase28_oversampling_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int phase28_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8; return 0; } -static int phase28_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int phase28_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { int temp, temp2; - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); temp2 = temp = wm_get(ice, WM_MASTER); @@ -694,7 +694,7 @@ static int phase28_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value return 0; } -static snd_kcontrol_new_t phase28_dac_controls[] __devinitdata = { +static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Master Playback Switch", @@ -791,7 +791,7 @@ static snd_kcontrol_new_t phase28_dac_controls[] __devinitdata = { } }; -static snd_kcontrol_new_t wm_controls[] __devinitdata = { +static struct snd_kcontrol_new wm_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Playback Switch", @@ -822,7 +822,7 @@ static snd_kcontrol_new_t wm_controls[] __devinitdata = { } }; -static int __devinit phase28_add_controls(ice1712_t *ice) +static int __devinit phase28_add_controls(struct snd_ice1712 *ice) { unsigned int i, counts; int err; diff --git a/sound/pci/ice1712/pontis.c b/sound/pci/ice1712/pontis.c index 773a1ecb75c..0dccd7707a4 100644 --- a/sound/pci/ice1712/pontis.c +++ b/sound/pci/ice1712/pontis.c @@ -76,7 +76,7 @@ /* * get the current register value of WM codec */ -static unsigned short wm_get(ice1712_t *ice, int reg) +static unsigned short wm_get(struct snd_ice1712 *ice, int reg) { reg <<= 1; return ((unsigned short)ice->akm[0].images[reg] << 8) | @@ -86,14 +86,14 @@ static unsigned short wm_get(ice1712_t *ice, int reg) /* * set the register value of WM codec and remember it */ -static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) +static void wm_put_nocache(struct snd_ice1712 *ice, int reg, unsigned short val) { unsigned short cval; cval = (reg << 9) | val; snd_vt1724_write_i2c(ice, WM_DEV, cval >> 8, cval & 0xff); } -static void wm_put(ice1712_t *ice, int reg, unsigned short val) +static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val) { wm_put_nocache(ice, reg, val); reg <<= 1; @@ -109,7 +109,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val) #define DAC_RES 128 #define DAC_MIN (DAC_0dB - DAC_RES) -static int wm_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_dac_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -118,9 +118,9 @@ static int wm_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_dac_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val; int i; @@ -134,9 +134,9 @@ static int wm_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr return 0; } -static int wm_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_dac_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short oval, nval; int i, idx, change = 0; @@ -164,7 +164,7 @@ static int wm_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr #define ADC_RES 128 #define ADC_MIN (ADC_0dB - ADC_RES) -static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_adc_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -173,9 +173,9 @@ static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val; int i; @@ -189,9 +189,9 @@ static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr return 0; } -static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short ovol, nvol; int i, idx, change = 0; @@ -213,7 +213,7 @@ static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr /* * ADC input mux mixer control */ -static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_adc_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -222,9 +222,9 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int bit = kcontrol->private_value; down(&ice->gpio_mutex); @@ -233,9 +233,9 @@ static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont return 0; } -static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_adc_mux_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int bit = kcontrol->private_value; unsigned short oval, nval; int change; @@ -257,7 +257,7 @@ static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont /* * Analog bypass (In -> Out) */ -static int wm_bypass_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_bypass_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -266,9 +266,9 @@ static int wm_bypass_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_bypass_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_bypass_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); ucontrol->value.integer.value[0] = (wm_get(ice, WM_OUT_MUX) & 0x04) ? 1 : 0; @@ -276,9 +276,9 @@ static int wm_bypass_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr return 0; } -static int wm_bypass_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_bypass_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val, oval; int change = 0; @@ -299,7 +299,7 @@ static int wm_bypass_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr /* * Left/Right swap */ -static int wm_chswap_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int wm_chswap_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -308,9 +308,9 @@ static int wm_chswap_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int wm_chswap_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_chswap_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL1) & 0xf0) != 0x90; @@ -318,9 +318,9 @@ static int wm_chswap_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr return 0; } -static int wm_chswap_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int wm_chswap_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned short val, oval; int change = 0; @@ -343,7 +343,7 @@ static int wm_chswap_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr /* * write data in the SPI mode */ -static void set_gpio_bit(ice1712_t *ice, unsigned int bit, int val) +static void set_gpio_bit(struct snd_ice1712 *ice, unsigned int bit, int val) { unsigned int tmp = snd_ice1712_gpio_read(ice); if (val) @@ -353,7 +353,7 @@ static void set_gpio_bit(ice1712_t *ice, unsigned int bit, int val) snd_ice1712_gpio_write(ice, tmp); } -static void spi_send_byte(ice1712_t *ice, unsigned char data) +static void spi_send_byte(struct snd_ice1712 *ice, unsigned char data) { int i; for (i = 0; i < 8; i++) { @@ -367,7 +367,7 @@ static void spi_send_byte(ice1712_t *ice, unsigned char data) } } -static unsigned int spi_read_byte(ice1712_t *ice) +static unsigned int spi_read_byte(struct snd_ice1712 *ice) { int i; unsigned int val = 0; @@ -386,7 +386,7 @@ static unsigned int spi_read_byte(ice1712_t *ice) } -static void spi_write(ice1712_t *ice, unsigned int dev, unsigned int reg, unsigned int data) +static void spi_write(struct snd_ice1712 *ice, unsigned int dev, unsigned int reg, unsigned int data) { snd_ice1712_gpio_set_dir(ice, PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK); snd_ice1712_gpio_set_mask(ice, ~(PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK)); @@ -402,7 +402,7 @@ static void spi_write(ice1712_t *ice, unsigned int dev, unsigned int reg, unsign snd_ice1712_gpio_set_dir(ice, ice->gpio.direction); } -static unsigned int spi_read(ice1712_t *ice, unsigned int dev, unsigned int reg) +static unsigned int spi_read(struct snd_ice1712 *ice, unsigned int dev, unsigned int reg) { unsigned int val; snd_ice1712_gpio_set_dir(ice, PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK); @@ -429,7 +429,7 @@ static unsigned int spi_read(ice1712_t *ice, unsigned int dev, unsigned int reg) /* * SPDIF input source */ -static int cs_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int cs_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[] = { "Coax", /* RXP0 */ @@ -445,9 +445,9 @@ static int cs_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int cs_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cs_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); ucontrol->value.enumerated.item[0] = ice->gpio.saved[0]; @@ -455,9 +455,9 @@ static int cs_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro return 0; } -static int cs_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int cs_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char val; int change = 0; @@ -476,7 +476,7 @@ static int cs_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro /* * GPIO controls */ -static int pontis_gpio_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int pontis_gpio_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -485,9 +485,9 @@ static int pontis_gpio_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int pontis_gpio_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int pontis_gpio_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); /* 4-7 reserved */ ucontrol->value.integer.value[0] = (~ice->gpio.write_mask & 0xffff) | 0x00f0; @@ -495,9 +495,9 @@ static int pontis_gpio_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int pontis_gpio_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int pontis_gpio_mask_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned int val; int changed; down(&ice->gpio_mutex); @@ -509,9 +509,9 @@ static int pontis_gpio_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return changed; } -static int pontis_gpio_dir_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int pontis_gpio_dir_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); /* 4-7 reserved */ ucontrol->value.integer.value[0] = ice->gpio.direction & 0xff0f; @@ -519,9 +519,9 @@ static int pontis_gpio_dir_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return 0; } -static int pontis_gpio_dir_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) +static int pontis_gpio_dir_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned int val; int changed; down(&ice->gpio_mutex); @@ -533,9 +533,9 @@ static int pontis_gpio_dir_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return changed; } -static int pontis_gpio_data_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int pontis_gpio_data_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); down(&ice->gpio_mutex); snd_ice1712_gpio_set_dir(ice, ice->gpio.direction); snd_ice1712_gpio_set_mask(ice, ice->gpio.write_mask); @@ -544,9 +544,9 @@ static int pontis_gpio_data_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int pontis_gpio_data_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int pontis_gpio_data_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned int val, nval; int changed = 0; down(&ice->gpio_mutex); @@ -566,7 +566,7 @@ static int pontis_gpio_data_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * * mixers */ -static snd_kcontrol_new_t pontis_controls[] __devinitdata = { +static struct snd_kcontrol_new pontis_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Playback Volume", @@ -646,9 +646,9 @@ static snd_kcontrol_new_t pontis_controls[] __devinitdata = { /* * WM codec registers */ -static void wm_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void wm_proc_regs_write(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - ice1712_t *ice = (ice1712_t *)entry->private_data; + struct snd_ice1712 *ice = (struct snd_ice1712 *)entry->private_data; char line[64]; unsigned int reg, val; down(&ice->gpio_mutex); @@ -661,9 +661,9 @@ static void wm_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t *buffe up(&ice->gpio_mutex); } -static void wm_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void wm_proc_regs_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - ice1712_t *ice = (ice1712_t *)entry->private_data; + struct snd_ice1712 *ice = (struct snd_ice1712 *)entry->private_data; int reg, val; down(&ice->gpio_mutex); @@ -674,9 +674,9 @@ static void wm_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer up(&ice->gpio_mutex); } -static void wm_proc_init(ice1712_t *ice) +static void wm_proc_init(struct snd_ice1712 *ice) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(ice->card, "wm_codec", &entry)) { snd_info_set_text_ops(entry, ice, 1024, wm_proc_regs_read); entry->mode |= S_IWUSR; @@ -685,9 +685,9 @@ static void wm_proc_init(ice1712_t *ice) } } -static void cs_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void cs_proc_regs_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - ice1712_t *ice = (ice1712_t *)entry->private_data; + struct snd_ice1712 *ice = (struct snd_ice1712 *)entry->private_data; int reg, val; down(&ice->gpio_mutex); @@ -700,16 +700,16 @@ static void cs_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer up(&ice->gpio_mutex); } -static void cs_proc_init(ice1712_t *ice) +static void cs_proc_init(struct snd_ice1712 *ice) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(ice->card, "cs_codec", &entry)) { snd_info_set_text_ops(entry, ice, 1024, cs_proc_regs_read); } } -static int __devinit pontis_add_controls(ice1712_t *ice) +static int __devinit pontis_add_controls(struct snd_ice1712 *ice) { unsigned int i; int err; @@ -730,7 +730,7 @@ static int __devinit pontis_add_controls(ice1712_t *ice) /* * initialize the chip */ -static int __devinit pontis_init(ice1712_t *ice) +static int __devinit pontis_init(struct snd_ice1712 *ice) { static unsigned short wm_inits[] = { /* These come first to reduce init pop noise */ @@ -781,7 +781,7 @@ static int __devinit pontis_init(ice1712_t *ice) ice->num_total_adcs = 2; /* to remeber the register values */ - ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); + ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ice->akm) return -ENOMEM; ice->akm_codecs = 1; diff --git a/sound/pci/ice1712/prodigy192.c b/sound/pci/ice1712/prodigy192.c index d2c5963795d..fdb5cb8fac9 100644 --- a/sound/pci/ice1712/prodigy192.c +++ b/sound/pci/ice1712/prodigy192.c @@ -36,12 +36,12 @@ #include "prodigy192.h" #include "stac946x.h" -static inline void stac9460_put(ice1712_t *ice, int reg, unsigned char val) +static inline void stac9460_put(struct snd_ice1712 *ice, int reg, unsigned char val) { snd_vt1724_write_i2c(ice, PRODIGY192_STAC9460_ADDR, reg, val); } -static inline unsigned char stac9460_get(ice1712_t *ice, int reg) +static inline unsigned char stac9460_get(struct snd_ice1712 *ice, int reg) { return snd_vt1724_read_i2c(ice, PRODIGY192_STAC9460_ADDR, reg); } @@ -49,7 +49,7 @@ static inline unsigned char stac9460_get(ice1712_t *ice, int reg) /* * DAC mute control */ -static int stac9460_dac_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int stac9460_dac_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -58,9 +58,9 @@ static int stac9460_dac_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int stac9460_dac_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac9460_dac_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char val; int idx; @@ -73,9 +73,9 @@ static int stac9460_dac_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int stac9460_dac_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int stac9460_dac_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char new, old; int idx; int change; @@ -96,7 +96,7 @@ static int stac9460_dac_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t /* * DAC volume attenuation mixer control */ -static int stac9460_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int stac9460_dac_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 1; @@ -105,9 +105,9 @@ static int stac9460_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int stac9460_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac9460_dac_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx; unsigned char vol; @@ -121,9 +121,9 @@ static int stac9460_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int stac9460_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac9460_dac_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int idx; unsigned char tmp, ovol, nvol; int change; @@ -145,7 +145,7 @@ static int stac9460_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * /* * ADC mute control */ -static int stac9460_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int stac9460_adc_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; @@ -154,9 +154,9 @@ static int stac9460_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int stac9460_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac9460_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char val; int i; @@ -168,9 +168,9 @@ static int stac9460_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int stac9460_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int stac9460_adc_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); unsigned char new, old; int i, reg; int change; @@ -190,7 +190,7 @@ static int stac9460_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t /* * ADC gain mixer control */ -static int stac9460_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int stac9460_adc_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -199,9 +199,9 @@ static int stac9460_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int stac9460_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac9460_adc_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, reg; unsigned char vol; @@ -214,9 +214,9 @@ static int stac9460_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * return 0; } -static int stac9460_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int stac9460_adc_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int i, reg; unsigned char ovol, nvol; int change; @@ -237,7 +237,7 @@ static int stac9460_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * /* * Headphone Amplifier */ -static int aureon_set_headphone_amp(ice1712_t *ice, int enable) +static int aureon_set_headphone_amp(struct snd_ice1712 *ice, int enable) { unsigned int tmp, tmp2; @@ -253,14 +253,14 @@ static int aureon_set_headphone_amp(ice1712_t *ice, int enable) return 0; } -static int aureon_get_headphone_amp(ice1712_t *ice) +static int aureon_get_headphone_amp(struct snd_ice1712 *ice) { unsigned int tmp = snd_ice1712_gpio_read(ice); return ( tmp & AUREON_HP_SEL )!= 0; } -static int aureon_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) +static int aureon_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -269,18 +269,18 @@ static int aureon_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) return 0; } -static int aureon_hpamp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = aureon_get_headphone_amp(ice); return 0; } -static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_hpamp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); return aureon_set_headphone_amp(ice,ucontrol->value.integer.value[0]); } @@ -288,16 +288,16 @@ static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon /* * Deemphasis */ -static int aureon_deemp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf; return 0; } -static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_deemp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); int temp, temp2; temp2 = temp = wm_get(ice, WM_DAC_CTRL2); if (ucontrol->value.integer.value[0]) @@ -314,7 +314,7 @@ static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon /* * ADC Oversampling */ -static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) +static int aureon_oversampling_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo) { static char *texts[2] = { "128x", "64x" }; @@ -329,17 +329,17 @@ static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinf return 0; } -static int aureon_oversampling_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8; return 0; } -static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int aureon_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { int temp, temp2; - ice1712_t *ice = snd_kcontrol_chip(kcontrol); + struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); temp2 = temp = wm_get(ice, WM_MASTER); @@ -360,7 +360,7 @@ static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ * mixers */ -static snd_kcontrol_new_t stac_controls[] __devinitdata = { +static struct snd_kcontrol_new stac_controls[] __devinitdata = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Master Playback Switch", @@ -442,7 +442,7 @@ static snd_kcontrol_new_t stac_controls[] __devinitdata = { #endif }; -static int __devinit prodigy192_add_controls(ice1712_t *ice) +static int __devinit prodigy192_add_controls(struct snd_ice1712 *ice) { unsigned int i; int err; @@ -459,7 +459,7 @@ static int __devinit prodigy192_add_controls(ice1712_t *ice) /* * initialize the chip */ -static int __devinit prodigy192_init(ice1712_t *ice) +static int __devinit prodigy192_init(struct snd_ice1712 *ice) { static unsigned short stac_inits_prodigy[] = { STAC946X_RESET, 0, diff --git a/sound/pci/ice1712/revo.c b/sound/pci/ice1712/revo.c index 1fe21009ca8..664b738bb64 100644 --- a/sound/pci/ice1712/revo.c +++ b/sound/pci/ice1712/revo.c @@ -33,7 +33,7 @@ #include "envy24ht.h" #include "revo.h" -static void revo_i2s_mclk_changed(ice1712_t *ice) +static void revo_i2s_mclk_changed(struct snd_ice1712 *ice) { /* assert PRST# to converters; MT05 bit 7 */ outb(inb(ICEMT1724(ice, AC97_CMD)) | 0x80, ICEMT1724(ice, AC97_CMD)); @@ -45,7 +45,7 @@ static void revo_i2s_mclk_changed(ice1712_t *ice) /* * change the rate of envy24HT, AK4355 and AK4381 */ -static void revo_set_rate_val(akm4xxx_t *ak, unsigned int rate) +static void revo_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate) { unsigned char old, tmp, dfs; int reg, shift; @@ -87,7 +87,7 @@ static void revo_set_rate_val(akm4xxx_t *ak, unsigned int rate) * initialize the chips on M-Audio Revolution cards */ -static akm4xxx_t akm_revo_front __devinitdata = { +static struct snd_akm4xxx akm_revo_front __devinitdata = { .type = SND_AK4381, .num_dacs = 2, .ops = { @@ -107,7 +107,7 @@ static struct snd_ak4xxx_private akm_revo_front_priv __devinitdata = { .mask_flags = 0, }; -static akm4xxx_t akm_revo_surround __devinitdata = { +static struct snd_akm4xxx akm_revo_surround __devinitdata = { .type = SND_AK4355, .idx_offset = 1, .num_dacs = 6, @@ -128,9 +128,9 @@ static struct snd_ak4xxx_private akm_revo_surround_priv __devinitdata = { .mask_flags = 0, }; -static int __devinit revo_init(ice1712_t *ice) +static int __devinit revo_init(struct snd_ice1712 *ice) { - akm4xxx_t *ak; + struct snd_akm4xxx *ak; int err; /* determine I2C, DACs and ADCs */ @@ -147,7 +147,7 @@ static int __devinit revo_init(ice1712_t *ice) ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed; /* second stage of initialization, analog parts and others */ - ak = ice->akm = kcalloc(2, sizeof(akm4xxx_t), GFP_KERNEL); + ak = ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ak) return -ENOMEM; ice->akm_codecs = 2; @@ -166,7 +166,7 @@ static int __devinit revo_init(ice1712_t *ice) } -static int __devinit revo_add_controls(ice1712_t *ice) +static int __devinit revo_add_controls(struct snd_ice1712 *ice) { int err; diff --git a/sound/pci/ice1712/vt1720_mobo.c b/sound/pci/ice1712/vt1720_mobo.c index 90c85cd9547..7ca263c1309 100644 --- a/sound/pci/ice1712/vt1720_mobo.c +++ b/sound/pci/ice1712/vt1720_mobo.c @@ -33,7 +33,7 @@ #include "vt1720_mobo.h" -static int __devinit k8x800_init(ice1712_t *ice) +static int __devinit k8x800_init(struct snd_ice1712 *ice) { ice->vt1720 = 1; @@ -47,7 +47,7 @@ static int __devinit k8x800_init(ice1712_t *ice) return 0; } -static int __devinit k8x800_add_controls(ice1712_t *ice) +static int __devinit k8x800_add_controls(struct snd_ice1712 *ice) { /* FIXME: needs some quirks for VT1616? */ return 0; -- cgit v1.2.3-70-g09d2 From fcfd3332e3bf5f63116044c168110820996cd1fe Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:00:46 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI KORG1212 Modules: KORG1212 driver Remove xxx_t typedefs from the PCI KORG1212 driver. Signed-off-by: Takashi Iwai --- sound/pci/korg1212/korg1212.c | 384 +++++++++++++++++++++--------------------- 1 file changed, 196 insertions(+), 188 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c index ec716133ec3..a8a6a5c41a7 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c @@ -61,7 +61,7 @@ // ---------------------------------------------------------------------------- // Valid states of the Korg 1212 I/O card. // ---------------------------------------------------------------------------- -typedef enum { +enum CardState { K1212_STATE_NONEXISTENT, // there is no card here K1212_STATE_UNINITIALIZED, // the card is awaiting DSP download K1212_STATE_DSP_IN_PROCESS, // the card is currently downloading its DSP code @@ -77,13 +77,13 @@ typedef enum { K1212_STATE_ERRORSTOP, // the card has stopped itself because of an error and we // are in the process of cleaning things up. K1212_STATE_MAX_STATE // state values of this and beyond are invalid -} CardState; +}; // ---------------------------------------------------------------------------- // The following enumeration defines the constants written to the card's // host-to-card doorbell to initiate a command. // ---------------------------------------------------------------------------- -typedef enum { +enum korg1212_dbcnst { K1212_DB_RequestForData = 0, // sent by the card to request a buffer fill. K1212_DB_TriggerPlay = 1, // starts playback/record on the card. K1212_DB_SelectPlayMode = 2, // select monitor, playback setup, or stop. @@ -101,14 +101,14 @@ typedef enum { K1212_DB_DSPDownloadDone = 0xAE, // sent by the card to indicate the download has // completed. K1212_DB_StartDSPDownload = 0xAF // tells the card to download its DSP firmware. -} korg1212_dbcnst_t; +}; // ---------------------------------------------------------------------------- // The following enumeration defines return codes // to the Korg 1212 I/O driver. // ---------------------------------------------------------------------------- -typedef enum { +enum snd_korg1212rc { K1212_CMDRET_Success = 0, // command was successfully placed K1212_CMDRET_DIOCFailure, // the DeviceIoControl call failed K1212_CMDRET_PMFailure, // the protected mode call failed @@ -126,27 +126,27 @@ typedef enum { K1212_CMDRET_BadDevice, // the specified wave device was out of range K1212_CMDRET_BadFormat // the specified wave format is unsupported -} snd_korg1212rc; +}; // ---------------------------------------------------------------------------- // The following enumeration defines the constants used to select the play // mode for the card in the SelectPlayMode command. // ---------------------------------------------------------------------------- -typedef enum { +enum PlayModeSelector { K1212_MODE_SetupPlay = 0x00000001, // provides card with pre-play information K1212_MODE_MonitorOn = 0x00000002, // tells card to turn on monitor mode K1212_MODE_MonitorOff = 0x00000004, // tells card to turn off monitor mode K1212_MODE_StopPlay = 0x00000008 // stops playback on the card -} PlayModeSelector; +}; // ---------------------------------------------------------------------------- // The following enumeration defines the constants used to select the monitor // mode for the card in the SetMonitorMode command. // ---------------------------------------------------------------------------- -typedef enum { +enum MonitorModeSelector { K1212_MONMODE_Off = 0, // tells card to turn off monitor mode K1212_MONMODE_On // tells card to turn on monitor mode -} MonitorModeSelector; +}; #define MAILBOX0_OFFSET 0x40 // location of mailbox 0 relative to base address #define MAILBOX1_OFFSET 0x44 // location of mailbox 1 relative to base address @@ -188,7 +188,7 @@ typedef enum { #define K1212_CHANNELS (K1212_ADAT_CHANNELS + K1212_ANALOG_CHANNELS) #define K1212_MIN_CHANNELS 1 #define K1212_MAX_CHANNELS K1212_CHANNELS -#define K1212_FRAME_SIZE (sizeof(KorgAudioFrame)) +#define K1212_FRAME_SIZE (sizeof(struct KorgAudioFrame)) #define K1212_MAX_SAMPLES (kPlayBufferFrames*kNumBuffers) #define K1212_PERIODS (kNumBuffers) #define K1212_PERIOD_BYTES (K1212_FRAME_SIZE*kPlayBufferFrames) @@ -264,14 +264,7 @@ typedef enum { #include "korg1212-firmware.h" -typedef struct _snd_korg1212 korg1212_t; - -typedef u16 K1212Sample; // channels 0-9 use 16 bit samples -typedef u32 K1212SpdifSample; // channels 10-11 use 32 bits - only 20 are sent - // across S/PDIF. -typedef u32 K1212TimeCodeSample; // holds the ADAT timecode value - -typedef enum { +enum ClockSourceIndex { K1212_CLKIDX_AdatAt44_1K = 0, // selects source as ADAT at 44.1 kHz K1212_CLKIDX_AdatAt48K, // selects source as ADAT at 48 kHz K1212_CLKIDX_WordAt44_1K, // selects source as S/PDIF at 44.1 kHz @@ -279,36 +272,36 @@ typedef enum { K1212_CLKIDX_LocalAt44_1K, // selects source as local clock at 44.1 kHz K1212_CLKIDX_LocalAt48K, // selects source as local clock at 48 kHz K1212_CLKIDX_Invalid // used to check validity of the index -} ClockSourceIndex; +}; -typedef enum { +enum ClockSourceType { K1212_CLKIDX_Adat = 0, // selects source as ADAT K1212_CLKIDX_Word, // selects source as S/PDIF K1212_CLKIDX_Local // selects source as local clock -} ClockSourceType; +}; -typedef struct KorgAudioFrame { - K1212Sample frameData16[k16BitChannels]; - K1212SpdifSample frameData32[k32BitChannels]; - K1212TimeCodeSample timeCodeVal; -} KorgAudioFrame; +struct KorgAudioFrame { + u16 frameData16[k16BitChannels]; /* channels 0-9 use 16 bit samples */ + u32 frameData32[k32BitChannels]; /* channels 10-11 use 32 bits - only 20 are sent across S/PDIF */ + u32 timeCodeVal; /* holds the ADAT timecode value */ +}; -typedef struct KorgAudioBuffer { - KorgAudioFrame bufferData[kPlayBufferFrames]; /* buffer definition */ -} KorgAudioBuffer; +struct KorgAudioBuffer { + struct KorgAudioFrame bufferData[kPlayBufferFrames]; /* buffer definition */ +}; -typedef struct KorgSharedBuffer { +struct KorgSharedBuffer { #ifdef K1212_LARGEALLOC - KorgAudioBuffer playDataBufs[kNumBuffers]; - KorgAudioBuffer recordDataBufs[kNumBuffers]; + struct KorgAudioBuffer playDataBufs[kNumBuffers]; + struct KorgAudioBuffer recordDataBufs[kNumBuffers]; #endif short volumeData[kAudioChannels]; u32 cardCommand; u16 routeData [kAudioChannels]; u32 AdatTimeCode; // ADAT timecode value -} KorgSharedBuffer; +}; -typedef struct SensBits { +struct SensBits { union { struct { unsigned int leftChanVal:8; @@ -323,12 +316,12 @@ typedef struct SensBits { } v; u16 rightSensBits; } r; -} SensBits; +}; -struct _snd_korg1212 { - snd_card_t *card; +struct snd_korg1212 { + struct snd_card *card; struct pci_dev *pci; - snd_pcm_t *pcm; + struct snd_pcm *pcm; int irq; spinlock_t lock; @@ -355,10 +348,10 @@ struct _snd_korg1212 { u32 DataBufsSize; - KorgAudioBuffer * playDataBufsPtr; - KorgAudioBuffer * recordDataBufsPtr; + struct KorgAudioBuffer * playDataBufsPtr; + struct KorgAudioBuffer * recordDataBufsPtr; - KorgSharedBuffer * sharedBufferPtr; + struct KorgSharedBuffer * sharedBufferPtr; u32 RecDataPhy; u32 PlayDataPhy; @@ -382,20 +375,20 @@ struct _snd_korg1212 { int channels; int currentBuffer; - snd_pcm_substream_t *playback_substream; - snd_pcm_substream_t *capture_substream; + struct snd_pcm_substream *playback_substream; + struct snd_pcm_substream *capture_substream; pid_t capture_pid; pid_t playback_pid; - CardState cardState; + enum CardState cardState; int running; int idleMonitorOn; // indicates whether the card is in idle monitor mode. u32 cmdRetryCount; // tracks how many times we have retried sending to the card. - ClockSourceIndex clkSrcRate; // sample rate and clock source + enum ClockSourceIndex clkSrcRate; // sample rate and clock source - ClockSourceType clkSource; // clock source + enum ClockSourceType clkSource; // clock source int clkRate; // clock rate int volumePhase[kAudioChannels]; @@ -440,6 +433,8 @@ static struct pci_device_id snd_korg1212_ids[] = { { 0, }, }; +MODULE_DEVICE_TABLE(pci, snd_korg1212_ids); + static char *stateName[] = { "Non-existent", "Uninitialized", @@ -489,11 +484,7 @@ static u16 ClockSourceSelector[] = { 0x0002 // selects source as local clock at 48 kHz }; -static snd_korg1212rc rc; - -MODULE_DEVICE_TABLE(pci, snd_korg1212_ids); - -typedef union swap_u32 { unsigned char c[4]; u32 i; } swap_u32; +union swap_u32 { unsigned char c[4]; u32 i; }; #ifdef SNDRV_BIG_ENDIAN static u32 LowerWordSwap(u32 swappee) @@ -501,7 +492,7 @@ static u32 LowerWordSwap(u32 swappee) static u32 UpperWordSwap(u32 swappee) #endif { - swap_u32 retVal, swapper; + union swap_u32 retVal, swapper; swapper.i = swappee; retVal.c[2] = swapper.c[3]; @@ -518,7 +509,7 @@ static u32 UpperWordSwap(u32 swappee) static u32 LowerWordSwap(u32 swappee) #endif { - swap_u32 retVal, swapper; + union swap_u32 retVal, swapper; swapper.i = swappee; retVal.c[2] = swapper.c[2]; @@ -534,12 +525,14 @@ static u32 LowerWordSwap(u32 swappee) #define ClearBitInWord(theWord,bitPosition) (*theWord) &= ~(0x0001 << bitPosition) #define ClearBitInDWord(theWord,bitPosition) (*theWord) &= ~(0x00000001 << bitPosition) -static snd_korg1212rc snd_korg1212_Send1212Command(korg1212_t *korg1212, korg1212_dbcnst_t doorbellVal, - u32 mailBox0Val, u32 mailBox1Val, u32 mailBox2Val, u32 mailBox3Val) +static int snd_korg1212_Send1212Command(struct snd_korg1212 *korg1212, + enum korg1212_dbcnst doorbellVal, + u32 mailBox0Val, u32 mailBox1Val, + u32 mailBox2Val, u32 mailBox3Val) { u32 retryCount; u16 mailBox3Lo; - snd_korg1212rc rc = K1212_CMDRET_Success; + int rc = K1212_CMDRET_Success; if (!korg1212->outDoorbellPtr) { K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: CardUninitialized\n"); @@ -591,7 +584,7 @@ static snd_korg1212rc snd_korg1212_Send1212Command(korg1212_t *korg1212, korg121 } /* spinlock already held */ -static void snd_korg1212_SendStop(korg1212_t *korg1212) +static void snd_korg1212_SendStop(struct snd_korg1212 *korg1212) { if (! korg1212->stop_pending_cnt) { korg1212->sharedBufferPtr->cardCommand = 0xffffffff; @@ -602,7 +595,7 @@ static void snd_korg1212_SendStop(korg1212_t *korg1212) } } -static void snd_korg1212_SendStopAndWait(korg1212_t *korg1212) +static void snd_korg1212_SendStopAndWait(struct snd_korg1212 *korg1212) { unsigned long flags; spin_lock_irqsave(&korg1212->lock, flags); @@ -615,7 +608,7 @@ static void snd_korg1212_SendStopAndWait(korg1212_t *korg1212) /* timer callback for checking the ack of stop request */ static void snd_korg1212_timer_func(unsigned long data) { - korg1212_t *korg1212 = (korg1212_t *) data; + struct snd_korg1212 *korg1212 = (struct snd_korg1212 *) data; spin_lock(&korg1212->lock); if (korg1212->sharedBufferPtr->cardCommand == 0) { @@ -642,7 +635,7 @@ static void snd_korg1212_timer_func(unsigned long data) spin_unlock(&korg1212->lock); } -static int snd_korg1212_TurnOnIdleMonitor(korg1212_t *korg1212) +static int snd_korg1212_TurnOnIdleMonitor(struct snd_korg1212 *korg1212) { unsigned long flags; int rc; @@ -656,7 +649,7 @@ static int snd_korg1212_TurnOnIdleMonitor(korg1212_t *korg1212) return rc; } -static void snd_korg1212_TurnOffIdleMonitor(korg1212_t *korg1212) +static void snd_korg1212_TurnOffIdleMonitor(struct snd_korg1212 *korg1212) { if (korg1212->idleMonitorOn) { snd_korg1212_SendStopAndWait(korg1212); @@ -664,12 +657,12 @@ static void snd_korg1212_TurnOffIdleMonitor(korg1212_t *korg1212) } } -static inline void snd_korg1212_setCardState(korg1212_t * korg1212, CardState csState) +static inline void snd_korg1212_setCardState(struct snd_korg1212 * korg1212, enum CardState csState) { korg1212->cardState = csState; } -static int snd_korg1212_OpenCard(korg1212_t * korg1212) +static int snd_korg1212_OpenCard(struct snd_korg1212 * korg1212) { K1212_DEBUG_PRINTK("K1212_DEBUG: OpenCard [%s] %d\n", stateName[korg1212->cardState], korg1212->opencnt); @@ -683,7 +676,7 @@ static int snd_korg1212_OpenCard(korg1212_t * korg1212) return 1; } -static int snd_korg1212_CloseCard(korg1212_t * korg1212) +static int snd_korg1212_CloseCard(struct snd_korg1212 * korg1212) { K1212_DEBUG_PRINTK("K1212_DEBUG: CloseCard [%s] %d\n", stateName[korg1212->cardState], korg1212->opencnt); @@ -718,7 +711,7 @@ static int snd_korg1212_CloseCard(korg1212_t * korg1212) } /* spinlock already held */ -static int snd_korg1212_SetupForPlay(korg1212_t * korg1212) +static int snd_korg1212_SetupForPlay(struct snd_korg1212 * korg1212) { int rc; @@ -741,7 +734,7 @@ static int snd_korg1212_SetupForPlay(korg1212_t * korg1212) } /* spinlock already held */ -static int snd_korg1212_TriggerPlay(korg1212_t * korg1212) +static int snd_korg1212_TriggerPlay(struct snd_korg1212 * korg1212) { int rc; @@ -763,7 +756,7 @@ static int snd_korg1212_TriggerPlay(korg1212_t * korg1212) } /* spinlock already held */ -static int snd_korg1212_StopPlay(korg1212_t * korg1212) +static int snd_korg1212_StopPlay(struct snd_korg1212 * korg1212) { K1212_DEBUG_PRINTK("K1212_DEBUG: StopPlay [%s] %d\n", stateName[korg1212->cardState], korg1212->playcnt); @@ -780,7 +773,7 @@ static int snd_korg1212_StopPlay(korg1212_t * korg1212) return 0; } -static void snd_korg1212_EnableCardInterrupts(korg1212_t * korg1212) +static void snd_korg1212_EnableCardInterrupts(struct snd_korg1212 * korg1212) { writel(PCI_INT_ENABLE_BIT | PCI_DOORBELL_INT_ENABLE_BIT | @@ -792,7 +785,8 @@ static void snd_korg1212_EnableCardInterrupts(korg1212_t * korg1212) #if 0 /* not used */ -static int snd_korg1212_SetMonitorMode(korg1212_t *korg1212, MonitorModeSelector mode) +static int snd_korg1212_SetMonitorMode(struct snd_korg1212 *korg1212, + enum MonitorModeSelector mode) { K1212_DEBUG_PRINTK("K1212_DEBUG: SetMonitorMode [%s]\n", stateName[korg1212->cardState]); @@ -829,7 +823,7 @@ static int snd_korg1212_SetMonitorMode(korg1212_t *korg1212, MonitorModeSelector #endif /* not used */ -static inline int snd_korg1212_use_is_exclusive(korg1212_t *korg1212) +static inline int snd_korg1212_use_is_exclusive(struct snd_korg1212 *korg1212) { if (korg1212->playback_pid != korg1212->capture_pid && korg1212->playback_pid >= 0 && korg1212->capture_pid >= 0) @@ -838,14 +832,14 @@ static inline int snd_korg1212_use_is_exclusive(korg1212_t *korg1212) return 1; } -static int snd_korg1212_SetRate(korg1212_t *korg1212, int rate) +static int snd_korg1212_SetRate(struct snd_korg1212 *korg1212, int rate) { - static ClockSourceIndex s44[] = { + static enum ClockSourceIndex s44[] = { K1212_CLKIDX_AdatAt44_1K, K1212_CLKIDX_WordAt44_1K, K1212_CLKIDX_LocalAt44_1K }; - static ClockSourceIndex s48[] = { + static enum ClockSourceIndex s48[] = { K1212_CLKIDX_AdatAt48K, K1212_CLKIDX_WordAt48K, K1212_CLKIDX_LocalAt48K @@ -855,7 +849,7 @@ static int snd_korg1212_SetRate(korg1212_t *korg1212, int rate) if (!snd_korg1212_use_is_exclusive (korg1212)) return -EBUSY; - switch(rate) { + switch (rate) { case 44100: parm = s44[korg1212->clkSource]; break; @@ -875,7 +869,6 @@ static int snd_korg1212_SetRate(korg1212_t *korg1212, int rate) rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SetClockSourceRate, ClockSourceSelector[korg1212->clkSrcRate], 0, 0, 0); - if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Set Clock Source Selector - RC = %d [%s]\n", rc, stateName[korg1212->cardState]); @@ -883,7 +876,7 @@ static int snd_korg1212_SetRate(korg1212_t *korg1212, int rate) return 0; } -static int snd_korg1212_SetClockSource(korg1212_t *korg1212, int source) +static int snd_korg1212_SetClockSource(struct snd_korg1212 *korg1212, int source) { if (source < 0 || source > 2) @@ -896,14 +889,14 @@ static int snd_korg1212_SetClockSource(korg1212_t *korg1212, int source) return 0; } -static void snd_korg1212_DisableCardInterrupts(korg1212_t *korg1212) +static void snd_korg1212_DisableCardInterrupts(struct snd_korg1212 *korg1212) { writel(0, korg1212->statusRegPtr); } -static int snd_korg1212_WriteADCSensitivity(korg1212_t *korg1212) +static int snd_korg1212_WriteADCSensitivity(struct snd_korg1212 *korg1212) { - SensBits sensVals; + struct SensBits sensVals; int bitPosition; int channel; int clkIs48K; @@ -985,7 +978,7 @@ static int snd_korg1212_WriteADCSensitivity(korg1212_t *korg1212) for (bitPosition = 15; bitPosition >= 0; bitPosition--) { // for all the bits if (channel == 0) { if (sensVals.l.leftSensBits & (0x0001 << bitPosition)) - SetBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set high + SetBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set high else ClearBitInWord(&controlValue, SET_SENS_DATA_BITPOS); // data bit set low } else { @@ -1034,7 +1027,7 @@ static int snd_korg1212_WriteADCSensitivity(korg1212_t *korg1212) udelay(SENSCLKPULSE_WIDTH); if (monModeSet) { - rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, + int rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, K1212_MODE_MonitorOn, 0, 0, 0); if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: WriteADCSensivity - RC = %d [%s]\n", @@ -1046,9 +1039,9 @@ static int snd_korg1212_WriteADCSensitivity(korg1212_t *korg1212) return 1; } -static void snd_korg1212_OnDSPDownloadComplete(korg1212_t *korg1212) +static void snd_korg1212_OnDSPDownloadComplete(struct snd_korg1212 *korg1212) { - int channel; + int channel, rc; K1212_DEBUG_PRINTK("K1212_DEBUG: DSP download is complete. [%s]\n", stateName[korg1212->cardState]); @@ -1127,7 +1120,7 @@ static void snd_korg1212_OnDSPDownloadComplete(korg1212_t *korg1212) static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs *regs) { u32 doorbellValue; - korg1212_t *korg1212 = dev_id; + struct snd_korg1212 *korg1212 = dev_id; if(irq != korg1212->irq) return IRQ_NONE; @@ -1176,7 +1169,7 @@ static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs // the semaphore in case someone is waiting for this. // ------------------------------------------------------------------------ case K1212_DB_CARDSTOPPED: - K1212_DEBUG_PRINTK_VEROBSE("K1212_DEBUG: IRQ CSTP count - %ld, %x, [%s].\n", + K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: IRQ CSTP count - %ld, %x, [%s].\n", korg1212->irqcount, doorbellValue, stateName[korg1212->cardState]); korg1212->sharedBufferPtr->cardCommand = 0; @@ -1184,9 +1177,8 @@ static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs default: K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: IRQ DFLT count - %ld, %x, cpos=%d [%s].\n", - korg1212->irqcount, doorbellValue, - korg1212->currentBuffer, - stateName[korg1212->cardState]); + korg1212->irqcount, doorbellValue, + korg1212->currentBuffer, stateName[korg1212->cardState]); if ((korg1212->cardState > K1212_STATE_SETUP) || korg1212->idleMonitorOn) { korg1212->currentBuffer++; @@ -1218,8 +1210,9 @@ static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs return IRQ_HANDLED; } -static int snd_korg1212_downloadDSPCode(korg1212_t *korg1212) +static int snd_korg1212_downloadDSPCode(struct snd_korg1212 *korg1212) { + int rc; K1212_DEBUG_PRINTK("K1212_DEBUG: DSP download is starting... [%s]\n", stateName[korg1212->cardState]); @@ -1251,7 +1244,7 @@ static int snd_korg1212_downloadDSPCode(korg1212_t *korg1212) return 0; } -static snd_pcm_hardware_t snd_korg1212_playback_info = +static struct snd_pcm_hardware snd_korg1212_playback_info = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -1271,7 +1264,7 @@ static snd_pcm_hardware_t snd_korg1212_playback_info = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_korg1212_capture_info = +static struct snd_pcm_hardware snd_korg1212_capture_info = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -1291,9 +1284,9 @@ static snd_pcm_hardware_t snd_korg1212_capture_info = .fifo_size = 0, }; -static int snd_korg1212_silence(korg1212_t *korg1212, int pos, int count, int offset, int size) +static int snd_korg1212_silence(struct snd_korg1212 *korg1212, int pos, int count, int offset, int size) { - KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; + struct KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; int i; K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_silence pos=%d offset=%d size=%d count=%d\n", @@ -1316,9 +1309,9 @@ static int snd_korg1212_silence(korg1212_t *korg1212, int pos, int count, int of return 0; } -static int snd_korg1212_copy_to(korg1212_t *korg1212, void __user *dst, int pos, int count, int offset, int size) +static int snd_korg1212_copy_to(struct snd_korg1212 *korg1212, void __user *dst, int pos, int count, int offset, int size) { - KorgAudioFrame * src = korg1212->recordDataBufsPtr[0].bufferData + pos; + struct KorgAudioFrame * src = korg1212->recordDataBufsPtr[0].bufferData + pos; int i, rc; K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_copy_to pos=%d offset=%d size=%d\n", @@ -1345,9 +1338,9 @@ static int snd_korg1212_copy_to(korg1212_t *korg1212, void __user *dst, int pos, return 0; } -static int snd_korg1212_copy_from(korg1212_t *korg1212, void __user *src, int pos, int count, int offset, int size) +static int snd_korg1212_copy_from(struct snd_korg1212 *korg1212, void __user *src, int pos, int count, int offset, int size) { - KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; + struct KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; int i, rc; K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_copy_from pos=%d offset=%d size=%d count=%d\n", @@ -1359,15 +1352,13 @@ static int snd_korg1212_copy_from(korg1212_t *korg1212, void __user *src, int po #if K1212_DEBUG_LEVEL > 0 if ( (void *) dst < (void *) korg1212->playDataBufsPtr || (void *) dst > (void *) korg1212->playDataBufsPtr[8].bufferData ) { - printk(KERN_DEBUG "K1212_DEBUG: snd_korg1212_copy_from KERNEL EFAULT, src=%p dst=%p iter=%d\n", - src, dst, i); + printk(KERN_DEBUG "K1212_DEBUG: snd_korg1212_copy_from KERNEL EFAULT, src=%p dst=%p iter=%d\n", src, dst, i); return -EFAULT; } #endif rc = copy_from_user((void*) dst + offset, src, size); if (rc) { - K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_from USER EFAULT src=%p dst=%p iter=%d\n", - src, dst, i); + K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_copy_from USER EFAULT src=%p dst=%p iter=%d\n", src, dst, i); return -EFAULT; } dst++; @@ -1377,9 +1368,9 @@ static int snd_korg1212_copy_from(korg1212_t *korg1212, void __user *src, int po return 0; } -static void snd_korg1212_free_pcm(snd_pcm_t *pcm) +static void snd_korg1212_free_pcm(struct snd_pcm *pcm) { - korg1212_t *korg1212 = (korg1212_t *) pcm->private_data; + struct snd_korg1212 *korg1212 = pcm->private_data; K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_free_pcm [%s]\n", stateName[korg1212->cardState]); @@ -1387,11 +1378,11 @@ static void snd_korg1212_free_pcm(snd_pcm_t *pcm) korg1212->pcm = NULL; } -static int snd_korg1212_playback_open(snd_pcm_substream_t *substream) +static int snd_korg1212_playback_open(struct snd_pcm_substream *substream) { unsigned long flags; - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_open [%s]\n", stateName[korg1212->cardState]); @@ -1418,11 +1409,11 @@ static int snd_korg1212_playback_open(snd_pcm_substream_t *substream) } -static int snd_korg1212_capture_open(snd_pcm_substream_t *substream) +static int snd_korg1212_capture_open(struct snd_pcm_substream *substream) { unsigned long flags; - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_open [%s]\n", stateName[korg1212->cardState]); @@ -1443,14 +1434,15 @@ static int snd_korg1212_capture_open(snd_pcm_substream_t *substream) spin_unlock_irqrestore(&korg1212->lock, flags); - snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, kPlayBufferFrames, kPlayBufferFrames); + snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, + kPlayBufferFrames, kPlayBufferFrames); return 0; } -static int snd_korg1212_playback_close(snd_pcm_substream_t *substream) +static int snd_korg1212_playback_close(struct snd_pcm_substream *substream) { unsigned long flags; - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_close [%s]\n", stateName[korg1212->cardState]); @@ -1469,10 +1461,10 @@ static int snd_korg1212_playback_close(snd_pcm_substream_t *substream) return 0; } -static int snd_korg1212_capture_close(snd_pcm_substream_t *substream) +static int snd_korg1212_capture_close(struct snd_pcm_substream *substream) { unsigned long flags; - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_close [%s]\n", stateName[korg1212->cardState]); @@ -1489,13 +1481,13 @@ static int snd_korg1212_capture_close(snd_pcm_substream_t *substream) return 0; } -static int snd_korg1212_ioctl(snd_pcm_substream_t *substream, +static int snd_korg1212_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg) { K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_ioctl: cmd=%d\n", cmd); if (cmd == SNDRV_PCM_IOCTL1_CHANNEL_INFO ) { - snd_pcm_channel_info_t *info = arg; + struct snd_pcm_channel_info *info = arg; info->offset = 0; info->first = info->channel * 16; info->step = 256; @@ -1506,11 +1498,11 @@ static int snd_korg1212_ioctl(snd_pcm_substream_t *substream, return snd_pcm_lib_ioctl(substream, cmd, arg); } -static int snd_korg1212_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *params) +static int snd_korg1212_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { unsigned long flags; - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); int err; pid_t this_pid; pid_t other_pid; @@ -1558,9 +1550,9 @@ static int snd_korg1212_hw_params(snd_pcm_substream_t *substream, return 0; } -static int snd_korg1212_prepare(snd_pcm_substream_t *substream) +static int snd_korg1212_prepare(struct snd_pcm_substream *substream) { - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); int rc; K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare [%s]\n", @@ -1590,10 +1582,10 @@ static int snd_korg1212_prepare(snd_pcm_substream_t *substream) return rc ? -EINVAL : 0; } -static int snd_korg1212_trigger(snd_pcm_substream_t *substream, +static int snd_korg1212_trigger(struct snd_pcm_substream *substream, int cmd) { - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); int rc; K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger [%s] cmd=%d\n", @@ -1631,9 +1623,9 @@ static int snd_korg1212_trigger(snd_pcm_substream_t *substream, return rc ? -EINVAL : 0; } -static snd_pcm_uframes_t snd_korg1212_playback_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_korg1212_playback_pointer(struct snd_pcm_substream *substream) { - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); snd_pcm_uframes_t pos; pos = korg1212->currentBuffer * kPlayBufferFrames; @@ -1644,9 +1636,9 @@ static snd_pcm_uframes_t snd_korg1212_playback_pointer(snd_pcm_substream_t *subs return pos; } -static snd_pcm_uframes_t snd_korg1212_capture_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_korg1212_capture_pointer(struct snd_pcm_substream *substream) { - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); snd_pcm_uframes_t pos; pos = korg1212->currentBuffer * kPlayBufferFrames; @@ -1657,13 +1649,13 @@ static snd_pcm_uframes_t snd_korg1212_capture_pointer(snd_pcm_substream_t *subst return pos; } -static int snd_korg1212_playback_copy(snd_pcm_substream_t *substream, +static int snd_korg1212_playback_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count) { - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_playback_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count); @@ -1672,12 +1664,12 @@ static int snd_korg1212_playback_copy(snd_pcm_substream_t *substream, } -static int snd_korg1212_playback_silence(snd_pcm_substream_t *substream, +static int snd_korg1212_playback_silence(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, snd_pcm_uframes_t count) { - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_playback_silence [%s]\n", stateName[korg1212->cardState]); @@ -1685,13 +1677,13 @@ static int snd_korg1212_playback_silence(snd_pcm_substream_t *substream, return snd_korg1212_silence(korg1212, pos, count, 0, korg1212->channels * 2); } -static int snd_korg1212_capture_copy(snd_pcm_substream_t *substream, +static int snd_korg1212_capture_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - korg1212_t *korg1212 = snd_pcm_substream_chip(substream); + struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: snd_korg1212_capture_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count); @@ -1699,7 +1691,7 @@ static int snd_korg1212_capture_copy(snd_pcm_substream_t *substream, return snd_korg1212_copy_to(korg1212, dst, pos, count, 0, korg1212->channels * 2); } -static snd_pcm_ops_t snd_korg1212_playback_ops = { +static struct snd_pcm_ops snd_korg1212_playback_ops = { .open = snd_korg1212_playback_open, .close = snd_korg1212_playback_close, .ioctl = snd_korg1212_ioctl, @@ -1711,7 +1703,7 @@ static snd_pcm_ops_t snd_korg1212_playback_ops = { .silence = snd_korg1212_playback_silence, }; -static snd_pcm_ops_t snd_korg1212_capture_ops = { +static struct snd_pcm_ops snd_korg1212_capture_ops = { .open = snd_korg1212_capture_open, .close = snd_korg1212_capture_close, .ioctl = snd_korg1212_ioctl, @@ -1726,16 +1718,18 @@ static snd_pcm_ops_t snd_korg1212_capture_ops = { * Control Interface */ -static int snd_korg1212_control_phase_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_korg1212_control_phase_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = (kcontrol->private_value >= 8) ? 2 : 1; return 0; } -static int snd_korg1212_control_phase_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_phase_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); int i = kcontrol->private_value; spin_lock_irq(&korg1212->lock); @@ -1750,9 +1744,10 @@ static int snd_korg1212_control_phase_get(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_korg1212_control_phase_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_phase_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); int change = 0; int i, val; @@ -1787,7 +1782,8 @@ static int snd_korg1212_control_phase_put(snd_kcontrol_t *kcontrol, snd_ctl_elem return change; } -static int snd_korg1212_control_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_korg1212_control_volume_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = (kcontrol->private_value >= 8) ? 2 : 1; @@ -1796,9 +1792,10 @@ static int snd_korg1212_control_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_el return 0; } -static int snd_korg1212_control_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); int i; spin_lock_irq(&korg1212->lock); @@ -1814,9 +1811,10 @@ static int snd_korg1212_control_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_korg1212_control_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); int change = 0; int i; int val; @@ -1846,7 +1844,8 @@ static int snd_korg1212_control_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_ele return change; } -static int snd_korg1212_control_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_korg1212_control_route_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = (kcontrol->private_value >= 8) ? 2 : 1; @@ -1858,9 +1857,10 @@ static int snd_korg1212_control_route_info(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_korg1212_control_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_route_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); int i; spin_lock_irq(&korg1212->lock); @@ -1876,9 +1876,10 @@ static int snd_korg1212_control_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_korg1212_control_route_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_route_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); int change = 0, i; spin_lock_irq(&korg1212->lock); @@ -1902,7 +1903,8 @@ static int snd_korg1212_control_route_put(snd_kcontrol_t *kcontrol, snd_ctl_elem return change; } -static int snd_korg1212_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_korg1212_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -1911,9 +1913,10 @@ static int snd_korg1212_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_korg1212_control_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&korg1212->lock); @@ -1925,9 +1928,10 @@ static int snd_korg1212_control_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value return 0; } -static int snd_korg1212_control_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +static int snd_korg1212_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *u) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); int change = 0; spin_lock_irq(&korg1212->lock); @@ -1949,7 +1953,8 @@ static int snd_korg1212_control_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value return change; } -static int snd_korg1212_control_sync_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_korg1212_control_sync_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -1961,9 +1966,10 @@ static int snd_korg1212_control_sync_info(snd_kcontrol_t *kcontrol, snd_ctl_elem return 0; } -static int snd_korg1212_control_sync_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_korg1212_control_sync_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&korg1212->lock); @@ -1973,9 +1979,10 @@ static int snd_korg1212_control_sync_get(snd_kcontrol_t * kcontrol, snd_ctl_elem return 0; } -static int snd_korg1212_control_sync_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_korg1212_control_sync_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol); + struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -2016,7 +2023,7 @@ static int snd_korg1212_control_sync_put(snd_kcontrol_t * kcontrol, snd_ctl_elem .private_value = ord, \ } -static snd_kcontrol_new_t snd_korg1212_controls[] = { +static struct snd_kcontrol_new snd_korg1212_controls[] = { MON_MIXER(8, "Analog"), MON_MIXER(10, "SPDIF"), MON_MIXER(0, "ADAT-1"), MON_MIXER(1, "ADAT-2"), MON_MIXER(2, "ADAT-3"), MON_MIXER(3, "ADAT-4"), @@ -2043,10 +2050,11 @@ static snd_kcontrol_new_t snd_korg1212_controls[] = { * proc interface */ -static void snd_korg1212_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void snd_korg1212_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { int n; - korg1212_t *korg1212 = (korg1212_t *)entry->private_data; + struct snd_korg1212 *korg1212 = entry->private_data; snd_iprintf(buffer, korg1212->card->longname); snd_iprintf(buffer, " (index #%d)\n", korg1212->card->number + 1); @@ -2070,16 +2078,16 @@ static void snd_korg1212_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *b snd_iprintf(buffer, " Error count: %ld\n", korg1212->totalerrorcnt); } -static void __devinit snd_korg1212_proc_init(korg1212_t *korg1212) +static void __devinit snd_korg1212_proc_init(struct snd_korg1212 *korg1212) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(korg1212->card, "korg1212", &entry)) snd_info_set_text_ops(entry, korg1212, 1024, snd_korg1212_proc_read); } static int -snd_korg1212_free(korg1212_t *korg1212) +snd_korg1212_free(struct snd_korg1212 *korg1212) { snd_korg1212_TurnOffIdleMonitor(korg1212); @@ -2135,23 +2143,23 @@ snd_korg1212_free(korg1212_t *korg1212) return 0; } -static int snd_korg1212_dev_free(snd_device_t *device) +static int snd_korg1212_dev_free(struct snd_device *device) { - korg1212_t *korg1212 = device->device_data; + struct snd_korg1212 *korg1212 = device->device_data; K1212_DEBUG_PRINTK("K1212_DEBUG: Freeing device\n"); return snd_korg1212_free(korg1212); } -static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, - korg1212_t ** rchip) +static int __devinit snd_korg1212_create(struct snd_card *card, struct pci_dev *pci, + struct snd_korg1212 ** rchip) { int err, rc; unsigned int i; unsigned ioport_size, iomem_size, iomem2_size; - korg1212_t * korg1212; + struct snd_korg1212 * korg1212; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_korg1212_dev_free, }; @@ -2276,19 +2284,19 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, stateName[korg1212->cardState]); if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), - sizeof(KorgSharedBuffer), &korg1212->dma_shared) < 0) { - snd_printk(KERN_ERR "korg1212: can not allocate shared buffer memory (%Zd bytes)\n", sizeof(KorgSharedBuffer)); + sizeof(struct KorgSharedBuffer), &korg1212->dma_shared) < 0) { + snd_printk(KERN_ERR "korg1212: can not allocate shared buffer memory (%Zd bytes)\n", sizeof(struct KorgSharedBuffer)); snd_korg1212_free(korg1212); return -ENOMEM; } - korg1212->sharedBufferPtr = (KorgSharedBuffer *)korg1212->dma_shared.area; + korg1212->sharedBufferPtr = (struct KorgSharedBuffer *)korg1212->dma_shared.area; korg1212->sharedBufferPhy = korg1212->dma_shared.addr; - K1212_DEBUG_PRINTK("K1212_DEBUG: Shared Buffer Area = 0x%p (0x%08lx), %d bytes\n", korg1212->sharedBufferPtr, korg1212->sharedBufferPhy, sizeof(KorgSharedBuffer)); + K1212_DEBUG_PRINTK("K1212_DEBUG: Shared Buffer Area = 0x%p (0x%08lx), %d bytes\n", korg1212->sharedBufferPtr, korg1212->sharedBufferPhy, sizeof(struct KorgSharedBuffer)); #ifndef K1212_LARGEALLOC - korg1212->DataBufsSize = sizeof(KorgAudioBuffer) * kNumBuffers; + korg1212->DataBufsSize = sizeof(struct KorgAudioBuffer) * kNumBuffers; if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), korg1212->DataBufsSize, &korg1212->dma_play) < 0) { @@ -2296,7 +2304,7 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, snd_korg1212_free(korg1212); return -ENOMEM; } - korg1212->playDataBufsPtr = (KorgAudioBuffer *)korg1212->dma_play.area; + korg1212->playDataBufsPtr = (struct KorgAudioBuffer *)korg1212->dma_play.area; korg1212->PlayDataPhy = korg1212->dma_play.addr; K1212_DEBUG_PRINTK("K1212_DEBUG: Play Data Area = 0x%p (0x%08x), %d bytes\n", @@ -2308,7 +2316,7 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, snd_korg1212_free(korg1212); return -ENOMEM; } - korg1212->recordDataBufsPtr = (KorgAudioBuffer *)korg1212->dma_rec.area; + korg1212->recordDataBufsPtr = (struct KorgAudioBuffer *)korg1212->dma_rec.area; korg1212->RecDataPhy = korg1212->dma_rec.addr; K1212_DEBUG_PRINTK("K1212_DEBUG: Record Data Area = 0x%p (0x%08x), %d bytes\n", @@ -2318,19 +2326,19 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, korg1212->recordDataBufsPtr = korg1212->sharedBufferPtr->recordDataBufs; korg1212->playDataBufsPtr = korg1212->sharedBufferPtr->playDataBufs; - korg1212->PlayDataPhy = (u32) &((KorgSharedBuffer *) korg1212->sharedBufferPhy)->playDataBufs; - korg1212->RecDataPhy = (u32) &((KorgSharedBuffer *) korg1212->sharedBufferPhy)->recordDataBufs; + korg1212->PlayDataPhy = (u32) &((struct KorgSharedBuffer *) korg1212->sharedBufferPhy)->playDataBufs; + korg1212->RecDataPhy = (u32) &((struct KorgSharedBuffer *) korg1212->sharedBufferPhy)->recordDataBufs; #endif // K1212_LARGEALLOC korg1212->dspCodeSize = sizeof (dspCode); korg1212->VolumeTablePhy = korg1212->sharedBufferPhy + - offsetof(KorgSharedBuffer, volumeData); + offsetof(struct KorgSharedBuffer, volumeData); korg1212->RoutingTablePhy = korg1212->sharedBufferPhy + - offsetof(KorgSharedBuffer, routeData); + offsetof(struct KorgSharedBuffer, routeData); korg1212->AdatTimeCodePhy = korg1212->sharedBufferPhy + - offsetof(KorgSharedBuffer, AdatTimeCode); + offsetof(struct KorgSharedBuffer, AdatTimeCode); if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), korg1212->dspCodeSize, &korg1212->dma_dsp) < 0) { @@ -2360,7 +2368,7 @@ static int __devinit snd_korg1212_create(snd_card_t * card, struct pci_dev *pci, if (snd_korg1212_downloadDSPCode(korg1212)) return -EBUSY; - K1212_DEBUG_PRINTK("korg1212: dspMemPhy = %08x U[%08x], " + K1212_DEBUG_PRINTK("korg1212: dspMemPhy = %08x U[%08x], " "PlayDataPhy = %08x L[%08x]\n" "korg1212: RecDataPhy = %08x L[%08x], " "VolumeTablePhy = %08x L[%08x]\n" @@ -2410,8 +2418,8 @@ snd_korg1212_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - korg1212_t *korg1212; - snd_card_t *card; + struct snd_korg1212 *korg1212; + struct snd_card *card; int err; if (dev >= SNDRV_CARDS) { -- cgit v1.2.3-70-g09d2 From 67b48b880062ba1775f424c2dd2c68bc30ec180f Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:01:08 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI miXart Modules: MIXART driver Remove xxx_t typedefs from the PCI miXart driver. Signed-off-by: Takashi Iwai --- sound/pci/mixart/mixart.c | 211 +++++++++++++++++++++------------------- sound/pci/mixart/mixart.h | 69 +++++-------- sound/pci/mixart/mixart_core.c | 49 +++++----- sound/pci/mixart/mixart_core.h | 120 ++++++++--------------- sound/pci/mixart/mixart_hwdep.c | 76 +++++++-------- sound/pci/mixart/mixart_hwdep.h | 2 +- sound/pci/mixart/mixart_mixer.c | 108 ++++++++++---------- sound/pci/mixart/mixart_mixer.h | 6 +- 8 files changed, 300 insertions(+), 341 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c index b3090a13eda..b218e1d20c7 100644 --- a/sound/pci/mixart/mixart.c +++ b/sound/pci/mixart/mixart.c @@ -66,11 +66,12 @@ static struct pci_device_id snd_mixart_ids[] = { MODULE_DEVICE_TABLE(pci, snd_mixart_ids); -static int mixart_set_pipe_state(mixart_mgr_t *mgr, mixart_pipe_t* pipe, int start) +static int mixart_set_pipe_state(struct mixart_mgr *mgr, + struct mixart_pipe *pipe, int start) { - mixart_group_state_req_t group_state; - mixart_group_state_resp_t group_state_resp; - mixart_msg_t request; + struct mixart_group_state_req group_state; + struct mixart_group_state_resp group_state_resp; + struct mixart_msg request; int err; u32 system_msg_uid; @@ -92,7 +93,7 @@ static int mixart_set_pipe_state(mixart_mgr_t *mgr, mixart_pipe_t* pipe, int sta /* wait on the last MSG_SYSTEM_SEND_SYNCHRO_CMD command to be really finished */ request.message_id = MSG_SYSTEM_WAIT_SYNCHRO_CMD; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = &system_msg_uid; request.size = sizeof(system_msg_uid); @@ -113,7 +114,7 @@ static int mixart_set_pipe_state(mixart_mgr_t *mgr, mixart_pipe_t* pipe, int sta else request.message_id = MSG_STREAM_STOP_STREAM_GRP_PACKET; - request.uid = pipe->group_uid; /*(mixart_uid_t){0,0};*/ + request.uid = pipe->group_uid; /*(struct mixart_uid){0,0};*/ request.data = &group_state; request.size = sizeof(group_state); @@ -137,7 +138,7 @@ static int mixart_set_pipe_state(mixart_mgr_t *mgr, mixart_pipe_t* pipe, int sta /* in case of start send a synchro top */ request.message_id = MSG_SYSTEM_SEND_SYNCHRO_CMD; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = NULL; request.size = 0; @@ -156,11 +157,12 @@ static int mixart_set_pipe_state(mixart_mgr_t *mgr, mixart_pipe_t* pipe, int sta } -static int mixart_set_clock(mixart_mgr_t *mgr, mixart_pipe_t *pipe, unsigned int rate) +static int mixart_set_clock(struct mixart_mgr *mgr, + struct mixart_pipe *pipe, unsigned int rate) { - mixart_msg_t request; - mixart_clock_properties_t clock_properties; - mixart_clock_properties_resp_t clock_prop_resp; + struct mixart_msg request; + struct mixart_clock_properties clock_properties; + struct mixart_clock_properties_resp clock_prop_resp; int err; switch(pipe->status) { @@ -208,11 +210,13 @@ static int mixart_set_clock(mixart_mgr_t *mgr, mixart_pipe_t *pipe, unsigned int /* * Allocate or reference output pipe for analog IOs (pcmp0/1) */ -mixart_pipe_t* snd_mixart_add_ref_pipe( mixart_t *chip, int pcm_number, int capture, int monitoring) +struct mixart_pipe * +snd_mixart_add_ref_pipe(struct snd_mixart *chip, int pcm_number, int capture, + int monitoring) { int stream_count; - mixart_pipe_t *pipe; - mixart_msg_t request; + struct mixart_pipe *pipe; + struct mixart_msg request; if(capture) { if (pcm_number == MIXART_PCM_ANALOG) { @@ -241,8 +245,8 @@ mixart_pipe_t* snd_mixart_add_ref_pipe( mixart_t *chip, int pcm_number, int capt if( pipe->status == PIPE_UNDEFINED ) { int err, i; struct { - mixart_streaming_group_req_t sgroup_req; - mixart_streaming_group_t sgroup_resp; + struct mixart_streaming_group_req sgroup_req; + struct mixart_streaming_group sgroup_resp; } *buf; snd_printdd("add_ref_pipe audio chip(%d) pcm(%d)\n", chip->chip_idx, pcm_number); @@ -251,7 +255,7 @@ mixart_pipe_t* snd_mixart_add_ref_pipe( mixart_t *chip, int pcm_number, int capt if (!buf) return NULL; - request.uid = (mixart_uid_t){0,0}; /* should be StreamManagerUID, but zero is OK if there is only one ! */ + request.uid = (struct mixart_uid){0,0}; /* should be StreamManagerUID, but zero is OK if there is only one ! */ request.data = &buf->sgroup_req; request.size = sizeof(buf->sgroup_req); @@ -279,7 +283,7 @@ mixart_pipe_t* snd_mixart_add_ref_pipe( mixart_t *chip, int pcm_number, int capt buf->sgroup_req.flow_entry[i] = j; flowinfo = (struct mixart_flowinfo *)chip->mgr->flowinfo.area; - flowinfo[j].bufferinfo_array_phy_address = (u32)chip->mgr->bufferinfo.addr + (j * sizeof(mixart_bufferinfo_t)); + flowinfo[j].bufferinfo_array_phy_address = (u32)chip->mgr->bufferinfo.addr + (j * sizeof(struct mixart_bufferinfo)); flowinfo[j].bufferinfo_count = 1; /* 1 will set the miXart to ring-buffer mode ! */ bufferinfo = (struct mixart_bufferinfo *)chip->mgr->bufferinfo.area; @@ -315,7 +319,8 @@ mixart_pipe_t* snd_mixart_add_ref_pipe( mixart_t *chip, int pcm_number, int capt } -int snd_mixart_kill_ref_pipe( mixart_mgr_t *mgr, mixart_pipe_t *pipe, int monitoring) +int snd_mixart_kill_ref_pipe(struct mixart_mgr *mgr, + struct mixart_pipe *pipe, int monitoring) { int err = 0; @@ -329,8 +334,8 @@ int snd_mixart_kill_ref_pipe( mixart_mgr_t *mgr, mixart_pipe_t *pipe, int monito if((pipe->references <= 0) && (pipe->monitoring == 0)) { - mixart_msg_t request; - mixart_delete_group_resp_t delete_resp; + struct mixart_msg request; + struct mixart_delete_group_resp delete_resp; /* release the clock */ err = mixart_set_clock( mgr, pipe, 0); @@ -345,7 +350,7 @@ int snd_mixart_kill_ref_pipe( mixart_mgr_t *mgr, mixart_pipe_t *pipe, int monito } request.message_id = MSG_STREAM_DELETE_GROUP; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = &pipe->group_uid; /* the streaming group ! */ request.size = sizeof(pipe->group_uid); @@ -355,7 +360,7 @@ int snd_mixart_kill_ref_pipe( mixart_mgr_t *mgr, mixart_pipe_t *pipe, int monito snd_printk(KERN_ERR "error MSG_STREAM_DELETE_GROUP err(%x), status(%x)\n", err, delete_resp.status); } - pipe->group_uid = (mixart_uid_t){0,0}; + pipe->group_uid = (struct mixart_uid){0,0}; pipe->stream_count = 0; pipe->status = PIPE_UNDEFINED; } @@ -363,11 +368,11 @@ int snd_mixart_kill_ref_pipe( mixart_mgr_t *mgr, mixart_pipe_t *pipe, int monito return err; } -static int mixart_set_stream_state(mixart_stream_t *stream, int start) +static int mixart_set_stream_state(struct mixart_stream *stream, int start) { - mixart_t *chip; - mixart_stream_state_req_t stream_state_req; - mixart_msg_t request; + struct snd_mixart *chip; + struct mixart_stream_state_req stream_state_req; + struct mixart_msg request; if(!stream->substream) return -EINVAL; @@ -382,7 +387,7 @@ static int mixart_set_stream_state(mixart_stream_t *stream, int start) else request.message_id = start ? MSG_STREAM_START_OUTPUT_STAGE_PACKET : MSG_STREAM_STOP_OUTPUT_STAGE_PACKET; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = &stream_state_req; request.size = sizeof(stream_state_req); @@ -399,9 +404,9 @@ static int mixart_set_stream_state(mixart_stream_t *stream, int start) * Trigger callback */ -static int snd_mixart_trigger(snd_pcm_substream_t *subs, int cmd) +static int snd_mixart_trigger(struct snd_pcm_substream *subs, int cmd) { - mixart_stream_t *stream = (mixart_stream_t*)subs->runtime->private_data; + struct mixart_stream *stream = subs->runtime->private_data; switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -443,7 +448,7 @@ static int snd_mixart_trigger(snd_pcm_substream_t *subs, int cmd) return 0; } -static int mixart_sync_nonblock_events(mixart_mgr_t *mgr) +static int mixart_sync_nonblock_events(struct mixart_mgr *mgr) { unsigned long timeout = jiffies + HZ; while (atomic_read(&mgr->msg_processed) > 0) { @@ -459,10 +464,10 @@ static int mixart_sync_nonblock_events(mixart_mgr_t *mgr) /* * prepare callback for all pcms */ -static int snd_mixart_prepare(snd_pcm_substream_t *subs) +static int snd_mixart_prepare(struct snd_pcm_substream *subs) { - mixart_t *chip = snd_pcm_substream_chip(subs); - mixart_stream_t *stream = (mixart_stream_t*)subs->runtime->private_data; + struct snd_mixart *chip = snd_pcm_substream_chip(subs); + struct mixart_stream *stream = subs->runtime->private_data; /* TODO de façon non bloquante, réappliquer les hw_params (rate, bits, codec) */ @@ -485,13 +490,13 @@ static int snd_mixart_prepare(snd_pcm_substream_t *subs) } -static int mixart_set_format(mixart_stream_t *stream, snd_pcm_format_t format) +static int mixart_set_format(struct mixart_stream *stream, snd_pcm_format_t format) { int err; - mixart_t *chip; - mixart_msg_t request; - mixart_stream_param_desc_t stream_param; - mixart_return_uid_t resp; + struct snd_mixart *chip; + struct mixart_msg request; + struct mixart_stream_param_desc stream_param; + struct mixart_return_uid resp; chip = snd_pcm_substream_chip(stream->substream); @@ -552,7 +557,7 @@ static int mixart_set_format(mixart_stream_t *stream, snd_pcm_format_t format) stream_param.stream_desc[0].stream_idx = stream->substream->number; request.message_id = MSG_STREAM_SET_INPUT_STAGE_PARAM; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = &stream_param; request.size = sizeof(stream_param); @@ -568,12 +573,12 @@ static int mixart_set_format(mixart_stream_t *stream, snd_pcm_format_t format) /* * HW_PARAMS callback for all pcms */ -static int snd_mixart_hw_params(snd_pcm_substream_t *subs, - snd_pcm_hw_params_t *hw) +static int snd_mixart_hw_params(struct snd_pcm_substream *subs, + struct snd_pcm_hw_params *hw) { - mixart_t *chip = snd_pcm_substream_chip(subs); - mixart_mgr_t *mgr = chip->mgr; - mixart_stream_t *stream = (mixart_stream_t*)subs->runtime->private_data; + struct snd_mixart *chip = snd_pcm_substream_chip(subs); + struct mixart_mgr *mgr = chip->mgr; + struct mixart_stream *stream = subs->runtime->private_data; snd_pcm_format_t format; int err; int channels; @@ -628,9 +633,9 @@ static int snd_mixart_hw_params(snd_pcm_substream_t *subs, return err; } -static int snd_mixart_hw_free(snd_pcm_substream_t *subs) +static int snd_mixart_hw_free(struct snd_pcm_substream *subs) { - mixart_t *chip = snd_pcm_substream_chip(subs); + struct snd_mixart *chip = snd_pcm_substream_chip(subs); snd_pcm_lib_free_pages(subs); mixart_sync_nonblock_events(chip->mgr); return 0; @@ -641,7 +646,7 @@ static int snd_mixart_hw_free(snd_pcm_substream_t *subs) /* * TODO CONFIGURATION SPACE for all pcms, mono pcm must update channels_max */ -static snd_pcm_hardware_t snd_mixart_analog_caps = +static struct snd_pcm_hardware snd_mixart_analog_caps = { .info = ( SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START | @@ -662,7 +667,7 @@ static snd_pcm_hardware_t snd_mixart_analog_caps = .periods_max = (32*1024/256), }; -static snd_pcm_hardware_t snd_mixart_digital_caps = +static struct snd_pcm_hardware snd_mixart_digital_caps = { .info = ( SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START | @@ -684,14 +689,14 @@ static snd_pcm_hardware_t snd_mixart_digital_caps = }; -static int snd_mixart_playback_open(snd_pcm_substream_t *subs) +static int snd_mixart_playback_open(struct snd_pcm_substream *subs) { - mixart_t *chip = snd_pcm_substream_chip(subs); - mixart_mgr_t *mgr = chip->mgr; - snd_pcm_runtime_t *runtime = subs->runtime; - snd_pcm_t *pcm = subs->pcm; - mixart_stream_t *stream; - mixart_pipe_t *pipe; + struct snd_mixart *chip = snd_pcm_substream_chip(subs); + struct mixart_mgr *mgr = chip->mgr; + struct snd_pcm_runtime *runtime = subs->runtime; + struct snd_pcm *pcm = subs->pcm; + struct mixart_stream *stream; + struct mixart_pipe *pipe; int err = 0; int pcm_number; @@ -759,14 +764,14 @@ static int snd_mixart_playback_open(snd_pcm_substream_t *subs) } -static int snd_mixart_capture_open(snd_pcm_substream_t *subs) +static int snd_mixart_capture_open(struct snd_pcm_substream *subs) { - mixart_t *chip = snd_pcm_substream_chip(subs); - mixart_mgr_t *mgr = chip->mgr; - snd_pcm_runtime_t *runtime = subs->runtime; - snd_pcm_t *pcm = subs->pcm; - mixart_stream_t *stream; - mixart_pipe_t *pipe; + struct snd_mixart *chip = snd_pcm_substream_chip(subs); + struct mixart_mgr *mgr = chip->mgr; + struct snd_pcm_runtime *runtime = subs->runtime; + struct snd_pcm *pcm = subs->pcm; + struct mixart_stream *stream; + struct mixart_pipe *pipe; int err = 0; int pcm_number; @@ -838,11 +843,11 @@ static int snd_mixart_capture_open(snd_pcm_substream_t *subs) -static int snd_mixart_close(snd_pcm_substream_t *subs) +static int snd_mixart_close(struct snd_pcm_substream *subs) { - mixart_t *chip = snd_pcm_substream_chip(subs); - mixart_mgr_t *mgr = chip->mgr; - mixart_stream_t *stream = (mixart_stream_t*)subs->runtime->private_data; + struct snd_mixart *chip = snd_pcm_substream_chip(subs); + struct mixart_mgr *mgr = chip->mgr; + struct mixart_stream *stream = subs->runtime->private_data; down(&mgr->setup_mutex); @@ -868,17 +873,17 @@ static int snd_mixart_close(snd_pcm_substream_t *subs) } -static snd_pcm_uframes_t snd_mixart_stream_pointer(snd_pcm_substream_t * subs) +static snd_pcm_uframes_t snd_mixart_stream_pointer(struct snd_pcm_substream *subs) { - snd_pcm_runtime_t *runtime = subs->runtime; - mixart_stream_t *stream = (mixart_stream_t*)runtime->private_data; + struct snd_pcm_runtime *runtime = subs->runtime; + struct mixart_stream *stream = runtime->private_data; return (snd_pcm_uframes_t)((stream->buf_periods * runtime->period_size) + stream->buf_period_frag); } -static snd_pcm_ops_t snd_mixart_playback_ops = { +static struct snd_pcm_ops snd_mixart_playback_ops = { .open = snd_mixart_playback_open, .close = snd_mixart_close, .ioctl = snd_pcm_lib_ioctl, @@ -889,7 +894,7 @@ static snd_pcm_ops_t snd_mixart_playback_ops = { .pointer = snd_mixart_stream_pointer, }; -static snd_pcm_ops_t snd_mixart_capture_ops = { +static struct snd_pcm_ops snd_mixart_capture_ops = { .open = snd_mixart_capture_open, .close = snd_mixart_close, .ioctl = snd_pcm_lib_ioctl, @@ -900,10 +905,10 @@ static snd_pcm_ops_t snd_mixart_capture_ops = { .pointer = snd_mixart_stream_pointer, }; -static void preallocate_buffers(mixart_t *chip, snd_pcm_t *pcm) +static void preallocate_buffers(struct snd_mixart *chip, struct snd_pcm *pcm) { #if 0 - snd_pcm_substream_t *subs; + struct snd_pcm_substream *subs; int stream; for (stream = 0; stream < 2; stream++) { @@ -921,10 +926,10 @@ static void preallocate_buffers(mixart_t *chip, snd_pcm_t *pcm) /* */ -static int snd_mixart_pcm_analog(mixart_t *chip) +static int snd_mixart_pcm_analog(struct snd_mixart *chip) { int err; - snd_pcm_t *pcm; + struct snd_pcm *pcm; char name[32]; sprintf(name, "miXart analog %d", chip->chip_idx); @@ -952,10 +957,10 @@ static int snd_mixart_pcm_analog(mixart_t *chip) /* */ -static int snd_mixart_pcm_digital(mixart_t *chip) +static int snd_mixart_pcm_digital(struct snd_mixart *chip) { int err; - snd_pcm_t *pcm; + struct snd_pcm *pcm; char name[32]; sprintf(name, "miXart AES/EBU %d", chip->chip_idx); @@ -980,26 +985,26 @@ static int snd_mixart_pcm_digital(mixart_t *chip) return 0; } -static int snd_mixart_chip_free(mixart_t *chip) +static int snd_mixart_chip_free(struct snd_mixart *chip) { kfree(chip); return 0; } -static int snd_mixart_chip_dev_free(snd_device_t *device) +static int snd_mixart_chip_dev_free(struct snd_device *device) { - mixart_t *chip = device->device_data; + struct snd_mixart *chip = device->device_data; return snd_mixart_chip_free(chip); } /* */ -static int __devinit snd_mixart_create(mixart_mgr_t *mgr, snd_card_t *card, int idx) +static int __devinit snd_mixart_create(struct mixart_mgr *mgr, struct snd_card *card, int idx) { int err; - mixart_t *chip; - static snd_device_ops_t ops = { + struct snd_mixart *chip; + static struct snd_device_ops ops = { .dev_free = snd_mixart_chip_dev_free, }; @@ -1023,7 +1028,7 @@ static int __devinit snd_mixart_create(mixart_mgr_t *mgr, snd_card_t *card, int return 0; } -int snd_mixart_create_pcm(mixart_t* chip) +int snd_mixart_create_pcm(struct snd_mixart* chip) { int err; @@ -1044,7 +1049,7 @@ int snd_mixart_create_pcm(mixart_t* chip) /* * release all the cards assigned to a manager instance */ -static int snd_mixart_free(mixart_mgr_t *mgr) +static int snd_mixart_free(struct mixart_mgr *mgr) { unsigned int i; @@ -1092,7 +1097,7 @@ static int snd_mixart_free(mixart_mgr_t *mgr) /* * proc interface */ -static long long snd_mixart_BA0_llseek(snd_info_entry_t *entry, +static long long snd_mixart_BA0_llseek(struct snd_info_entry *entry, void *private_file_data, struct file *file, long long offset, @@ -1118,7 +1123,7 @@ static long long snd_mixart_BA0_llseek(snd_info_entry_t *entry, return file->f_pos; } -static long long snd_mixart_BA1_llseek(snd_info_entry_t *entry, +static long long snd_mixart_BA1_llseek(struct snd_info_entry *entry, void *private_file_data, struct file *file, long long offset, @@ -1147,11 +1152,11 @@ static long long snd_mixart_BA1_llseek(snd_info_entry_t *entry, /* mixart_BA0 proc interface for BAR 0 - read callback */ -static long snd_mixart_BA0_read(snd_info_entry_t *entry, void *file_private_data, +static long snd_mixart_BA0_read(struct snd_info_entry *entry, void *file_private_data, struct file *file, char __user *buf, unsigned long count, unsigned long pos) { - mixart_mgr_t *mgr = entry->private_data; + struct mixart_mgr *mgr = entry->private_data; count = count & ~3; /* make sure the read size is a multiple of 4 bytes */ if(count <= 0) @@ -1166,11 +1171,11 @@ static long snd_mixart_BA0_read(snd_info_entry_t *entry, void *file_private_data /* mixart_BA1 proc interface for BAR 1 - read callback */ -static long snd_mixart_BA1_read(snd_info_entry_t *entry, void *file_private_data, +static long snd_mixart_BA1_read(struct snd_info_entry *entry, void *file_private_data, struct file *file, char __user *buf, unsigned long count, unsigned long pos) { - mixart_mgr_t *mgr = entry->private_data; + struct mixart_mgr *mgr = entry->private_data; count = count & ~3; /* make sure the read size is a multiple of 4 bytes */ if(count <= 0) @@ -1193,10 +1198,10 @@ static struct snd_info_entry_ops snd_mixart_proc_ops_BA1 = { }; -static void snd_mixart_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_mixart_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - mixart_t *chip = entry->private_data; + struct snd_mixart *chip = entry->private_data; u32 ref; snd_iprintf(buffer, "Digigram miXart (alsa card %d)\n\n", chip->chip_idx); @@ -1229,9 +1234,9 @@ static void snd_mixart_proc_read(snd_info_entry_t *entry, } /* endif elf loaded */ } -static void __devinit snd_mixart_proc_init(mixart_t *chip) +static void __devinit snd_mixart_proc_init(struct snd_mixart *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; /* text interface to read perf and temp meters */ if (! snd_card_proc_new(chip->card, "board_info", &entry)) { @@ -1263,7 +1268,7 @@ static int __devinit snd_mixart_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - mixart_mgr_t *mgr; + struct mixart_mgr *mgr; unsigned int i; int err; size_t size; @@ -1338,12 +1343,12 @@ static int __devinit snd_mixart_probe(struct pci_dev *pci, init_MUTEX(&mgr->setup_mutex); /* init message taslket */ - tasklet_init( &mgr->msg_taskq, snd_mixart_msg_tasklet, (unsigned long) mgr); + tasklet_init(&mgr->msg_taskq, snd_mixart_msg_tasklet, (unsigned long) mgr); /* card assignment */ mgr->num_cards = MIXART_MAX_CARDS; /* 4 FIXME: configurable? */ for (i = 0; i < mgr->num_cards; i++) { - snd_card_t *card; + struct snd_card *card; char tmpid[16]; int idx; @@ -1384,7 +1389,8 @@ static int __devinit snd_mixart_probe(struct pci_dev *pci, mgr->board_type = MIXART_DAUGHTER_TYPE_NONE; /* create array of streaminfo */ - size = PAGE_ALIGN( (MIXART_MAX_STREAM_PER_CARD * MIXART_MAX_CARDS * sizeof(mixart_flowinfo_t)) ); + size = PAGE_ALIGN( (MIXART_MAX_STREAM_PER_CARD * MIXART_MAX_CARDS * + sizeof(struct mixart_flowinfo)) ); if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), size, &mgr->flowinfo) < 0) { snd_mixart_free(mgr); @@ -1394,7 +1400,8 @@ static int __devinit snd_mixart_probe(struct pci_dev *pci, memset(mgr->flowinfo.area, 0, size); /* create array of bufferinfo */ - size = PAGE_ALIGN( (MIXART_MAX_STREAM_PER_CARD * MIXART_MAX_CARDS * sizeof(mixart_bufferinfo_t)) ); + size = PAGE_ALIGN( (MIXART_MAX_STREAM_PER_CARD * MIXART_MAX_CARDS * + sizeof(struct mixart_bufferinfo)) ); if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), size, &mgr->bufferinfo) < 0) { snd_mixart_free(mgr); diff --git a/sound/pci/mixart/mixart.h b/sound/pci/mixart/mixart.h index f87152f94c0..3e84863ca02 100644 --- a/sound/pci/mixart/mixart.h +++ b/sound/pci/mixart/mixart.h @@ -32,21 +32,7 @@ /* */ -#define mixart_t_magic 0xa17a3e01 -#define mixart_mgr_t_magic 0xa17a3e02 - -typedef struct snd_mixart mixart_t; -typedef struct snd_mixart_mgr mixart_mgr_t; - -typedef struct snd_mixart_stream mixart_stream_t; -typedef struct snd_mixart_pipe mixart_pipe_t; - -typedef struct mixart_bufferinfo mixart_bufferinfo_t; -typedef struct mixart_flowinfo mixart_flowinfo_t; -typedef struct mixart_uid mixart_uid_t; - -struct mixart_uid -{ +struct mixart_uid { u32 object_id; u32 desc; }; @@ -58,7 +44,6 @@ struct mem_area { }; -typedef struct mixart_route mixart_route_t; struct mixart_route { unsigned char connected; unsigned char phase_inv; @@ -77,9 +62,9 @@ struct mixart_route { #define MIXART_MAX_PHYS_CONNECTORS (MIXART_MAX_CARDS * 2 * 2) /* 4 * stereo * (analog+digital) */ -struct snd_mixart_mgr { +struct mixart_mgr { unsigned int num_cards; - mixart_t *chip[MIXART_MAX_CARDS]; + struct snd_mixart *chip[MIXART_MAX_CARDS]; struct pci_dev *pci; @@ -118,7 +103,7 @@ struct snd_mixart_mgr { struct snd_dma_buffer flowinfo; struct snd_dma_buffer bufferinfo; - mixart_uid_t uid_console_manager; + struct mixart_uid uid_console_manager; int sample_rate; int ref_count_rate; @@ -151,9 +136,9 @@ struct snd_mixart_mgr { #define MIXART_NOTIFY_SUBS_MASK 0x007F -struct snd_mixart_stream { - snd_pcm_substream_t *substream; - mixart_pipe_t *pipe; +struct mixart_stream { + struct snd_pcm_substream *substream; + struct mixart_pipe *pipe; int pcm_number; int status; /* nothing, running, draining */ @@ -173,11 +158,11 @@ enum mixart_pipe_status { PIPE_CLOCK_SET }; -struct snd_mixart_pipe { - mixart_uid_t group_uid; /* id of the pipe, as returned by embedded */ +struct mixart_pipe { + struct mixart_uid group_uid; /* id of the pipe, as returned by embedded */ int stream_count; - mixart_uid_t uid_left_connector; /* UID's for the audio connectors */ - mixart_uid_t uid_right_connector; + struct mixart_uid uid_left_connector; /* UID's for the audio connectors */ + struct mixart_uid uid_right_connector; enum mixart_pipe_status status; int references; /* number of subs openned */ int monitoring; /* pipe used for monitoring issue */ @@ -185,28 +170,28 @@ struct snd_mixart_pipe { struct snd_mixart { - snd_card_t *card; - mixart_mgr_t *mgr; + struct snd_card *card; + struct mixart_mgr *mgr; int chip_idx; /* zero based */ - snd_hwdep_t *hwdep; /* DSP loader, only for the first card */ + struct snd_hwdep *hwdep; /* DSP loader, only for the first card */ - snd_pcm_t *pcm; /* PCM analog i/o */ - snd_pcm_t *pcm_dig; /* PCM digital i/o */ + struct snd_pcm *pcm; /* PCM analog i/o */ + struct snd_pcm *pcm_dig; /* PCM digital i/o */ /* allocate stereo pipe for instance */ - mixart_pipe_t pipe_in_ana; - mixart_pipe_t pipe_out_ana; + struct mixart_pipe pipe_in_ana; + struct mixart_pipe pipe_out_ana; /* if AES/EBU daughter board is available, additional pipes possible on pcm_dig */ - mixart_pipe_t pipe_in_dig; - mixart_pipe_t pipe_out_dig; + struct mixart_pipe pipe_in_dig; + struct mixart_pipe pipe_out_dig; - mixart_stream_t playback_stream[MIXART_PCM_TOTAL][MIXART_PLAYBACK_STREAMS]; /* 0 = pcm, 1 = pcm_dig */ - mixart_stream_t capture_stream[MIXART_PCM_TOTAL]; /* 0 = pcm, 1 = pcm_dig */ + struct mixart_stream playback_stream[MIXART_PCM_TOTAL][MIXART_PLAYBACK_STREAMS]; /* 0 = pcm, 1 = pcm_dig */ + struct mixart_stream capture_stream[MIXART_PCM_TOTAL]; /* 0 = pcm, 1 = pcm_dig */ /* UID's for the physical io's */ - mixart_uid_t uid_out_analog_physio; - mixart_uid_t uid_in_analog_physio; + struct mixart_uid uid_out_analog_physio; + struct mixart_uid uid_in_analog_physio; int analog_playback_active[2]; /* Mixer : Master Playback active (!mute) */ int analog_playback_volume[2]; /* Mixer : Master Playback Volume */ @@ -235,8 +220,8 @@ struct mixart_flowinfo }; /* exported */ -int snd_mixart_create_pcm(mixart_t* chip); -mixart_pipe_t* snd_mixart_add_ref_pipe( mixart_t *chip, int pcm_number, int capture, int monitoring); -int snd_mixart_kill_ref_pipe( mixart_mgr_t *mgr, mixart_pipe_t *pipe, int monitoring); +int snd_mixart_create_pcm(struct snd_mixart * chip); +struct mixart_pipe *snd_mixart_add_ref_pipe(struct snd_mixart *chip, int pcm_number, int capture, int monitoring); +int snd_mixart_kill_ref_pipe(struct mixart_mgr *mgr, struct mixart_pipe *pipe, int monitoring); #endif /* __SOUND_MIXART_H */ diff --git a/sound/pci/mixart/mixart_core.c b/sound/pci/mixart/mixart_core.c index ba0027f5094..07c707d7ebb 100644 --- a/sound/pci/mixart/mixart_core.c +++ b/sound/pci/mixart/mixart_core.c @@ -44,7 +44,7 @@ #define MSG_CANCEL_NOTIFY_MASK 0x80000000 /* this bit is set for a notification that has been canceled */ -static int retrieve_msg_frame(mixart_mgr_t *mgr, u32 *msg_frame) +static int retrieve_msg_frame(struct mixart_mgr *mgr, u32 *msg_frame) { /* read the message frame fifo */ u32 headptr, tailptr; @@ -69,7 +69,8 @@ static int retrieve_msg_frame(mixart_mgr_t *mgr, u32 *msg_frame) return 1; } -static int get_msg(mixart_mgr_t *mgr, mixart_msg_t *resp, u32 msg_frame_address ) +static int get_msg(struct mixart_mgr *mgr, struct mixart_msg *resp, + u32 msg_frame_address ) { unsigned long flags; u32 headptr; @@ -137,8 +138,8 @@ static int get_msg(mixart_mgr_t *mgr, mixart_msg_t *resp, u32 msg_frame_address * send a message to miXart. return: the msg_frame used for this message */ /* call with mgr->msg_lock held! */ -static int send_msg( mixart_mgr_t *mgr, - mixart_msg_t *msg, +static int send_msg( struct mixart_mgr *mgr, + struct mixart_msg *msg, int max_answersize, int mark_pending, u32 *msg_event) @@ -230,9 +231,9 @@ static int send_msg( mixart_mgr_t *mgr, } -int snd_mixart_send_msg(mixart_mgr_t *mgr, mixart_msg_t *request, int max_resp_size, void *resp_data) +int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int max_resp_size, void *resp_data) { - mixart_msg_t resp; + struct mixart_msg resp; u32 msg_frame = 0; /* set to 0, so it's no notification to wait for, but the answer */ int err; wait_queue_t wait; @@ -264,9 +265,9 @@ int snd_mixart_send_msg(mixart_mgr_t *mgr, mixart_msg_t *request, int max_resp_s return -EIO; } - /* retrieve the answer into the same mixart_msg_t */ + /* retrieve the answer into the same struct mixart_msg */ resp.message_id = 0; - resp.uid = (mixart_uid_t){0,0}; + resp.uid = (struct mixart_uid){0,0}; resp.data = resp_data; resp.size = max_resp_size; @@ -280,7 +281,8 @@ int snd_mixart_send_msg(mixart_mgr_t *mgr, mixart_msg_t *request, int max_resp_s } -int snd_mixart_send_msg_wait_notif(mixart_mgr_t *mgr, mixart_msg_t *request, u32 notif_event) +int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr, + struct mixart_msg *request, u32 notif_event) { int err; wait_queue_t wait; @@ -321,7 +323,7 @@ int snd_mixart_send_msg_wait_notif(mixart_mgr_t *mgr, mixart_msg_t *request, u32 } -int snd_mixart_send_msg_nonblock(mixart_mgr_t *mgr, mixart_msg_t *request) +int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request) { u32 message_frame; unsigned long flags; @@ -332,7 +334,7 @@ int snd_mixart_send_msg_nonblock(mixart_mgr_t *mgr, mixart_msg_t *request) err = send_msg(mgr, request, MSG_DEFAULT_SIZE, 0, &message_frame); spin_unlock_irqrestore(&mgr->msg_lock, flags); - /* the answer will be handled by snd_mixart_msg_tasklet() */ + /* the answer will be handled by snd_struct mixart_msgasklet() */ atomic_inc(&mgr->msg_processed); return err; @@ -343,10 +345,10 @@ int snd_mixart_send_msg_nonblock(mixart_mgr_t *mgr, mixart_msg_t *request) static u32 mixart_msg_data[MSG_DEFAULT_SIZE / 4]; -void snd_mixart_msg_tasklet( unsigned long arg) +void snd_mixart_msg_tasklet(unsigned long arg) { - mixart_mgr_t *mgr = ( mixart_mgr_t*)(arg); - mixart_msg_t resp; + struct mixart_mgr *mgr = ( struct mixart_mgr*)(arg); + struct mixart_msg resp; u32 msg, addr, type; int err; @@ -406,9 +408,9 @@ void snd_mixart_msg_tasklet( unsigned long arg) irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - mixart_mgr_t *mgr = dev_id; + struct mixart_mgr *mgr = dev_id; int err; - mixart_msg_t resp; + struct mixart_msg resp; u32 msg; u32 it_reg; @@ -448,7 +450,8 @@ irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs) if(resp.message_id == MSG_SERVICES_TIMER_NOTIFY) { int i; - mixart_timer_notify_t *notify = (mixart_timer_notify_t*)mixart_msg_data; + struct mixart_timer_notify *notify; + notify = (struct mixart_timer_notify *)mixart_msg_data; for(i=0; istream_count; i++) { @@ -458,8 +461,8 @@ irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs) unsigned int sub_number = buffer_id & MIXART_NOTIFY_SUBS_MASK; /* 0 to MIXART_PLAYBACK_STREAMS */ unsigned int is_capture = ((buffer_id & MIXART_NOTIFY_CAPT_MASK) != 0); /* playback == 0 / capture == 1 */ - mixart_t *chip = mgr->chip[chip_number]; - mixart_stream_t *stream; + struct snd_mixart *chip = mgr->chip[chip_number]; + struct mixart_stream *stream; if ((chip_number >= mgr->num_cards) || (pcm_number >= MIXART_PCM_TOTAL) || (sub_number >= MIXART_PLAYBACK_STREAMS)) { snd_printk(KERN_ERR "error MSG_SERVICES_TIMER_NOTIFY buffer_id (%x) pos(%d)\n", @@ -473,7 +476,7 @@ irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs) stream = &chip->playback_stream[pcm_number][sub_number]; if (stream->substream && (stream->status == MIXART_STREAM_STATUS_RUNNING)) { - snd_pcm_runtime_t *runtime = stream->substream->runtime; + struct snd_pcm_runtime *runtime = stream->substream->runtime; int elapsed = 0; u64 sample_count = ((u64)notify->streams[i].sample_pos_high_part) << 32; sample_count |= notify->streams[i].sample_pos_low_part; @@ -561,7 +564,7 @@ irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs) } -void snd_mixart_init_mailbox(mixart_mgr_t *mgr) +void snd_mixart_init_mailbox(struct mixart_mgr *mgr) { writel( 0, MIXART_MEM( mgr, MSG_HOST_RSC_PROTECTION ) ); writel( 0, MIXART_MEM( mgr, MSG_AGENT_RSC_PROTECTION ) ); @@ -573,14 +576,14 @@ void snd_mixart_init_mailbox(mixart_mgr_t *mgr) return; } -void snd_mixart_exit_mailbox(mixart_mgr_t *mgr) +void snd_mixart_exit_mailbox(struct mixart_mgr *mgr) { /* no more interrupts on outbound messagebox */ writel_le( MIXART_HOST_ALL_INTERRUPT_MASKED, MIXART_REG( mgr, MIXART_PCI_OMIMR_OFFSET)); return; } -void snd_mixart_reset_board(mixart_mgr_t *mgr) +void snd_mixart_reset_board(struct mixart_mgr *mgr) { /* reset miXart */ writel_be( 1, MIXART_REG(mgr, MIXART_BA1_BRUTAL_RESET_OFFSET) ); diff --git a/sound/pci/mixart/mixart_core.h b/sound/pci/mixart/mixart_core.h index 99450eba15c..1fe2bcfcc57 100644 --- a/sound/pci/mixart/mixart_core.h +++ b/sound/pci/mixart/mixart_core.h @@ -63,25 +63,23 @@ enum mixart_message_id { }; -typedef struct mixart_msg mixart_msg_t; struct mixart_msg { u32 message_id; - mixart_uid_t uid; + struct mixart_uid uid; void* data; size_t size; }; /* structs used to communicate with miXart */ -typedef struct mixart_enum_connector_resp mixart_enum_connector_resp_t; struct mixart_enum_connector_resp { u32 error_code; u32 first_uid_offset; u32 uid_count; u32 current_uid_index; - mixart_uid_t uid[MIXART_MAX_PHYS_CONNECTORS]; + struct mixart_uid uid[MIXART_MAX_PHYS_CONNECTORS]; } __attribute__((packed)); @@ -90,7 +88,6 @@ struct mixart_enum_connector_resp #define MIXART_FLOAT_M_20_0_TO_HEX 0xc1a00000 /* -20.0f */ #define MIXART_FLOAT____0_0_TO_HEX 0x00000000 /* 0.0f */ -typedef struct mixart_audio_info_req mixart_audio_info_req_t; struct mixart_audio_info_req { u32 line_max_level; /* float */ @@ -98,7 +95,6 @@ struct mixart_audio_info_req u32 cd_max_level; /* float */ } __attribute__((packed)); -typedef struct mixart_analog_hw_info mixart_analog_hw_info_t; struct mixart_analog_hw_info { u32 is_present; @@ -111,7 +107,6 @@ struct mixart_analog_hw_info u32 zero_var; /* float */ } __attribute__((packed)); -typedef struct mixart_digital_hw_info mixart_digital_hw_info_t; struct mixart_digital_hw_info { u32 hw_connection_type; @@ -120,37 +115,33 @@ struct mixart_digital_hw_info u32 reserved; } __attribute__((packed)); -typedef struct mixart_analog_info mixart_analog_info_t; struct mixart_analog_info { u32 type_mask; - mixart_analog_hw_info_t micro_info; - mixart_analog_hw_info_t line_info; - mixart_analog_hw_info_t cd_info; + struct mixart_analog_hw_info micro_info; + struct mixart_analog_hw_info line_info; + struct mixart_analog_hw_info cd_info; u32 analog_level_present; } __attribute__((packed)); -typedef struct mixart_digital_info mixart_digital_info_t; struct mixart_digital_info { u32 type_mask; - mixart_digital_hw_info_t aes_info; - mixart_digital_hw_info_t adat_info; + struct mixart_digital_hw_info aes_info; + struct mixart_digital_hw_info adat_info; } __attribute__((packed)); -typedef struct mixart_audio_info mixart_audio_info_t; struct mixart_audio_info { u32 clock_type_mask; - mixart_analog_info_t analog_info; - mixart_digital_info_t digital_info; + struct mixart_analog_info analog_info; + struct mixart_digital_info digital_info; } __attribute__((packed)); -typedef struct mixart_audio_info_resp mixart_audio_info_resp_t; struct mixart_audio_info_resp { u32 txx_status; - mixart_audio_info_t info; + struct mixart_audio_info info; } __attribute__((packed)); @@ -158,7 +149,6 @@ struct mixart_audio_info_resp #define MIXART_FLOAT_P__4_0_TO_HEX 0x40800000 /* +4.0f */ #define MIXART_FLOAT_P__8_0_TO_HEX 0x41000000 /* +8.0f */ -typedef struct mixart_stream_info mixart_stream_info_t; struct mixart_stream_info { u32 size_max_byte_frame; @@ -169,7 +159,6 @@ struct mixart_stream_info /* MSG_STREAM_ADD_INPUT_GROUP */ /* MSG_STREAM_ADD_OUTPUT_GROUP */ -typedef struct mixart_streaming_group_req mixart_streaming_group_req_t; struct mixart_streaming_group_req { u32 stream_count; @@ -177,33 +166,30 @@ struct mixart_streaming_group_req u32 user_grp_number; u32 first_phys_audio; u32 latency; - mixart_stream_info_t stream_info[32]; - mixart_uid_t connector; + struct mixart_stream_info stream_info[32]; + struct mixart_uid connector; u32 flow_entry[32]; } __attribute__((packed)); -typedef struct mixart_stream_desc mixart_stream_desc_t; struct mixart_stream_desc { - mixart_uid_t stream_uid; + struct mixart_uid stream_uid; u32 stream_desc; } __attribute__((packed)); -typedef struct mixart_streaming_group mixart_streaming_group_t; struct mixart_streaming_group { u32 status; - mixart_uid_t group; + struct mixart_uid group; u32 pipe_desc; u32 stream_count; - mixart_stream_desc_t stream[32]; + struct mixart_stream_desc stream[32]; } __attribute__((packed)); /* MSG_STREAM_DELETE_GROUP */ /* request : mixart_uid_t group */ -typedef struct mixart_delete_group_resp mixart_delete_group_resp_t; struct mixart_delete_group_resp { u32 status; @@ -217,55 +203,49 @@ struct mixart_delete_group_resp MSG_STREAM_STOP_OUTPUT_STAGE_PACKET = 0x130000 + 11, */ -typedef struct mixart_fx_couple_uid mixart_fx_couple_uid_t; struct mixart_fx_couple_uid { - mixart_uid_t uid_fx_code; - mixart_uid_t uid_fx_data; + struct mixart_uid uid_fx_code; + struct mixart_uid uid_fx_data; } __attribute__((packed)); -typedef struct mixart_txx_stream_desc mixart_txx_stream_desc_t; struct mixart_txx_stream_desc { - mixart_uid_t uid_pipe; + struct mixart_uid uid_pipe; u32 stream_idx; u32 fx_number; - mixart_fx_couple_uid_t uid_fx[4]; + struct mixart_fx_couple_uid uid_fx[4]; } __attribute__((packed)); -typedef struct mixart_flow_info mixart_flow_info_t; struct mixart_flow_info { - mixart_txx_stream_desc_t stream_desc; + struct mixart_txx_stream_desc stream_desc; u32 flow_entry; u32 flow_phy_addr; } __attribute__((packed)); -typedef struct mixart_stream_state_req mixart_stream_state_req_t; struct mixart_stream_state_req { u32 delayed; u64 scheduler; u32 reserved4np[3]; u32 stream_count; /* set to 1 for instance */ - mixart_flow_info_t stream_info; /* could be an array[stream_count] */ + struct mixart_flow_info stream_info; /* could be an array[stream_count] */ } __attribute__((packed)); /* MSG_STREAM_START_STREAM_GRP_PACKET = 0x130000 + 6 MSG_STREAM_STOP_STREAM_GRP_PACKET = 0x130000 + 9 */ -typedef struct mixart_group_state_req mixart_group_state_req_t; struct mixart_group_state_req { u32 delayed; u64 scheduler; u32 reserved4np[2]; u32 pipe_count; /* set to 1 for instance */ - mixart_uid_t pipe_uid[1]; /* could be an array[pipe_count] */ + struct mixart_uid pipe_uid[1]; /* could be an array[pipe_count] */ } __attribute__((packed)); -typedef struct mixart_group_state_resp mixart_group_state_resp_t; struct mixart_group_state_resp { u32 txx_status; @@ -276,7 +256,6 @@ struct mixart_group_state_resp /* Structures used by the MSG_SERVICES_TIMER_NOTIFY command */ -typedef struct mixart_sample_pos mixart_sample_pos_t; struct mixart_sample_pos { u32 buffer_id; @@ -285,11 +264,10 @@ struct mixart_sample_pos u32 sample_pos_low_part; } __attribute__((packed)); -typedef struct mixart_timer_notify mixart_timer_notify_t; struct mixart_timer_notify { u32 stream_count; - mixart_sample_pos_t streams[MIXART_MAX_STREAM_PER_CARD * MIXART_MAX_CARDS]; + struct mixart_sample_pos streams[MIXART_MAX_STREAM_PER_CARD * MIXART_MAX_CARDS]; } __attribute__((packed)); @@ -298,11 +276,10 @@ struct mixart_timer_notify /* request is a uid with desc = MSG_CONSOLE_MANAGER | cardindex */ -typedef struct mixart_return_uid mixart_return_uid_t; struct mixart_return_uid { u32 error_code; - mixart_uid_t uid; + struct mixart_uid uid; } __attribute__((packed)); /* MSG_CLOCK_CHECK_PROPERTIES = 0x200001, @@ -327,7 +304,6 @@ enum mixart_clock_mode { }; -typedef struct mixart_clock_properties mixart_clock_properties_t; struct mixart_clock_properties { u32 error_code; @@ -336,17 +312,16 @@ struct mixart_clock_properties u32 reference_frequency; u32 clock_generic_type; u32 clock_mode; - mixart_uid_t uid_clock_source; - mixart_uid_t uid_event_source; + struct mixart_uid uid_clock_source; + struct mixart_uid uid_event_source; u32 event_mode; u32 synchro_signal_presence; u32 format; u32 board_mask; u32 nb_callers; /* set to 1 (see below) */ - mixart_uid_t uid_caller[1]; + struct mixart_uid uid_caller[1]; } __attribute__((packed)); -typedef struct mixart_clock_properties_resp mixart_clock_properties_resp_t; struct mixart_clock_properties_resp { u32 status; @@ -388,7 +363,6 @@ enum mixart_sample_type { ST_INTEGER_32LE }; -typedef struct mixart_stream_param_desc mixart_stream_param_desc_t; struct mixart_stream_param_desc { u32 coding_type; /* use enum mixart_coding_type */ @@ -432,7 +406,7 @@ struct mixart_stream_param_desc u32 reserved4np[3]; u32 pipe_count; /* set to 1 (array size !) */ u32 stream_count; /* set to 1 (array size !) */ - mixart_txx_stream_desc_t stream_desc[1]; /* only one stream per command, but this could be an array */ + struct mixart_txx_stream_desc stream_desc[1]; /* only one stream per command, but this could be an array */ } __attribute__((packed)); @@ -441,7 +415,6 @@ struct mixart_stream_param_desc */ -typedef struct mixart_get_out_audio_level mixart_get_out_audio_level_t; struct mixart_get_out_audio_level { u32 txx_status; @@ -465,7 +438,6 @@ struct mixart_get_out_audio_level #define MIXART_AUDIO_LEVEL_MUTE_M1_MASK 0x10 #define MIXART_AUDIO_LEVEL_MUTE_M2_MASK 0x20 -typedef struct mixart_set_out_audio_level mixart_set_out_audio_level_t; struct mixart_set_out_audio_level { u32 delayed; @@ -487,14 +459,13 @@ struct mixart_set_out_audio_level #define MIXART_MAX_PHYS_IO (MIXART_MAX_CARDS * 2 * 2) /* 4 * (analog+digital) * (playback+capture) */ -typedef struct mixart_uid_enumeration mixart_uid_enumeration_t; struct mixart_uid_enumeration { u32 error_code; u32 first_uid_offset; u32 nb_uid; u32 current_uid_index; - mixart_uid_t uid[MIXART_MAX_PHYS_IO]; + struct mixart_uid uid[MIXART_MAX_PHYS_IO]; } __attribute__((packed)); @@ -502,42 +473,38 @@ struct mixart_uid_enumeration MSG_PHYSICALIO_GET_LEVEL = 0x0F000C, */ -typedef struct mixart_io_channel_level mixart_io_channel_level_t; struct mixart_io_channel_level { u32 analog_level; /* float */ u32 unused[2]; } __attribute__((packed)); -typedef struct mixart_io_level mixart_io_level_t; struct mixart_io_level { s32 channel; /* 0=left, 1=right, -1=both, -2=both same */ - mixart_io_channel_level_t level[2]; + struct mixart_io_channel_level level[2]; } __attribute__((packed)); /* MSG_STREAM_SET_IN_AUDIO_LEVEL = 0x130015, */ -typedef struct mixart_in_audio_level_info mixart_in_audio_level_info_t; struct mixart_in_audio_level_info { - mixart_uid_t connector; + struct mixart_uid connector; u32 valid_mask1; u32 valid_mask2; u32 digital_level; u32 analog_level; } __attribute__((packed)); -typedef struct mixart_set_in_audio_level_req mixart_set_in_audio_level_req_t; struct mixart_set_in_audio_level_req { u32 delayed; u64 scheduler; u32 audio_count; /* set to <= 2 */ u32 reserved4np; - mixart_in_audio_level_info_t level[2]; + struct mixart_in_audio_level_info level[2]; } __attribute__((packed)); /* response is a 32 bit status */ @@ -556,7 +523,6 @@ struct mixart_set_in_audio_level_req #define MIXART_OUT_STREAM_SET_LEVEL_MUTE_1 0x40 #define MIXART_OUT_STREAM_SET_LEVEL_MUTE_2 0x80 -typedef struct mixart_out_stream_level_info mixart_out_stream_level_info_t; struct mixart_out_stream_level_info { u32 valid_mask1; @@ -571,37 +537,35 @@ struct mixart_out_stream_level_info u32 mute2; } __attribute__((packed)); -typedef struct mixart_set_out_stream_level mixart_set_out_stream_level_t; struct mixart_set_out_stream_level { - mixart_txx_stream_desc_t desc; - mixart_out_stream_level_info_t out_level; + struct mixart_txx_stream_desc desc; + struct mixart_out_stream_level_info out_level; } __attribute__((packed)); -typedef struct mixart_set_out_stream_level_req mixart_set_out_stream_level_req_t; struct mixart_set_out_stream_level_req { u32 delayed; u64 scheduler; u32 reserved4np[2]; u32 nb_of_stream; /* set to 1 */ - mixart_set_out_stream_level_t stream_level; /* could be an array */ + struct mixart_set_out_stream_level stream_level; /* could be an array */ } __attribute__((packed)); /* response to this request is a u32 status value */ /* exported */ -void snd_mixart_init_mailbox(mixart_mgr_t *mgr); -void snd_mixart_exit_mailbox(mixart_mgr_t *mgr); +void snd_mixart_init_mailbox(struct mixart_mgr *mgr); +void snd_mixart_exit_mailbox(struct mixart_mgr *mgr); -int snd_mixart_send_msg(mixart_mgr_t *mgr, mixart_msg_t *request, int max_resp_size, void *resp_data); -int snd_mixart_send_msg_wait_notif(mixart_mgr_t *mgr, mixart_msg_t *request, u32 notif_event); -int snd_mixart_send_msg_nonblock(mixart_mgr_t *mgr, mixart_msg_t *request); +int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int max_resp_size, void *resp_data); +int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr, struct mixart_msg *request, u32 notif_event); +int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request); irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs); -void snd_mixart_msg_tasklet( unsigned long arg); +void snd_mixart_msg_tasklet(unsigned long arg); -void snd_mixart_reset_board(mixart_mgr_t *mgr); +void snd_mixart_reset_board(struct mixart_mgr *mgr); #endif /* __SOUND_MIXART_CORE_H */ diff --git a/sound/pci/mixart/mixart_hwdep.c b/sound/pci/mixart/mixart_hwdep.c index edd1599fe45..ca05075c67c 100644 --- a/sound/pci/mixart/mixart_hwdep.c +++ b/sound/pci/mixart/mixart_hwdep.c @@ -40,7 +40,9 @@ * @param value value * @param timeout timeout in centisenconds */ -static int mixart_wait_nice_for_register_value(mixart_mgr_t *mgr, u32 offset, int is_egal, u32 value, unsigned long timeout) +static int mixart_wait_nice_for_register_value(struct mixart_mgr *mgr, + u32 offset, int is_egal, + u32 value, unsigned long timeout) { unsigned long end_time = jiffies + (timeout * HZ / 100); u32 read; @@ -66,8 +68,6 @@ static int mixart_wait_nice_for_register_value(mixart_mgr_t *mgr, u32 offset, in /* structures needed to upload elf code packets */ -typedef struct snd_mixart_elf32_ehdr snd_mixart_elf32_ehdr_t; - struct snd_mixart_elf32_ehdr { u8 e_ident[16]; u16 e_type; @@ -85,8 +85,6 @@ struct snd_mixart_elf32_ehdr { u16 e_shstrndx; }; -typedef struct snd_mixart_elf32_phdr snd_mixart_elf32_phdr_t; - struct snd_mixart_elf32_phdr { u32 p_type; u32 p_offset; @@ -98,19 +96,19 @@ struct snd_mixart_elf32_phdr { u32 p_align; }; -static int mixart_load_elf(mixart_mgr_t *mgr, const struct firmware *dsp ) +static int mixart_load_elf(struct mixart_mgr *mgr, const struct firmware *dsp ) { char elf32_magic_number[4] = {0x7f,'E','L','F'}; - snd_mixart_elf32_ehdr_t *elf_header; + struct snd_mixart_elf32_ehdr *elf_header; int i; - elf_header = (snd_mixart_elf32_ehdr_t *)dsp->data; + elf_header = (struct snd_mixart_elf32_ehdr *)dsp->data; for( i=0; i<4; i++ ) if ( elf32_magic_number[i] != elf_header->e_ident[i] ) return -EINVAL; if( elf_header->e_phoff != 0 ) { - snd_mixart_elf32_phdr_t elf_programheader; + struct snd_mixart_elf32_phdr elf_programheader; for( i=0; i < be16_to_cpu(elf_header->e_phnum); i++ ) { u32 pos = be32_to_cpu(elf_header->e_phoff) + (u32)(i * be16_to_cpu(elf_header->e_phentsize)); @@ -137,14 +135,14 @@ static int mixart_load_elf(mixart_mgr_t *mgr, const struct firmware *dsp ) #define MIXART_FIRST_ANA_AUDIO_ID 0 #define MIXART_FIRST_DIG_AUDIO_ID 8 -static int mixart_enum_connectors(mixart_mgr_t *mgr) +static int mixart_enum_connectors(struct mixart_mgr *mgr) { u32 k; int err; - mixart_msg_t request; - mixart_enum_connector_resp_t *connector; - mixart_audio_info_req_t *audio_info_req; - mixart_audio_info_resp_t *audio_info; + struct mixart_msg request; + struct mixart_enum_connector_resp *connector; + struct mixart_audio_info_req *audio_info_req; + struct mixart_audio_info_resp *audio_info; connector = kmalloc(sizeof(*connector), GFP_KERNEL); audio_info_req = kmalloc(sizeof(*audio_info_req), GFP_KERNEL); @@ -159,7 +157,7 @@ static int mixart_enum_connectors(mixart_mgr_t *mgr) audio_info_req->cd_max_level = MIXART_FLOAT____0_0_TO_HEX; request.message_id = MSG_SYSTEM_ENUM_PLAY_CONNECTOR; - request.uid = (mixart_uid_t){0,0}; /* board num = 0 */ + request.uid = (struct mixart_uid){0,0}; /* board num = 0 */ request.data = NULL; request.size = 0; @@ -171,7 +169,7 @@ static int mixart_enum_connectors(mixart_mgr_t *mgr) } for(k=0; k < connector->uid_count; k++) { - mixart_pipe_t* pipe; + struct mixart_pipe *pipe; if(k < MIXART_FIRST_DIG_AUDIO_ID) { pipe = &mgr->chip[k/2]->pipe_out_ana; @@ -201,7 +199,7 @@ static int mixart_enum_connectors(mixart_mgr_t *mgr) } request.message_id = MSG_SYSTEM_ENUM_RECORD_CONNECTOR; - request.uid = (mixart_uid_t){0,0}; /* board num = 0 */ + request.uid = (struct mixart_uid){0,0}; /* board num = 0 */ request.data = NULL; request.size = 0; @@ -213,7 +211,7 @@ static int mixart_enum_connectors(mixart_mgr_t *mgr) } for(k=0; k < connector->uid_count; k++) { - mixart_pipe_t* pipe; + struct mixart_pipe *pipe; if(k < MIXART_FIRST_DIG_AUDIO_ID) { pipe = &mgr->chip[k/2]->pipe_in_ana; @@ -251,14 +249,14 @@ static int mixart_enum_connectors(mixart_mgr_t *mgr) return err; } -static int mixart_enum_physio(mixart_mgr_t *mgr) +static int mixart_enum_physio(struct mixart_mgr *mgr) { u32 k; int err; - mixart_msg_t request; - mixart_uid_t get_console_mgr; - mixart_return_uid_t console_mgr; - mixart_uid_enumeration_t phys_io; + struct mixart_msg request; + struct mixart_uid get_console_mgr; + struct mixart_return_uid console_mgr; + struct mixart_uid_enumeration phys_io; /* get the uid for the console manager */ get_console_mgr.object_id = 0; @@ -280,7 +278,7 @@ static int mixart_enum_physio(mixart_mgr_t *mgr) mgr->uid_console_manager = console_mgr.uid; request.message_id = MSG_SYSTEM_ENUM_PHYSICAL_IO; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = &console_mgr.uid; request.size = sizeof(console_mgr.uid); @@ -301,11 +299,11 @@ static int mixart_enum_physio(mixart_mgr_t *mgr) } -static int mixart_first_init(mixart_mgr_t *mgr) +static int mixart_first_init(struct mixart_mgr *mgr) { u32 k; int err; - mixart_msg_t request; + struct mixart_msg request; if((err = mixart_enum_connectors(mgr)) < 0) return err; @@ -314,7 +312,7 @@ static int mixart_first_init(mixart_mgr_t *mgr) /* send a synchro command to card (necessary to do this before first MSG_STREAM_START_STREAM_GRP_PACKET) */ /* though why not here */ request.message_id = MSG_SYSTEM_SEND_SYNCHRO_CMD; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = NULL; request.size = 0; /* this command has no data. response is a 32 bit status */ @@ -331,7 +329,7 @@ static int mixart_first_init(mixart_mgr_t *mgr) /* firmware base addresses (when hard coded) */ #define MIXART_MOTHERBOARD_XLX_BASE_ADDRESS 0x00600000 -static int mixart_dsp_load(mixart_mgr_t* mgr, int index, const struct firmware *dsp) +static int mixart_dsp_load(struct mixart_mgr* mgr, int index, const struct firmware *dsp) { int err, card_index; u32 status_xilinx, status_elf, status_daught; @@ -513,7 +511,7 @@ static int mixart_dsp_load(mixart_mgr_t* mgr, int index, const struct firmware * /* create devices and mixer in accordance with HW options*/ for (card_index = 0; card_index < mgr->num_cards; card_index++) { - mixart_t *chip = mgr->chip[card_index]; + struct snd_mixart *chip = mgr->chip[card_index]; if ((err = snd_mixart_create_pcm(chip)) < 0) return err; @@ -541,7 +539,7 @@ static int mixart_dsp_load(mixart_mgr_t* mgr, int index, const struct firmware * #ifdef SND_MIXART_FW_LOADER -int snd_mixart_setup_firmware(mixart_mgr_t *mgr) +int snd_mixart_setup_firmware(struct mixart_mgr *mgr) { static char *fw_files[3] = { "miXart8.xlx", "miXart8.elf", "miXart8AES.xlx" @@ -573,19 +571,20 @@ int snd_mixart_setup_firmware(mixart_mgr_t *mgr) /* miXart hwdep interface id string */ #define SND_MIXART_HWDEP_ID "miXart Loader" -static int mixart_hwdep_open(snd_hwdep_t *hw, struct file *file) +static int mixart_hwdep_open(struct snd_hwdep *hw, struct file *file) { return 0; } -static int mixart_hwdep_release(snd_hwdep_t *hw, struct file *file) +static int mixart_hwdep_release(struct snd_hwdep *hw, struct file *file) { return 0; } -static int mixart_hwdep_dsp_status(snd_hwdep_t *hw, snd_hwdep_dsp_status_t *info) +static int mixart_hwdep_dsp_status(struct snd_hwdep *hw, + struct snd_hwdep_dsp_status *info) { - mixart_mgr_t *mgr = hw->private_data; + struct mixart_mgr *mgr = hw->private_data; strcpy(info->id, "miXart"); info->num_dsps = MIXART_HARDW_FILES_MAX_INDEX; @@ -597,9 +596,10 @@ static int mixart_hwdep_dsp_status(snd_hwdep_t *hw, snd_hwdep_dsp_status_t *info return 0; } -static int mixart_hwdep_dsp_load(snd_hwdep_t *hw, snd_hwdep_dsp_image_t *dsp) +static int mixart_hwdep_dsp_load(struct snd_hwdep *hw, + struct snd_hwdep_dsp_image *dsp) { - mixart_mgr_t* mgr = hw->private_data; + struct mixart_mgr* mgr = hw->private_data; struct firmware fw; int err; @@ -622,10 +622,10 @@ static int mixart_hwdep_dsp_load(snd_hwdep_t *hw, snd_hwdep_dsp_image_t *dsp) return err; } -int snd_mixart_setup_firmware(mixart_mgr_t *mgr) +int snd_mixart_setup_firmware(struct mixart_mgr *mgr) { int err; - snd_hwdep_t *hw; + struct snd_hwdep *hw; /* only create hwdep interface for first cardX (see "index" module parameter)*/ if ((err = snd_hwdep_new(mgr->chip[0]->card, SND_MIXART_HWDEP_ID, 0, &hw)) < 0) diff --git a/sound/pci/mixart/mixart_hwdep.h b/sound/pci/mixart/mixart_hwdep.h index 25190cc88cf..a46f5083db9 100644 --- a/sound/pci/mixart/mixart_hwdep.h +++ b/sound/pci/mixart/mixart_hwdep.h @@ -140,6 +140,6 @@ #define MIXART_OIDI 0x008 /* 0000 0000 1000 */ -int snd_mixart_setup_firmware(mixart_mgr_t *mgr); +int snd_mixart_setup_firmware(struct mixart_mgr *mgr); #endif /* __SOUND_MIXART_HWDEP_H */ diff --git a/sound/pci/mixart/mixart_mixer.c b/sound/pci/mixart/mixart_mixer.c index 39c15416fc8..36a7e9ddfb1 100644 --- a/sound/pci/mixart/mixart_mixer.c +++ b/sound/pci/mixart/mixart_mixer.c @@ -298,12 +298,12 @@ static u32 mixart_analog_level[256] = { #define MIXART_ANALOG_PLAYBACK_LEVEL_MAX 192 /* 0.0 dB + 1.5 dB = 1.5 dB */ #define MIXART_ANALOG_PLAYBACK_ZERO_LEVEL 189 /* -1.5 dB + 1.5 dB = 0.0 dB */ -static int mixart_update_analog_audio_level(mixart_t* chip, int is_capture) +static int mixart_update_analog_audio_level(struct snd_mixart* chip, int is_capture) { int i, err; - mixart_msg_t request; - mixart_io_level_t io_level; - mixart_return_uid_t resp; + struct mixart_msg request; + struct mixart_io_level io_level; + struct mixart_return_uid resp; memset(&io_level, 0, sizeof(io_level)); io_level.channel = -1; /* left and right */ @@ -336,7 +336,7 @@ static int mixart_update_analog_audio_level(mixart_t* chip, int is_capture) /* * analog level control */ -static int mixart_analog_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int mixart_analog_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -350,9 +350,9 @@ static int mixart_analog_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int mixart_analog_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_analog_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); down(&chip->mgr->mixer_mutex); if(kcontrol->private_value == 0) { /* playback */ ucontrol->value.integer.value[0] = chip->analog_playback_volume[0]; @@ -365,9 +365,9 @@ static int mixart_analog_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int mixart_analog_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_analog_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int changed = 0; int is_capture, i; @@ -386,7 +386,7 @@ static int mixart_analog_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return changed; } -static snd_kcontrol_new_t mixart_control_analog_level = { +static struct snd_kcontrol_new mixart_control_analog_level = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, /* name will be filled later */ .info = mixart_analog_vol_info, @@ -395,7 +395,7 @@ static snd_kcontrol_new_t mixart_control_analog_level = { }; /* shared */ -static int mixart_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int mixart_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; @@ -404,9 +404,9 @@ static int mixart_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) return 0; } -static int mixart_audio_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); down(&chip->mgr->mixer_mutex); ucontrol->value.integer.value[0] = chip->analog_playback_active[0]; @@ -415,9 +415,9 @@ static int mixart_audio_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u return 0; } -static int mixart_audio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_audio_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int i, changed = 0; down(&chip->mgr->mixer_mutex); for(i=0; i<2; i++) { @@ -431,7 +431,7 @@ static int mixart_audio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u return changed; } -static snd_kcontrol_new_t mixart_control_output_switch = { +static struct snd_kcontrol_new mixart_control_output_switch = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Master Playback Switch", .info = mixart_sw_info, /* shared */ @@ -703,14 +703,14 @@ static u32 mixart_digital_level[256] = { #define MIXART_DIGITAL_ZERO_LEVEL 219 /* 0.0 dB */ -int mixart_update_playback_stream_level(mixart_t* chip, int is_aes, int idx) +int mixart_update_playback_stream_level(struct snd_mixart* chip, int is_aes, int idx) { int err, i; int volume[2]; - mixart_msg_t request; - mixart_set_out_stream_level_req_t set_level; + struct mixart_msg request; + struct mixart_set_out_stream_level_req set_level; u32 status; - mixart_pipe_t *pipe; + struct mixart_pipe *pipe; memset(&set_level, 0, sizeof(set_level)); set_level.nb_of_stream = 1; @@ -741,7 +741,7 @@ int mixart_update_playback_stream_level(mixart_t* chip, int is_aes, int idx) set_level.stream_level.out_level.right_to_out2_level = mixart_digital_level[volume[1]]; request.message_id = MSG_STREAM_SET_OUT_STREAM_LEVEL; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = &set_level; request.size = sizeof(set_level); @@ -753,12 +753,12 @@ int mixart_update_playback_stream_level(mixart_t* chip, int is_aes, int idx) return 0; } -int mixart_update_capture_stream_level(mixart_t* chip, int is_aes) +int mixart_update_capture_stream_level(struct snd_mixart* chip, int is_aes) { int err, i, idx; - mixart_pipe_t* pipe; - mixart_msg_t request; - mixart_set_in_audio_level_req_t set_level; + struct mixart_pipe *pipe; + struct mixart_msg request; + struct mixart_set_in_audio_level_req set_level; u32 status; if(is_aes) { @@ -784,7 +784,7 @@ int mixart_update_capture_stream_level(mixart_t* chip, int is_aes) } request.message_id = MSG_STREAM_SET_IN_AUDIO_LEVEL; - request.uid = (mixart_uid_t){0,0}; + request.uid = (struct mixart_uid){0,0}; request.data = &set_level; request.size = sizeof(set_level); @@ -798,7 +798,7 @@ int mixart_update_capture_stream_level(mixart_t* chip, int is_aes) /* shared */ -static int mixart_digital_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int mixart_digital_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -810,9 +810,9 @@ static int mixart_digital_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t #define MIXART_VOL_REC_MASK 1 #define MIXART_VOL_AES_MASK 2 -static int mixart_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_pcm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ int *stored_volume; int is_capture = kcontrol->private_value & MIXART_VOL_REC_MASK; @@ -832,9 +832,9 @@ static int mixart_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc return 0; } -static int mixart_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ int changed = 0; int is_capture = kcontrol->private_value & MIXART_VOL_REC_MASK; @@ -864,7 +864,7 @@ static int mixart_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc return changed; } -static snd_kcontrol_new_t snd_mixart_pcm_vol = +static struct snd_kcontrol_new snd_mixart_pcm_vol = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, /* name will be filled later */ @@ -875,9 +875,9 @@ static snd_kcontrol_new_t snd_mixart_pcm_vol = }; -static int mixart_pcm_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_pcm_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ snd_assert ( idx < MIXART_PLAYBACK_STREAMS ); down(&chip->mgr->mixer_mutex); @@ -889,9 +889,9 @@ static int mixart_pcm_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return 0; } -static int mixart_pcm_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_pcm_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int changed = 0; int is_aes = kcontrol->private_value & MIXART_VOL_AES_MASK; int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ @@ -911,7 +911,7 @@ static int mixart_pcm_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco return changed; } -static snd_kcontrol_new_t mixart_control_pcm_switch = { +static struct snd_kcontrol_new mixart_control_pcm_switch = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, /* name will be filled later */ .count = MIXART_PLAYBACK_STREAMS, @@ -920,11 +920,11 @@ static snd_kcontrol_new_t mixart_control_pcm_switch = { .put = mixart_pcm_sw_put }; -static int mixart_update_monitoring(mixart_t* chip, int channel) +static int mixart_update_monitoring(struct snd_mixart* chip, int channel) { int err; - mixart_msg_t request; - mixart_set_out_audio_level_t audio_level; + struct mixart_msg request; + struct mixart_set_out_audio_level audio_level; u32 resp; if(chip->pipe_out_ana.status == PIPE_UNDEFINED) @@ -953,9 +953,9 @@ static int mixart_update_monitoring(mixart_t* chip, int channel) * monitoring level control */ -static int mixart_monitor_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_monitor_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); down(&chip->mgr->mixer_mutex); ucontrol->value.integer.value[0] = chip->monitoring_volume[0]; ucontrol->value.integer.value[1] = chip->monitoring_volume[1]; @@ -963,9 +963,9 @@ static int mixart_monitor_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int mixart_monitor_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_monitor_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int changed = 0; int i; down(&chip->mgr->mixer_mutex); @@ -980,7 +980,7 @@ static int mixart_monitor_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return changed; } -static snd_kcontrol_new_t mixart_control_monitor_vol = { +static struct snd_kcontrol_new mixart_control_monitor_vol = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Monitoring Volume", .info = mixart_digital_vol_info, /* shared */ @@ -992,9 +992,9 @@ static snd_kcontrol_new_t mixart_control_monitor_vol = { * monitoring switch control */ -static int mixart_monitor_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_monitor_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); down(&chip->mgr->mixer_mutex); ucontrol->value.integer.value[0] = chip->monitoring_active[0]; ucontrol->value.integer.value[1] = chip->monitoring_active[1]; @@ -1002,9 +1002,9 @@ static int mixart_monitor_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return 0; } -static int mixart_monitor_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int mixart_monitor_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - mixart_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_mixart *chip = snd_kcontrol_chip(kcontrol); int changed = 0; int i; down(&chip->mgr->mixer_mutex); @@ -1033,7 +1033,7 @@ static int mixart_monitor_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t return (changed != 0); } -static snd_kcontrol_new_t mixart_control_monitor_sw = { +static struct snd_kcontrol_new mixart_control_monitor_sw = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Monitoring Switch", .info = mixart_sw_info, /* shared */ @@ -1042,7 +1042,7 @@ static snd_kcontrol_new_t mixart_control_monitor_sw = { }; -static void mixart_reset_audio_levels(mixart_t *chip) +static void mixart_reset_audio_levels(struct snd_mixart *chip) { /* analog volumes can be set even if there is no pipe */ mixart_update_analog_audio_level(chip, 0); @@ -1054,15 +1054,15 @@ static void mixart_reset_audio_levels(mixart_t *chip) } -int snd_mixart_create_mixer(mixart_mgr_t *mgr) +int snd_mixart_create_mixer(struct mixart_mgr *mgr) { - mixart_t *chip; + struct snd_mixart *chip; int err, i; init_MUTEX(&mgr->mixer_mutex); /* can be in another place */ for(i=0; inum_cards; i++) { - snd_kcontrol_new_t temp; + struct snd_kcontrol_new temp; chip = mgr->chip[i]; /* analog output level control */ diff --git a/sound/pci/mixart/mixart_mixer.h b/sound/pci/mixart/mixart_mixer.h index b4d9535087c..04aa24e35c3 100644 --- a/sound/pci/mixart/mixart_mixer.h +++ b/sound/pci/mixart/mixart_mixer.h @@ -24,8 +24,8 @@ #define __SOUND_MIXART_MIXER_H /* exported */ -int mixart_update_playback_stream_level(mixart_t* chip, int is_aes, int idx); -int mixart_update_capture_stream_level(mixart_t* chip, int is_aes); -int snd_mixart_create_mixer(mixart_mgr_t* mgr); +int mixart_update_playback_stream_level(struct snd_mixart* chip, int is_aes, int idx); +int mixart_update_capture_stream_level(struct snd_mixart* chip, int is_aes); +int snd_mixart_create_mixer(struct mixart_mgr* mgr); #endif /* __SOUND_MIXART_MIXER_H */ -- cgit v1.2.3-70-g09d2 From 10754f53450a2c2aababe69f20edd7d2077e588d Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:01:29 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI NM256 Modules: NM256 driver Remove xxx_t typedefs from the PCI NM256 driver. Signed-off-by: Takashi Iwai --- sound/pci/nm256/nm256.c | 250 ++++++++++++++++++++++++------------------------ 1 file changed, 127 insertions(+), 123 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c index a01b3e57796..99ec1c17049 100644 --- a/sound/pci/nm256/nm256.c +++ b/sound/pci/nm256/nm256.c @@ -183,17 +183,10 @@ module_param(enable, bool, 0444); #define NM_PBUFFER_WMARK (NM_PLAYBACK_REG_OFFSET + 0xc) #define NM_PBUFFER_CURRP (NM_PLAYBACK_REG_OFFSET + 0x8) -/* - * type definitions - */ - -typedef struct snd_nm256 nm256_t; -typedef struct snd_nm256_stream nm256_stream_t; - -struct snd_nm256_stream { +struct nm256_stream { - nm256_t *chip; - snd_pcm_substream_t *substream; + struct nm256 *chip; + struct snd_pcm_substream *substream; int running; int suspended; @@ -210,9 +203,9 @@ struct snd_nm256_stream { }; -struct snd_nm256 { +struct nm256 { - snd_card_t *card; + struct snd_card *card; void __iomem *cport; /* control port */ struct resource *res_cport; /* its resource */ @@ -244,11 +237,11 @@ struct snd_nm256 { int badintrcount; /* counter to check bogus interrupts */ struct semaphore irq_mutex; - nm256_stream_t streams[2]; + struct nm256_stream streams[2]; - ac97_t *ac97; + struct snd_ac97 *ac97; - snd_pcm_t *pcm; + struct snd_pcm *pcm; struct pci_dev *pci; @@ -281,48 +274,49 @@ MODULE_DEVICE_TABLE(pci, snd_nm256_ids); */ static inline u8 -snd_nm256_readb(nm256_t *chip, int offset) +snd_nm256_readb(struct nm256 *chip, int offset) { return readb(chip->cport + offset); } static inline u16 -snd_nm256_readw(nm256_t *chip, int offset) +snd_nm256_readw(struct nm256 *chip, int offset) { return readw(chip->cport + offset); } static inline u32 -snd_nm256_readl(nm256_t *chip, int offset) +snd_nm256_readl(struct nm256 *chip, int offset) { return readl(chip->cport + offset); } static inline void -snd_nm256_writeb(nm256_t *chip, int offset, u8 val) +snd_nm256_writeb(struct nm256 *chip, int offset, u8 val) { writeb(val, chip->cport + offset); } static inline void -snd_nm256_writew(nm256_t *chip, int offset, u16 val) +snd_nm256_writew(struct nm256 *chip, int offset, u16 val) { writew(val, chip->cport + offset); } static inline void -snd_nm256_writel(nm256_t *chip, int offset, u32 val) +snd_nm256_writel(struct nm256 *chip, int offset, u32 val) { writel(val, chip->cport + offset); } static inline void -snd_nm256_write_buffer(nm256_t *chip, void *src, int offset, int size) +snd_nm256_write_buffer(struct nm256 *chip, void *src, int offset, int size) { offset -= chip->buffer_start; #ifdef CONFIG_SND_DEBUG if (offset < 0 || offset >= chip->buffer_size) { - snd_printk(KERN_ERR "write_buffer invalid offset = %d size = %d\n", offset, size); + snd_printk(KERN_ERR "write_buffer invalid offset = %d size = %d\n", + offset, size); return; } #endif @@ -343,7 +337,7 @@ snd_nm256_get_start_offset(int which) } static void -snd_nm256_load_one_coefficient(nm256_t *chip, int stream, u32 port, int which) +snd_nm256_load_one_coefficient(struct nm256 *chip, int stream, u32 port, int which) { u32 coeff_buf = chip->coeff_buf[stream]; u16 offset = snd_nm256_get_start_offset(which); @@ -358,13 +352,15 @@ snd_nm256_load_one_coefficient(nm256_t *chip, int stream, u32 port, int which) } static void -snd_nm256_load_coefficient(nm256_t *chip, int stream, int number) +snd_nm256_load_coefficient(struct nm256 *chip, int stream, int number) { /* The enable register for the specified engine. */ - u32 poffset = (stream == SNDRV_PCM_STREAM_CAPTURE ? NM_RECORD_ENABLE_REG : NM_PLAYBACK_ENABLE_REG); + u32 poffset = (stream == SNDRV_PCM_STREAM_CAPTURE ? + NM_RECORD_ENABLE_REG : NM_PLAYBACK_ENABLE_REG); u32 addr = NM_COEFF_START_OFFSET; - addr += (stream == SNDRV_PCM_STREAM_CAPTURE ? NM_RECORD_REG_OFFSET : NM_PLAYBACK_REG_OFFSET); + addr += (stream == SNDRV_PCM_STREAM_CAPTURE ? + NM_RECORD_REG_OFFSET : NM_PLAYBACK_REG_OFFSET); if (snd_nm256_readb(chip, poffset) & 1) { snd_printd("NM256: Engine was enabled while loading coefficients!\n"); @@ -400,7 +396,7 @@ snd_nm256_load_coefficient(nm256_t *chip, int stream, int number) static unsigned int samplerates[8] = { 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000, }; -static snd_pcm_hw_constraint_list_t constraints_rates = { +static struct snd_pcm_hw_constraint_list constraints_rates = { .count = ARRAY_SIZE(samplerates), .list = samplerates, .mask = 0, @@ -425,9 +421,10 @@ snd_nm256_fixed_rate(unsigned int rate) * set sample rate and format */ static void -snd_nm256_set_format(nm256_t *chip, nm256_stream_t *s, snd_pcm_substream_t *substream) +snd_nm256_set_format(struct nm256 *chip, struct nm256_stream *s, + struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; int rate_index = snd_nm256_fixed_rate(runtime->rate); unsigned char ratebits = (rate_index << 4) & NM_RATE_MASK; @@ -460,12 +457,12 @@ snd_nm256_set_format(nm256_t *chip, nm256_stream_t *s, snd_pcm_substream_t *subs } /* acquire interrupt */ -static int snd_nm256_acquire_irq(nm256_t *chip) +static int snd_nm256_acquire_irq(struct nm256 *chip) { down(&chip->irq_mutex); if (chip->irq < 0) { if (request_irq(chip->pci->irq, chip->interrupt, SA_INTERRUPT|SA_SHIRQ, - chip->card->driver, (void*)chip)) { + chip->card->driver, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", chip->pci->irq); up(&chip->irq_mutex); return -EBUSY; @@ -478,13 +475,13 @@ static int snd_nm256_acquire_irq(nm256_t *chip) } /* release interrupt */ -static void snd_nm256_release_irq(nm256_t *chip) +static void snd_nm256_release_irq(struct nm256 *chip) { down(&chip->irq_mutex); if (chip->irq_acks > 0) chip->irq_acks--; if (chip->irq_acks == 0 && chip->irq >= 0) { - free_irq(chip->irq, (void*)chip); + free_irq(chip->irq, chip); chip->irq = -1; } up(&chip->irq_mutex); @@ -495,7 +492,7 @@ static void snd_nm256_release_irq(nm256_t *chip) */ /* update the watermark (current period) */ -static void snd_nm256_pcm_mark(nm256_t *chip, nm256_stream_t *s, int reg) +static void snd_nm256_pcm_mark(struct nm256 *chip, struct nm256_stream *s, int reg) { s->cur_period++; s->cur_period %= s->periods; @@ -506,7 +503,8 @@ static void snd_nm256_pcm_mark(nm256_t *chip, nm256_stream_t *s, int reg) #define snd_nm256_capture_mark(chip, s) snd_nm256_pcm_mark(chip, s, NM_RBUFFER_WMARK) static void -snd_nm256_playback_start(nm256_t *chip, nm256_stream_t *s, snd_pcm_substream_t *substream) +snd_nm256_playback_start(struct nm256 *chip, struct nm256_stream *s, + struct snd_pcm_substream *substream) { /* program buffer pointers */ snd_nm256_writel(chip, NM_PBUFFER_START, s->buf); @@ -522,7 +520,8 @@ snd_nm256_playback_start(nm256_t *chip, nm256_stream_t *s, snd_pcm_substream_t * } static void -snd_nm256_capture_start(nm256_t *chip, nm256_stream_t *s, snd_pcm_substream_t *substream) +snd_nm256_capture_start(struct nm256 *chip, struct nm256_stream *s, + struct snd_pcm_substream *substream) { /* program buffer pointers */ snd_nm256_writel(chip, NM_RBUFFER_START, s->buf); @@ -537,7 +536,7 @@ snd_nm256_capture_start(nm256_t *chip, nm256_stream_t *s, snd_pcm_substream_t *s /* Stop the play engine. */ static void -snd_nm256_playback_stop(nm256_t *chip) +snd_nm256_playback_stop(struct nm256 *chip) { /* Shut off sound from both channels. */ snd_nm256_writew(chip, NM_AUDIO_MUTE_REG, @@ -547,17 +546,17 @@ snd_nm256_playback_stop(nm256_t *chip) } static void -snd_nm256_capture_stop(nm256_t *chip) +snd_nm256_capture_stop(struct nm256 *chip) { /* Disable recording engine. */ snd_nm256_writeb(chip, NM_RECORD_ENABLE_REG, 0); } static int -snd_nm256_playback_trigger(snd_pcm_substream_t *substream, int cmd) +snd_nm256_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - nm256_t *chip = snd_pcm_substream_chip(substream); - nm256_stream_t *s = (nm256_stream_t*)substream->runtime->private_data; + struct nm256 *chip = snd_pcm_substream_chip(substream); + struct nm256_stream *s = substream->runtime->private_data; int err = 0; snd_assert(s != NULL, return -ENXIO); @@ -591,10 +590,10 @@ snd_nm256_playback_trigger(snd_pcm_substream_t *substream, int cmd) } static int -snd_nm256_capture_trigger(snd_pcm_substream_t *substream, int cmd) +snd_nm256_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - nm256_t *chip = snd_pcm_substream_chip(substream); - nm256_stream_t *s = (nm256_stream_t*)substream->runtime->private_data; + struct nm256 *chip = snd_pcm_substream_chip(substream); + struct nm256_stream *s = substream->runtime->private_data; int err = 0; snd_assert(s != NULL, return -ENXIO); @@ -627,11 +626,11 @@ snd_nm256_capture_trigger(snd_pcm_substream_t *substream, int cmd) /* * prepare playback/capture channel */ -static int snd_nm256_pcm_prepare(snd_pcm_substream_t *substream) +static int snd_nm256_pcm_prepare(struct snd_pcm_substream *substream) { - nm256_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - nm256_stream_t *s = (nm256_stream_t*)runtime->private_data; + struct nm256 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct nm256_stream *s = runtime->private_data; snd_assert(s, return -ENXIO); s->dma_size = frames_to_bytes(runtime, substream->runtime->buffer_size); @@ -652,10 +651,10 @@ static int snd_nm256_pcm_prepare(snd_pcm_substream_t *substream) * get the current pointer */ static snd_pcm_uframes_t -snd_nm256_playback_pointer(snd_pcm_substream_t * substream) +snd_nm256_playback_pointer(struct snd_pcm_substream *substream) { - nm256_t *chip = snd_pcm_substream_chip(substream); - nm256_stream_t *s = (nm256_stream_t*)substream->runtime->private_data; + struct nm256 *chip = snd_pcm_substream_chip(substream); + struct nm256_stream *s = substream->runtime->private_data; unsigned long curp; snd_assert(s, return 0); @@ -665,10 +664,10 @@ snd_nm256_playback_pointer(snd_pcm_substream_t * substream) } static snd_pcm_uframes_t -snd_nm256_capture_pointer(snd_pcm_substream_t * substream) +snd_nm256_capture_pointer(struct snd_pcm_substream *substream) { - nm256_t *chip = snd_pcm_substream_chip(substream); - nm256_stream_t *s = (nm256_stream_t*)substream->runtime->private_data; + struct nm256 *chip = snd_pcm_substream_chip(substream); + struct nm256_stream *s = substream->runtime->private_data; unsigned long curp; snd_assert(s != NULL, return 0); @@ -684,13 +683,13 @@ snd_nm256_capture_pointer(snd_pcm_substream_t * substream) * silence / copy for playback */ static int -snd_nm256_playback_silence(snd_pcm_substream_t *substream, +snd_nm256_playback_silence(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, snd_pcm_uframes_t count) { - snd_pcm_runtime_t *runtime = substream->runtime; - nm256_stream_t *s = (nm256_stream_t*)runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct nm256_stream *s = runtime->private_data; count = frames_to_bytes(runtime, count); pos = frames_to_bytes(runtime, pos); memset_io(s->bufptr + pos, 0, count); @@ -698,14 +697,14 @@ snd_nm256_playback_silence(snd_pcm_substream_t *substream, } static int -snd_nm256_playback_copy(snd_pcm_substream_t *substream, +snd_nm256_playback_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count) { - snd_pcm_runtime_t *runtime = substream->runtime; - nm256_stream_t *s = (nm256_stream_t*)runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct nm256_stream *s = runtime->private_data; count = frames_to_bytes(runtime, count); pos = frames_to_bytes(runtime, pos); if (copy_from_user_toio(s->bufptr + pos, src, count)) @@ -717,14 +716,14 @@ snd_nm256_playback_copy(snd_pcm_substream_t *substream, * copy to user */ static int -snd_nm256_capture_copy(snd_pcm_substream_t *substream, +snd_nm256_capture_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - snd_pcm_runtime_t *runtime = substream->runtime; - nm256_stream_t *s = (nm256_stream_t*)runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; + struct nm256_stream *s = runtime->private_data; count = frames_to_bytes(runtime, count); pos = frames_to_bytes(runtime, pos); if (copy_to_user_fromio(dst, s->bufptr + pos, count)) @@ -741,9 +740,9 @@ snd_nm256_capture_copy(snd_pcm_substream_t *substream, /* spinlock held! */ static void -snd_nm256_playback_update(nm256_t *chip) +snd_nm256_playback_update(struct nm256 *chip) { - nm256_stream_t *s; + struct nm256_stream *s; s = &chip->streams[SNDRV_PCM_STREAM_PLAYBACK]; if (s->running && s->substream) { @@ -756,9 +755,9 @@ snd_nm256_playback_update(nm256_t *chip) /* spinlock held! */ static void -snd_nm256_capture_update(nm256_t *chip) +snd_nm256_capture_update(struct nm256 *chip) { - nm256_stream_t *s; + struct nm256_stream *s; s = &chip->streams[SNDRV_PCM_STREAM_CAPTURE]; if (s->running && s->substream) { @@ -772,7 +771,7 @@ snd_nm256_capture_update(nm256_t *chip) /* * hardware info */ -static snd_pcm_hardware_t snd_nm256_playback = +static struct snd_pcm_hardware snd_nm256_playback = { .info = SNDRV_PCM_INFO_MMAP_IOMEM |SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_INTERLEAVED | @@ -791,7 +790,7 @@ static snd_pcm_hardware_t snd_nm256_playback = .period_bytes_max = 128 * 1024, }; -static snd_pcm_hardware_t snd_nm256_capture = +static struct snd_pcm_hardware snd_nm256_capture = { .info = SNDRV_PCM_INFO_MMAP_IOMEM | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_INTERLEAVED | @@ -812,7 +811,8 @@ static snd_pcm_hardware_t snd_nm256_capture = /* set dma transfer size */ -static int snd_nm256_pcm_hw_params(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *hw_params) +static int snd_nm256_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { /* area and addr are already set and unchanged */ substream->runtime->dma_bytes = params_buffer_bytes(hw_params); @@ -822,11 +822,11 @@ static int snd_nm256_pcm_hw_params(snd_pcm_substream_t *substream, snd_pcm_hw_pa /* * open */ -static void snd_nm256_setup_stream(nm256_t *chip, nm256_stream_t *s, - snd_pcm_substream_t *substream, - snd_pcm_hardware_t *hw_ptr) +static void snd_nm256_setup_stream(struct nm256 *chip, struct nm256_stream *s, + struct snd_pcm_substream *substream, + struct snd_pcm_hardware *hw_ptr) { - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; s->running = 0; runtime->hw = *hw_ptr; @@ -844,9 +844,9 @@ static void snd_nm256_setup_stream(nm256_t *chip, nm256_stream_t *s, } static int -snd_nm256_playback_open(snd_pcm_substream_t *substream) +snd_nm256_playback_open(struct snd_pcm_substream *substream) { - nm256_t *chip = snd_pcm_substream_chip(substream); + struct nm256 *chip = snd_pcm_substream_chip(substream); if (snd_nm256_acquire_irq(chip) < 0) return -EBUSY; @@ -856,9 +856,9 @@ snd_nm256_playback_open(snd_pcm_substream_t *substream) } static int -snd_nm256_capture_open(snd_pcm_substream_t *substream) +snd_nm256_capture_open(struct snd_pcm_substream *substream) { - nm256_t *chip = snd_pcm_substream_chip(substream); + struct nm256 *chip = snd_pcm_substream_chip(substream); if (snd_nm256_acquire_irq(chip) < 0) return -EBUSY; @@ -871,9 +871,9 @@ snd_nm256_capture_open(snd_pcm_substream_t *substream) * close - we don't have to do special.. */ static int -snd_nm256_playback_close(snd_pcm_substream_t *substream) +snd_nm256_playback_close(struct snd_pcm_substream *substream) { - nm256_t *chip = snd_pcm_substream_chip(substream); + struct nm256 *chip = snd_pcm_substream_chip(substream); snd_nm256_release_irq(chip); return 0; @@ -881,9 +881,9 @@ snd_nm256_playback_close(snd_pcm_substream_t *substream) static int -snd_nm256_capture_close(snd_pcm_substream_t *substream) +snd_nm256_capture_close(struct snd_pcm_substream *substream) { - nm256_t *chip = snd_pcm_substream_chip(substream); + struct nm256 *chip = snd_pcm_substream_chip(substream); snd_nm256_release_irq(chip); return 0; @@ -892,7 +892,7 @@ snd_nm256_capture_close(snd_pcm_substream_t *substream) /* * create a pcm instance */ -static snd_pcm_ops_t snd_nm256_playback_ops = { +static struct snd_pcm_ops snd_nm256_playback_ops = { .open = snd_nm256_playback_open, .close = snd_nm256_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -907,7 +907,7 @@ static snd_pcm_ops_t snd_nm256_playback_ops = { .mmap = snd_pcm_lib_mmap_iomem, }; -static snd_pcm_ops_t snd_nm256_capture_ops = { +static struct snd_pcm_ops snd_nm256_capture_ops = { .open = snd_nm256_capture_open, .close = snd_nm256_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -922,13 +922,13 @@ static snd_pcm_ops_t snd_nm256_capture_ops = { }; static int __devinit -snd_nm256_pcm(nm256_t *chip, int device) +snd_nm256_pcm(struct nm256 *chip, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int i, err; for (i = 0; i < 2; i++) { - nm256_stream_t *s = &chip->streams[i]; + struct nm256_stream *s = &chip->streams[i]; s->bufptr = chip->buffer + (s->buf - chip->buffer_start); s->bufptr_addr = chip->buffer_addr + (s->buf - chip->buffer_start); } @@ -953,7 +953,7 @@ snd_nm256_pcm(nm256_t *chip, int device) * Initialize the hardware. */ static void -snd_nm256_init_chip(nm256_t *chip) +snd_nm256_init_chip(struct nm256 *chip) { /* Reset everything. */ snd_nm256_writeb(chip, 0x0, 0x11); @@ -965,7 +965,7 @@ snd_nm256_init_chip(nm256_t *chip) static irqreturn_t -snd_nm256_intr_check(nm256_t *chip) +snd_nm256_intr_check(struct nm256 *chip) { if (chip->badintrcount++ > 1000) { /* @@ -1002,7 +1002,7 @@ snd_nm256_intr_check(nm256_t *chip) static irqreturn_t snd_nm256_interrupt(int irq, void *dev_id, struct pt_regs *dummy) { - nm256_t *chip = dev_id; + struct nm256 *chip = dev_id; u16 status; u8 cbyte; @@ -1067,7 +1067,7 @@ snd_nm256_interrupt(int irq, void *dev_id, struct pt_regs *dummy) static irqreturn_t snd_nm256_interrupt_zx(int irq, void *dev_id, struct pt_regs *dummy) { - nm256_t *chip = dev_id; + struct nm256 *chip = dev_id; u32 status; u8 cbyte; @@ -1131,7 +1131,7 @@ snd_nm256_interrupt_zx(int irq, void *dev_id, struct pt_regs *dummy) * if it timed out. */ static int -snd_nm256_ac97_ready(nm256_t *chip) +snd_nm256_ac97_ready(struct nm256 *chip) { int timeout = 10; u32 testaddr; @@ -1154,9 +1154,9 @@ snd_nm256_ac97_ready(nm256_t *chip) /* */ static unsigned short -snd_nm256_ac97_read(ac97_t *ac97, unsigned short reg) +snd_nm256_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - nm256_t *chip = ac97->private_data; + struct nm256 *chip = ac97->private_data; int res; if (reg >= 128) @@ -1173,10 +1173,10 @@ snd_nm256_ac97_read(ac97_t *ac97, unsigned short reg) /* */ static void -snd_nm256_ac97_write(ac97_t *ac97, +snd_nm256_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - nm256_t *chip = ac97->private_data; + struct nm256 *chip = ac97->private_data; int tries = 2; u32 base; @@ -1196,9 +1196,9 @@ snd_nm256_ac97_write(ac97_t *ac97, /* initialize the ac97 into a known state */ static void -snd_nm256_ac97_reset(ac97_t *ac97) +snd_nm256_ac97_reset(struct snd_ac97 *ac97) { - nm256_t *chip = ac97->private_data; + struct nm256 *chip = ac97->private_data; /* Reset the mixer. 'Tis magic! */ snd_nm256_writeb(chip, 0x6c0, 1); @@ -1215,12 +1215,12 @@ snd_nm256_ac97_reset(ac97_t *ac97) /* create an ac97 mixer interface */ static int __devinit -snd_nm256_mixer(nm256_t *chip) +snd_nm256_mixer(struct nm256 *chip) { - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int i, err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .reset = snd_nm256_ac97_reset, .write = snd_nm256_ac97_write, .read = snd_nm256_ac97_read, @@ -1263,7 +1263,7 @@ snd_nm256_mixer(nm256_t *chip) */ static int __devinit -snd_nm256_peek_for_sig(nm256_t *chip) +snd_nm256_peek_for_sig(struct nm256 *chip) { /* The signature is located 1K below the end of video RAM. */ void __iomem *temp; @@ -1292,7 +1292,8 @@ snd_nm256_peek_for_sig(nm256_t *chip) return -ENODEV; } else { pointer_found = pointer; - printk(KERN_INFO "nm256: found card signature in video RAM: 0x%x\n", pointer); + printk(KERN_INFO "nm256: found card signature in video RAM: 0x%x\n", + pointer); } } @@ -1307,9 +1308,9 @@ snd_nm256_peek_for_sig(nm256_t *chip) * APM event handler, so the card is properly reinitialized after a power * event. */ -static int nm256_suspend(snd_card_t *card, pm_message_t state) +static int nm256_suspend(struct snd_card *card, pm_message_t state) { - nm256_t *chip = card->pm_private_data; + struct nm256 *chip = card->pm_private_data; snd_pcm_suspend_all(chip->pcm); snd_ac97_suspend(chip->ac97); @@ -1318,9 +1319,9 @@ static int nm256_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int nm256_resume(snd_card_t *card) +static int nm256_resume(struct snd_card *card) { - nm256_t *chip = card->pm_private_data; + struct nm256 *chip = card->pm_private_data; int i; /* Perform a full reset on the hardware */ @@ -1331,7 +1332,7 @@ static int nm256_resume(snd_card_t *card) snd_ac97_resume(chip->ac97); for (i = 0; i < 2; i++) { - nm256_stream_t *s = &chip->streams[i]; + struct nm256_stream *s = &chip->streams[i]; if (s->substream && s->suspended) { spin_lock_irq(&chip->reg_lock); snd_nm256_set_format(chip, s, s->substream); @@ -1343,7 +1344,7 @@ static int nm256_resume(snd_card_t *card) } #endif /* CONFIG_PM */ -static int snd_nm256_free(nm256_t *chip) +static int snd_nm256_free(struct nm256 *chip) { if (chip->streams[SNDRV_PCM_STREAM_PLAYBACK].running) snd_nm256_playback_stop(chip); @@ -1360,26 +1361,26 @@ static int snd_nm256_free(nm256_t *chip) release_and_free_resource(chip->res_cport); release_and_free_resource(chip->res_buffer); if (chip->irq >= 0) - free_irq(chip->irq, (void*)chip); + free_irq(chip->irq, chip); pci_disable_device(chip->pci); kfree(chip); return 0; } -static int snd_nm256_dev_free(snd_device_t *device) +static int snd_nm256_dev_free(struct snd_device *device) { - nm256_t *chip = device->device_data; + struct nm256 *chip = device->device_data; return snd_nm256_free(chip); } static int __devinit -snd_nm256_create(snd_card_t *card, struct pci_dev *pci, - nm256_t **chip_ret) +snd_nm256_create(struct snd_card *card, struct pci_dev *pci, + struct nm256 **chip_ret) { - nm256_t *chip; + struct nm256 *chip; int err, pval; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_nm256_dev_free, }; u32 addr; @@ -1439,7 +1440,8 @@ snd_nm256_create(snd_card_t *card, struct pci_dev *pci, if ((pval & NM_PRESENCE_MASK) != NM_PRESENCE_VALUE) { if (! force_ac97) { printk(KERN_ERR "nm256: no ac97 is found!\n"); - printk(KERN_ERR " force the driver to load by passing in the module parameter\n"); + printk(KERN_ERR " force the driver to load by " + "passing in the module parameter\n"); printk(KERN_ERR " force_ac97=1\n"); printk(KERN_ERR " or try sb16 or cs423x drivers instead.\n"); err = -ENXIO; @@ -1462,7 +1464,8 @@ snd_nm256_create(snd_card_t *card, struct pci_dev *pci, chip->mixer_status_mask = NM2_MIXER_READY_MASK; } - chip->buffer_size = chip->streams[SNDRV_PCM_STREAM_PLAYBACK].bufsize + chip->streams[SNDRV_PCM_STREAM_CAPTURE].bufsize; + chip->buffer_size = chip->streams[SNDRV_PCM_STREAM_PLAYBACK].bufsize + + chip->streams[SNDRV_PCM_STREAM_CAPTURE].bufsize; if (chip->use_cache) chip->buffer_size += NM_TOTAL_COEFF_COUNT * 4; else @@ -1561,8 +1564,8 @@ static struct nm256_quirk nm256_quirks[] __devinitdata = { static int __devinit snd_nm256_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - nm256_t *chip; + struct snd_card *card; + struct nm256 *chip; int err; struct nm256_quirk *q; u16 subsystem_vendor, subsystem_device; @@ -1574,7 +1577,8 @@ static int __devinit snd_nm256_probe(struct pci_dev *pci, if (q->vendor == subsystem_vendor && q->device == subsystem_device) { switch (q->type) { case NM_BLACKLISTED: - printk(KERN_INFO "nm256: The device is blacklisted. Loading stopped\n"); + printk(KERN_INFO "nm256: The device is blacklisted. " + "Loading stopped\n"); return -ENODEV; case NM_RESET_WORKAROUND_2: reset_workaround_2 = 1; -- cgit v1.2.3-70-g09d2 From 02c2de69d0bb0ed39b413188241beb4a29d05378 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:01:46 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI AD1889 Modules: AD1889 driver Remove xxx_t typedefs from the PCI AD1889 driver. Signed-off-by: Takashi Iwai --- sound/pci/ad1889.c | 84 +++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index 999aaeae3ff..61d6d523633 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c @@ -87,20 +87,20 @@ struct ad1889_register_state { }; struct snd_ad1889 { - snd_card_t *card; + struct snd_card *card; struct pci_dev *pci; int irq; unsigned long bar; void __iomem *iobase; - ac97_t *ac97; - ac97_bus_t *ac97_bus; - snd_pcm_t *pcm; - snd_info_entry_t *proc; + struct snd_ac97 *ac97; + struct snd_ac97_bus *ac97_bus; + struct snd_pcm *pcm; + struct snd_info_entry *proc; - snd_pcm_substream_t *psubs; - snd_pcm_substream_t *csubs; + struct snd_pcm_substream *psubs; + struct snd_pcm_substream *csubs; /* playback register state */ struct ad1889_register_state wave; @@ -241,14 +241,14 @@ ad1889_channel_reset(struct snd_ad1889 *chip, unsigned int channel) } static inline u16 -snd_ad1889_ac97_read(ac97_t *ac97, unsigned short reg) +snd_ad1889_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { struct snd_ad1889 *chip = ac97->private_data; return ad1889_readw(chip, AD_AC97_BASE + reg); } static inline void -snd_ad1889_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val) +snd_ad1889_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { struct snd_ad1889 *chip = ac97->private_data; ad1889_writew(chip, AD_AC97_BASE + reg, val); @@ -273,20 +273,20 @@ snd_ad1889_ac97_ready(struct snd_ad1889 *chip) } static int -snd_ad1889_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *hw_params) +snd_ad1889_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } static int -snd_ad1889_hw_free(snd_pcm_substream_t *substream) +snd_ad1889_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static snd_pcm_hardware_t snd_ad1889_playback_hw = { +static struct snd_pcm_hardware snd_ad1889_playback_hw = { .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BLOCK_TRANSFER, .formats = SNDRV_PCM_FMTBIT_S16_LE, @@ -303,7 +303,7 @@ static snd_pcm_hardware_t snd_ad1889_playback_hw = { /*.fifo_size = 0,*/ }; -static snd_pcm_hardware_t snd_ad1889_capture_hw = { +static struct snd_pcm_hardware snd_ad1889_capture_hw = { .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BLOCK_TRANSFER, .formats = SNDRV_PCM_FMTBIT_S16_LE, @@ -321,10 +321,10 @@ static snd_pcm_hardware_t snd_ad1889_capture_hw = { }; static int -snd_ad1889_playback_open(snd_pcm_substream_t *ss) +snd_ad1889_playback_open(struct snd_pcm_substream *ss) { struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); - snd_pcm_runtime_t *rt = ss->runtime; + struct snd_pcm_runtime *rt = ss->runtime; chip->psubs = ss; rt->hw = snd_ad1889_playback_hw; @@ -333,10 +333,10 @@ snd_ad1889_playback_open(snd_pcm_substream_t *ss) } static int -snd_ad1889_capture_open(snd_pcm_substream_t *ss) +snd_ad1889_capture_open(struct snd_pcm_substream *ss) { struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); - snd_pcm_runtime_t *rt = ss->runtime; + struct snd_pcm_runtime *rt = ss->runtime; chip->csubs = ss; rt->hw = snd_ad1889_capture_hw; @@ -345,7 +345,7 @@ snd_ad1889_capture_open(snd_pcm_substream_t *ss) } static int -snd_ad1889_playback_close(snd_pcm_substream_t *ss) +snd_ad1889_playback_close(struct snd_pcm_substream *ss) { struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); chip->psubs = NULL; @@ -353,7 +353,7 @@ snd_ad1889_playback_close(snd_pcm_substream_t *ss) } static int -snd_ad1889_capture_close(snd_pcm_substream_t *ss) +snd_ad1889_capture_close(struct snd_pcm_substream *ss) { struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); chip->csubs = NULL; @@ -361,10 +361,10 @@ snd_ad1889_capture_close(snd_pcm_substream_t *ss) } static int -snd_ad1889_playback_prepare(snd_pcm_substream_t *ss) +snd_ad1889_playback_prepare(struct snd_pcm_substream *ss) { struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); - snd_pcm_runtime_t *rt = ss->runtime; + struct snd_pcm_runtime *rt = ss->runtime; unsigned int size = snd_pcm_lib_buffer_bytes(ss); unsigned int count = snd_pcm_lib_period_bytes(ss); u16 reg; @@ -411,10 +411,10 @@ snd_ad1889_playback_prepare(snd_pcm_substream_t *ss) } static int -snd_ad1889_capture_prepare(snd_pcm_substream_t *ss) +snd_ad1889_capture_prepare(struct snd_pcm_substream *ss) { struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); - snd_pcm_runtime_t *rt = ss->runtime; + struct snd_pcm_runtime *rt = ss->runtime; unsigned int size = snd_pcm_lib_buffer_bytes(ss); unsigned int count = snd_pcm_lib_period_bytes(ss); u16 reg; @@ -462,7 +462,7 @@ snd_ad1889_capture_prepare(snd_pcm_substream_t *ss) DMA should be *triggered* by this call. The WSMC "WAEN" bit triggers DMA Wave On/Off */ static int -snd_ad1889_playback_trigger(snd_pcm_substream_t *ss, int cmd) +snd_ad1889_playback_trigger(struct snd_pcm_substream *ss, int cmd) { u16 wsmc; struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); @@ -503,7 +503,7 @@ snd_ad1889_playback_trigger(snd_pcm_substream_t *ss, int cmd) DMA should be *triggered* by this call. The RAMC "ADEN" bit triggers DMA ADC On/Off */ static int -snd_ad1889_capture_trigger(snd_pcm_substream_t *ss, int cmd) +snd_ad1889_capture_trigger(struct snd_pcm_substream *ss, int cmd) { u16 ramc; struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); @@ -538,7 +538,7 @@ snd_ad1889_capture_trigger(snd_pcm_substream_t *ss, int cmd) /* Called in atomic context with IRQ disabled */ static snd_pcm_uframes_t -snd_ad1889_playback_pointer(snd_pcm_substream_t *ss) +snd_ad1889_playback_pointer(struct snd_pcm_substream *ss) { size_t ptr = 0; struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); @@ -556,7 +556,7 @@ snd_ad1889_playback_pointer(snd_pcm_substream_t *ss) /* Called in atomic context with IRQ disabled */ static snd_pcm_uframes_t -snd_ad1889_capture_pointer(snd_pcm_substream_t *ss) +snd_ad1889_capture_pointer(struct snd_pcm_substream *ss) { size_t ptr = 0; struct snd_ad1889 *chip = snd_pcm_substream_chip(ss); @@ -572,7 +572,7 @@ snd_ad1889_capture_pointer(snd_pcm_substream_t *ss) return bytes_to_frames(ss->runtime, ptr); } -static snd_pcm_ops_t snd_ad1889_playback_ops = { +static struct snd_pcm_ops snd_ad1889_playback_ops = { .open = snd_ad1889_playback_open, .close = snd_ad1889_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -583,7 +583,7 @@ static snd_pcm_ops_t snd_ad1889_playback_ops = { .pointer = snd_ad1889_playback_pointer, }; -static snd_pcm_ops_t snd_ad1889_capture_ops = { +static struct snd_pcm_ops snd_ad1889_capture_ops = { .open = snd_ad1889_capture_open, .close = snd_ad1889_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -624,10 +624,10 @@ snd_ad1889_interrupt(int irq, } static int __devinit -snd_ad1889_pcm_init(struct snd_ad1889 *chip, int device, snd_pcm_t **rpcm) +snd_ad1889_pcm_init(struct snd_ad1889 *chip, int device, struct snd_pcm **rpcm) { int err; - snd_pcm_t *pcm; + struct snd_pcm *pcm; if (rpcm) *rpcm = NULL; @@ -666,7 +666,7 @@ snd_ad1889_pcm_init(struct snd_ad1889 *chip, int device, snd_pcm_t **rpcm) } static void -snd_ad1889_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +snd_ad1889_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { struct snd_ad1889 *chip = entry->private_data; u16 reg; @@ -749,7 +749,7 @@ snd_ad1889_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) static void __devinit snd_ad1889_proc_init(struct snd_ad1889 *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (!snd_card_proc_new(chip->card, chip->card->driver, &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_ad1889_proc_read); @@ -791,14 +791,14 @@ snd_ad1889_ac97_xinit(struct snd_ad1889 *chip) } static void -snd_ad1889_ac97_bus_free(ac97_bus_t *bus) +snd_ad1889_ac97_bus_free(struct snd_ac97_bus *bus) { struct snd_ad1889 *chip = bus->private_data; chip->ac97_bus = NULL; } static void -snd_ad1889_ac97_free(ac97_t *ac97) +snd_ad1889_ac97_free(struct snd_ac97 *ac97) { struct snd_ad1889 *chip = ac97->private_data; chip->ac97 = NULL; @@ -808,8 +808,8 @@ static int __devinit snd_ad1889_ac97_init(struct snd_ad1889 *chip, const char *quirk_override) { int err; - ac97_template_t ac97; - static ac97_bus_ops_t ops = { + struct snd_ac97_template ac97; + static struct snd_ac97_bus_ops ops = { .write = snd_ad1889_ac97_write, .read = snd_ad1889_ac97_read, }; @@ -873,7 +873,7 @@ skip_hw: } static inline int -snd_ad1889_dev_free(snd_device_t *device) +snd_ad1889_dev_free(struct snd_device *device) { struct snd_ad1889 *chip = device->device_data; return snd_ad1889_free(chip); @@ -894,14 +894,14 @@ snd_ad1889_init(struct snd_ad1889 *chip) } static int __devinit -snd_ad1889_create(snd_card_t *card, +snd_ad1889_create(struct snd_card *card, struct pci_dev *pci, struct snd_ad1889 **rchip) { int err; struct snd_ad1889 *chip; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_ad1889_dev_free, }; @@ -985,7 +985,7 @@ snd_ad1889_probe(struct pci_dev *pci, { int err; static int devno; - snd_card_t *card; + struct snd_card *card; struct snd_ad1889 *chip; /* (1) */ -- cgit v1.2.3-70-g09d2 From 17c39d9a59cbf4b3a51a2694134754fc1d3668e7 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:02:01 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ALS4000 Modules: ALS4000 driver Remove xxx_t typedefs from the PCI ALS4000 driver. Signed-off-by: Takashi Iwai --- sound/pci/als4000.c | 126 ++++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 63 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c index 48b5175c59c..8d0d9c0222c 100644 --- a/sound/pci/als4000.c +++ b/sound/pci/als4000.c @@ -105,14 +105,14 @@ module_param_array(joystick_port, int, NULL, 0444); MODULE_PARM_DESC(joystick_port, "Joystick port address for ALS4000 soundcard. (0 = disabled)"); #endif -typedef struct { +struct snd_card_als4000 { /* most frequent access first */ unsigned long gcr; struct pci_dev *pci; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; #endif -} snd_card_als4000_t; +}; static struct pci_device_id snd_als4000_ids[] = { { 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */ @@ -127,7 +127,7 @@ static inline void snd_als4000_gcr_write_addr(unsigned long port, u32 reg, u32 v outl(val, port+0x08); } -static inline void snd_als4000_gcr_write(sb_t *sb, u32 reg, u32 val) +static inline void snd_als4000_gcr_write(struct snd_sb *sb, u32 reg, u32 val) { snd_als4000_gcr_write_addr(sb->alt_port, reg, val); } @@ -138,12 +138,12 @@ static inline u32 snd_als4000_gcr_read_addr(unsigned long port, u32 reg) return inl(port+0x08); } -static inline u32 snd_als4000_gcr_read(sb_t *sb, u32 reg) +static inline u32 snd_als4000_gcr_read(struct snd_sb *sb, u32 reg) { return snd_als4000_gcr_read_addr(sb->alt_port, reg); } -static void snd_als4000_set_rate(sb_t *chip, unsigned int rate) +static void snd_als4000_set_rate(struct snd_sb *chip, unsigned int rate) { if (!(chip->mode & SB_RATE_LOCK)) { snd_sbdsp_command(chip, SB_DSP_SAMPLE_RATE_OUT); @@ -152,13 +152,15 @@ static void snd_als4000_set_rate(sb_t *chip, unsigned int rate) } } -static inline void snd_als4000_set_capture_dma(sb_t *chip, dma_addr_t addr, unsigned size) +static inline void snd_als4000_set_capture_dma(struct snd_sb *chip, + dma_addr_t addr, unsigned size) { snd_als4000_gcr_write(chip, 0xa2, addr); snd_als4000_gcr_write(chip, 0xa3, (size-1)); } -static inline void snd_als4000_set_playback_dma(sb_t *chip, dma_addr_t addr, unsigned size) +static inline void snd_als4000_set_playback_dma(struct snd_sb *chip, + dma_addr_t addr, unsigned size) { snd_als4000_gcr_write(chip, 0x91, addr); snd_als4000_gcr_write(chip, 0x92, (size-1)|0x180000); @@ -168,7 +170,7 @@ static inline void snd_als4000_set_playback_dma(sb_t *chip, dma_addr_t addr, uns #define ALS4000_FORMAT_16BIT (1<<1) #define ALS4000_FORMAT_STEREO (1<<2) -static int snd_als4000_get_format(snd_pcm_runtime_t *runtime) +static int snd_als4000_get_format(struct snd_pcm_runtime *runtime) { int result; @@ -220,23 +222,22 @@ CMD_SIGNED|CMD_STEREO, /* ALS4000_FORMAT_S16L_STEREO */ }; #define capture_cmd(chip) (capture_cmd_vals[(chip)->capture_format]) -static int snd_als4000_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_als4000_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_als4000_hw_free(snd_pcm_substream_t * substream) +static int snd_als4000_hw_free(struct snd_pcm_substream *substream) { snd_pcm_lib_free_pages(substream); return 0; } -static int snd_als4000_capture_prepare(snd_pcm_substream_t * substream) +static int snd_als4000_capture_prepare(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - unsigned long flags; + struct snd_sb *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned long size; unsigned count; @@ -249,22 +250,21 @@ static int snd_als4000_capture_prepare(snd_pcm_substream_t * substream) count >>=1; count--; - spin_lock_irqsave(&chip->reg_lock, flags); + spin_lock_irq(&chip->reg_lock); snd_als4000_set_rate(chip, runtime->rate); snd_als4000_set_capture_dma(chip, runtime->dma_addr, size); - spin_unlock_irqrestore(&chip->reg_lock, flags); - spin_lock_irqsave(&chip->mixer_lock, flags ); + spin_unlock_irq(&chip->reg_lock); + spin_lock_irq(&chip->mixer_lock); snd_sbmixer_write(chip, 0xdc, count); snd_sbmixer_write(chip, 0xdd, count>>8); - spin_unlock_irqrestore(&chip->mixer_lock, flags ); + spin_unlock_irq(&chip->mixer_lock); return 0; } -static int snd_als4000_playback_prepare(snd_pcm_substream_t *substream) +static int snd_als4000_playback_prepare(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - unsigned long flags; + struct snd_sb *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned long size; unsigned count; @@ -283,7 +283,7 @@ static int snd_als4000_playback_prepare(snd_pcm_substream_t *substream) * reordering, ...). Something seems to get enabled on playback * that I haven't found out how to disable again, which then causes * the switching pops to reach the speakers the next time here. */ - spin_lock_irqsave(&chip->reg_lock, flags); + spin_lock_irq(&chip->reg_lock); snd_als4000_set_rate(chip, runtime->rate); snd_als4000_set_playback_dma(chip, runtime->dma_addr, size); @@ -294,14 +294,14 @@ static int snd_als4000_playback_prepare(snd_pcm_substream_t *substream) snd_sbdsp_command(chip, count); snd_sbdsp_command(chip, count>>8); snd_sbdsp_command(chip, playback_cmd(chip).dma_off); - spin_unlock_irqrestore(&chip->reg_lock, flags); + spin_unlock_irq(&chip->reg_lock); return 0; } -static int snd_als4000_capture_trigger(snd_pcm_substream_t * substream, int cmd) +static int snd_als4000_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - sb_t *chip = snd_pcm_substream_chip(substream); + struct snd_sb *chip = snd_pcm_substream_chip(substream); int result = 0; spin_lock(&chip->mixer_lock); @@ -318,9 +318,9 @@ static int snd_als4000_capture_trigger(snd_pcm_substream_t * substream, int cmd) return result; } -static int snd_als4000_playback_trigger(snd_pcm_substream_t * substream, int cmd) +static int snd_als4000_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - sb_t *chip = snd_pcm_substream_chip(substream); + struct snd_sb *chip = snd_pcm_substream_chip(substream); int result = 0; spin_lock(&chip->reg_lock); @@ -337,9 +337,9 @@ static int snd_als4000_playback_trigger(snd_pcm_substream_t * substream, int cmd return result; } -static snd_pcm_uframes_t snd_als4000_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_als4000_capture_pointer(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); + struct snd_sb *chip = snd_pcm_substream_chip(substream); unsigned int result; spin_lock(&chip->reg_lock); @@ -348,9 +348,9 @@ static snd_pcm_uframes_t snd_als4000_capture_pointer(snd_pcm_substream_t * subst return bytes_to_frames( substream->runtime, result ); } -static snd_pcm_uframes_t snd_als4000_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_als4000_playback_pointer(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); + struct snd_sb *chip = snd_pcm_substream_chip(substream); unsigned result; spin_lock(&chip->reg_lock); @@ -373,7 +373,7 @@ static snd_pcm_uframes_t snd_als4000_playback_pointer(snd_pcm_substream_t * subs * */ static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - sb_t *chip = dev_id; + struct snd_sb *chip = dev_id; unsigned gcr_status; unsigned sb_status; @@ -406,7 +406,7 @@ static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs * /*****************************************************************/ -static snd_pcm_hardware_t snd_als4000_playback = +static struct snd_pcm_hardware snd_als4000_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID), @@ -425,7 +425,7 @@ static snd_pcm_hardware_t snd_als4000_playback = .fifo_size = 0 }; -static snd_pcm_hardware_t snd_als4000_capture = +static struct snd_pcm_hardware snd_als4000_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID), @@ -446,38 +446,38 @@ static snd_pcm_hardware_t snd_als4000_capture = /*****************************************************************/ -static int snd_als4000_playback_open(snd_pcm_substream_t * substream) +static int snd_als4000_playback_open(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_sb *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; chip->playback_substream = substream; runtime->hw = snd_als4000_playback; return 0; } -static int snd_als4000_playback_close(snd_pcm_substream_t * substream) +static int snd_als4000_playback_close(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); + struct snd_sb *chip = snd_pcm_substream_chip(substream); chip->playback_substream = NULL; snd_pcm_lib_free_pages(substream); return 0; } -static int snd_als4000_capture_open(snd_pcm_substream_t * substream) +static int snd_als4000_capture_open(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_sb *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; chip->capture_substream = substream; runtime->hw = snd_als4000_capture; return 0; } -static int snd_als4000_capture_close(snd_pcm_substream_t * substream) +static int snd_als4000_capture_close(struct snd_pcm_substream *substream) { - sb_t *chip = snd_pcm_substream_chip(substream); + struct snd_sb *chip = snd_pcm_substream_chip(substream); chip->capture_substream = NULL; snd_pcm_lib_free_pages(substream); @@ -486,7 +486,7 @@ static int snd_als4000_capture_close(snd_pcm_substream_t * substream) /******************************************************************/ -static snd_pcm_ops_t snd_als4000_playback_ops = { +static struct snd_pcm_ops snd_als4000_playback_ops = { .open = snd_als4000_playback_open, .close = snd_als4000_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -497,7 +497,7 @@ static snd_pcm_ops_t snd_als4000_playback_ops = { .pointer = snd_als4000_playback_pointer }; -static snd_pcm_ops_t snd_als4000_capture_ops = { +static struct snd_pcm_ops snd_als4000_capture_ops = { .open = snd_als4000_capture_open, .close = snd_als4000_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -508,9 +508,9 @@ static snd_pcm_ops_t snd_als4000_capture_ops = { .pointer = snd_als4000_capture_pointer }; -static int __devinit snd_als4000_pcm(sb_t *chip, int device) +static int __devinit snd_als4000_pcm(struct snd_sb *chip, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if ((err = snd_pcm_new(chip->card, "ALS4000 DSP", device, 1, 1, &pcm)) < 0) @@ -551,7 +551,7 @@ static void snd_als4000_set_addr(unsigned long gcr, snd_als4000_gcr_write_addr(gcr, 0xa9, confB); } -static void __devinit snd_als4000_configure(sb_t *chip) +static void __devinit snd_als4000_configure(struct snd_sb *chip) { unsigned tmp; int i; @@ -576,7 +576,7 @@ static void __devinit snd_als4000_configure(sb_t *chip) } #ifdef SUPPORT_JOYSTICK -static int __devinit snd_als4000_create_gameport(snd_card_als4000_t *acard, int dev) +static int __devinit snd_als4000_create_gameport(struct snd_card_als4000 *acard, int dev) { struct gameport *gp; struct resource *r; @@ -622,7 +622,7 @@ static int __devinit snd_als4000_create_gameport(snd_card_als4000_t *acard, int return 0; } -static void snd_als4000_free_gameport(snd_card_als4000_t *acard) +static void snd_als4000_free_gameport(struct snd_card_als4000 *acard) { if (acard->gameport) { struct resource *r = gameport_get_port_data(acard->gameport); @@ -635,13 +635,13 @@ static void snd_als4000_free_gameport(snd_card_als4000_t *acard) } } #else -static inline int snd_als4000_create_gameport(snd_card_als4000_t *acard, int dev) { return -ENOSYS; } -static inline void snd_als4000_free_gameport(snd_card_als4000_t *acard) { } +static inline int snd_als4000_create_gameport(struct snd_card_als4000 *acard, int dev) { return -ENOSYS; } +static inline void snd_als4000_free_gameport(struct snd_card_als4000 *acard) { } #endif -static void snd_card_als4000_free( snd_card_t *card ) +static void snd_card_als4000_free( struct snd_card *card ) { - snd_card_als4000_t * acard = (snd_card_als4000_t *)card->private_data; + struct snd_card_als4000 * acard = (struct snd_card_als4000 *)card->private_data; /* make sure that interrupts are disabled */ snd_als4000_gcr_write_addr( acard->gcr, 0x8c, 0); @@ -655,11 +655,11 @@ static int __devinit snd_card_als4000_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - snd_card_als4000_t *acard; + struct snd_card *card; + struct snd_card_als4000 *acard; unsigned long gcr; - sb_t *chip; - opl3_t *opl3; + struct snd_sb *chip; + struct snd_opl3 *opl3; unsigned short word; int err; @@ -693,14 +693,14 @@ static int __devinit snd_card_als4000_probe(struct pci_dev *pci, pci_set_master(pci); card = snd_card_new(index[dev], id[dev], THIS_MODULE, - sizeof( snd_card_als4000_t ) ); + sizeof( struct snd_card_als4000 ) ); if (card == NULL) { pci_release_regions(pci); pci_disable_device(pci); return -ENOMEM; } - acard = (snd_card_als4000_t *)card->private_data; + acard = (struct snd_card_als4000 *)card->private_data; acard->pci = pci; acard->gcr = gcr; card->private_free = snd_card_als4000_free; -- cgit v1.2.3-70-g09d2 From 74ee4ff1e62d9798361763f152c6f07d491be819 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:02:23 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ATIIXP Modules: ATIIXP driver,ATIIXP-modem driver Remove xxx_t typedefs from the PCI ATIIXP and modem drivers. Signed-off-by: Takashi Iwai --- sound/pci/atiixp.c | 295 +++++++++++++++++++++++++---------------------- sound/pci/atiixp_modem.c | 259 ++++++++++++++++++++++------------------- 2 files changed, 295 insertions(+), 259 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 36395d0f3d8..5ead66610ed 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -197,24 +197,18 @@ module_param(enable, bool, 0444); #define ATI_MAX_DESCRIPTORS 256 /* max number of descriptor packets */ -/* - */ - -typedef struct snd_atiixp atiixp_t; -typedef struct snd_atiixp_dma atiixp_dma_t; -typedef struct snd_atiixp_dma_ops atiixp_dma_ops_t; - +struct atiixp; /* * DMA packate descriptor */ -typedef struct atiixp_dma_desc { +struct atiixp_dma_desc { u32 addr; /* DMA buffer address */ u16 status; /* status bits */ u16 size; /* size of the packet in dwords */ u32 next; /* address of the next packet descriptor */ -} atiixp_dma_desc_t; +}; /* * stream enum @@ -229,22 +223,25 @@ enum { ATI_PCMDEV_ANALOG, ATI_PCMDEV_DIGITAL, NUM_ATI_PCMDEVS }; /* pcm devices /* * constants and callbacks for each DMA type */ -struct snd_atiixp_dma_ops { +struct atiixp_dma_ops { int type; /* ATI_DMA_XXX */ unsigned int llp_offset; /* LINKPTR offset */ unsigned int dt_cur; /* DT_CUR offset */ - void (*enable_dma)(atiixp_t *chip, int on); /* called from open callback */ - void (*enable_transfer)(atiixp_t *chip, int on); /* called from trigger (START/STOP) */ - void (*flush_dma)(atiixp_t *chip); /* called from trigger (STOP only) */ + /* called from open callback */ + void (*enable_dma)(struct atiixp *chip, int on); + /* called from trigger (START/STOP) */ + void (*enable_transfer)(struct atiixp *chip, int on); + /* called from trigger (STOP only) */ + void (*flush_dma)(struct atiixp *chip); }; /* * DMA stream */ -struct snd_atiixp_dma { - const atiixp_dma_ops_t *ops; +struct atiixp_dma { + const struct atiixp_dma_ops *ops; struct snd_dma_buffer desc_buf; - snd_pcm_substream_t *substream; /* assigned PCM substream */ + struct snd_pcm_substream *substream; /* assigned PCM substream */ unsigned int buf_addr, buf_bytes; /* DMA buffer address, bytes */ unsigned int period_bytes, periods; int opened; @@ -258,22 +255,22 @@ struct snd_atiixp_dma { /* * ATI IXP chip */ -struct snd_atiixp { - snd_card_t *card; +struct atiixp { + struct snd_card *card; struct pci_dev *pci; unsigned long addr; void __iomem *remap_addr; int irq; - ac97_bus_t *ac97_bus; - ac97_t *ac97[NUM_ATI_CODECS]; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97[NUM_ATI_CODECS]; spinlock_t reg_lock; - atiixp_dma_t dmas[NUM_ATI_DMAS]; + struct atiixp_dma dmas[NUM_ATI_DMAS]; struct ac97_pcm *pcms[NUM_ATI_PCMS]; - snd_pcm_t *pcmdevs[NUM_ATI_PCMDEVS]; + struct snd_pcm *pcmdevs[NUM_ATI_PCMDEVS]; int max_channels; /* max. channels for PCM out */ @@ -304,7 +301,7 @@ MODULE_DEVICE_TABLE(pci, snd_atiixp_ids); * update the bits of the given register. * return 1 if the bits changed. */ -static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, +static int snd_atiixp_update_bits(struct atiixp *chip, unsigned int reg, unsigned int mask, unsigned int value) { void __iomem *addr = chip->remap_addr + reg; @@ -336,7 +333,7 @@ static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, */ #define ATI_DESC_LIST_SIZE \ - PAGE_ALIGN(ATI_MAX_DESCRIPTORS * sizeof(atiixp_dma_desc_t)) + PAGE_ALIGN(ATI_MAX_DESCRIPTORS * sizeof(struct atiixp_dma_desc)) /* * build packets ring for the given buffer size. @@ -347,10 +344,10 @@ static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, * * the ring is built in this function, and is set up to the hardware. */ -static int atiixp_build_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, - snd_pcm_substream_t *substream, - unsigned int periods, - unsigned int period_bytes) +static int atiixp_build_dma_packets(struct atiixp *chip, struct atiixp_dma *dma, + struct snd_pcm_substream *substream, + unsigned int periods, + unsigned int period_bytes) { unsigned int i; u32 addr, desc_addr; @@ -360,8 +357,10 @@ static int atiixp_build_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, return -ENOMEM; if (dma->desc_buf.area == NULL) { - if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(chip->pci), - ATI_DESC_LIST_SIZE, &dma->desc_buf) < 0) + if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, + snd_dma_pci_data(chip->pci), + ATI_DESC_LIST_SIZE, + &dma->desc_buf) < 0) return -ENOMEM; dma->period_bytes = dma->periods = 0; /* clear */ } @@ -380,11 +379,12 @@ static int atiixp_build_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, addr = (u32)substream->runtime->dma_addr; desc_addr = (u32)dma->desc_buf.addr; for (i = 0; i < periods; i++) { - atiixp_dma_desc_t *desc = &((atiixp_dma_desc_t *)dma->desc_buf.area)[i]; + struct atiixp_dma_desc *desc; + desc = &((struct atiixp_dma_desc *)dma->desc_buf.area)[i]; desc->addr = cpu_to_le32(addr); desc->status = 0; desc->size = period_bytes >> 2; /* in dwords */ - desc_addr += sizeof(atiixp_dma_desc_t); + desc_addr += sizeof(struct atiixp_dma_desc); if (i == periods - 1) desc->next = cpu_to_le32((u32)dma->desc_buf.addr); else @@ -404,7 +404,8 @@ static int atiixp_build_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, /* * remove the ring buffer and release it if assigned */ -static void atiixp_clear_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, snd_pcm_substream_t *substream) +static void atiixp_clear_dma_packets(struct atiixp *chip, struct atiixp_dma *dma, + struct snd_pcm_substream *substream) { if (dma->desc_buf.area) { writel(0, chip->remap_addr + dma->ops->llp_offset); @@ -416,7 +417,7 @@ static void atiixp_clear_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, snd_pcm_ /* * AC97 interface */ -static int snd_atiixp_acquire_codec(atiixp_t *chip) +static int snd_atiixp_acquire_codec(struct atiixp *chip) { int timeout = 1000; @@ -430,7 +431,7 @@ static int snd_atiixp_acquire_codec(atiixp_t *chip) return 0; } -static unsigned short snd_atiixp_codec_read(atiixp_t *chip, unsigned short codec, unsigned short reg) +static unsigned short snd_atiixp_codec_read(struct atiixp *chip, unsigned short codec, unsigned short reg) { unsigned int data; int timeout; @@ -458,7 +459,8 @@ static unsigned short snd_atiixp_codec_read(atiixp_t *chip, unsigned short codec } -static void snd_atiixp_codec_write(atiixp_t *chip, unsigned short codec, unsigned short reg, unsigned short val) +static void snd_atiixp_codec_write(struct atiixp *chip, unsigned short codec, + unsigned short reg, unsigned short val) { unsigned int data; @@ -471,23 +473,25 @@ static void snd_atiixp_codec_write(atiixp_t *chip, unsigned short codec, unsigne } -static unsigned short snd_atiixp_ac97_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_atiixp_ac97_read(struct snd_ac97 *ac97, + unsigned short reg) { - atiixp_t *chip = ac97->private_data; + struct atiixp *chip = ac97->private_data; return snd_atiixp_codec_read(chip, ac97->num, reg); } -static void snd_atiixp_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val) +static void snd_atiixp_ac97_write(struct snd_ac97 *ac97, unsigned short reg, + unsigned short val) { - atiixp_t *chip = ac97->private_data; + struct atiixp *chip = ac97->private_data; snd_atiixp_codec_write(chip, ac97->num, reg, val); } /* * reset AC link */ -static int snd_atiixp_aclink_reset(atiixp_t *chip) +static int snd_atiixp_aclink_reset(struct atiixp *chip) { int timeout; @@ -507,7 +511,7 @@ static int snd_atiixp_aclink_reset(atiixp_t *chip) atiixp_update(chip, CMD, ATI_REG_CMD_AC_SYNC|ATI_REG_CMD_AC_RESET, ATI_REG_CMD_AC_SYNC); atiixp_read(chip, CMD); - msleep(1); + mdelay(1); atiixp_update(chip, CMD, ATI_REG_CMD_AC_RESET, ATI_REG_CMD_AC_RESET); if (--timeout) { snd_printk(KERN_ERR "atiixp: codec reset timeout\n"); @@ -523,7 +527,7 @@ static int snd_atiixp_aclink_reset(atiixp_t *chip) } #ifdef CONFIG_PM -static int snd_atiixp_aclink_down(atiixp_t *chip) +static int snd_atiixp_aclink_down(struct atiixp *chip) { // if (atiixp_read(chip, MODEM_MIRROR) & 0x1) /* modem running, too? */ // return -EBUSY; @@ -548,7 +552,7 @@ static int snd_atiixp_aclink_down(atiixp_t *chip) ATI_REG_ISR_CODEC2_NOT_READY) #define CODEC_CHECK_BITS (ALL_CODEC_NOT_READY|ATI_REG_ISR_NEW_FRAME) -static int snd_atiixp_codec_detect(atiixp_t *chip) +static int snd_atiixp_codec_detect(struct atiixp *chip) { int timeout; @@ -557,7 +561,7 @@ static int snd_atiixp_codec_detect(atiixp_t *chip) /* wait for the interrupts */ timeout = 50; while (timeout-- > 0) { - msleep(1); + mdelay(1); if (chip->codec_not_ready_bits) break; } @@ -574,7 +578,7 @@ static int snd_atiixp_codec_detect(atiixp_t *chip) /* * enable DMA and irqs */ -static int snd_atiixp_chip_start(atiixp_t *chip) +static int snd_atiixp_chip_start(struct atiixp *chip) { unsigned int reg; @@ -604,7 +608,7 @@ static int snd_atiixp_chip_start(atiixp_t *chip) /* * disable DMA and IRQs */ -static int snd_atiixp_chip_stop(atiixp_t *chip) +static int snd_atiixp_chip_stop(struct atiixp *chip) { /* clear interrupt source */ atiixp_write(chip, ISR, atiixp_read(chip, ISR)); @@ -623,11 +627,11 @@ static int snd_atiixp_chip_stop(atiixp_t *chip) * position. when SG-buffer is implemented, the offset must be calculated * correctly... */ -static snd_pcm_uframes_t snd_atiixp_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_atiixp_pcm_pointer(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - atiixp_dma_t *dma = (atiixp_dma_t *)runtime->private_data; + struct atiixp *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct atiixp_dma *dma = runtime->private_data; unsigned int curptr; int timeout = 1000; @@ -648,7 +652,7 @@ static snd_pcm_uframes_t snd_atiixp_pcm_pointer(snd_pcm_substream_t *substream) /* * XRUN detected, and stop the PCM substream */ -static void snd_atiixp_xrun_dma(atiixp_t *chip, atiixp_dma_t *dma) +static void snd_atiixp_xrun_dma(struct atiixp *chip, struct atiixp_dma *dma) { if (! dma->substream || ! dma->running) return; @@ -659,7 +663,7 @@ static void snd_atiixp_xrun_dma(atiixp_t *chip, atiixp_dma_t *dma) /* * the period ack. update the substream. */ -static void snd_atiixp_update_dma(atiixp_t *chip, atiixp_dma_t *dma) +static void snd_atiixp_update_dma(struct atiixp *chip, struct atiixp_dma *dma) { if (! dma->substream || ! dma->running) return; @@ -668,7 +672,7 @@ static void snd_atiixp_update_dma(atiixp_t *chip, atiixp_dma_t *dma) /* set BUS_BUSY interrupt bit if any DMA is running */ /* call with spinlock held */ -static void snd_atiixp_check_bus_busy(atiixp_t *chip) +static void snd_atiixp_check_bus_busy(struct atiixp *chip) { unsigned int bus_busy; if (atiixp_read(chip, CMD) & (ATI_REG_CMD_SEND_EN | @@ -683,10 +687,10 @@ static void snd_atiixp_check_bus_busy(atiixp_t *chip) /* common trigger callback * calling the lowlevel callbacks in it */ -static int snd_atiixp_pcm_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_atiixp_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - atiixp_dma_t *dma = (atiixp_dma_t *)substream->runtime->private_data; + struct atiixp *chip = snd_pcm_substream_chip(substream); + struct atiixp_dma *dma = substream->runtime->private_data; int err = 0; snd_assert(dma->ops->enable_transfer && dma->ops->flush_dma, return -EINVAL); @@ -730,13 +734,13 @@ static int snd_atiixp_pcm_trigger(snd_pcm_substream_t *substream, int cmd) */ /* flush FIFO of analog OUT DMA */ -static void atiixp_out_flush_dma(atiixp_t *chip) +static void atiixp_out_flush_dma(struct atiixp *chip) { atiixp_write(chip, FIFO_FLUSH, ATI_REG_FIFO_OUT_FLUSH); } /* enable/disable analog OUT DMA */ -static void atiixp_out_enable_dma(atiixp_t *chip, int on) +static void atiixp_out_enable_dma(struct atiixp *chip, int on) { unsigned int data; data = atiixp_read(chip, CMD); @@ -751,21 +755,21 @@ static void atiixp_out_enable_dma(atiixp_t *chip, int on) } /* start/stop transfer over OUT DMA */ -static void atiixp_out_enable_transfer(atiixp_t *chip, int on) +static void atiixp_out_enable_transfer(struct atiixp *chip, int on) { atiixp_update(chip, CMD, ATI_REG_CMD_SEND_EN, on ? ATI_REG_CMD_SEND_EN : 0); } /* enable/disable analog IN DMA */ -static void atiixp_in_enable_dma(atiixp_t *chip, int on) +static void atiixp_in_enable_dma(struct atiixp *chip, int on) { atiixp_update(chip, CMD, ATI_REG_CMD_IN_DMA_EN, on ? ATI_REG_CMD_IN_DMA_EN : 0); } /* start/stop analog IN DMA */ -static void atiixp_in_enable_transfer(atiixp_t *chip, int on) +static void atiixp_in_enable_transfer(struct atiixp *chip, int on) { if (on) { unsigned int data = atiixp_read(chip, CMD); @@ -784,20 +788,20 @@ static void atiixp_in_enable_transfer(atiixp_t *chip, int on) } /* flush FIFO of analog IN DMA */ -static void atiixp_in_flush_dma(atiixp_t *chip) +static void atiixp_in_flush_dma(struct atiixp *chip) { atiixp_write(chip, FIFO_FLUSH, ATI_REG_FIFO_IN_FLUSH); } /* enable/disable SPDIF OUT DMA */ -static void atiixp_spdif_enable_dma(atiixp_t *chip, int on) +static void atiixp_spdif_enable_dma(struct atiixp *chip, int on) { atiixp_update(chip, CMD, ATI_REG_CMD_SPDF_DMA_EN, on ? ATI_REG_CMD_SPDF_DMA_EN : 0); } /* start/stop SPDIF OUT DMA */ -static void atiixp_spdif_enable_transfer(atiixp_t *chip, int on) +static void atiixp_spdif_enable_transfer(struct atiixp *chip, int on) { unsigned int data; data = atiixp_read(chip, CMD); @@ -809,7 +813,7 @@ static void atiixp_spdif_enable_transfer(atiixp_t *chip, int on) } /* flush FIFO of SPDIF OUT DMA */ -static void atiixp_spdif_flush_dma(atiixp_t *chip) +static void atiixp_spdif_flush_dma(struct atiixp *chip) { int timeout; @@ -828,9 +832,9 @@ static void atiixp_spdif_flush_dma(atiixp_t *chip) } /* set up slots and formats for SPDIF OUT */ -static int snd_atiixp_spdif_prepare(snd_pcm_substream_t *substream) +static int snd_atiixp_spdif_prepare(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); spin_lock_irq(&chip->reg_lock); if (chip->spdif_over_aclink) { @@ -855,9 +859,9 @@ static int snd_atiixp_spdif_prepare(snd_pcm_substream_t *substream) } /* set up slots and formats for analog OUT */ -static int snd_atiixp_playback_prepare(snd_pcm_substream_t *substream) +static int snd_atiixp_playback_prepare(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); unsigned int data; spin_lock_irq(&chip->reg_lock); @@ -900,9 +904,9 @@ static int snd_atiixp_playback_prepare(snd_pcm_substream_t *substream) } /* set up slots and formats for analog IN */ -static int snd_atiixp_capture_prepare(snd_pcm_substream_t *substream) +static int snd_atiixp_capture_prepare(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); spin_lock_irq(&chip->reg_lock); atiixp_update(chip, CMD, ATI_REG_CMD_INTERLEAVE_IN, @@ -915,11 +919,11 @@ static int snd_atiixp_capture_prepare(snd_pcm_substream_t *substream) /* * hw_params - allocate the buffer and set up buffer descriptors */ -static int snd_atiixp_pcm_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *hw_params) +static int snd_atiixp_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - atiixp_dma_t *dma = (atiixp_dma_t *)substream->runtime->private_data; + struct atiixp *chip = snd_pcm_substream_chip(substream); + struct atiixp_dma *dma = substream->runtime->private_data; int err; err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); @@ -953,10 +957,10 @@ static int snd_atiixp_pcm_hw_params(snd_pcm_substream_t *substream, return err; } -static int snd_atiixp_pcm_hw_free(snd_pcm_substream_t * substream) +static int snd_atiixp_pcm_hw_free(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - atiixp_dma_t *dma = (atiixp_dma_t *)substream->runtime->private_data; + struct atiixp *chip = snd_pcm_substream_chip(substream); + struct atiixp_dma *dma = substream->runtime->private_data; if (dma->pcm_open_flag) { struct ac97_pcm *pcm = chip->pcms[dma->ac97_pcm_type]; @@ -972,7 +976,7 @@ static int snd_atiixp_pcm_hw_free(snd_pcm_substream_t * substream) /* * pcm hardware definition, identical for all DMA types */ -static snd_pcm_hardware_t snd_atiixp_pcm_hw = +static struct snd_pcm_hardware snd_atiixp_pcm_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -992,10 +996,11 @@ static snd_pcm_hardware_t snd_atiixp_pcm_hw = .periods_max = ATI_MAX_DESCRIPTORS, }; -static int snd_atiixp_pcm_open(snd_pcm_substream_t *substream, atiixp_dma_t *dma, int pcm_type) +static int snd_atiixp_pcm_open(struct snd_pcm_substream *substream, + struct atiixp_dma *dma, int pcm_type) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct atiixp *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; snd_assert(dma->ops && dma->ops->enable_dma, return -EINVAL); @@ -1025,9 +1030,10 @@ static int snd_atiixp_pcm_open(snd_pcm_substream_t *substream, atiixp_dma_t *dma return 0; } -static int snd_atiixp_pcm_close(snd_pcm_substream_t *substream, atiixp_dma_t *dma) +static int snd_atiixp_pcm_close(struct snd_pcm_substream *substream, + struct atiixp_dma *dma) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); /* disable DMA bits */ snd_assert(dma->ops && dma->ops->enable_dma, return -EINVAL); spin_lock_irq(&chip->reg_lock); @@ -1040,9 +1046,9 @@ static int snd_atiixp_pcm_close(snd_pcm_substream_t *substream, atiixp_dma_t *dm /* */ -static int snd_atiixp_playback_open(snd_pcm_substream_t *substream) +static int snd_atiixp_playback_open(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); int err; down(&chip->open_mutex); @@ -1058,9 +1064,9 @@ static int snd_atiixp_playback_open(snd_pcm_substream_t *substream) return 0; } -static int snd_atiixp_playback_close(snd_pcm_substream_t *substream) +static int snd_atiixp_playback_close(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); int err; down(&chip->open_mutex); err = snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_PLAYBACK]); @@ -1068,21 +1074,21 @@ static int snd_atiixp_playback_close(snd_pcm_substream_t *substream) return err; } -static int snd_atiixp_capture_open(snd_pcm_substream_t *substream) +static int snd_atiixp_capture_open(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); return snd_atiixp_pcm_open(substream, &chip->dmas[ATI_DMA_CAPTURE], 1); } -static int snd_atiixp_capture_close(snd_pcm_substream_t *substream) +static int snd_atiixp_capture_close(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); return snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_CAPTURE]); } -static int snd_atiixp_spdif_open(snd_pcm_substream_t *substream) +static int snd_atiixp_spdif_open(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); int err; down(&chip->open_mutex); if (chip->spdif_over_aclink) /* share DMA_PLAYBACK */ @@ -1093,9 +1099,9 @@ static int snd_atiixp_spdif_open(snd_pcm_substream_t *substream) return err; } -static int snd_atiixp_spdif_close(snd_pcm_substream_t *substream) +static int snd_atiixp_spdif_close(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp *chip = snd_pcm_substream_chip(substream); int err; down(&chip->open_mutex); if (chip->spdif_over_aclink) @@ -1107,7 +1113,7 @@ static int snd_atiixp_spdif_close(snd_pcm_substream_t *substream) } /* AC97 playback */ -static snd_pcm_ops_t snd_atiixp_playback_ops = { +static struct snd_pcm_ops snd_atiixp_playback_ops = { .open = snd_atiixp_playback_open, .close = snd_atiixp_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1119,7 +1125,7 @@ static snd_pcm_ops_t snd_atiixp_playback_ops = { }; /* AC97 capture */ -static snd_pcm_ops_t snd_atiixp_capture_ops = { +static struct snd_pcm_ops snd_atiixp_capture_ops = { .open = snd_atiixp_capture_open, .close = snd_atiixp_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1131,7 +1137,7 @@ static snd_pcm_ops_t snd_atiixp_capture_ops = { }; /* SPDIF playback */ -static snd_pcm_ops_t snd_atiixp_spdif_ops = { +static struct snd_pcm_ops snd_atiixp_spdif_ops = { .open = snd_atiixp_spdif_open, .close = snd_atiixp_spdif_close, .ioctl = snd_pcm_lib_ioctl, @@ -1178,7 +1184,7 @@ static struct ac97_pcm atiixp_pcm_defs[] __devinitdata = { }, }; -static atiixp_dma_ops_t snd_atiixp_playback_dma_ops = { +static struct atiixp_dma_ops snd_atiixp_playback_dma_ops = { .type = ATI_DMA_PLAYBACK, .llp_offset = ATI_REG_OUT_DMA_LINKPTR, .dt_cur = ATI_REG_OUT_DMA_DT_CUR, @@ -1187,7 +1193,7 @@ static atiixp_dma_ops_t snd_atiixp_playback_dma_ops = { .flush_dma = atiixp_out_flush_dma, }; -static atiixp_dma_ops_t snd_atiixp_capture_dma_ops = { +static struct atiixp_dma_ops snd_atiixp_capture_dma_ops = { .type = ATI_DMA_CAPTURE, .llp_offset = ATI_REG_IN_DMA_LINKPTR, .dt_cur = ATI_REG_IN_DMA_DT_CUR, @@ -1196,7 +1202,7 @@ static atiixp_dma_ops_t snd_atiixp_capture_dma_ops = { .flush_dma = atiixp_in_flush_dma, }; -static atiixp_dma_ops_t snd_atiixp_spdif_dma_ops = { +static struct atiixp_dma_ops snd_atiixp_spdif_dma_ops = { .type = ATI_DMA_SPDIF, .llp_offset = ATI_REG_SPDF_DMA_LINKPTR, .dt_cur = ATI_REG_SPDF_DMA_DT_CUR, @@ -1206,10 +1212,10 @@ static atiixp_dma_ops_t snd_atiixp_spdif_dma_ops = { }; -static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) +static int __devinit snd_atiixp_pcm_new(struct atiixp *chip) { - snd_pcm_t *pcm; - ac97_bus_t *pbus = chip->ac97_bus; + struct snd_pcm *pcm; + struct snd_ac97_bus *pbus = chip->ac97_bus; int err, i, num_pcms; /* initialize constants */ @@ -1238,7 +1244,8 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) } /* PCM #0: analog I/O */ - err = snd_pcm_new(chip->card, "ATI IXP AC97", ATI_PCMDEV_ANALOG, 1, 1, &pcm); + err = snd_pcm_new(chip->card, "ATI IXP AC97", + ATI_PCMDEV_ANALOG, 1, 1, &pcm); if (err < 0) return err; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_atiixp_playback_ops); @@ -1248,7 +1255,8 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) chip->pcmdevs[ATI_PCMDEV_ANALOG] = pcm; snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024); + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024); /* no SPDIF support on codec? */ if (chip->pcms[ATI_PCM_SPDIF] && ! chip->pcms[ATI_PCM_SPDIF]->rates) @@ -1259,7 +1267,8 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) chip->pcms[ATI_PCM_SPDIF]->rates = SNDRV_PCM_RATE_48000; /* PCM #1: spdif playback */ - err = snd_pcm_new(chip->card, "ATI IXP IEC958", ATI_PCMDEV_DIGITAL, 1, 0, &pcm); + err = snd_pcm_new(chip->card, "ATI IXP IEC958", + ATI_PCMDEV_DIGITAL, 1, 0, &pcm); if (err < 0) return err; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_atiixp_spdif_ops); @@ -1271,12 +1280,15 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) chip->pcmdevs[ATI_PCMDEV_DIGITAL] = pcm; snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024); + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024); /* pre-select AC97 SPDIF slots 10/11 */ for (i = 0; i < NUM_ATI_CODECS; i++) { if (chip->ac97[i]) - snd_ac97_update_bits(chip->ac97[i], AC97_EXTENDED_STATUS, 0x03 << 4, 0x03 << 4); + snd_ac97_update_bits(chip->ac97[i], + AC97_EXTENDED_STATUS, + 0x03 << 4, 0x03 << 4); } return 0; @@ -1289,7 +1301,7 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) */ static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - atiixp_t *chip = dev_id; + struct atiixp *chip = dev_id; unsigned int status; status = atiixp_read(chip, ISR); @@ -1344,13 +1356,14 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { { } /* terminator */ }; -static int __devinit snd_atiixp_mixer_new(atiixp_t *chip, int clock, const char *quirk_override) +static int __devinit snd_atiixp_mixer_new(struct atiixp *chip, int clock, + const char *quirk_override) { - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int i, err; int codec_count; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_atiixp_ac97_write, .read = snd_atiixp_ac97_read, }; @@ -1402,16 +1415,17 @@ static int __devinit snd_atiixp_mixer_new(atiixp_t *chip, int clock, const char /* * power management */ -static int snd_atiixp_suspend(snd_card_t *card, pm_message_t state) +static int snd_atiixp_suspend(struct snd_card *card, pm_message_t state) { - atiixp_t *chip = card->pm_private_data; + struct atiixp *chip = card->pm_private_data; int i; for (i = 0; i < NUM_ATI_PCMDEVS; i++) if (chip->pcmdevs[i]) { - atiixp_dma_t *dma = &chip->dmas[i]; + struct atiixp_dma *dma = &chip->dmas[i]; if (dma->substream && dma->running) - dma->saved_curptr = readl(chip->remap_addr + dma->ops->dt_cur); + dma->saved_curptr = readl(chip->remap_addr + + dma->ops->dt_cur); snd_pcm_suspend_all(chip->pcmdevs[i]); } for (i = 0; i < NUM_ATI_CODECS; i++) @@ -1425,9 +1439,9 @@ static int snd_atiixp_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int snd_atiixp_resume(snd_card_t *card) +static int snd_atiixp_resume(struct snd_card *card) { - atiixp_t *chip = card->pm_private_data; + struct atiixp *chip = card->pm_private_data; int i; pci_enable_device(chip->pci); @@ -1443,13 +1457,14 @@ static int snd_atiixp_resume(snd_card_t *card) for (i = 0; i < NUM_ATI_PCMDEVS; i++) if (chip->pcmdevs[i]) { - atiixp_dma_t *dma = &chip->dmas[i]; + struct atiixp_dma *dma = &chip->dmas[i]; if (dma->substream && dma->suspended) { dma->ops->enable_dma(chip, 1); dma->substream->ops->prepare(dma->substream); writel((u32)dma->desc_buf.addr | ATI_REG_LINKPTR_EN, chip->remap_addr + dma->ops->llp_offset); - writel(dma->saved_curptr, chip->remap_addr + dma->ops->dt_cur); + writel(dma->saved_curptr, chip->remap_addr + + dma->ops->dt_cur); } } @@ -1462,18 +1477,19 @@ static int snd_atiixp_resume(snd_card_t *card) * proc interface for register dump */ -static void snd_atiixp_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void snd_atiixp_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - atiixp_t *chip = entry->private_data; + struct atiixp *chip = entry->private_data; int i; for (i = 0; i < 256; i += 4) snd_iprintf(buffer, "%02x: %08x\n", i, readl(chip->remap_addr + i)); } -static void __devinit snd_atiixp_proc_init(atiixp_t *chip) +static void __devinit snd_atiixp_proc_init(struct atiixp *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "atiixp", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_atiixp_proc_read); @@ -1485,7 +1501,7 @@ static void __devinit snd_atiixp_proc_init(atiixp_t *chip) * destructor */ -static int snd_atiixp_free(atiixp_t *chip) +static int snd_atiixp_free(struct atiixp *chip) { if (chip->irq < 0) goto __hw_end; @@ -1493,7 +1509,7 @@ static int snd_atiixp_free(atiixp_t *chip) synchronize_irq(chip->irq); __hw_end: if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); if (chip->remap_addr) iounmap(chip->remap_addr); pci_release_regions(chip->pci); @@ -1502,23 +1518,23 @@ static int snd_atiixp_free(atiixp_t *chip) return 0; } -static int snd_atiixp_dev_free(snd_device_t *device) +static int snd_atiixp_dev_free(struct snd_device *device) { - atiixp_t *chip = device->device_data; + struct atiixp *chip = device->device_data; return snd_atiixp_free(chip); } /* * constructor for chip instance */ -static int __devinit snd_atiixp_create(snd_card_t *card, +static int __devinit snd_atiixp_create(struct snd_card *card, struct pci_dev *pci, - atiixp_t **r_chip) + struct atiixp **r_chip) { - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_atiixp_dev_free, }; - atiixp_t *chip; + struct atiixp *chip; int err; if ((err = pci_enable_device(pci)) < 0) @@ -1548,7 +1564,8 @@ static int __devinit snd_atiixp_create(snd_card_t *card, return -EIO; } - if (request_irq(pci->irq, snd_atiixp_interrupt, SA_INTERRUPT|SA_SHIRQ, card->shortname, (void *)chip)) { + if (request_irq(pci->irq, snd_atiixp_interrupt, SA_INTERRUPT|SA_SHIRQ, + card->shortname, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_atiixp_free(chip); return -EBUSY; @@ -1572,8 +1589,8 @@ static int __devinit snd_atiixp_create(snd_card_t *card, static int __devinit snd_atiixp_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - atiixp_t *chip; + struct snd_card *card; + struct atiixp *chip; unsigned char revision; int err; diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index 649a999214e..15be161b0a9 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c @@ -176,24 +176,18 @@ module_param(enable, bool, 0444); #define ATI_MAX_DESCRIPTORS 256 /* max number of descriptor packets */ -/* - */ - -typedef struct snd_atiixp atiixp_t; -typedef struct snd_atiixp_dma atiixp_dma_t; -typedef struct snd_atiixp_dma_ops atiixp_dma_ops_t; - +struct atiixp_modem; /* * DMA packate descriptor */ -typedef struct atiixp_dma_desc { +struct atiixp_dma_desc { u32 addr; /* DMA buffer address */ u16 status; /* status bits */ u16 size; /* size of the packet in dwords */ u32 next; /* address of the next packet descriptor */ -} atiixp_dma_desc_t; +}; /* * stream enum @@ -208,22 +202,25 @@ enum { ATI_PCMDEV_ANALOG, NUM_ATI_PCMDEVS }; /* pcm devices */ /* * constants and callbacks for each DMA type */ -struct snd_atiixp_dma_ops { +struct atiixp_dma_ops { int type; /* ATI_DMA_XXX */ unsigned int llp_offset; /* LINKPTR offset */ unsigned int dt_cur; /* DT_CUR offset */ - void (*enable_dma)(atiixp_t *chip, int on); /* called from open callback */ - void (*enable_transfer)(atiixp_t *chip, int on); /* called from trigger (START/STOP) */ - void (*flush_dma)(atiixp_t *chip); /* called from trigger (STOP only) */ + /* called from open callback */ + void (*enable_dma)(struct atiixp_modem *chip, int on); + /* called from trigger (START/STOP) */ + void (*enable_transfer)(struct atiixp_modem *chip, int on); + /* called from trigger (STOP only) */ + void (*flush_dma)(struct atiixp_modem *chip); }; /* * DMA stream */ -struct snd_atiixp_dma { - const atiixp_dma_ops_t *ops; +struct atiixp_dma { + const struct atiixp_dma_ops *ops; struct snd_dma_buffer desc_buf; - snd_pcm_substream_t *substream; /* assigned PCM substream */ + struct snd_pcm_substream *substream; /* assigned PCM substream */ unsigned int buf_addr, buf_bytes; /* DMA buffer address, bytes */ unsigned int period_bytes, periods; int opened; @@ -235,8 +232,8 @@ struct snd_atiixp_dma { /* * ATI IXP chip */ -struct snd_atiixp { - snd_card_t *card; +struct atiixp_modem { + struct snd_card *card; struct pci_dev *pci; struct resource *res; /* memory i/o */ @@ -244,14 +241,14 @@ struct snd_atiixp { void __iomem *remap_addr; int irq; - ac97_bus_t *ac97_bus; - ac97_t *ac97[NUM_ATI_CODECS]; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97[NUM_ATI_CODECS]; spinlock_t reg_lock; - atiixp_dma_t dmas[NUM_ATI_DMAS]; + struct atiixp_dma dmas[NUM_ATI_DMAS]; struct ac97_pcm *pcms[NUM_ATI_PCMS]; - snd_pcm_t *pcmdevs[NUM_ATI_PCMDEVS]; + struct snd_pcm *pcmdevs[NUM_ATI_PCMDEVS]; int max_channels; /* max. channels for PCM out */ @@ -281,8 +278,8 @@ MODULE_DEVICE_TABLE(pci, snd_atiixp_ids); * update the bits of the given register. * return 1 if the bits changed. */ -static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, - unsigned int mask, unsigned int value) +static int snd_atiixp_update_bits(struct atiixp_modem *chip, unsigned int reg, + unsigned int mask, unsigned int value) { void __iomem *addr = chip->remap_addr + reg; unsigned int data, old_data; @@ -313,7 +310,7 @@ static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, */ #define ATI_DESC_LIST_SIZE \ - PAGE_ALIGN(ATI_MAX_DESCRIPTORS * sizeof(atiixp_dma_desc_t)) + PAGE_ALIGN(ATI_MAX_DESCRIPTORS * sizeof(struct atiixp_dma_desc)) /* * build packets ring for the given buffer size. @@ -324,10 +321,11 @@ static int snd_atiixp_update_bits(atiixp_t *chip, unsigned int reg, * * the ring is built in this function, and is set up to the hardware. */ -static int atiixp_build_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, - snd_pcm_substream_t *substream, - unsigned int periods, - unsigned int period_bytes) +static int atiixp_build_dma_packets(struct atiixp_modem *chip, + struct atiixp_dma *dma, + struct snd_pcm_substream *substream, + unsigned int periods, + unsigned int period_bytes) { unsigned int i; u32 addr, desc_addr; @@ -357,11 +355,12 @@ static int atiixp_build_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, addr = (u32)substream->runtime->dma_addr; desc_addr = (u32)dma->desc_buf.addr; for (i = 0; i < periods; i++) { - atiixp_dma_desc_t *desc = &((atiixp_dma_desc_t *)dma->desc_buf.area)[i]; + struct atiixp_dma_desc *desc; + desc = &((struct atiixp_dma_desc *)dma->desc_buf.area)[i]; desc->addr = cpu_to_le32(addr); desc->status = 0; desc->size = period_bytes >> 2; /* in dwords */ - desc_addr += sizeof(atiixp_dma_desc_t); + desc_addr += sizeof(struct atiixp_dma_desc); if (i == periods - 1) desc->next = cpu_to_le32((u32)dma->desc_buf.addr); else @@ -381,7 +380,9 @@ static int atiixp_build_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, /* * remove the ring buffer and release it if assigned */ -static void atiixp_clear_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, snd_pcm_substream_t *substream) +static void atiixp_clear_dma_packets(struct atiixp_modem *chip, + struct atiixp_dma *dma, + struct snd_pcm_substream *substream) { if (dma->desc_buf.area) { writel(0, chip->remap_addr + dma->ops->llp_offset); @@ -393,7 +394,7 @@ static void atiixp_clear_dma_packets(atiixp_t *chip, atiixp_dma_t *dma, snd_pcm_ /* * AC97 interface */ -static int snd_atiixp_acquire_codec(atiixp_t *chip) +static int snd_atiixp_acquire_codec(struct atiixp_modem *chip) { int timeout = 1000; @@ -407,7 +408,9 @@ static int snd_atiixp_acquire_codec(atiixp_t *chip) return 0; } -static unsigned short snd_atiixp_codec_read(atiixp_t *chip, unsigned short codec, unsigned short reg) +static unsigned short snd_atiixp_codec_read(struct atiixp_modem *chip, + unsigned short codec, + unsigned short reg) { unsigned int data; int timeout; @@ -435,7 +438,9 @@ static unsigned short snd_atiixp_codec_read(atiixp_t *chip, unsigned short codec } -static void snd_atiixp_codec_write(atiixp_t *chip, unsigned short codec, unsigned short reg, unsigned short val) +static void snd_atiixp_codec_write(struct atiixp_modem *chip, + unsigned short codec, + unsigned short reg, unsigned short val) { unsigned int data; @@ -448,16 +453,18 @@ static void snd_atiixp_codec_write(atiixp_t *chip, unsigned short codec, unsigne } -static unsigned short snd_atiixp_ac97_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_atiixp_ac97_read(struct snd_ac97 *ac97, + unsigned short reg) { - atiixp_t *chip = ac97->private_data; + struct atiixp_modem *chip = ac97->private_data; return snd_atiixp_codec_read(chip, ac97->num, reg); } -static void snd_atiixp_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val) +static void snd_atiixp_ac97_write(struct snd_ac97 *ac97, unsigned short reg, + unsigned short val) { - atiixp_t *chip = ac97->private_data; + struct atiixp_modem *chip = ac97->private_data; if (reg == AC97_GPIO_STATUS) { atiixp_write(chip, MODEM_OUT_GPIO, (val << ATI_REG_MODEM_OUT_GPIO_DATA_SHIFT) | ATI_REG_MODEM_OUT_GPIO_EN); @@ -469,7 +476,7 @@ static void snd_atiixp_ac97_write(ac97_t *ac97, unsigned short reg, unsigned sho /* * reset AC link */ -static int snd_atiixp_aclink_reset(atiixp_t *chip) +static int snd_atiixp_aclink_reset(struct atiixp_modem *chip) { int timeout; @@ -505,7 +512,7 @@ static int snd_atiixp_aclink_reset(atiixp_t *chip) } #ifdef CONFIG_PM -static int snd_atiixp_aclink_down(atiixp_t *chip) +static int snd_atiixp_aclink_down(struct atiixp_modem *chip) { // if (atiixp_read(chip, MODEM_MIRROR) & 0x1) /* modem running, too? */ // return -EBUSY; @@ -530,7 +537,7 @@ static int snd_atiixp_aclink_down(atiixp_t *chip) ATI_REG_ISR_CODEC2_NOT_READY) #define CODEC_CHECK_BITS (ALL_CODEC_NOT_READY|ATI_REG_ISR_NEW_FRAME) -static int snd_atiixp_codec_detect(atiixp_t *chip) +static int snd_atiixp_codec_detect(struct atiixp_modem *chip) { int timeout; @@ -556,7 +563,7 @@ static int snd_atiixp_codec_detect(atiixp_t *chip) /* * enable DMA and irqs */ -static int snd_atiixp_chip_start(atiixp_t *chip) +static int snd_atiixp_chip_start(struct atiixp_modem *chip) { unsigned int reg; @@ -581,7 +588,7 @@ static int snd_atiixp_chip_start(atiixp_t *chip) /* * disable DMA and IRQs */ -static int snd_atiixp_chip_stop(atiixp_t *chip) +static int snd_atiixp_chip_stop(struct atiixp_modem *chip) { /* clear interrupt source */ atiixp_write(chip, ISR, atiixp_read(chip, ISR)); @@ -600,11 +607,11 @@ static int snd_atiixp_chip_stop(atiixp_t *chip) * position. when SG-buffer is implemented, the offset must be calculated * correctly... */ -static snd_pcm_uframes_t snd_atiixp_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_atiixp_pcm_pointer(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - atiixp_dma_t *dma = (atiixp_dma_t *)runtime->private_data; + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct atiixp_dma *dma = runtime->private_data; unsigned int curptr; int timeout = 1000; @@ -625,7 +632,8 @@ static snd_pcm_uframes_t snd_atiixp_pcm_pointer(snd_pcm_substream_t *substream) /* * XRUN detected, and stop the PCM substream */ -static void snd_atiixp_xrun_dma(atiixp_t *chip, atiixp_dma_t *dma) +static void snd_atiixp_xrun_dma(struct atiixp_modem *chip, + struct atiixp_dma *dma) { if (! dma->substream || ! dma->running) return; @@ -636,7 +644,8 @@ static void snd_atiixp_xrun_dma(atiixp_t *chip, atiixp_dma_t *dma) /* * the period ack. update the substream. */ -static void snd_atiixp_update_dma(atiixp_t *chip, atiixp_dma_t *dma) +static void snd_atiixp_update_dma(struct atiixp_modem *chip, + struct atiixp_dma *dma) { if (! dma->substream || ! dma->running) return; @@ -645,7 +654,7 @@ static void snd_atiixp_update_dma(atiixp_t *chip, atiixp_dma_t *dma) /* set BUS_BUSY interrupt bit if any DMA is running */ /* call with spinlock held */ -static void snd_atiixp_check_bus_busy(atiixp_t *chip) +static void snd_atiixp_check_bus_busy(struct atiixp_modem *chip) { unsigned int bus_busy; if (atiixp_read(chip, CMD) & (ATI_REG_CMD_MODEM_SEND1_EN | @@ -659,10 +668,10 @@ static void snd_atiixp_check_bus_busy(atiixp_t *chip) /* common trigger callback * calling the lowlevel callbacks in it */ -static int snd_atiixp_pcm_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_atiixp_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - atiixp_dma_t *dma = (atiixp_dma_t *)substream->runtime->private_data; + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); + struct atiixp_dma *dma = substream->runtime->private_data; int err = 0; snd_assert(dma->ops->enable_transfer && dma->ops->flush_dma, return -EINVAL); @@ -700,13 +709,13 @@ static int snd_atiixp_pcm_trigger(snd_pcm_substream_t *substream, int cmd) */ /* flush FIFO of analog OUT DMA */ -static void atiixp_out_flush_dma(atiixp_t *chip) +static void atiixp_out_flush_dma(struct atiixp_modem *chip) { atiixp_write(chip, MODEM_FIFO_FLUSH, ATI_REG_MODEM_FIFO_OUT1_FLUSH); } /* enable/disable analog OUT DMA */ -static void atiixp_out_enable_dma(atiixp_t *chip, int on) +static void atiixp_out_enable_dma(struct atiixp_modem *chip, int on) { unsigned int data; data = atiixp_read(chip, CMD); @@ -721,21 +730,21 @@ static void atiixp_out_enable_dma(atiixp_t *chip, int on) } /* start/stop transfer over OUT DMA */ -static void atiixp_out_enable_transfer(atiixp_t *chip, int on) +static void atiixp_out_enable_transfer(struct atiixp_modem *chip, int on) { atiixp_update(chip, CMD, ATI_REG_CMD_MODEM_SEND1_EN, on ? ATI_REG_CMD_MODEM_SEND1_EN : 0); } /* enable/disable analog IN DMA */ -static void atiixp_in_enable_dma(atiixp_t *chip, int on) +static void atiixp_in_enable_dma(struct atiixp_modem *chip, int on) { atiixp_update(chip, CMD, ATI_REG_CMD_MODEM_IN_DMA_EN, on ? ATI_REG_CMD_MODEM_IN_DMA_EN : 0); } /* start/stop analog IN DMA */ -static void atiixp_in_enable_transfer(atiixp_t *chip, int on) +static void atiixp_in_enable_transfer(struct atiixp_modem *chip, int on) { if (on) { unsigned int data = atiixp_read(chip, CMD); @@ -748,15 +757,15 @@ static void atiixp_in_enable_transfer(atiixp_t *chip, int on) } /* flush FIFO of analog IN DMA */ -static void atiixp_in_flush_dma(atiixp_t *chip) +static void atiixp_in_flush_dma(struct atiixp_modem *chip) { atiixp_write(chip, MODEM_FIFO_FLUSH, ATI_REG_MODEM_FIFO_IN_FLUSH); } /* set up slots and formats for analog OUT */ -static int snd_atiixp_playback_prepare(snd_pcm_substream_t *substream) +static int snd_atiixp_playback_prepare(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); unsigned int data; spin_lock_irq(&chip->reg_lock); @@ -770,7 +779,7 @@ static int snd_atiixp_playback_prepare(snd_pcm_substream_t *substream) } /* set up slots and formats for analog IN */ -static int snd_atiixp_capture_prepare(snd_pcm_substream_t *substream) +static int snd_atiixp_capture_prepare(struct snd_pcm_substream *substream) { return 0; } @@ -778,11 +787,11 @@ static int snd_atiixp_capture_prepare(snd_pcm_substream_t *substream) /* * hw_params - allocate the buffer and set up buffer descriptors */ -static int snd_atiixp_pcm_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *hw_params) +static int snd_atiixp_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - atiixp_dma_t *dma = (atiixp_dma_t *)substream->runtime->private_data; + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); + struct atiixp_dma *dma = substream->runtime->private_data; int err; int i; @@ -809,10 +818,10 @@ static int snd_atiixp_pcm_hw_params(snd_pcm_substream_t *substream, return err; } -static int snd_atiixp_pcm_hw_free(snd_pcm_substream_t * substream) +static int snd_atiixp_pcm_hw_free(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - atiixp_dma_t *dma = (atiixp_dma_t *)substream->runtime->private_data; + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); + struct atiixp_dma *dma = substream->runtime->private_data; atiixp_clear_dma_packets(chip, dma, substream); snd_pcm_lib_free_pages(substream); @@ -823,13 +832,15 @@ static int snd_atiixp_pcm_hw_free(snd_pcm_substream_t * substream) /* * pcm hardware definition, identical for all DMA types */ -static snd_pcm_hardware_t snd_atiixp_pcm_hw = +static struct snd_pcm_hardware snd_atiixp_pcm_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S16_LE, - .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_KNOT, + .rates = (SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_KNOT), .rate_min = 8000, .rate_max = 16000, .channels_min = 2, @@ -841,13 +852,14 @@ static snd_pcm_hardware_t snd_atiixp_pcm_hw = .periods_max = ATI_MAX_DESCRIPTORS, }; -static int snd_atiixp_pcm_open(snd_pcm_substream_t *substream, atiixp_dma_t *dma, int pcm_type) +static int snd_atiixp_pcm_open(struct snd_pcm_substream *substream, + struct atiixp_dma *dma, int pcm_type) { - atiixp_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; static unsigned int rates[] = { 8000, 9600, 12000, 16000 }; - static snd_pcm_hw_constraint_list_t hw_constraints_rates = { + static struct snd_pcm_hw_constraint_list hw_constraints_rates = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, @@ -860,9 +872,12 @@ static int snd_atiixp_pcm_open(snd_pcm_substream_t *substream, atiixp_dma_t *dma dma->substream = substream; runtime->hw = snd_atiixp_pcm_hw; dma->ac97_pcm_type = pcm_type; - if ((err = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates)) < 0) + if ((err = snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates)) < 0) return err; - if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) + if ((err = snd_pcm_hw_constraint_integer(runtime, + SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; runtime->private_data = dma; @@ -875,9 +890,10 @@ static int snd_atiixp_pcm_open(snd_pcm_substream_t *substream, atiixp_dma_t *dma return 0; } -static int snd_atiixp_pcm_close(snd_pcm_substream_t *substream, atiixp_dma_t *dma) +static int snd_atiixp_pcm_close(struct snd_pcm_substream *substream, + struct atiixp_dma *dma) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); /* disable DMA bits */ snd_assert(dma->ops && dma->ops->enable_dma, return -EINVAL); spin_lock_irq(&chip->reg_lock); @@ -890,9 +906,9 @@ static int snd_atiixp_pcm_close(snd_pcm_substream_t *substream, atiixp_dma_t *dm /* */ -static int snd_atiixp_playback_open(snd_pcm_substream_t *substream) +static int snd_atiixp_playback_open(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); int err; down(&chip->open_mutex); @@ -903,9 +919,9 @@ static int snd_atiixp_playback_open(snd_pcm_substream_t *substream) return 0; } -static int snd_atiixp_playback_close(snd_pcm_substream_t *substream) +static int snd_atiixp_playback_close(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); int err; down(&chip->open_mutex); err = snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_PLAYBACK]); @@ -913,21 +929,21 @@ static int snd_atiixp_playback_close(snd_pcm_substream_t *substream) return err; } -static int snd_atiixp_capture_open(snd_pcm_substream_t *substream) +static int snd_atiixp_capture_open(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); return snd_atiixp_pcm_open(substream, &chip->dmas[ATI_DMA_CAPTURE], 1); } -static int snd_atiixp_capture_close(snd_pcm_substream_t *substream) +static int snd_atiixp_capture_close(struct snd_pcm_substream *substream) { - atiixp_t *chip = snd_pcm_substream_chip(substream); + struct atiixp_modem *chip = snd_pcm_substream_chip(substream); return snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_CAPTURE]); } /* AC97 playback */ -static snd_pcm_ops_t snd_atiixp_playback_ops = { +static struct snd_pcm_ops snd_atiixp_playback_ops = { .open = snd_atiixp_playback_open, .close = snd_atiixp_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -939,7 +955,7 @@ static snd_pcm_ops_t snd_atiixp_playback_ops = { }; /* AC97 capture */ -static snd_pcm_ops_t snd_atiixp_capture_ops = { +static struct snd_pcm_ops snd_atiixp_capture_ops = { .open = snd_atiixp_capture_open, .close = snd_atiixp_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -950,7 +966,7 @@ static snd_pcm_ops_t snd_atiixp_capture_ops = { .pointer = snd_atiixp_pcm_pointer, }; -static atiixp_dma_ops_t snd_atiixp_playback_dma_ops = { +static struct atiixp_dma_ops snd_atiixp_playback_dma_ops = { .type = ATI_DMA_PLAYBACK, .llp_offset = ATI_REG_MODEM_OUT_DMA1_LINKPTR, .dt_cur = ATI_REG_MODEM_OUT_DMA1_DT_CUR, @@ -959,7 +975,7 @@ static atiixp_dma_ops_t snd_atiixp_playback_dma_ops = { .flush_dma = atiixp_out_flush_dma, }; -static atiixp_dma_ops_t snd_atiixp_capture_dma_ops = { +static struct atiixp_dma_ops snd_atiixp_capture_dma_ops = { .type = ATI_DMA_CAPTURE, .llp_offset = ATI_REG_MODEM_IN_DMA_LINKPTR, .dt_cur = ATI_REG_MODEM_IN_DMA_DT_CUR, @@ -968,9 +984,9 @@ static atiixp_dma_ops_t snd_atiixp_capture_dma_ops = { .flush_dma = atiixp_in_flush_dma, }; -static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) +static int __devinit snd_atiixp_pcm_new(struct atiixp_modem *chip) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; /* initialize constants */ @@ -989,7 +1005,8 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) chip->pcmdevs[ATI_PCMDEV_ANALOG] = pcm; snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024); + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024); return 0; } @@ -1001,7 +1018,7 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) */ static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - atiixp_t *chip = dev_id; + struct atiixp_modem *chip = dev_id; unsigned int status; status = atiixp_read(chip, ISR); @@ -1040,13 +1057,13 @@ static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *r * ac97 mixer section */ -static int __devinit snd_atiixp_mixer_new(atiixp_t *chip, int clock) +static int __devinit snd_atiixp_mixer_new(struct atiixp_modem *chip, int clock) { - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int i, err; int codec_count; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_atiixp_ac97_write, .read = snd_atiixp_ac97_read, }; @@ -1096,9 +1113,9 @@ static int __devinit snd_atiixp_mixer_new(atiixp_t *chip, int clock) /* * power management */ -static int snd_atiixp_suspend(snd_card_t *card, pm_message_t state) +static int snd_atiixp_suspend(struct snd_card *card, pm_message_t state) { - atiixp_t *chip = card->pm_private_data; + struct atiixp_modem *chip = card->pm_private_data; int i; for (i = 0; i < NUM_ATI_PCMDEVS; i++) @@ -1115,9 +1132,9 @@ static int snd_atiixp_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int snd_atiixp_resume(snd_card_t *card) +static int snd_atiixp_resume(struct snd_card *card) { - atiixp_t *chip = card->pm_private_data; + struct atiixp_modem *chip = card->pm_private_data; int i; pci_enable_device(chip->pci); @@ -1140,18 +1157,19 @@ static int snd_atiixp_resume(snd_card_t *card) * proc interface for register dump */ -static void snd_atiixp_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void snd_atiixp_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - atiixp_t *chip = entry->private_data; + struct atiixp_modem *chip = entry->private_data; int i; for (i = 0; i < 256; i += 4) snd_iprintf(buffer, "%02x: %08x\n", i, readl(chip->remap_addr + i)); } -static void __devinit snd_atiixp_proc_init(atiixp_t *chip) +static void __devinit snd_atiixp_proc_init(struct atiixp_modem *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "atiixp-modem", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_atiixp_proc_read); @@ -1163,7 +1181,7 @@ static void __devinit snd_atiixp_proc_init(atiixp_t *chip) * destructor */ -static int snd_atiixp_free(atiixp_t *chip) +static int snd_atiixp_free(struct atiixp_modem *chip) { if (chip->irq < 0) goto __hw_end; @@ -1171,7 +1189,7 @@ static int snd_atiixp_free(atiixp_t *chip) synchronize_irq(chip->irq); __hw_end: if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); if (chip->remap_addr) iounmap(chip->remap_addr); pci_release_regions(chip->pci); @@ -1180,23 +1198,23 @@ static int snd_atiixp_free(atiixp_t *chip) return 0; } -static int snd_atiixp_dev_free(snd_device_t *device) +static int snd_atiixp_dev_free(struct snd_device *device) { - atiixp_t *chip = device->device_data; + struct atiixp_modem *chip = device->device_data; return snd_atiixp_free(chip); } /* * constructor for chip instance */ -static int __devinit snd_atiixp_create(snd_card_t *card, - struct pci_dev *pci, - atiixp_t **r_chip) +static int __devinit snd_atiixp_create(struct snd_card *card, + struct pci_dev *pci, + struct atiixp_modem **r_chip) { - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_atiixp_dev_free, }; - atiixp_t *chip; + struct atiixp_modem *chip; int err; if ((err = pci_enable_device(pci)) < 0) @@ -1226,7 +1244,8 @@ static int __devinit snd_atiixp_create(snd_card_t *card, return -EIO; } - if (request_irq(pci->irq, snd_atiixp_interrupt, SA_INTERRUPT|SA_SHIRQ, card->shortname, (void *)chip)) { + if (request_irq(pci->irq, snd_atiixp_interrupt, SA_INTERRUPT|SA_SHIRQ, + card->shortname, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_atiixp_free(chip); return -EBUSY; @@ -1250,8 +1269,8 @@ static int __devinit snd_atiixp_create(snd_card_t *card, static int __devinit snd_atiixp_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - atiixp_t *chip; + struct snd_card *card; + struct atiixp_modem *chip; unsigned char revision; int err; -- cgit v1.2.3-70-g09d2 From 95de77660bb54e603d32f2ce342ae16e6de1b2d4 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:02:42 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI AZT3328 Modules: AZT3328 driver Remove xxx_t typedefs from the PCI AZT3328 driver. Signed-off-by: Takashi Iwai --- sound/pci/azt3328.c | 216 +++++++++++++++++++++++++++------------------------- 1 file changed, 111 insertions(+), 105 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c index 96d1ba0174f..e077eb3fbe2 100644 --- a/sound/pci/azt3328.c +++ b/sound/pci/azt3328.c @@ -186,7 +186,7 @@ static int seqtimer_scaling = 128; module_param(seqtimer_scaling, int, 0444); MODULE_PARM_DESC(seqtimer_scaling, "Set 1024000Hz sequencer timer scale factor (lockup danger!). Default 128."); -typedef struct _snd_azf3328 { +struct snd_azf3328 { /* often-used fields towards beginning, then grouped */ unsigned long codec_port; unsigned long io2_port; @@ -196,16 +196,16 @@ typedef struct _snd_azf3328 { spinlock_t reg_lock; - snd_timer_t *timer; + struct snd_timer *timer; - snd_pcm_t *pcm; - snd_pcm_substream_t *playback_substream; - snd_pcm_substream_t *capture_substream; + struct snd_pcm *pcm; + struct snd_pcm_substream *playback_substream; + struct snd_pcm_substream *capture_substream; unsigned int is_playing; unsigned int is_recording; - snd_card_t *card; - snd_rawmidi_t *rmidi; + struct snd_card *card; + struct snd_rawmidi *rmidi; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; @@ -213,7 +213,7 @@ typedef struct _snd_azf3328 { struct pci_dev *pci; int irq; -} azf3328_t; +}; static const struct pci_device_id snd_azf3328_ids[] = { { 0x122D, 0x50DC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* PCI168/3328 */ @@ -224,61 +224,61 @@ static const struct pci_device_id snd_azf3328_ids[] = { MODULE_DEVICE_TABLE(pci, snd_azf3328_ids); static inline void -snd_azf3328_codec_outb(const azf3328_t *chip, int reg, u8 value) +snd_azf3328_codec_outb(const struct snd_azf3328 *chip, int reg, u8 value) { outb(value, chip->codec_port + reg); } static inline u8 -snd_azf3328_codec_inb(const azf3328_t *chip, int reg) +snd_azf3328_codec_inb(const struct snd_azf3328 *chip, int reg) { return inb(chip->codec_port + reg); } static inline void -snd_azf3328_codec_outw(const azf3328_t *chip, int reg, u16 value) +snd_azf3328_codec_outw(const struct snd_azf3328 *chip, int reg, u16 value) { outw(value, chip->codec_port + reg); } static inline u16 -snd_azf3328_codec_inw(const azf3328_t *chip, int reg) +snd_azf3328_codec_inw(const struct snd_azf3328 *chip, int reg) { return inw(chip->codec_port + reg); } static inline void -snd_azf3328_codec_outl(const azf3328_t *chip, int reg, u32 value) +snd_azf3328_codec_outl(const struct snd_azf3328 *chip, int reg, u32 value) { outl(value, chip->codec_port + reg); } static inline void -snd_azf3328_io2_outb(const azf3328_t *chip, int reg, u8 value) +snd_azf3328_io2_outb(const struct snd_azf3328 *chip, int reg, u8 value) { outb(value, chip->io2_port + reg); } static inline u8 -snd_azf3328_io2_inb(const azf3328_t *chip, int reg) +snd_azf3328_io2_inb(const struct snd_azf3328 *chip, int reg) { return inb(chip->io2_port + reg); } static inline void -snd_azf3328_mixer_outw(const azf3328_t *chip, int reg, u16 value) +snd_azf3328_mixer_outw(const struct snd_azf3328 *chip, int reg, u16 value) { outw(value, chip->mixer_port + reg); } static inline u16 -snd_azf3328_mixer_inw(const azf3328_t *chip, int reg) +snd_azf3328_mixer_inw(const struct snd_azf3328 *chip, int reg) { return inw(chip->mixer_port + reg); } static void -snd_azf3328_mixer_set_mute(const azf3328_t *chip, int reg, int do_mute) +snd_azf3328_mixer_set_mute(const struct snd_azf3328 *chip, int reg, int do_mute) { unsigned long portbase = chip->mixer_port + reg + 1; unsigned char oldval; @@ -294,7 +294,7 @@ snd_azf3328_mixer_set_mute(const azf3328_t *chip, int reg, int do_mute) } static void -snd_azf3328_mixer_write_volume_gradually(const azf3328_t *chip, int reg, unsigned char dst_vol_left, unsigned char dst_vol_right, int chan_sel, int delay) +snd_azf3328_mixer_write_volume_gradually(const struct snd_azf3328 *chip, int reg, unsigned char dst_vol_left, unsigned char dst_vol_right, int chan_sel, int delay) { unsigned long portbase = chip->mixer_port + reg; unsigned char curr_vol_left = 0, curr_vol_right = 0; @@ -353,14 +353,14 @@ snd_azf3328_mixer_write_volume_gradually(const azf3328_t *chip, int reg, unsigne /* * general mixer element */ -typedef struct azf3328_mixer_reg { +struct azf3328_mixer_reg { unsigned int reg; unsigned int lchan_shift, rchan_shift; unsigned int mask; unsigned int invert: 1; unsigned int stereo: 1; unsigned int enum_c: 4; -} azf3328_mixer_reg_t; +}; #define COMPOSE_MIXER_REG(reg,lchan_shift,rchan_shift,mask,invert,stereo,enum_c) \ ((reg) | (lchan_shift << 8) | (rchan_shift << 12) | \ @@ -369,7 +369,7 @@ typedef struct azf3328_mixer_reg { (stereo << 25) | \ (enum_c << 26)) -static void snd_azf3328_mixer_reg_decode(azf3328_mixer_reg_t *r, unsigned long val) +static void snd_azf3328_mixer_reg_decode(struct azf3328_mixer_reg *r, unsigned long val) { r->reg = val & 0xff; r->lchan_shift = (val >> 8) & 0x0f; @@ -420,9 +420,10 @@ static void snd_azf3328_mixer_reg_decode(azf3328_mixer_reg_t *r, unsigned long v } static int -snd_azf3328_info_mixer(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +snd_azf3328_info_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { - azf3328_mixer_reg_t reg; + struct azf3328_mixer_reg reg; snd_azf3328_dbgcallenter(); snd_azf3328_mixer_reg_decode(®, kcontrol->private_value); @@ -436,10 +437,11 @@ snd_azf3328_info_mixer(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) } static int -snd_azf3328_get_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_azf3328_get_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - azf3328_t *chip = snd_kcontrol_chip(kcontrol); - azf3328_mixer_reg_t reg; + struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); + struct azf3328_mixer_reg reg; unsigned int oreg, val; snd_azf3328_dbgcallenter(); @@ -466,10 +468,11 @@ snd_azf3328_get_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol } static int -snd_azf3328_put_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_azf3328_put_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - azf3328_t *chip = snd_kcontrol_chip(kcontrol); - azf3328_mixer_reg_t reg; + struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); + struct azf3328_mixer_reg reg; unsigned int oreg, nreg, val; snd_azf3328_dbgcallenter(); @@ -506,7 +509,8 @@ snd_azf3328_put_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol } static int -snd_azf3328_info_mixer_enum(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +snd_azf3328_info_mixer_enum(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static const char * const texts1[] = { "ModemOut1", "ModemOut2" @@ -518,7 +522,7 @@ snd_azf3328_info_mixer_enum(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinf "Mic", "CD", "Video", "Aux", "Line", "Mix", "Mix Mono", "Phone" }; - azf3328_mixer_reg_t reg; + struct azf3328_mixer_reg reg; snd_azf3328_mixer_reg_decode(®, kcontrol->private_value); uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -540,10 +544,11 @@ snd_azf3328_info_mixer_enum(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinf } static int -snd_azf3328_get_mixer_enum(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_azf3328_get_mixer_enum(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - azf3328_t *chip = snd_kcontrol_chip(kcontrol); - azf3328_mixer_reg_t reg; + struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); + struct azf3328_mixer_reg reg; unsigned short val; snd_azf3328_mixer_reg_decode(®, kcontrol->private_value); @@ -563,10 +568,11 @@ snd_azf3328_get_mixer_enum(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco } static int -snd_azf3328_put_mixer_enum(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_azf3328_put_mixer_enum(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - azf3328_t *chip = snd_kcontrol_chip(kcontrol); - azf3328_mixer_reg_t reg; + struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); + struct azf3328_mixer_reg reg; unsigned int oreg, nreg, val; snd_azf3328_mixer_reg_decode(®, kcontrol->private_value); @@ -594,7 +600,7 @@ snd_azf3328_put_mixer_enum(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco return (nreg != oreg); } -static const snd_kcontrol_new_t snd_azf3328_mixer_controls[] __devinitdata = { +static const struct snd_kcontrol_new snd_azf3328_mixer_controls[] __devinitdata = { AZF3328_MIXER_SWITCH("Master Playback Switch", IDX_MIXER_PLAY_MASTER, 15, 1), AZF3328_MIXER_VOL_STEREO("Master Playback Volume", IDX_MIXER_PLAY_MASTER, 0x1f, 1), AZF3328_MIXER_SWITCH("Wave Playback Switch", IDX_MIXER_WAVEOUT, 15, 1), @@ -666,10 +672,10 @@ static const u16 __devinitdata snd_azf3328_init_values[][2] = { }; static int __devinit -snd_azf3328_mixer_new(azf3328_t *chip) +snd_azf3328_mixer_new(struct snd_azf3328 *chip) { - snd_card_t *card; - const snd_kcontrol_new_t *sw; + struct snd_card *card; + const struct snd_kcontrol_new *sw; unsigned int idx; int err; @@ -702,8 +708,8 @@ snd_azf3328_mixer_new(azf3328_t *chip) } static int -snd_azf3328_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +snd_azf3328_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { int res; snd_azf3328_dbgcallenter(); @@ -713,7 +719,7 @@ snd_azf3328_hw_params(snd_pcm_substream_t * substream, } static int -snd_azf3328_hw_free(snd_pcm_substream_t * substream) +snd_azf3328_hw_free(struct snd_pcm_substream *substream) { snd_azf3328_dbgcallenter(); snd_pcm_lib_free_pages(substream); @@ -722,7 +728,7 @@ snd_azf3328_hw_free(snd_pcm_substream_t * substream) } static void -snd_azf3328_setfmt(azf3328_t *chip, +snd_azf3328_setfmt(struct snd_azf3328 *chip, unsigned int reg, unsigned int bitrate, unsigned int format_width, @@ -796,7 +802,7 @@ snd_azf3328_setfmt(azf3328_t *chip, } static void -snd_azf3328_setdmaa(azf3328_t *chip, +snd_azf3328_setdmaa(struct snd_azf3328 *chip, long unsigned int addr, unsigned int count, unsigned int size, @@ -842,11 +848,11 @@ snd_azf3328_setdmaa(azf3328_t *chip, } static int -snd_azf3328_playback_prepare(snd_pcm_substream_t *substream) +snd_azf3328_playback_prepare(struct snd_pcm_substream *substream) { #if 0 - azf3328_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned int size = snd_pcm_lib_buffer_bytes(substream); unsigned int count = snd_pcm_lib_period_bytes(substream); #endif @@ -864,11 +870,11 @@ snd_azf3328_playback_prepare(snd_pcm_substream_t *substream) } static int -snd_azf3328_capture_prepare(snd_pcm_substream_t * substream) +snd_azf3328_capture_prepare(struct snd_pcm_substream *substream) { #if 0 - azf3328_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned int size = snd_pcm_lib_buffer_bytes(substream); unsigned int count = snd_pcm_lib_period_bytes(substream); #endif @@ -886,10 +892,10 @@ snd_azf3328_capture_prepare(snd_pcm_substream_t * substream) } static int -snd_azf3328_playback_trigger(snd_pcm_substream_t * substream, int cmd) +snd_azf3328_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - azf3328_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int result = 0; unsigned int status1; @@ -998,10 +1004,10 @@ snd_azf3328_playback_trigger(snd_pcm_substream_t * substream, int cmd) /* this is just analogous to playback; I'm not quite sure whether recording * should actually be triggered like that */ static int -snd_azf3328_capture_trigger(snd_pcm_substream_t * substream, int cmd) +snd_azf3328_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - azf3328_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int result = 0; unsigned int status1; @@ -1096,9 +1102,9 @@ snd_azf3328_capture_trigger(snd_pcm_substream_t * substream, int cmd) } static snd_pcm_uframes_t -snd_azf3328_playback_pointer(snd_pcm_substream_t * substream) +snd_azf3328_playback_pointer(struct snd_pcm_substream *substream) { - azf3328_t *chip = snd_pcm_substream_chip(substream); + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); unsigned long bufptr, result; snd_pcm_uframes_t frmres; @@ -1117,9 +1123,9 @@ snd_azf3328_playback_pointer(snd_pcm_substream_t * substream) } static snd_pcm_uframes_t -snd_azf3328_capture_pointer(snd_pcm_substream_t * substream) +snd_azf3328_capture_pointer(struct snd_pcm_substream *substream) { - azf3328_t *chip = snd_pcm_substream_chip(substream); + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); unsigned long bufptr, result; snd_pcm_uframes_t frmres; @@ -1140,7 +1146,7 @@ snd_azf3328_capture_pointer(snd_pcm_substream_t * substream) static irqreturn_t snd_azf3328_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - azf3328_t *chip = dev_id; + struct snd_azf3328 *chip = dev_id; u8 status, which; static unsigned long irq_count; @@ -1223,7 +1229,7 @@ snd_azf3328_interrupt(int irq, void *dev_id, struct pt_regs *regs) /*****************************************************************/ -static const snd_pcm_hardware_t snd_azf3328_playback = +static const struct snd_pcm_hardware snd_azf3328_playback = { /* FIXME!! Correct? */ .info = SNDRV_PCM_INFO_MMAP | @@ -1251,7 +1257,7 @@ static const snd_pcm_hardware_t snd_azf3328_playback = .fifo_size = 0, }; -static const snd_pcm_hardware_t snd_azf3328_capture = +static const struct snd_pcm_hardware snd_azf3328_capture = { /* FIXME */ .info = SNDRV_PCM_INFO_MMAP | @@ -1280,7 +1286,7 @@ static const snd_pcm_hardware_t snd_azf3328_capture = static unsigned int snd_azf3328_fixed_rates[] = { 4000, 4800, 5512, 6620, 8000, 9600, 11025, 13240, 16000, 22050, 32000, 44100, 48000, 66200 }; -static snd_pcm_hw_constraint_list_t snd_azf3328_hw_constraints_rates = { +static struct snd_pcm_hw_constraint_list snd_azf3328_hw_constraints_rates = { .count = ARRAY_SIZE(snd_azf3328_fixed_rates), .list = snd_azf3328_fixed_rates, .mask = 0, @@ -1289,10 +1295,10 @@ static snd_pcm_hw_constraint_list_t snd_azf3328_hw_constraints_rates = { /*****************************************************************/ static int -snd_azf3328_playback_open(snd_pcm_substream_t * substream) +snd_azf3328_playback_open(struct snd_pcm_substream *substream) { - azf3328_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_azf3328_dbgcallenter(); chip->playback_substream = substream; @@ -1304,10 +1310,10 @@ snd_azf3328_playback_open(snd_pcm_substream_t * substream) } static int -snd_azf3328_capture_open(snd_pcm_substream_t * substream) +snd_azf3328_capture_open(struct snd_pcm_substream *substream) { - azf3328_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_azf3328_dbgcallenter(); chip->capture_substream = substream; @@ -1319,9 +1325,9 @@ snd_azf3328_capture_open(snd_pcm_substream_t * substream) } static int -snd_azf3328_playback_close(snd_pcm_substream_t * substream) +snd_azf3328_playback_close(struct snd_pcm_substream *substream) { - azf3328_t *chip = snd_pcm_substream_chip(substream); + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); snd_azf3328_dbgcallenter(); @@ -1331,9 +1337,9 @@ snd_azf3328_playback_close(snd_pcm_substream_t * substream) } static int -snd_azf3328_capture_close(snd_pcm_substream_t * substream) +snd_azf3328_capture_close(struct snd_pcm_substream *substream) { - azf3328_t *chip = snd_pcm_substream_chip(substream); + struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); snd_azf3328_dbgcallenter(); chip->capture_substream = NULL; @@ -1343,7 +1349,7 @@ snd_azf3328_capture_close(snd_pcm_substream_t * substream) /******************************************************************/ -static snd_pcm_ops_t snd_azf3328_playback_ops = { +static struct snd_pcm_ops snd_azf3328_playback_ops = { .open = snd_azf3328_playback_open, .close = snd_azf3328_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1354,7 +1360,7 @@ static snd_pcm_ops_t snd_azf3328_playback_ops = { .pointer = snd_azf3328_playback_pointer }; -static snd_pcm_ops_t snd_azf3328_capture_ops = { +static struct snd_pcm_ops snd_azf3328_capture_ops = { .open = snd_azf3328_capture_open, .close = snd_azf3328_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1366,9 +1372,9 @@ static snd_pcm_ops_t snd_azf3328_capture_ops = { }; static int __devinit -snd_azf3328_pcm(azf3328_t *chip, int device) +snd_azf3328_pcm(struct snd_azf3328 *chip, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; snd_azf3328_dbgcallenter(); @@ -1393,7 +1399,7 @@ snd_azf3328_pcm(azf3328_t *chip, int device) #ifdef SUPPORT_JOYSTICK static int __devinit -snd_azf3328_config_joystick(azf3328_t *chip, int dev) +snd_azf3328_config_joystick(struct snd_azf3328 *chip, int dev) { struct gameport *gp; struct resource *r; @@ -1428,7 +1434,7 @@ snd_azf3328_config_joystick(azf3328_t *chip, int dev) } static void -snd_azf3328_free_joystick(azf3328_t *chip) +snd_azf3328_free_joystick(struct snd_azf3328 *chip) { if (chip->gameport) { struct resource *r = gameport_get_port_data(chip->gameport); @@ -1443,15 +1449,15 @@ snd_azf3328_free_joystick(azf3328_t *chip) } #else static inline int -snd_azf3328_config_joystick(azf3328_t *chip, int dev) { return -ENOSYS; } +snd_azf3328_config_joystick(struct snd_azf3328 *chip, int dev) { return -ENOSYS; } static inline void -snd_azf3328_free_joystick(azf3328_t *chip) { } +snd_azf3328_free_joystick(struct snd_azf3328 *chip) { } #endif /******************************************************************/ static int -snd_azf3328_free(azf3328_t *chip) +snd_azf3328_free(struct snd_azf3328 *chip) { if (chip->irq < 0) goto __end_hw; @@ -1477,9 +1483,9 @@ __end_hw: } static int -snd_azf3328_dev_free(snd_device_t *device) +snd_azf3328_dev_free(struct snd_device *device) { - azf3328_t *chip = device->device_data; + struct snd_azf3328 *chip = device->device_data; return snd_azf3328_free(chip); } @@ -1495,9 +1501,9 @@ snd_azf3328_dev_free(snd_device_t *device) ***/ static int -snd_azf3328_timer_start(snd_timer_t *timer) +snd_azf3328_timer_start(struct snd_timer *timer) { - azf3328_t *chip; + struct snd_azf3328 *chip; unsigned long flags; unsigned int delay; @@ -1523,9 +1529,9 @@ snd_azf3328_timer_start(snd_timer_t *timer) } static int -snd_azf3328_timer_stop(snd_timer_t *timer) +snd_azf3328_timer_stop(struct snd_timer *timer) { - azf3328_t *chip; + struct snd_azf3328 *chip; unsigned long flags; snd_azf3328_dbgcallenter(); @@ -1541,7 +1547,7 @@ snd_azf3328_timer_stop(snd_timer_t *timer) static int -snd_azf3328_timer_precise_resolution(snd_timer_t *timer, +snd_azf3328_timer_precise_resolution(struct snd_timer *timer, unsigned long *num, unsigned long *den) { snd_azf3328_dbgcallenter(); @@ -1551,7 +1557,7 @@ snd_azf3328_timer_precise_resolution(snd_timer_t *timer, return 0; } -static struct _snd_timer_hardware snd_azf3328_timer_hw = { +static struct snd_timer_hardware snd_azf3328_timer_hw = { .flags = SNDRV_TIMER_HW_AUTO, .resolution = 977, /* 1000000/1024000 = 0.9765625us */ .ticks = 1024000, /* max tick count, defined by the value register; actually it's not 1024000, but 1048576, but we don't care */ @@ -1561,10 +1567,10 @@ static struct _snd_timer_hardware snd_azf3328_timer_hw = { }; static int __devinit -snd_azf3328_timer(azf3328_t *chip, int device) +snd_azf3328_timer(struct snd_azf3328 *chip, int device) { - snd_timer_t *timer = NULL; - snd_timer_id_t tid; + struct snd_timer *timer = NULL; + struct snd_timer_id tid; int err; snd_azf3328_dbgcallenter(); @@ -1617,7 +1623,7 @@ snd_azf3328_test_bit(unsigned int reg, int bit) #endif static void -snd_azf3328_debug_show_ports(const azf3328_t *chip) +snd_azf3328_debug_show_ports(const struct snd_azf3328 *chip) { #if DEBUG_MISC u16 tmp; @@ -1635,14 +1641,14 @@ snd_azf3328_debug_show_ports(const azf3328_t *chip) } static int __devinit -snd_azf3328_create(snd_card_t * card, +snd_azf3328_create(struct snd_card *card, struct pci_dev *pci, unsigned long device_type, - azf3328_t ** rchip) + struct snd_azf3328 ** rchip) { - azf3328_t *chip; + struct snd_azf3328 *chip; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_azf3328_dev_free, }; u16 tmp; @@ -1735,9 +1741,9 @@ static int __devinit snd_azf3328_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - azf3328_t *chip; - opl3_t *opl3; + struct snd_card *card; + struct snd_azf3328 *chip; + struct snd_opl3 *opl3; int err; snd_azf3328_dbgcallenter(); -- cgit v1.2.3-70-g09d2 From 9f362dce9d6315fa24aab6290cb9628563160f75 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:02:58 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI BT87x Modules: BT87x driver Remove xxx_t typedefs from the PCI BT87x driver. Signed-off-by: Takashi Iwai --- sound/pci/bt87x.c | 138 +++++++++++++++++++++++++++++------------------------- 1 file changed, 73 insertions(+), 65 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c index 8feca228c6d..dc9cd3079b1 100644 --- a/sound/pci/bt87x.c +++ b/sound/pci/bt87x.c @@ -147,9 +147,8 @@ MODULE_PARM_DESC(load_all, "Allow to load the non-whitelisted cards"); /* SYNC, one WRITE per line, one extra WRITE per page boundary, SYNC, JUMP */ #define MAX_RISC_SIZE ((1 + 255 + (PAGE_ALIGN(255 * 4092) / PAGE_SIZE - 1) + 1 + 1) * 8) -typedef struct snd_bt87x bt87x_t; struct snd_bt87x { - snd_card_t *card; + struct snd_card *card; struct pci_dev *pci; void __iomem *mmio; @@ -159,7 +158,7 @@ struct snd_bt87x { spinlock_t reg_lock; long opened; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; struct snd_dma_buffer dma_risc; unsigned int line_bytes; @@ -175,17 +174,17 @@ struct snd_bt87x { enum { DEVICE_DIGITAL, DEVICE_ANALOG }; -static inline u32 snd_bt87x_readl(bt87x_t *chip, u32 reg) +static inline u32 snd_bt87x_readl(struct snd_bt87x *chip, u32 reg) { return readl(chip->mmio + reg); } -static inline void snd_bt87x_writel(bt87x_t *chip, u32 reg, u32 value) +static inline void snd_bt87x_writel(struct snd_bt87x *chip, u32 reg, u32 value) { writel(value, chip->mmio + reg); } -static int snd_bt87x_create_risc(bt87x_t *chip, snd_pcm_substream_t *substream, +static int snd_bt87x_create_risc(struct snd_bt87x *chip, struct snd_pcm_substream *substream, unsigned int periods, unsigned int period_bytes) { struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); @@ -235,7 +234,7 @@ static int snd_bt87x_create_risc(bt87x_t *chip, snd_pcm_substream_t *substream, return 0; } -static void snd_bt87x_free_risc(bt87x_t *chip) +static void snd_bt87x_free_risc(struct snd_bt87x *chip) { if (chip->dma_risc.area) { snd_dma_free_pages(&chip->dma_risc); @@ -243,7 +242,7 @@ static void snd_bt87x_free_risc(bt87x_t *chip) } } -static void snd_bt87x_pci_error(bt87x_t *chip, unsigned int status) +static void snd_bt87x_pci_error(struct snd_bt87x *chip, unsigned int status) { u16 pci_status; @@ -272,7 +271,7 @@ static void snd_bt87x_pci_error(bt87x_t *chip, unsigned int status) static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - bt87x_t *chip = dev_id; + struct snd_bt87x *chip = dev_id; unsigned int status, irq_status; status = snd_bt87x_readl(chip, REG_INT_STAT); @@ -305,7 +304,7 @@ static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id, struct pt_regs *re return IRQ_HANDLED; } -static snd_pcm_hardware_t snd_bt87x_digital_hw = { +static struct snd_pcm_hardware snd_bt87x_digital_hw = { .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -321,7 +320,7 @@ static snd_pcm_hardware_t snd_bt87x_digital_hw = { .periods_max = 255, }; -static snd_pcm_hardware_t snd_bt87x_analog_hw = { +static struct snd_pcm_hardware snd_bt87x_analog_hw = { .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -339,7 +338,7 @@ static snd_pcm_hardware_t snd_bt87x_analog_hw = { .periods_max = 255, }; -static int snd_bt87x_set_digital_hw(bt87x_t *chip, snd_pcm_runtime_t *runtime) +static int snd_bt87x_set_digital_hw(struct snd_bt87x *chip, struct snd_pcm_runtime *runtime) { static struct { int rate; @@ -368,15 +367,15 @@ static int snd_bt87x_set_digital_hw(bt87x_t *chip, snd_pcm_runtime_t *runtime) return 0; } -static int snd_bt87x_set_analog_hw(bt87x_t *chip, snd_pcm_runtime_t *runtime) +static int snd_bt87x_set_analog_hw(struct snd_bt87x *chip, struct snd_pcm_runtime *runtime) { - static ratnum_t analog_clock = { + static struct snd_ratnum analog_clock = { .num = ANALOG_CLOCK, .den_min = CLOCK_DIV_MIN, .den_max = CLOCK_DIV_MAX, .den_step = 1 }; - static snd_pcm_hw_constraint_ratnums_t constraint_rates = { + static struct snd_pcm_hw_constraint_ratnums constraint_rates = { .nrats = 1, .rats = &analog_clock }; @@ -387,10 +386,10 @@ static int snd_bt87x_set_analog_hw(bt87x_t *chip, snd_pcm_runtime_t *runtime) &constraint_rates); } -static int snd_bt87x_pcm_open(snd_pcm_substream_t *substream) +static int snd_bt87x_pcm_open(struct snd_pcm_substream *substream) { - bt87x_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_bt87x *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; if (test_and_set_bit(0, &chip->opened)) @@ -416,9 +415,9 @@ _error: return err; } -static int snd_bt87x_close(snd_pcm_substream_t *substream) +static int snd_bt87x_close(struct snd_pcm_substream *substream) { - bt87x_t *chip = snd_pcm_substream_chip(substream); + struct snd_bt87x *chip = snd_pcm_substream_chip(substream); chip->substream = NULL; clear_bit(0, &chip->opened); @@ -426,10 +425,10 @@ static int snd_bt87x_close(snd_pcm_substream_t *substream) return 0; } -static int snd_bt87x_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *hw_params) +static int snd_bt87x_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - bt87x_t *chip = snd_pcm_substream_chip(substream); + struct snd_bt87x *chip = snd_pcm_substream_chip(substream); int err; err = snd_pcm_lib_malloc_pages(substream, @@ -441,19 +440,19 @@ static int snd_bt87x_hw_params(snd_pcm_substream_t *substream, params_period_bytes(hw_params)); } -static int snd_bt87x_hw_free(snd_pcm_substream_t *substream) +static int snd_bt87x_hw_free(struct snd_pcm_substream *substream) { - bt87x_t *chip = snd_pcm_substream_chip(substream); + struct snd_bt87x *chip = snd_pcm_substream_chip(substream); snd_bt87x_free_risc(chip); snd_pcm_lib_free_pages(substream); return 0; } -static int snd_bt87x_prepare(snd_pcm_substream_t *substream) +static int snd_bt87x_prepare(struct snd_pcm_substream *substream) { - bt87x_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_bt87x *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int decimation; spin_lock_irq(&chip->reg_lock); @@ -467,7 +466,7 @@ static int snd_bt87x_prepare(snd_pcm_substream_t *substream) return 0; } -static int snd_bt87x_start(bt87x_t *chip) +static int snd_bt87x_start(struct snd_bt87x *chip) { spin_lock(&chip->reg_lock); chip->current_line = 0; @@ -481,7 +480,7 @@ static int snd_bt87x_start(bt87x_t *chip) return 0; } -static int snd_bt87x_stop(bt87x_t *chip) +static int snd_bt87x_stop(struct snd_bt87x *chip) { spin_lock(&chip->reg_lock); chip->reg_control &= ~(CTL_FIFO_ENABLE | CTL_RISC_ENABLE | CTL_ACAP_EN); @@ -492,9 +491,9 @@ static int snd_bt87x_stop(bt87x_t *chip) return 0; } -static int snd_bt87x_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_bt87x_trigger(struct snd_pcm_substream *substream, int cmd) { - bt87x_t *chip = snd_pcm_substream_chip(substream); + struct snd_bt87x *chip = snd_pcm_substream_chip(substream); switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -506,15 +505,15 @@ static int snd_bt87x_trigger(snd_pcm_substream_t *substream, int cmd) } } -static snd_pcm_uframes_t snd_bt87x_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_bt87x_pointer(struct snd_pcm_substream *substream) { - bt87x_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_bt87x *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; return (snd_pcm_uframes_t)bytes_to_frames(runtime, chip->current_line * chip->line_bytes); } -static snd_pcm_ops_t snd_bt87x_pcm_ops = { +static struct snd_pcm_ops snd_bt87x_pcm_ops = { .open = snd_bt87x_pcm_open, .close = snd_bt87x_close, .ioctl = snd_pcm_lib_ioctl, @@ -526,7 +525,8 @@ static snd_pcm_ops_t snd_bt87x_pcm_ops = { .page = snd_pcm_sgbuf_ops_page, }; -static int snd_bt87x_capture_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *info) +static int snd_bt87x_capture_volume_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *info) { info->type = SNDRV_CTL_ELEM_TYPE_INTEGER; info->count = 1; @@ -535,17 +535,19 @@ static int snd_bt87x_capture_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_bt87x_capture_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_bt87x_capture_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *value) { - bt87x_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_bt87x *chip = snd_kcontrol_chip(kcontrol); value->value.integer.value[0] = (chip->reg_control & CTL_A_GAIN_MASK) >> CTL_A_GAIN_SHIFT; return 0; } -static int snd_bt87x_capture_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_bt87x_capture_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *value) { - bt87x_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_bt87x *chip = snd_kcontrol_chip(kcontrol); u32 old_control; int changed; @@ -559,7 +561,7 @@ static int snd_bt87x_capture_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_v return changed; } -static snd_kcontrol_new_t snd_bt87x_capture_volume = { +static struct snd_kcontrol_new snd_bt87x_capture_volume = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Capture Volume", .info = snd_bt87x_capture_volume_info, @@ -567,7 +569,8 @@ static snd_kcontrol_new_t snd_bt87x_capture_volume = { .put = snd_bt87x_capture_volume_put, }; -static int snd_bt87x_capture_boost_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *info) +static int snd_bt87x_capture_boost_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *info) { info->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; info->count = 1; @@ -576,17 +579,19 @@ static int snd_bt87x_capture_boost_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i return 0; } -static int snd_bt87x_capture_boost_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_bt87x_capture_boost_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *value) { - bt87x_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_bt87x *chip = snd_kcontrol_chip(kcontrol); value->value.integer.value[0] = !! (chip->reg_control & CTL_A_G2X); return 0; } -static int snd_bt87x_capture_boost_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_bt87x_capture_boost_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *value) { - bt87x_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_bt87x *chip = snd_kcontrol_chip(kcontrol); u32 old_control; int changed; @@ -600,7 +605,7 @@ static int snd_bt87x_capture_boost_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_va return changed; } -static snd_kcontrol_new_t snd_bt87x_capture_boost = { +static struct snd_kcontrol_new snd_bt87x_capture_boost = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Capture Boost", .info = snd_bt87x_capture_boost_info, @@ -608,7 +613,8 @@ static snd_kcontrol_new_t snd_bt87x_capture_boost = { .put = snd_bt87x_capture_boost_put, }; -static int snd_bt87x_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *info) +static int snd_bt87x_capture_source_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *info) { static char *texts[3] = {"TV Tuner", "FM", "Mic/Line"}; @@ -621,17 +627,19 @@ static int snd_bt87x_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return 0; } -static int snd_bt87x_capture_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_bt87x_capture_source_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *value) { - bt87x_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_bt87x *chip = snd_kcontrol_chip(kcontrol); value->value.enumerated.item[0] = (chip->reg_control & CTL_A_SEL_MASK) >> CTL_A_SEL_SHIFT; return 0; } -static int snd_bt87x_capture_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *value) +static int snd_bt87x_capture_source_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *value) { - bt87x_t *chip = snd_kcontrol_chip(kcontrol); + struct snd_bt87x *chip = snd_kcontrol_chip(kcontrol); u32 old_control; int changed; @@ -645,7 +653,7 @@ static int snd_bt87x_capture_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_v return changed; } -static snd_kcontrol_new_t snd_bt87x_capture_source = { +static struct snd_kcontrol_new snd_bt87x_capture_source = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Capture Source", .info = snd_bt87x_capture_source_info, @@ -653,7 +661,7 @@ static snd_kcontrol_new_t snd_bt87x_capture_source = { .put = snd_bt87x_capture_source_put, }; -static int snd_bt87x_free(bt87x_t *chip) +static int snd_bt87x_free(struct snd_bt87x *chip) { if (chip->mmio) { snd_bt87x_stop(chip); @@ -670,16 +678,16 @@ static int snd_bt87x_free(bt87x_t *chip) return 0; } -static int snd_bt87x_dev_free(snd_device_t *device) +static int snd_bt87x_dev_free(struct snd_device *device) { - bt87x_t *chip = device->device_data; + struct snd_bt87x *chip = device->device_data; return snd_bt87x_free(chip); } -static int __devinit snd_bt87x_pcm(bt87x_t *chip, int device, char *name) +static int __devinit snd_bt87x_pcm(struct snd_bt87x *chip, int device, char *name) { int err; - snd_pcm_t *pcm; + struct snd_pcm *pcm; err = snd_pcm_new(chip->card, name, device, 0, 1, &pcm); if (err < 0) @@ -694,13 +702,13 @@ static int __devinit snd_bt87x_pcm(bt87x_t *chip, int device, char *name) (255 * 4092 + 1023) & ~1023); } -static int __devinit snd_bt87x_create(snd_card_t *card, +static int __devinit snd_bt87x_create(struct snd_card *card, struct pci_dev *pci, - bt87x_t **rchip) + struct snd_bt87x **rchip) { - bt87x_t *chip; + struct snd_bt87x *chip; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_bt87x_dev_free }; @@ -823,8 +831,8 @@ static int __devinit snd_bt87x_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - bt87x_t *chip; + struct snd_card *card; + struct snd_bt87x *chip; int err, rate; rate = pci_id->driver_data; -- cgit v1.2.3-70-g09d2 From 2cbdb686dd8df8d80742738ab50acfcfe9a95939 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:03:13 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI CMIPCI Modules: CMIPCI driver Remove xxx_t typedefs from the PCI CMIPCI driver. Signed-off-by: Takashi Iwai --- sound/pci/cmipci.c | 506 ++++++++++++++++++++++++++++------------------------- 1 file changed, 264 insertions(+), 242 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index 0309689f37f..ce156ca5bc6 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c @@ -378,11 +378,8 @@ MODULE_PARM_DESC(joystick_port, "Joystick port address."); * driver data */ -typedef struct snd_stru_cmipci cmipci_t; -typedef struct snd_stru_cmipci_pcm cmipci_pcm_t; - -struct snd_stru_cmipci_pcm { - snd_pcm_substream_t *substream; +struct cmipci_pcm { + struct snd_pcm_substream *substream; int running; /* dac/adc running? */ unsigned int dma_size; /* in frames */ unsigned int period_size; /* in frames */ @@ -408,8 +405,8 @@ static const struct cmipci_mixer_auto_switches cm_saved_mixer[] = { }; #define CM_SAVED_MIXERS ARRAY_SIZE(cm_saved_mixer) -struct snd_stru_cmipci { - snd_card_t *card; +struct cmipci { + struct snd_card *card; struct pci_dev *pci; unsigned int device; /* device ID */ @@ -418,9 +415,9 @@ struct snd_stru_cmipci { unsigned long iobase; unsigned int ctrl; /* FUNCTRL0 current value */ - snd_pcm_t *pcm; /* DAC/ADC PCM */ - snd_pcm_t *pcm2; /* 2nd DAC */ - snd_pcm_t *pcm_spdif; /* SPDIF */ + struct snd_pcm *pcm; /* DAC/ADC PCM */ + struct snd_pcm *pcm2; /* 2nd DAC */ + struct snd_pcm *pcm_spdif; /* SPDIF */ int chip_version; int max_channels; @@ -437,19 +434,19 @@ struct snd_stru_cmipci { unsigned int dig_status; unsigned int dig_pcm_status; - snd_pcm_hardware_t *hw_info[3]; /* for playbacks */ + struct snd_pcm_hardware *hw_info[3]; /* for playbacks */ int opened[2]; /* open mode */ struct semaphore open_mutex; unsigned int mixer_insensitive: 1; - snd_kcontrol_t *mixer_res_ctl[CM_SAVED_MIXERS]; + struct snd_kcontrol *mixer_res_ctl[CM_SAVED_MIXERS]; int mixer_res_status[CM_SAVED_MIXERS]; - cmipci_pcm_t channel[2]; /* ch0 - DAC, ch1 - ADC or 2nd DAC */ + struct cmipci_pcm channel[2]; /* ch0 - DAC, ch1 - ADC or 2nd DAC */ /* external MIDI */ - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; @@ -460,40 +457,40 @@ struct snd_stru_cmipci { /* read/write operations for dword register */ -static inline void snd_cmipci_write(cmipci_t *cm, unsigned int cmd, unsigned int data) +static inline void snd_cmipci_write(struct cmipci *cm, unsigned int cmd, unsigned int data) { outl(data, cm->iobase + cmd); } -static inline unsigned int snd_cmipci_read(cmipci_t *cm, unsigned int cmd) +static inline unsigned int snd_cmipci_read(struct cmipci *cm, unsigned int cmd) { return inl(cm->iobase + cmd); } /* read/write operations for word register */ -static inline void snd_cmipci_write_w(cmipci_t *cm, unsigned int cmd, unsigned short data) +static inline void snd_cmipci_write_w(struct cmipci *cm, unsigned int cmd, unsigned short data) { outw(data, cm->iobase + cmd); } -static inline unsigned short snd_cmipci_read_w(cmipci_t *cm, unsigned int cmd) +static inline unsigned short snd_cmipci_read_w(struct cmipci *cm, unsigned int cmd) { return inw(cm->iobase + cmd); } /* read/write operations for byte register */ -static inline void snd_cmipci_write_b(cmipci_t *cm, unsigned int cmd, unsigned char data) +static inline void snd_cmipci_write_b(struct cmipci *cm, unsigned int cmd, unsigned char data) { outb(data, cm->iobase + cmd); } -static inline unsigned char snd_cmipci_read_b(cmipci_t *cm, unsigned int cmd) +static inline unsigned char snd_cmipci_read_b(struct cmipci *cm, unsigned int cmd) { return inb(cm->iobase + cmd); } /* bit operations for dword register */ -static int snd_cmipci_set_bit(cmipci_t *cm, unsigned int cmd, unsigned int flag) +static int snd_cmipci_set_bit(struct cmipci *cm, unsigned int cmd, unsigned int flag) { unsigned int val, oval; val = oval = inl(cm->iobase + cmd); @@ -504,7 +501,7 @@ static int snd_cmipci_set_bit(cmipci_t *cm, unsigned int cmd, unsigned int flag) return 1; } -static int snd_cmipci_clear_bit(cmipci_t *cm, unsigned int cmd, unsigned int flag) +static int snd_cmipci_clear_bit(struct cmipci *cm, unsigned int cmd, unsigned int flag) { unsigned int val, oval; val = oval = inl(cm->iobase + cmd); @@ -516,7 +513,7 @@ static int snd_cmipci_clear_bit(cmipci_t *cm, unsigned int cmd, unsigned int fla } /* bit operations for byte register */ -static int snd_cmipci_set_bit_b(cmipci_t *cm, unsigned int cmd, unsigned char flag) +static int snd_cmipci_set_bit_b(struct cmipci *cm, unsigned int cmd, unsigned char flag) { unsigned char val, oval; val = oval = inb(cm->iobase + cmd); @@ -527,7 +524,7 @@ static int snd_cmipci_set_bit_b(cmipci_t *cm, unsigned int cmd, unsigned char fl return 1; } -static int snd_cmipci_clear_bit_b(cmipci_t *cm, unsigned int cmd, unsigned char flag) +static int snd_cmipci_clear_bit_b(struct cmipci *cm, unsigned int cmd, unsigned char flag) { unsigned char val, oval; val = oval = inb(cm->iobase + cmd); @@ -608,7 +605,7 @@ out: * at the register CM_REG_FUNCTRL1 (0x04). * Problem: other ways are also possible (any information about that?) */ -static void snd_cmipci_set_pll(cmipci_t *cm, unsigned int rate, unsigned int slot) +static void snd_cmipci_set_pll(struct cmipci *cm, unsigned int rate, unsigned int slot) { unsigned int reg = CM_REG_PLL + slot; /* @@ -626,16 +623,16 @@ static void snd_cmipci_set_pll(cmipci_t *cm, unsigned int rate, unsigned int slo } #endif /* USE_VAR48KRATE */ -static int snd_cmipci_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_cmipci_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_cmipci_playback2_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_cmipci_playback2_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); if (params_channels(hw_params) > 2) { down(&cm->open_mutex); if (cm->opened[CM_CH_PLAY]) { @@ -649,7 +646,7 @@ static int snd_cmipci_playback2_hw_params(snd_pcm_substream_t * substream, return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static void snd_cmipci_ch_reset(cmipci_t *cm, int ch) +static void snd_cmipci_ch_reset(struct cmipci *cm, int ch) { int reset = CM_RST_CH0 << (cm->channel[ch].ch); snd_cmipci_write(cm, CM_REG_FUNCTRL0, cm->ctrl | reset); @@ -657,7 +654,7 @@ static void snd_cmipci_ch_reset(cmipci_t *cm, int ch) udelay(10); } -static int snd_cmipci_hw_free(snd_pcm_substream_t * substream) +static int snd_cmipci_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } @@ -667,23 +664,23 @@ static int snd_cmipci_hw_free(snd_pcm_substream_t * substream) */ static unsigned int hw_channels[] = {1, 2, 4, 5, 6, 8}; -static snd_pcm_hw_constraint_list_t hw_constraints_channels_4 = { +static struct snd_pcm_hw_constraint_list hw_constraints_channels_4 = { .count = 3, .list = hw_channels, .mask = 0, }; -static snd_pcm_hw_constraint_list_t hw_constraints_channels_6 = { +static struct snd_pcm_hw_constraint_list hw_constraints_channels_6 = { .count = 5, .list = hw_channels, .mask = 0, }; -static snd_pcm_hw_constraint_list_t hw_constraints_channels_8 = { +static struct snd_pcm_hw_constraint_list hw_constraints_channels_8 = { .count = 6, .list = hw_channels, .mask = 0, }; -static int set_dac_channels(cmipci_t *cm, cmipci_pcm_t *rec, int channels) +static int set_dac_channels(struct cmipci *cm, struct cmipci_pcm *rec, int channels) { if (channels > 2) { if (! cm->can_multi_ch) @@ -737,11 +734,11 @@ static int set_dac_channels(cmipci_t *cm, cmipci_pcm_t *rec, int channels) * prepare playback/capture channel * channel to be used must have been set in rec->ch. */ -static int snd_cmipci_pcm_prepare(cmipci_t *cm, cmipci_pcm_t *rec, - snd_pcm_substream_t *substream) +static int snd_cmipci_pcm_prepare(struct cmipci *cm, struct cmipci_pcm *rec, + struct snd_pcm_substream *substream) { unsigned int reg, freq, val; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; rec->fmt = 0; rec->shift = 0; @@ -820,8 +817,8 @@ static int snd_cmipci_pcm_prepare(cmipci_t *cm, cmipci_pcm_t *rec, /* * PCM trigger/stop */ -static int snd_cmipci_pcm_trigger(cmipci_t *cm, cmipci_pcm_t *rec, - snd_pcm_substream_t *substream, int cmd) +static int snd_cmipci_pcm_trigger(struct cmipci *cm, struct cmipci_pcm *rec, + struct snd_pcm_substream *substream, int cmd) { unsigned int inthld, chen, reset, pause; int result = 0; @@ -870,8 +867,8 @@ static int snd_cmipci_pcm_trigger(cmipci_t *cm, cmipci_pcm_t *rec, /* * return the current pointer */ -static snd_pcm_uframes_t snd_cmipci_pcm_pointer(cmipci_t *cm, cmipci_pcm_t *rec, - snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_cmipci_pcm_pointer(struct cmipci *cm, struct cmipci_pcm *rec, + struct snd_pcm_substream *substream) { size_t ptr; unsigned int reg; @@ -895,16 +892,16 @@ static snd_pcm_uframes_t snd_cmipci_pcm_pointer(cmipci_t *cm, cmipci_pcm_t *rec, * playback */ -static int snd_cmipci_playback_trigger(snd_pcm_substream_t *substream, +static int snd_cmipci_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); return snd_cmipci_pcm_trigger(cm, &cm->channel[CM_CH_PLAY], substream, cmd); } -static snd_pcm_uframes_t snd_cmipci_playback_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_cmipci_playback_pointer(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); return snd_cmipci_pcm_pointer(cm, &cm->channel[CM_CH_PLAY], substream); } @@ -914,16 +911,16 @@ static snd_pcm_uframes_t snd_cmipci_playback_pointer(snd_pcm_substream_t *substr * capture */ -static int snd_cmipci_capture_trigger(snd_pcm_substream_t *substream, +static int snd_cmipci_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); return snd_cmipci_pcm_trigger(cm, &cm->channel[CM_CH_CAPT], substream, cmd); } -static snd_pcm_uframes_t snd_cmipci_capture_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_cmipci_capture_pointer(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); return snd_cmipci_pcm_pointer(cm, &cm->channel[CM_CH_CAPT], substream); } @@ -932,18 +929,18 @@ static snd_pcm_uframes_t snd_cmipci_capture_pointer(snd_pcm_substream_t *substre * hw preparation for spdif */ -static int snd_cmipci_spdif_default_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_cmipci_spdif_default_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_cmipci_spdif_default_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_spdif_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *chip = snd_kcontrol_chip(kcontrol); + struct cmipci *chip = snd_kcontrol_chip(kcontrol); int i; spin_lock_irq(&chip->reg_lock); @@ -953,10 +950,10 @@ static int snd_cmipci_spdif_default_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cmipci_spdif_default_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_cmipci_spdif_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *chip = snd_kcontrol_chip(kcontrol); + struct cmipci *chip = snd_kcontrol_chip(kcontrol); int i, change; unsigned int val; @@ -970,7 +967,7 @@ static int snd_cmipci_spdif_default_put(snd_kcontrol_t * kcontrol, return change; } -static snd_kcontrol_new_t snd_cmipci_spdif_default __devinitdata = +static struct snd_kcontrol_new snd_cmipci_spdif_default __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -979,16 +976,16 @@ static snd_kcontrol_new_t snd_cmipci_spdif_default __devinitdata = .put = snd_cmipci_spdif_default_put }; -static int snd_cmipci_spdif_mask_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_cmipci_spdif_mask_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_cmipci_spdif_mask_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_spdif_mask_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -997,7 +994,7 @@ static int snd_cmipci_spdif_mask_get(snd_kcontrol_t * kcontrol, return 0; } -static snd_kcontrol_new_t snd_cmipci_spdif_mask __devinitdata = +static struct snd_kcontrol_new snd_cmipci_spdif_mask __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READ, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1006,18 +1003,18 @@ static snd_kcontrol_new_t snd_cmipci_spdif_mask __devinitdata = .get = snd_cmipci_spdif_mask_get, }; -static int snd_cmipci_spdif_stream_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_cmipci_spdif_stream_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_cmipci_spdif_stream_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_spdif_stream_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *chip = snd_kcontrol_chip(kcontrol); + struct cmipci *chip = snd_kcontrol_chip(kcontrol); int i; spin_lock_irq(&chip->reg_lock); @@ -1027,10 +1024,10 @@ static int snd_cmipci_spdif_stream_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cmipci_spdif_stream_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_spdif_stream_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *chip = snd_kcontrol_chip(kcontrol); + struct cmipci *chip = snd_kcontrol_chip(kcontrol); int i, change; unsigned int val; @@ -1044,7 +1041,7 @@ static int snd_cmipci_spdif_stream_put(snd_kcontrol_t *kcontrol, return change; } -static snd_kcontrol_new_t snd_cmipci_spdif_stream __devinitdata = +static struct snd_kcontrol_new snd_cmipci_spdif_stream __devinitdata = { .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1058,17 +1055,17 @@ static snd_kcontrol_new_t snd_cmipci_spdif_stream __devinitdata = */ /* save mixer setting and mute for AC3 playback */ -static int save_mixer_state(cmipci_t *cm) +static int save_mixer_state(struct cmipci *cm) { if (! cm->mixer_insensitive) { - snd_ctl_elem_value_t *val; + struct snd_ctl_elem_value *val; unsigned int i; val = kmalloc(sizeof(*val), GFP_ATOMIC); if (!val) return -ENOMEM; for (i = 0; i < CM_SAVED_MIXERS; i++) { - snd_kcontrol_t *ctl = cm->mixer_res_ctl[i]; + struct snd_kcontrol *ctl = cm->mixer_res_ctl[i]; if (ctl) { int event; memset(val, 0, sizeof(*val)); @@ -1092,10 +1089,10 @@ static int save_mixer_state(cmipci_t *cm) /* restore the previously saved mixer status */ -static void restore_mixer_state(cmipci_t *cm) +static void restore_mixer_state(struct cmipci *cm) { if (cm->mixer_insensitive) { - snd_ctl_elem_value_t *val; + struct snd_ctl_elem_value *val; unsigned int i; val = kmalloc(sizeof(*val), GFP_KERNEL); @@ -1104,7 +1101,7 @@ static void restore_mixer_state(cmipci_t *cm) cm->mixer_insensitive = 0; /* at first clear this; otherwise the changes will be ignored */ for (i = 0; i < CM_SAVED_MIXERS; i++) { - snd_kcontrol_t *ctl = cm->mixer_res_ctl[i]; + struct snd_kcontrol *ctl = cm->mixer_res_ctl[i]; if (ctl) { int event; @@ -1125,7 +1122,7 @@ static void restore_mixer_state(cmipci_t *cm) } /* spinlock held! */ -static void setup_ac3(cmipci_t *cm, snd_pcm_substream_t *subs, int do_ac3, int rate) +static void setup_ac3(struct cmipci *cm, struct snd_pcm_substream *subs, int do_ac3, int rate) { if (do_ac3) { /* AC3EN for 037 */ @@ -1172,7 +1169,7 @@ static void setup_ac3(cmipci_t *cm, snd_pcm_substream_t *subs, int do_ac3, int r } } -static int setup_spdif_playback(cmipci_t *cm, snd_pcm_substream_t *subs, int up, int do_ac3) +static int setup_spdif_playback(struct cmipci *cm, struct snd_pcm_substream *subs, int up, int do_ac3) { int rate, err; @@ -1214,9 +1211,9 @@ static int setup_spdif_playback(cmipci_t *cm, snd_pcm_substream_t *subs, int up, */ /* playback - enable spdif only on the certain condition */ -static int snd_cmipci_playback_prepare(snd_pcm_substream_t *substream) +static int snd_cmipci_playback_prepare(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); int rate = substream->runtime->rate; int err, do_spdif, do_ac3 = 0; @@ -1231,9 +1228,9 @@ static int snd_cmipci_playback_prepare(snd_pcm_substream_t *substream) } /* playback (via device #2) - enable spdif always */ -static int snd_cmipci_playback_spdif_prepare(snd_pcm_substream_t *substream) +static int snd_cmipci_playback_spdif_prepare(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); int err, do_ac3; if (cm->can_ac3_hw) @@ -1245,25 +1242,25 @@ static int snd_cmipci_playback_spdif_prepare(snd_pcm_substream_t *substream) return snd_cmipci_pcm_prepare(cm, &cm->channel[CM_CH_PLAY], substream); } -static int snd_cmipci_playback_hw_free(snd_pcm_substream_t *substream) +static int snd_cmipci_playback_hw_free(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); setup_spdif_playback(cm, substream, 0, 0); restore_mixer_state(cm); return snd_cmipci_hw_free(substream); } /* capture */ -static int snd_cmipci_capture_prepare(snd_pcm_substream_t *substream) +static int snd_cmipci_capture_prepare(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); return snd_cmipci_pcm_prepare(cm, &cm->channel[CM_CH_CAPT], substream); } /* capture with spdif (via device #2) */ -static int snd_cmipci_capture_spdif_prepare(snd_pcm_substream_t *substream) +static int snd_cmipci_capture_spdif_prepare(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); spin_lock_irq(&cm->reg_lock); snd_cmipci_set_bit(cm, CM_REG_FUNCTRL1, CM_CAPTURE_SPDF); @@ -1272,9 +1269,9 @@ static int snd_cmipci_capture_spdif_prepare(snd_pcm_substream_t *substream) return snd_cmipci_pcm_prepare(cm, &cm->channel[CM_CH_CAPT], substream); } -static int snd_cmipci_capture_spdif_hw_free(snd_pcm_substream_t *subs) +static int snd_cmipci_capture_spdif_hw_free(struct snd_pcm_substream *subs) { - cmipci_t *cm = snd_pcm_substream_chip(subs); + struct cmipci *cm = snd_pcm_substream_chip(subs); spin_lock_irq(&cm->reg_lock); snd_cmipci_clear_bit(cm, CM_REG_FUNCTRL1, CM_CAPTURE_SPDF); @@ -1289,7 +1286,7 @@ static int snd_cmipci_capture_spdif_hw_free(snd_pcm_substream_t *subs) */ static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - cmipci_t *cm = dev_id; + struct cmipci *cm = dev_id; unsigned int status, mask = 0; /* fastpath out, to ease interrupt sharing */ @@ -1324,7 +1321,7 @@ static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *r */ /* playback on channel A */ -static snd_pcm_hardware_t snd_cmipci_playback = +static struct snd_pcm_hardware snd_cmipci_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | @@ -1344,7 +1341,7 @@ static snd_pcm_hardware_t snd_cmipci_playback = }; /* capture on channel B */ -static snd_pcm_hardware_t snd_cmipci_capture = +static struct snd_pcm_hardware snd_cmipci_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | @@ -1364,7 +1361,7 @@ static snd_pcm_hardware_t snd_cmipci_capture = }; /* playback on channel B - stereo 16bit only? */ -static snd_pcm_hardware_t snd_cmipci_playback2 = +static struct snd_pcm_hardware snd_cmipci_playback2 = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | @@ -1384,7 +1381,7 @@ static snd_pcm_hardware_t snd_cmipci_playback2 = }; /* spdif playback on channel A */ -static snd_pcm_hardware_t snd_cmipci_playback_spdif = +static struct snd_pcm_hardware snd_cmipci_playback_spdif = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | @@ -1404,7 +1401,7 @@ static snd_pcm_hardware_t snd_cmipci_playback_spdif = }; /* spdif playback on channel A (32bit, IEC958 subframes) */ -static snd_pcm_hardware_t snd_cmipci_playback_iec958_subframe = +static struct snd_pcm_hardware snd_cmipci_playback_iec958_subframe = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | @@ -1424,7 +1421,7 @@ static snd_pcm_hardware_t snd_cmipci_playback_iec958_subframe = }; /* spdif capture on channel B */ -static snd_pcm_hardware_t snd_cmipci_capture_spdif = +static struct snd_pcm_hardware snd_cmipci_capture_spdif = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | @@ -1446,7 +1443,7 @@ static snd_pcm_hardware_t snd_cmipci_capture_spdif = /* * check device open/close */ -static int open_device_check(cmipci_t *cm, int mode, snd_pcm_substream_t *subs) +static int open_device_check(struct cmipci *cm, int mode, struct snd_pcm_substream *subs) { int ch = mode & CM_OPEN_CH_MASK; @@ -1473,7 +1470,7 @@ static int open_device_check(cmipci_t *cm, int mode, snd_pcm_substream_t *subs) return 0; } -static void close_device_check(cmipci_t *cm, int mode) +static void close_device_check(struct cmipci *cm, int mode) { int ch = mode & CM_OPEN_CH_MASK; @@ -1499,10 +1496,10 @@ static void close_device_check(cmipci_t *cm, int mode) /* */ -static int snd_cmipci_playback_open(snd_pcm_substream_t *substream) +static int snd_cmipci_playback_open(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct cmipci *cm = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; if ((err = open_device_check(cm, CM_OPEN_PLAYBACK, substream)) < 0) @@ -1514,10 +1511,10 @@ static int snd_cmipci_playback_open(snd_pcm_substream_t *substream) return 0; } -static int snd_cmipci_capture_open(snd_pcm_substream_t *substream) +static int snd_cmipci_capture_open(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct cmipci *cm = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; if ((err = open_device_check(cm, CM_OPEN_CAPTURE, substream)) < 0) @@ -1531,10 +1528,10 @@ static int snd_cmipci_capture_open(snd_pcm_substream_t *substream) return 0; } -static int snd_cmipci_playback2_open(snd_pcm_substream_t *substream) +static int snd_cmipci_playback2_open(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct cmipci *cm = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; if ((err = open_device_check(cm, CM_OPEN_PLAYBACK2, substream)) < 0) /* use channel B */ @@ -1557,10 +1554,10 @@ static int snd_cmipci_playback2_open(snd_pcm_substream_t *substream) return 0; } -static int snd_cmipci_playback_spdif_open(snd_pcm_substream_t *substream) +static int snd_cmipci_playback_spdif_open(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct cmipci *cm = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; if ((err = open_device_check(cm, CM_OPEN_SPDIF_PLAYBACK, substream)) < 0) /* use channel A */ @@ -1577,10 +1574,10 @@ static int snd_cmipci_playback_spdif_open(snd_pcm_substream_t *substream) return 0; } -static int snd_cmipci_capture_spdif_open(snd_pcm_substream_t * substream) +static int snd_cmipci_capture_spdif_open(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct cmipci *cm = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; if ((err = open_device_check(cm, CM_OPEN_SPDIF_CAPTURE, substream)) < 0) /* use channel B */ @@ -1594,38 +1591,38 @@ static int snd_cmipci_capture_spdif_open(snd_pcm_substream_t * substream) /* */ -static int snd_cmipci_playback_close(snd_pcm_substream_t * substream) +static int snd_cmipci_playback_close(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); close_device_check(cm, CM_OPEN_PLAYBACK); return 0; } -static int snd_cmipci_capture_close(snd_pcm_substream_t * substream) +static int snd_cmipci_capture_close(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); close_device_check(cm, CM_OPEN_CAPTURE); return 0; } -static int snd_cmipci_playback2_close(snd_pcm_substream_t * substream) +static int snd_cmipci_playback2_close(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); close_device_check(cm, CM_OPEN_PLAYBACK2); close_device_check(cm, CM_OPEN_PLAYBACK_MULTI); return 0; } -static int snd_cmipci_playback_spdif_close(snd_pcm_substream_t * substream) +static int snd_cmipci_playback_spdif_close(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); close_device_check(cm, CM_OPEN_SPDIF_PLAYBACK); return 0; } -static int snd_cmipci_capture_spdif_close(snd_pcm_substream_t * substream) +static int snd_cmipci_capture_spdif_close(struct snd_pcm_substream *substream) { - cmipci_t *cm = snd_pcm_substream_chip(substream); + struct cmipci *cm = snd_pcm_substream_chip(substream); close_device_check(cm, CM_OPEN_SPDIF_CAPTURE); return 0; } @@ -1634,7 +1631,7 @@ static int snd_cmipci_capture_spdif_close(snd_pcm_substream_t * substream) /* */ -static snd_pcm_ops_t snd_cmipci_playback_ops = { +static struct snd_pcm_ops snd_cmipci_playback_ops = { .open = snd_cmipci_playback_open, .close = snd_cmipci_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1645,7 +1642,7 @@ static snd_pcm_ops_t snd_cmipci_playback_ops = { .pointer = snd_cmipci_playback_pointer, }; -static snd_pcm_ops_t snd_cmipci_capture_ops = { +static struct snd_pcm_ops snd_cmipci_capture_ops = { .open = snd_cmipci_capture_open, .close = snd_cmipci_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1656,7 +1653,7 @@ static snd_pcm_ops_t snd_cmipci_capture_ops = { .pointer = snd_cmipci_capture_pointer, }; -static snd_pcm_ops_t snd_cmipci_playback2_ops = { +static struct snd_pcm_ops snd_cmipci_playback2_ops = { .open = snd_cmipci_playback2_open, .close = snd_cmipci_playback2_close, .ioctl = snd_pcm_lib_ioctl, @@ -1667,7 +1664,7 @@ static snd_pcm_ops_t snd_cmipci_playback2_ops = { .pointer = snd_cmipci_capture_pointer, /* channel B */ }; -static snd_pcm_ops_t snd_cmipci_playback_spdif_ops = { +static struct snd_pcm_ops snd_cmipci_playback_spdif_ops = { .open = snd_cmipci_playback_spdif_open, .close = snd_cmipci_playback_spdif_close, .ioctl = snd_pcm_lib_ioctl, @@ -1678,7 +1675,7 @@ static snd_pcm_ops_t snd_cmipci_playback_spdif_ops = { .pointer = snd_cmipci_playback_pointer, }; -static snd_pcm_ops_t snd_cmipci_capture_spdif_ops = { +static struct snd_pcm_ops snd_cmipci_capture_spdif_ops = { .open = snd_cmipci_capture_spdif_open, .close = snd_cmipci_capture_spdif_close, .ioctl = snd_pcm_lib_ioctl, @@ -1693,9 +1690,9 @@ static snd_pcm_ops_t snd_cmipci_capture_spdif_ops = { /* */ -static int __devinit snd_cmipci_pcm_new(cmipci_t *cm, int device) +static int __devinit snd_cmipci_pcm_new(struct cmipci *cm, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; err = snd_pcm_new(cm->card, cm->card->driver, device, 1, 1, &pcm); @@ -1716,9 +1713,9 @@ static int __devinit snd_cmipci_pcm_new(cmipci_t *cm, int device) return 0; } -static int __devinit snd_cmipci_pcm2_new(cmipci_t *cm, int device) +static int __devinit snd_cmipci_pcm2_new(struct cmipci *cm, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; err = snd_pcm_new(cm->card, cm->card->driver, device, 1, 0, &pcm); @@ -1738,9 +1735,9 @@ static int __devinit snd_cmipci_pcm2_new(cmipci_t *cm, int device) return 0; } -static int __devinit snd_cmipci_pcm_spdif_new(cmipci_t *cm, int device) +static int __devinit snd_cmipci_pcm_spdif_new(struct cmipci *cm, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; err = snd_pcm_new(cm->card, cm->card->driver, device, 1, 1, &pcm); @@ -1770,13 +1767,13 @@ static int __devinit snd_cmipci_pcm_spdif_new(cmipci_t *cm, int device) * - Output mute switches */ -static void snd_cmipci_mixer_write(cmipci_t *s, unsigned char idx, unsigned char data) +static void snd_cmipci_mixer_write(struct cmipci *s, unsigned char idx, unsigned char data) { outb(idx, s->iobase + CM_REG_SB16_ADDR); outb(data, s->iobase + CM_REG_SB16_DATA); } -static unsigned char snd_cmipci_mixer_read(cmipci_t *s, unsigned char idx) +static unsigned char snd_cmipci_mixer_read(struct cmipci *s, unsigned char idx) { unsigned char v; @@ -1788,13 +1785,13 @@ static unsigned char snd_cmipci_mixer_read(cmipci_t *s, unsigned char idx) /* * general mixer element */ -typedef struct cmipci_sb_reg { +struct cmipci_sb_reg { unsigned int left_reg, right_reg; unsigned int left_shift, right_shift; unsigned int mask; unsigned int invert: 1; unsigned int stereo: 1; -} cmipci_sb_reg_t; +}; #define COMPOSE_SB_REG(lreg,rreg,lshift,rshift,mask,invert,stereo) \ ((lreg) | ((rreg) << 8) | (lshift << 16) | (rshift << 19) | (mask << 24) | (invert << 22) | (stereo << 23)) @@ -1811,7 +1808,7 @@ typedef struct cmipci_sb_reg { #define CMIPCI_SB_SW_STEREO(xname,lshift,rshift) CMIPCI_DOUBLE(xname, SB_DSP4_OUTPUT_SW, SB_DSP4_OUTPUT_SW, lshift, rshift, 1, 0, 1) #define CMIPCI_SB_SW_MONO(xname,shift) CMIPCI_DOUBLE(xname, SB_DSP4_OUTPUT_SW, SB_DSP4_OUTPUT_SW, shift, shift, 1, 0, 0) -static void cmipci_sb_reg_decode(cmipci_sb_reg_t *r, unsigned long val) +static void cmipci_sb_reg_decode(struct cmipci_sb_reg *r, unsigned long val) { r->left_reg = val & 0xff; r->right_reg = (val >> 8) & 0xff; @@ -1822,9 +1819,10 @@ static void cmipci_sb_reg_decode(cmipci_sb_reg_t *r, unsigned long val) r->mask = (val >> 24) & 0xff; } -static int snd_cmipci_info_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_cmipci_info_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { - cmipci_sb_reg_t reg; + struct cmipci_sb_reg reg; cmipci_sb_reg_decode(®, kcontrol->private_value); uinfo->type = reg.mask == 1 ? SNDRV_CTL_ELEM_TYPE_BOOLEAN : SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -1834,10 +1832,11 @@ static int snd_cmipci_info_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_cmipci_get_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cmipci_get_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); - cmipci_sb_reg_t reg; + struct cmipci *cm = snd_kcontrol_chip(kcontrol); + struct cmipci_sb_reg reg; int val; cmipci_sb_reg_decode(®, kcontrol->private_value); @@ -1856,10 +1855,11 @@ static int snd_cmipci_get_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_cmipci_put_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cmipci_put_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); - cmipci_sb_reg_t reg; + struct cmipci *cm = snd_kcontrol_chip(kcontrol); + struct cmipci_sb_reg reg; int change; int left, right, oleft, oright; @@ -1904,7 +1904,8 @@ static int snd_cmipci_put_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .private_value = COMPOSE_SB_REG(SB_DSP4_INPUT_LEFT, SB_DSP4_INPUT_RIGHT, left_shift, right_shift, 1, 0, 1), \ } -static int snd_cmipci_info_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_cmipci_info_input_sw(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 4; @@ -1913,10 +1914,11 @@ static int snd_cmipci_info_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_info return 0; } -static int snd_cmipci_get_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cmipci_get_input_sw(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); - cmipci_sb_reg_t reg; + struct cmipci *cm = snd_kcontrol_chip(kcontrol); + struct cmipci_sb_reg reg; int val1, val2; cmipci_sb_reg_decode(®, kcontrol->private_value); @@ -1931,10 +1933,11 @@ static int snd_cmipci_get_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value return 0; } -static int snd_cmipci_put_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cmipci_put_input_sw(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); - cmipci_sb_reg_t reg; + struct cmipci *cm = snd_kcontrol_chip(kcontrol); + struct cmipci_sb_reg reg; int change; int val1, val2, oval1, oval2; @@ -1987,9 +1990,10 @@ static int snd_cmipci_put_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_value .private_value = COMPOSE_SB_REG(reg, reg, shift, shift, mask, 0, 0), \ } -static int snd_cmipci_info_native_mixer(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_cmipci_info_native_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { - cmipci_sb_reg_t reg; + struct cmipci_sb_reg reg; cmipci_sb_reg_decode(®, kcontrol->private_value); uinfo->type = reg.mask == 1 ? SNDRV_CTL_ELEM_TYPE_BOOLEAN : SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -2000,10 +2004,11 @@ static int snd_cmipci_info_native_mixer(snd_kcontrol_t *kcontrol, snd_ctl_elem_i } -static int snd_cmipci_get_native_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cmipci_get_native_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); - cmipci_sb_reg_t reg; + struct cmipci *cm = snd_kcontrol_chip(kcontrol); + struct cmipci_sb_reg reg; unsigned char oreg, val; cmipci_sb_reg_decode(®, kcontrol->private_value); @@ -2023,10 +2028,11 @@ static int snd_cmipci_get_native_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_v return 0; } -static int snd_cmipci_put_native_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cmipci_put_native_mixer(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); - cmipci_sb_reg_t reg; + struct cmipci *cm = snd_kcontrol_chip(kcontrol); + struct cmipci_sb_reg reg; unsigned char oreg, nreg, val; cmipci_sb_reg_decode(®, kcontrol->private_value); @@ -2052,15 +2058,17 @@ static int snd_cmipci_put_native_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_v /* * special case - check mixer sensitivity */ -static int snd_cmipci_get_native_mixer_sensitive(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_get_native_mixer_sensitive(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - //cmipci_t *cm = snd_kcontrol_chip(kcontrol); + //struct cmipci *cm = snd_kcontrol_chip(kcontrol); return snd_cmipci_get_native_mixer(kcontrol, ucontrol); } -static int snd_cmipci_put_native_mixer_sensitive(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_put_native_mixer_sensitive(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); if (cm->mixer_insensitive) { /* ignored */ return 0; @@ -2069,7 +2077,7 @@ static int snd_cmipci_put_native_mixer_sensitive(snd_kcontrol_t *kcontrol, snd_c } -static snd_kcontrol_new_t snd_cmipci_mixers[] __devinitdata = { +static struct snd_kcontrol_new snd_cmipci_mixers[] __devinitdata = { CMIPCI_SB_VOL_STEREO("Master Playback Volume", SB_DSP4_MASTER_DEV, 3, 31), CMIPCI_MIXER_SW_MONO("3D Control - Switch", CM_REG_MIXER1, CM_X3DEN_SHIFT, 0), CMIPCI_SB_VOL_STEREO("PCM Playback Volume", SB_DSP4_PCM_DEV, 3, 31), @@ -2111,15 +2119,18 @@ static snd_kcontrol_new_t snd_cmipci_mixers[] __devinitdata = { * other switches */ -typedef struct snd_cmipci_switch_args { +struct cmipci_switch_args { int reg; /* register index */ unsigned int mask; /* mask bits */ unsigned int mask_on; /* mask bits to turn on */ unsigned int is_byte: 1; /* byte access? */ - unsigned int ac3_sensitive: 1; /* access forbidden during non-audio operation? */ -} snd_cmipci_switch_args_t; + unsigned int ac3_sensitive: 1; /* access forbidden during + * non-audio operation? + */ +}; -static int snd_cmipci_uswitch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_cmipci_uswitch_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -2128,10 +2139,12 @@ static int snd_cmipci_uswitch_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int _snd_cmipci_uswitch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol, snd_cmipci_switch_args_t *args) +static int _snd_cmipci_uswitch_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol, + struct cmipci_switch_args *args) { unsigned int val; - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&cm->reg_lock); if (args->ac3_sensitive && cm->mixer_insensitive) { @@ -2148,18 +2161,22 @@ static int _snd_cmipci_uswitch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ return 0; } -static int snd_cmipci_uswitch_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_uswitch_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - snd_cmipci_switch_args_t *args = (snd_cmipci_switch_args_t*)kcontrol->private_value; + struct cmipci_switch_args *args; + args = (struct cmipci_switch_args *)kcontrol->private_value; snd_assert(args != NULL, return -EINVAL); return _snd_cmipci_uswitch_get(kcontrol, ucontrol, args); } -static int _snd_cmipci_uswitch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol, snd_cmipci_switch_args_t *args) +static int _snd_cmipci_uswitch_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol, + struct cmipci_switch_args *args) { unsigned int val; int change; - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&cm->reg_lock); if (args->ac3_sensitive && cm->mixer_insensitive) { @@ -2187,15 +2204,17 @@ static int _snd_cmipci_uswitch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ return change; } -static int snd_cmipci_uswitch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_uswitch_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - snd_cmipci_switch_args_t *args = (snd_cmipci_switch_args_t*)kcontrol->private_value; + struct cmipci_switch_args *args; + args = (struct cmipci_switch_args *)kcontrol->private_value; snd_assert(args != NULL, return -EINVAL); return _snd_cmipci_uswitch_put(kcontrol, ucontrol, args); } #define DEFINE_SWITCH_ARG(sname, xreg, xmask, xmask_on, xis_byte, xac3) \ -static snd_cmipci_switch_args_t cmipci_switch_arg_##sname = { \ +static struct cmipci_switch_args cmipci_switch_arg_##sname = { \ .reg = xreg, \ .mask = xmask, \ .mask_on = xmask_on, \ @@ -2252,7 +2271,8 @@ DEFINE_SWITCH_ARG(modem, CM_REG_MISC_CTRL, CM_FLINKON|CM_FLINKOFF, CM_FLINKON, 0 * callbacks for spdif output switch * needs toggle two registers.. */ -static int snd_cmipci_spdout_enable_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_spdout_enable_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { int changed; changed = _snd_cmipci_uswitch_get(kcontrol, ucontrol, &cmipci_switch_arg_spdif_enable); @@ -2260,9 +2280,10 @@ static int snd_cmipci_spdout_enable_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_v return changed; } -static int snd_cmipci_spdout_enable_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_spdout_enable_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *chip = snd_kcontrol_chip(kcontrol); + struct cmipci *chip = snd_kcontrol_chip(kcontrol); int changed; changed = _snd_cmipci_uswitch_put(kcontrol, ucontrol, &cmipci_switch_arg_spdif_enable); changed |= _snd_cmipci_uswitch_put(kcontrol, ucontrol, &cmipci_switch_arg_spdo2dac); @@ -2280,10 +2301,10 @@ static int snd_cmipci_spdout_enable_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_v } -static int snd_cmipci_line_in_mode_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_cmipci_line_in_mode_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); static char *texts[3] = { "Line-In", "Rear Output", "Bass Output" }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -2294,7 +2315,7 @@ static int snd_cmipci_line_in_mode_info(snd_kcontrol_t *kcontrol, return 0; } -static inline unsigned int get_line_in_mode(cmipci_t *cm) +static inline unsigned int get_line_in_mode(struct cmipci *cm) { unsigned int val; if (cm->chip_version >= 39) { @@ -2308,10 +2329,10 @@ static inline unsigned int get_line_in_mode(cmipci_t *cm) return 0; } -static int snd_cmipci_line_in_mode_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_line_in_mode_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); spin_lock_irq(&cm->reg_lock); ucontrol->value.enumerated.item[0] = get_line_in_mode(cm); @@ -2319,10 +2340,10 @@ static int snd_cmipci_line_in_mode_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cmipci_line_in_mode_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_line_in_mode_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); int change; spin_lock_irq(&cm->reg_lock); @@ -2338,8 +2359,8 @@ static int snd_cmipci_line_in_mode_put(snd_kcontrol_t *kcontrol, return change; } -static int snd_cmipci_mic_in_mode_info(snd_kcontrol_t *kcontrol, - snd_ctl_elem_info_t *uinfo) +static int snd_cmipci_mic_in_mode_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[2] = { "Mic-In", "Center/LFE Output" }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -2351,10 +2372,10 @@ static int snd_cmipci_mic_in_mode_info(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cmipci_mic_in_mode_get(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_mic_in_mode_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); /* same bit as spdi_phase */ spin_lock_irq(&cm->reg_lock); ucontrol->value.enumerated.item[0] = @@ -2363,10 +2384,10 @@ static int snd_cmipci_mic_in_mode_get(snd_kcontrol_t *kcontrol, return 0; } -static int snd_cmipci_mic_in_mode_put(snd_kcontrol_t *kcontrol, - snd_ctl_elem_value_t *ucontrol) +static int snd_cmipci_mic_in_mode_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cmipci_t *cm = snd_kcontrol_chip(kcontrol); + struct cmipci *cm = snd_kcontrol_chip(kcontrol); int change; spin_lock_irq(&cm->reg_lock); @@ -2379,7 +2400,7 @@ static int snd_cmipci_mic_in_mode_put(snd_kcontrol_t *kcontrol, } /* both for CM8338/8738 */ -static snd_kcontrol_new_t snd_cmipci_mixer_switches[] __devinitdata = { +static struct snd_kcontrol_new snd_cmipci_mixer_switches[] __devinitdata = { DEFINE_MIXER_SWITCH("Four Channel Mode", fourch), { .name = "Line-In Mode", @@ -2391,11 +2412,11 @@ static snd_kcontrol_new_t snd_cmipci_mixer_switches[] __devinitdata = { }; /* for non-multichannel chips */ -static snd_kcontrol_new_t snd_cmipci_nomulti_switch __devinitdata = +static struct snd_kcontrol_new snd_cmipci_nomulti_switch __devinitdata = DEFINE_MIXER_SWITCH("Exchange DAC", exchange_dac); /* only for CM8738 */ -static snd_kcontrol_new_t snd_cmipci_8738_mixer_switches[] __devinitdata = { +static struct snd_kcontrol_new snd_cmipci_8738_mixer_switches[] __devinitdata = { #if 0 /* controlled in pcm device */ DEFINE_MIXER_SWITCH("IEC958 In Record", spdif_in), DEFINE_MIXER_SWITCH("IEC958 Out", spdif_out), @@ -2417,14 +2438,14 @@ static snd_kcontrol_new_t snd_cmipci_8738_mixer_switches[] __devinitdata = { }; /* only for model 033/037 */ -static snd_kcontrol_new_t snd_cmipci_old_mixer_switches[] __devinitdata = { +static struct snd_kcontrol_new snd_cmipci_old_mixer_switches[] __devinitdata = { DEFINE_MIXER_SWITCH("IEC958 Mix Analog", spdif_dac_out), DEFINE_MIXER_SWITCH("IEC958 In Phase Inverse", spdi_phase), DEFINE_MIXER_SWITCH("IEC958 In Select", spdif_in_sel1), }; /* only for model 039 or later */ -static snd_kcontrol_new_t snd_cmipci_extra_mixer_switches[] __devinitdata = { +static struct snd_kcontrol_new snd_cmipci_extra_mixer_switches[] __devinitdata = { DEFINE_MIXER_SWITCH("IEC958 In Select", spdif_in_sel2), DEFINE_MIXER_SWITCH("IEC958 In Phase Inverse", spdi_phase2), { @@ -2437,17 +2458,17 @@ static snd_kcontrol_new_t snd_cmipci_extra_mixer_switches[] __devinitdata = { }; /* card control switches */ -static snd_kcontrol_new_t snd_cmipci_control_switches[] __devinitdata = { +static struct snd_kcontrol_new snd_cmipci_control_switches[] __devinitdata = { // DEFINE_CARD_SWITCH("Joystick", joystick), /* now module option */ DEFINE_CARD_SWITCH("Modem", modem), }; -static int __devinit snd_cmipci_mixer_new(cmipci_t *cm, int pcm_spdif_device) +static int __devinit snd_cmipci_mixer_new(struct cmipci *cm, int pcm_spdif_device) { - snd_card_t *card; - snd_kcontrol_new_t *sw; - snd_kcontrol_t *kctl; + struct snd_card *card; + struct snd_kcontrol_new *sw; + struct snd_kcontrol *kctl; unsigned int idx; int err; @@ -2529,8 +2550,8 @@ static int __devinit snd_cmipci_mixer_new(cmipci_t *cm, int pcm_spdif_device) } for (idx = 0; idx < CM_SAVED_MIXERS; idx++) { - snd_ctl_elem_id_t id; - snd_kcontrol_t *ctl; + struct snd_ctl_elem_id id; + struct snd_kcontrol *ctl; memset(&id, 0, sizeof(id)); id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; strcpy(id.name, cm_saved_mixer[idx].name); @@ -2547,10 +2568,10 @@ static int __devinit snd_cmipci_mixer_new(cmipci_t *cm, int pcm_spdif_device) */ #ifdef CONFIG_PROC_FS -static void snd_cmipci_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t *buffer) +static void snd_cmipci_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cmipci_t *cm = entry->private_data; + struct cmipci *cm = entry->private_data; int i; snd_iprintf(buffer, "%s\n\n", cm->card->longname); @@ -2566,15 +2587,15 @@ static void snd_cmipci_proc_read(snd_info_entry_t *entry, } } -static void __devinit snd_cmipci_proc_init(cmipci_t *cm) +static void __devinit snd_cmipci_proc_init(struct cmipci *cm) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(cm->card, "cmipci", &entry)) snd_info_set_text_ops(entry, cm, 1024, snd_cmipci_proc_read); } #else /* !CONFIG_PROC_FS */ -static inline void snd_cmipci_proc_init(cmipci_t *cm) {} +static inline void snd_cmipci_proc_init(struct cmipci *cm) {} #endif @@ -2592,7 +2613,7 @@ static struct pci_device_id snd_cmipci_ids[] = { * check chip version and capabilities * driver name is modified according to the chip model */ -static void __devinit query_chip(cmipci_t *cm) +static void __devinit query_chip(struct cmipci *cm) { unsigned int detect; @@ -2645,7 +2666,7 @@ static void __devinit query_chip(cmipci_t *cm) } #ifdef SUPPORT_JOYSTICK -static int __devinit snd_cmipci_create_gameport(cmipci_t *cm, int dev) +static int __devinit snd_cmipci_create_gameport(struct cmipci *cm, int dev) { static int ports[] = { 0x201, 0x200, 0 }; /* FIXME: majority is 0x201? */ struct gameport *gp; @@ -2691,7 +2712,7 @@ static int __devinit snd_cmipci_create_gameport(cmipci_t *cm, int dev) return 0; } -static void snd_cmipci_free_gameport(cmipci_t *cm) +static void snd_cmipci_free_gameport(struct cmipci *cm) { if (cm->gameport) { struct resource *r = gameport_get_port_data(cm->gameport); @@ -2704,11 +2725,11 @@ static void snd_cmipci_free_gameport(cmipci_t *cm) } } #else -static inline int snd_cmipci_create_gameport(cmipci_t *cm, int dev) { return -ENOSYS; } -static inline void snd_cmipci_free_gameport(cmipci_t *cm) { } +static inline int snd_cmipci_create_gameport(struct cmipci *cm, int dev) { return -ENOSYS; } +static inline void snd_cmipci_free_gameport(struct cmipci *cm) { } #endif -static int snd_cmipci_free(cmipci_t *cm) +static int snd_cmipci_free(struct cmipci *cm) { if (cm->irq >= 0) { snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_FM_EN); @@ -2724,7 +2745,7 @@ static int snd_cmipci_free(cmipci_t *cm) synchronize_irq(cm->irq); - free_irq(cm->irq, (void *)cm); + free_irq(cm->irq, cm); } snd_cmipci_free_gameport(cm); @@ -2734,17 +2755,17 @@ static int snd_cmipci_free(cmipci_t *cm) return 0; } -static int snd_cmipci_dev_free(snd_device_t *device) +static int snd_cmipci_dev_free(struct snd_device *device) { - cmipci_t *cm = device->device_data; + struct cmipci *cm = device->device_data; return snd_cmipci_free(cm); } -static int __devinit snd_cmipci_create_fm(cmipci_t *cm, long fm_port) +static int __devinit snd_cmipci_create_fm(struct cmipci *cm, long fm_port) { long iosynth; unsigned int val; - opl3_t *opl3; + struct snd_opl3 *opl3; int err; /* first try FM regs in PCI port range */ @@ -2785,12 +2806,12 @@ static int __devinit snd_cmipci_create_fm(cmipci_t *cm, long fm_port) return 0; } -static int __devinit snd_cmipci_create(snd_card_t *card, struct pci_dev *pci, - int dev, cmipci_t **rcmipci) +static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pci, + int dev, struct cmipci **rcmipci) { - cmipci_t *cm; + struct cmipci *cm; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_cmipci_dev_free, }; unsigned int val = 0; @@ -2830,7 +2851,8 @@ static int __devinit snd_cmipci_create(snd_card_t *card, struct pci_dev *pci, } cm->iobase = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_cmipci_interrupt, SA_INTERRUPT|SA_SHIRQ, card->driver, (void *)cm)) { + if (request_irq(pci->irq, snd_cmipci_interrupt, + SA_INTERRUPT|SA_SHIRQ, card->driver, cm)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_cmipci_free(cm); return -EBUSY; @@ -2983,8 +3005,8 @@ static int __devinit snd_cmipci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - cmipci_t *cm; + struct snd_card *card; + struct cmipci *cm; int err; if (dev >= SNDRV_CARDS) -- cgit v1.2.3-70-g09d2 From 93e35f956a1720eedcf95b8337dde25bde22d624 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:03:28 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI CS4281 Modules: CS4281 driver Remove xxx_t typedefs from the PCI CS4281 driver. Signed-off-by: Takashi Iwai --- sound/pci/cs4281.c | 276 +++++++++++++++++++++++++++-------------------------- 1 file changed, 143 insertions(+), 133 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index c99bb1f2bfa..116cdc1c552 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c @@ -427,11 +427,8 @@ MODULE_PARM_DESC(dual_codec, "Secondary Codec ID (0 = disabled)."); * */ -typedef struct snd_cs4281 cs4281_t; -typedef struct snd_cs4281_dma cs4281_dma_t; - -struct snd_cs4281_dma { - snd_pcm_substream_t *substream; +struct cs4281_dma { + struct snd_pcm_substream *substream; unsigned int regDBA; /* offset to DBA register */ unsigned int regDCA; /* offset to DCA register */ unsigned int regDBC; /* offset to DBC register */ @@ -452,7 +449,7 @@ struct snd_cs4281_dma { #define SUSPEND_REGISTERS 20 -struct snd_cs4281 { +struct cs4281 { int irq; void __iomem *ba0; /* virtual (accessible) address */ @@ -462,18 +459,18 @@ struct snd_cs4281 { int dual_codec; - ac97_bus_t *ac97_bus; - ac97_t *ac97; - ac97_t *ac97_secondary; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97; + struct snd_ac97 *ac97_secondary; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *midi_input; - snd_rawmidi_substream_t *midi_output; + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *midi_input; + struct snd_rawmidi_substream *midi_output; - cs4281_dma_t dma[4]; + struct cs4281_dma dma[4]; unsigned char src_left_play_slot; unsigned char src_right_play_slot; @@ -514,17 +511,18 @@ MODULE_DEVICE_TABLE(pci, snd_cs4281_ids); * common I/O routines */ -static inline void snd_cs4281_pokeBA0(cs4281_t *chip, unsigned long offset, unsigned int val) +static inline void snd_cs4281_pokeBA0(struct cs4281 *chip, unsigned long offset, + unsigned int val) { writel(val, chip->ba0 + offset); } -static inline unsigned int snd_cs4281_peekBA0(cs4281_t *chip, unsigned long offset) +static inline unsigned int snd_cs4281_peekBA0(struct cs4281 *chip, unsigned long offset) { return readl(chip->ba0 + offset); } -static void snd_cs4281_ac97_write(ac97_t *ac97, +static void snd_cs4281_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { /* @@ -534,7 +532,7 @@ static void snd_cs4281_ac97_write(ac97_t *ac97, * 4. Read ACCTL = 460h, DCV should be reset by now and 460h = 07h * 5. if DCV not cleared, break and return error */ - cs4281_t *chip = ac97->private_data; + struct cs4281 *chip = ac97->private_data; int count; /* @@ -569,15 +567,15 @@ static void snd_cs4281_ac97_write(ac97_t *ac97, snd_printk(KERN_ERR "AC'97 write problem, reg = 0x%x, val = 0x%x\n", reg, val); } -static unsigned short snd_cs4281_ac97_read(ac97_t *ac97, +static unsigned short snd_cs4281_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - cs4281_t *chip = ac97->private_data; + struct cs4281 *chip = ac97->private_data; int count; unsigned short result; // FIXME: volatile is necessary in the following due to a bug of // some gcc versions - volatile int ac97_num = ((volatile ac97_t *)ac97)->num; + volatile int ac97_num = ((volatile struct snd_ac97 *)ac97)->num; /* * 1. Write ACCAD = Command Address Register = 46Ch for AC97 register address @@ -664,10 +662,10 @@ static unsigned short snd_cs4281_ac97_read(ac97_t *ac97, * PCM part */ -static int snd_cs4281_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_cs4281_trigger(struct snd_pcm_substream *substream, int cmd) { - cs4281_dma_t *dma = (cs4281_dma_t *)substream->runtime->private_data; - cs4281_t *chip = snd_pcm_substream_chip(substream); + struct cs4281_dma *dma = substream->runtime->private_data; + struct cs4281 *chip = snd_pcm_substream_chip(substream); spin_lock(&chip->reg_lock); switch (cmd) { @@ -730,7 +728,9 @@ static unsigned int snd_cs4281_rate(unsigned int rate, unsigned int *real_rate) return val; } -static void snd_cs4281_mode(cs4281_t *chip, cs4281_dma_t *dma, snd_pcm_runtime_t *runtime, int capture, int src) +static void snd_cs4281_mode(struct cs4281 *chip, struct cs4281_dma *dma, + struct snd_pcm_runtime *runtime, + int capture, int src) { int rec_mono; @@ -793,22 +793,22 @@ static void snd_cs4281_mode(cs4281_t *chip, cs4281_dma_t *dma, snd_pcm_runtime_t snd_cs4281_pokeBA0(chip, dma->regFSIC, 0); } -static int snd_cs4281_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_cs4281_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_cs4281_hw_free(snd_pcm_substream_t * substream) +static int snd_cs4281_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static int snd_cs4281_playback_prepare(snd_pcm_substream_t * substream) +static int snd_cs4281_playback_prepare(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - cs4281_dma_t *dma = (cs4281_dma_t *)runtime->private_data; - cs4281_t *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct cs4281_dma *dma = runtime->private_data; + struct cs4281 *chip = snd_pcm_substream_chip(substream); spin_lock_irq(&chip->reg_lock); snd_cs4281_mode(chip, dma, runtime, 0, 1); @@ -816,11 +816,11 @@ static int snd_cs4281_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_cs4281_capture_prepare(snd_pcm_substream_t * substream) +static int snd_cs4281_capture_prepare(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - cs4281_dma_t *dma = (cs4281_dma_t *)runtime->private_data; - cs4281_t *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct cs4281_dma *dma = runtime->private_data; + struct cs4281 *chip = snd_pcm_substream_chip(substream); spin_lock_irq(&chip->reg_lock); snd_cs4281_mode(chip, dma, runtime, 1, 1); @@ -828,18 +828,18 @@ static int snd_cs4281_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_cs4281_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_cs4281_pointer(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - cs4281_dma_t *dma = (cs4281_dma_t *)runtime->private_data; - cs4281_t *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct cs4281_dma *dma = runtime->private_data; + struct cs4281 *chip = snd_pcm_substream_chip(substream); // printk("DCC = 0x%x, buffer_size = 0x%x, jiffies = %li\n", snd_cs4281_peekBA0(chip, dma->regDCC), runtime->buffer_size, jiffies); return runtime->buffer_size - snd_cs4281_peekBA0(chip, dma->regDCC) - 1; } -static snd_pcm_hardware_t snd_cs4281_playback = +static struct snd_pcm_hardware snd_cs4281_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | @@ -865,7 +865,7 @@ static snd_pcm_hardware_t snd_cs4281_playback = .fifo_size = CS4281_FIFO_SIZE, }; -static snd_pcm_hardware_t snd_cs4281_capture = +static struct snd_pcm_hardware snd_cs4281_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | @@ -891,11 +891,11 @@ static snd_pcm_hardware_t snd_cs4281_capture = .fifo_size = CS4281_FIFO_SIZE, }; -static int snd_cs4281_playback_open(snd_pcm_substream_t * substream) +static int snd_cs4281_playback_open(struct snd_pcm_substream *substream) { - cs4281_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - cs4281_dma_t *dma; + struct cs4281 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct cs4281_dma *dma; dma = &chip->dma[0]; dma->substream = substream; @@ -911,11 +911,11 @@ static int snd_cs4281_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_cs4281_capture_open(snd_pcm_substream_t * substream) +static int snd_cs4281_capture_open(struct snd_pcm_substream *substream) { - cs4281_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - cs4281_dma_t *dma; + struct cs4281 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct cs4281_dma *dma; dma = &chip->dma[1]; dma->substream = substream; @@ -931,23 +931,23 @@ static int snd_cs4281_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_cs4281_playback_close(snd_pcm_substream_t * substream) +static int snd_cs4281_playback_close(struct snd_pcm_substream *substream) { - cs4281_dma_t *dma = (cs4281_dma_t *)substream->runtime->private_data; + struct cs4281_dma *dma = substream->runtime->private_data; dma->substream = NULL; return 0; } -static int snd_cs4281_capture_close(snd_pcm_substream_t * substream) +static int snd_cs4281_capture_close(struct snd_pcm_substream *substream) { - cs4281_dma_t *dma = (cs4281_dma_t *)substream->runtime->private_data; + struct cs4281_dma *dma = substream->runtime->private_data; dma->substream = NULL; return 0; } -static snd_pcm_ops_t snd_cs4281_playback_ops = { +static struct snd_pcm_ops snd_cs4281_playback_ops = { .open = snd_cs4281_playback_open, .close = snd_cs4281_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -958,7 +958,7 @@ static snd_pcm_ops_t snd_cs4281_playback_ops = { .pointer = snd_cs4281_pointer, }; -static snd_pcm_ops_t snd_cs4281_capture_ops = { +static struct snd_pcm_ops snd_cs4281_capture_ops = { .open = snd_cs4281_capture_open, .close = snd_cs4281_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -969,9 +969,10 @@ static snd_pcm_ops_t snd_cs4281_capture_ops = { .pointer = snd_cs4281_pointer, }; -static int __devinit snd_cs4281_pcm(cs4281_t * chip, int device, snd_pcm_t ** rpcm) +static int __devinit snd_cs4281_pcm(struct cs4281 * chip, int device, + struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1002,7 +1003,8 @@ static int __devinit snd_cs4281_pcm(cs4281_t * chip, int device, snd_pcm_t ** rp #define CS_VOL_MASK 0x1f -static int snd_cs4281_info_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_cs4281_info_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -1011,9 +1013,10 @@ static int snd_cs4281_info_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_cs4281_get_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs4281_get_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs4281_t *chip = snd_kcontrol_chip(kcontrol); + struct cs4281 *chip = snd_kcontrol_chip(kcontrol); int regL = (kcontrol->private_value >> 16) & 0xffff; int regR = kcontrol->private_value & 0xffff; int volL, volR; @@ -1026,9 +1029,10 @@ static int snd_cs4281_get_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_cs4281_put_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_cs4281_put_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - cs4281_t *chip = snd_kcontrol_chip(kcontrol); + struct cs4281 *chip = snd_kcontrol_chip(kcontrol); int change = 0; int regL = (kcontrol->private_value >> 16) & 0xffff; int regR = kcontrol->private_value & 0xffff; @@ -1050,7 +1054,7 @@ static int snd_cs4281_put_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return change; } -static snd_kcontrol_new_t snd_cs4281_fm_vol = +static struct snd_kcontrol_new snd_cs4281_fm_vol = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Synth Playback Volume", @@ -1060,7 +1064,7 @@ static snd_kcontrol_new_t snd_cs4281_fm_vol = .private_value = ((BA0_FMLVC << 16) | BA0_FMRVC), }; -static snd_kcontrol_new_t snd_cs4281_pcm_vol = +static struct snd_kcontrol_new snd_cs4281_pcm_vol = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "PCM Stream Playback Volume", @@ -1070,27 +1074,27 @@ static snd_kcontrol_new_t snd_cs4281_pcm_vol = .private_value = ((BA0_PPLVC << 16) | BA0_PPRVC), }; -static void snd_cs4281_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_cs4281_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - cs4281_t *chip = bus->private_data; + struct cs4281 *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_cs4281_mixer_free_ac97(ac97_t *ac97) +static void snd_cs4281_mixer_free_ac97(struct snd_ac97 *ac97) { - cs4281_t *chip = ac97->private_data; + struct cs4281 *chip = ac97->private_data; if (ac97->num) chip->ac97_secondary = NULL; else chip->ac97 = NULL; } -static int __devinit snd_cs4281_mixer(cs4281_t * chip) +static int __devinit snd_cs4281_mixer(struct cs4281 * chip) { - snd_card_t *card = chip->card; - ac97_template_t ac97; + struct snd_card *card = chip->card; + struct snd_ac97_template ac97; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_cs4281_ac97_write, .read = snd_cs4281_ac97_read, }; @@ -1121,22 +1125,23 @@ static int __devinit snd_cs4281_mixer(cs4281_t * chip) * proc interface */ -static void snd_cs4281_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_cs4281_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - cs4281_t *chip = entry->private_data; + struct cs4281 *chip = entry->private_data; snd_iprintf(buffer, "Cirrus Logic CS4281\n\n"); snd_iprintf(buffer, "Spurious half IRQs : %u\n", chip->spurious_dhtc_irq); snd_iprintf(buffer, "Spurious end IRQs : %u\n", chip->spurious_dtc_irq); } -static long snd_cs4281_BA0_read(snd_info_entry_t *entry, void *file_private_data, +static long snd_cs4281_BA0_read(struct snd_info_entry *entry, + void *file_private_data, struct file *file, char __user *buf, unsigned long count, unsigned long pos) { long size; - cs4281_t *chip = entry->private_data; + struct cs4281 *chip = entry->private_data; size = count; if (pos + size > CS4281_BA0_SIZE) @@ -1148,12 +1153,13 @@ static long snd_cs4281_BA0_read(snd_info_entry_t *entry, void *file_private_data return size; } -static long snd_cs4281_BA1_read(snd_info_entry_t *entry, void *file_private_data, +static long snd_cs4281_BA1_read(struct snd_info_entry *entry, + void *file_private_data, struct file *file, char __user *buf, unsigned long count, unsigned long pos) { long size; - cs4281_t *chip = entry->private_data; + struct cs4281 *chip = entry->private_data; size = count; if (pos + size > CS4281_BA1_SIZE) @@ -1173,9 +1179,9 @@ static struct snd_info_entry_ops snd_cs4281_proc_ops_BA1 = { .read = snd_cs4281_BA1_read, }; -static void __devinit snd_cs4281_proc_init(cs4281_t * chip) +static void __devinit snd_cs4281_proc_init(struct cs4281 * chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "cs4281", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_cs4281_proc_read); @@ -1201,7 +1207,7 @@ static void __devinit snd_cs4281_proc_init(cs4281_t * chip) static void snd_cs4281_gameport_trigger(struct gameport *gameport) { - cs4281_t *chip = gameport_get_port_data(gameport); + struct cs4281 *chip = gameport_get_port_data(gameport); snd_assert(chip, return); snd_cs4281_pokeBA0(chip, BA0_JSPT, 0xff); @@ -1209,16 +1215,17 @@ static void snd_cs4281_gameport_trigger(struct gameport *gameport) static unsigned char snd_cs4281_gameport_read(struct gameport *gameport) { - cs4281_t *chip = gameport_get_port_data(gameport); + struct cs4281 *chip = gameport_get_port_data(gameport); snd_assert(chip, return 0); return snd_cs4281_peekBA0(chip, BA0_JSPT); } #ifdef COOKED_MODE -static int snd_cs4281_gameport_cooked_read(struct gameport *gameport, int *axes, int *buttons) +static int snd_cs4281_gameport_cooked_read(struct gameport *gameport, + int *axes, int *buttons) { - cs4281_t *chip = gameport_get_port_data(gameport); + struct cs4281 *chip = gameport_get_port_data(gameport); unsigned js1, js2, jst; snd_assert(chip, return 0); @@ -1257,7 +1264,7 @@ static int snd_cs4281_gameport_open(struct gameport *gameport, int mode) return 0; } -static int __devinit snd_cs4281_create_gameport(cs4281_t *chip) +static int __devinit snd_cs4281_create_gameport(struct cs4281 *chip) { struct gameport *gp; @@ -1284,7 +1291,7 @@ static int __devinit snd_cs4281_create_gameport(cs4281_t *chip) return 0; } -static void snd_cs4281_free_gameport(cs4281_t *chip) +static void snd_cs4281_free_gameport(struct cs4281 *chip) { if (chip->gameport) { gameport_unregister_port(chip->gameport); @@ -1292,11 +1299,11 @@ static void snd_cs4281_free_gameport(cs4281_t *chip) } } #else -static inline int snd_cs4281_create_gameport(cs4281_t *chip) { return -ENOSYS; } -static inline void snd_cs4281_free_gameport(cs4281_t *chip) { } +static inline int snd_cs4281_create_gameport(struct cs4281 *chip) { return -ENOSYS; } +static inline void snd_cs4281_free_gameport(struct cs4281 *chip) { } #endif /* CONFIG_GAMEPORT || (MODULE && CONFIG_GAMEPORT_MODULE) */ -static int snd_cs4281_free(cs4281_t *chip) +static int snd_cs4281_free(struct cs4281 *chip) { snd_cs4281_free_gameport(chip); @@ -1313,7 +1320,7 @@ static int snd_cs4281_free(cs4281_t *chip) pci_set_power_state(chip->pci, 3); if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); if (chip->ba0) iounmap(chip->ba0); if (chip->ba1) @@ -1325,27 +1332,27 @@ static int snd_cs4281_free(cs4281_t *chip) return 0; } -static int snd_cs4281_dev_free(snd_device_t *device) +static int snd_cs4281_dev_free(struct snd_device *device) { - cs4281_t *chip = device->device_data; + struct cs4281 *chip = device->device_data; return snd_cs4281_free(chip); } -static int snd_cs4281_chip_init(cs4281_t *chip); /* defined below */ +static int snd_cs4281_chip_init(struct cs4281 *chip); /* defined below */ #ifdef CONFIG_PM -static int cs4281_suspend(snd_card_t *card, pm_message_t state); -static int cs4281_resume(snd_card_t *card); +static int cs4281_suspend(struct snd_card *card, pm_message_t state); +static int cs4281_resume(struct snd_card *card); #endif -static int __devinit snd_cs4281_create(snd_card_t * card, +static int __devinit snd_cs4281_create(struct snd_card *card, struct pci_dev *pci, - cs4281_t ** rchip, + struct cs4281 ** rchip, int dual_codec) { - cs4281_t *chip; + struct cs4281 *chip; unsigned int tmp; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_cs4281_dev_free, }; @@ -1376,7 +1383,8 @@ static int __devinit snd_cs4281_create(snd_card_t * card, chip->ba0_addr = pci_resource_start(pci, 0); chip->ba1_addr = pci_resource_start(pci, 1); - if (request_irq(pci->irq, snd_cs4281_interrupt, SA_INTERRUPT|SA_SHIRQ, "CS4281", (void *)chip)) { + if (request_irq(pci->irq, snd_cs4281_interrupt, SA_INTERRUPT|SA_SHIRQ, + "CS4281", chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_cs4281_free(chip); return -ENOMEM; @@ -1411,7 +1419,7 @@ static int __devinit snd_cs4281_create(snd_card_t * card, return 0; } -static int snd_cs4281_chip_init(cs4281_t *chip) +static int snd_cs4281_chip_init(struct cs4281 *chip) { unsigned int tmp; int timeout; @@ -1587,7 +1595,7 @@ static int snd_cs4281_chip_init(cs4281_t *chip) * Initialize DMA structures */ for (tmp = 0; tmp < 4; tmp++) { - cs4281_dma_t *dma = &chip->dma[tmp]; + struct cs4281_dma *dma = &chip->dma[tmp]; dma->regDBA = BA0_DBA0 + (tmp * 0x10); dma->regDCA = BA0_DCA0 + (tmp * 0x10); dma->regDBC = BA0_DBC0 + (tmp * 0x10); @@ -1644,16 +1652,16 @@ static int snd_cs4281_chip_init(cs4281_t *chip) * MIDI section */ -static void snd_cs4281_midi_reset(cs4281_t *chip) +static void snd_cs4281_midi_reset(struct cs4281 *chip) { snd_cs4281_pokeBA0(chip, BA0_MIDCR, chip->midcr | BA0_MIDCR_MRST); udelay(100); snd_cs4281_pokeBA0(chip, BA0_MIDCR, chip->midcr); } -static int snd_cs4281_midi_input_open(snd_rawmidi_substream_t * substream) +static int snd_cs4281_midi_input_open(struct snd_rawmidi_substream *substream) { - cs4281_t *chip = substream->rmidi->private_data; + struct cs4281 *chip = substream->rmidi->private_data; spin_lock_irq(&chip->reg_lock); chip->midcr |= BA0_MIDCR_RXE; @@ -1667,9 +1675,9 @@ static int snd_cs4281_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_cs4281_midi_input_close(snd_rawmidi_substream_t * substream) +static int snd_cs4281_midi_input_close(struct snd_rawmidi_substream *substream) { - cs4281_t *chip = substream->rmidi->private_data; + struct cs4281 *chip = substream->rmidi->private_data; spin_lock_irq(&chip->reg_lock); chip->midcr &= ~(BA0_MIDCR_RXE | BA0_MIDCR_RIE); @@ -1684,9 +1692,9 @@ static int snd_cs4281_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int snd_cs4281_midi_output_open(snd_rawmidi_substream_t * substream) +static int snd_cs4281_midi_output_open(struct snd_rawmidi_substream *substream) { - cs4281_t *chip = substream->rmidi->private_data; + struct cs4281 *chip = substream->rmidi->private_data; spin_lock_irq(&chip->reg_lock); chip->uartm |= CS4281_MODE_OUTPUT; @@ -1701,9 +1709,9 @@ static int snd_cs4281_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_cs4281_midi_output_close(snd_rawmidi_substream_t * substream) +static int snd_cs4281_midi_output_close(struct snd_rawmidi_substream *substream) { - cs4281_t *chip = substream->rmidi->private_data; + struct cs4281 *chip = substream->rmidi->private_data; spin_lock_irq(&chip->reg_lock); chip->midcr &= ~(BA0_MIDCR_TXE | BA0_MIDCR_TIE); @@ -1718,10 +1726,10 @@ static int snd_cs4281_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static void snd_cs4281_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_cs4281_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { unsigned long flags; - cs4281_t *chip = substream->rmidi->private_data; + struct cs4281 *chip = substream->rmidi->private_data; spin_lock_irqsave(&chip->reg_lock, flags); if (up) { @@ -1738,10 +1746,10 @@ static void snd_cs4281_midi_input_trigger(snd_rawmidi_substream_t * substream, i spin_unlock_irqrestore(&chip->reg_lock, flags); } -static void snd_cs4281_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_cs4281_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { unsigned long flags; - cs4281_t *chip = substream->rmidi->private_data; + struct cs4281 *chip = substream->rmidi->private_data; unsigned char byte; spin_lock_irqsave(&chip->reg_lock, flags); @@ -1768,23 +1776,24 @@ static void snd_cs4281_midi_output_trigger(snd_rawmidi_substream_t * substream, spin_unlock_irqrestore(&chip->reg_lock, flags); } -static snd_rawmidi_ops_t snd_cs4281_midi_output = +static struct snd_rawmidi_ops snd_cs4281_midi_output = { .open = snd_cs4281_midi_output_open, .close = snd_cs4281_midi_output_close, .trigger = snd_cs4281_midi_output_trigger, }; -static snd_rawmidi_ops_t snd_cs4281_midi_input = +static struct snd_rawmidi_ops snd_cs4281_midi_input = { .open = snd_cs4281_midi_input_open, .close = snd_cs4281_midi_input_close, .trigger = snd_cs4281_midi_input_trigger, }; -static int __devinit snd_cs4281_midi(cs4281_t * chip, int device, snd_rawmidi_t **rrawmidi) +static int __devinit snd_cs4281_midi(struct cs4281 * chip, int device, + struct snd_rawmidi **rrawmidi) { - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; int err; if (rrawmidi) @@ -1808,9 +1817,9 @@ static int __devinit snd_cs4281_midi(cs4281_t * chip, int device, snd_rawmidi_t static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - cs4281_t *chip = dev_id; + struct cs4281 *chip = dev_id; unsigned int status, dma, val; - cs4281_dma_t *cdma; + struct cs4281_dma *cdma; if (chip == NULL) return IRQ_NONE; @@ -1880,10 +1889,11 @@ static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *r /* * OPL3 command */ -static void snd_cs4281_opl3_command(opl3_t * opl3, unsigned short cmd, unsigned char val) +static void snd_cs4281_opl3_command(struct snd_opl3 *opl3, unsigned short cmd, + unsigned char val) { unsigned long flags; - cs4281_t *chip = opl3->private_data; + struct cs4281 *chip = opl3->private_data; void __iomem *port; if (cmd & OPL3_RIGHT) @@ -1906,9 +1916,9 @@ static int __devinit snd_cs4281_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - cs4281_t *chip; - opl3_t *opl3; + struct snd_card *card; + struct cs4281 *chip; + struct snd_opl3 *opl3; int err; if (dev >= SNDRV_CARDS) @@ -1997,9 +2007,9 @@ static int saved_regs[SUSPEND_REGISTERS] = { #define CLKCR1_CKRA 0x00010000L -static int cs4281_suspend(snd_card_t *card, pm_message_t state) +static int cs4281_suspend(struct snd_card *card, pm_message_t state) { - cs4281_t *chip = card->pm_private_data; + struct cs4281 *chip = card->pm_private_data; u32 ulCLK; unsigned int i; @@ -2042,9 +2052,9 @@ static int cs4281_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int cs4281_resume(snd_card_t *card) +static int cs4281_resume(struct snd_card *card) { - cs4281_t *chip = card->pm_private_data; + struct cs4281 *chip = card->pm_private_data; unsigned int i; u32 ulCLK; -- cgit v1.2.3-70-g09d2 From eb3414b4652344972e86c85ce094cc4a780e1a55 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:03:46 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ENS137x Modules: ENS1370/1+ driver Remove xxx_t typedefs from the PCI ENS137x drivers. Signed-off-by: Takashi Iwai --- sound/pci/ens1370.c | 487 +++++++++++++++++++++++++++++----------------------- 1 file changed, 269 insertions(+), 218 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index 180c49e4f6a..2cc0f83a0fd 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -367,9 +367,7 @@ MODULE_PARM_DESC(joystick, "Enable joystick."); */ -typedef struct _snd_ensoniq ensoniq_t; - -struct _snd_ensoniq { +struct ensoniq { spinlock_t reg_lock; struct semaphore src_mutex; @@ -392,12 +390,12 @@ struct _snd_ensoniq { union { #ifdef CHIP1371 struct { - ac97_t *ac97; + struct snd_ac97 *ac97; } es1371; #else struct { int pclkdiv_lock; - ak4531_t *ak4531; + struct snd_ak4531 *ak4531; } es1370; #endif } u; @@ -405,21 +403,21 @@ struct _snd_ensoniq { struct pci_dev *pci; unsigned short subsystem_vendor_id; unsigned short subsystem_device_id; - snd_card_t *card; - snd_pcm_t *pcm1; /* DAC1/ADC PCM */ - snd_pcm_t *pcm2; /* DAC2 PCM */ - snd_pcm_substream_t *playback1_substream; - snd_pcm_substream_t *playback2_substream; - snd_pcm_substream_t *capture_substream; + struct snd_card *card; + struct snd_pcm *pcm1; /* DAC1/ADC PCM */ + struct snd_pcm *pcm2; /* DAC2 PCM */ + struct snd_pcm_substream *playback1_substream; + struct snd_pcm_substream *playback2_substream; + struct snd_pcm_substream *capture_substream; unsigned int p1_dma_size; unsigned int p2_dma_size; unsigned int c_dma_size; unsigned int p1_period_size; unsigned int p2_period_size; unsigned int c_period_size; - snd_rawmidi_t *rmidi; - snd_rawmidi_substream_t *midi_input; - snd_rawmidi_substream_t *midi_output; + struct snd_rawmidi *rmidi; + struct snd_rawmidi_substream *midi_input; + struct snd_rawmidi_substream *midi_output; unsigned int spdif; unsigned int spdif_default; @@ -459,39 +457,39 @@ MODULE_DEVICE_TABLE(pci, snd_audiopci_ids); #ifdef CHIP1370 static unsigned int snd_es1370_fixed_rates[] = {5512, 11025, 22050, 44100}; -static snd_pcm_hw_constraint_list_t snd_es1370_hw_constraints_rates = { +static struct snd_pcm_hw_constraint_list snd_es1370_hw_constraints_rates = { .count = 4, .list = snd_es1370_fixed_rates, .mask = 0, }; -static ratnum_t es1370_clock = { +static struct snd_ratnum es1370_clock = { .num = ES_1370_SRCLOCK, .den_min = 29, .den_max = 353, .den_step = 1, }; -static snd_pcm_hw_constraint_ratnums_t snd_es1370_hw_constraints_clock = { +static struct snd_pcm_hw_constraint_ratnums snd_es1370_hw_constraints_clock = { .nrats = 1, .rats = &es1370_clock, }; #else -static ratden_t es1371_dac_clock = { +static struct snd_ratden es1371_dac_clock = { .num_min = 3000 * (1 << 15), .num_max = 48000 * (1 << 15), .num_step = 3000, .den = 1 << 15, }; -static snd_pcm_hw_constraint_ratdens_t snd_es1371_hw_constraints_dac_clock = { +static struct snd_pcm_hw_constraint_ratdens snd_es1371_hw_constraints_dac_clock = { .nrats = 1, .rats = &es1371_dac_clock, }; -static ratnum_t es1371_adc_clock = { +static struct snd_ratnum es1371_adc_clock = { .num = 48000 << 15, .den_min = 32768, .den_max = 393216, .den_step = 1, }; -static snd_pcm_hw_constraint_ratnums_t snd_es1371_hw_constraints_adc_clock = { +static struct snd_pcm_hw_constraint_ratnums snd_es1371_hw_constraints_adc_clock = { .nrats = 1, .rats = &es1371_adc_clock, }; @@ -505,7 +503,7 @@ static const unsigned int snd_ensoniq_sample_shift[] = #ifdef CHIP1371 -static unsigned int snd_es1371_wait_src_ready(ensoniq_t * ensoniq) +static unsigned int snd_es1371_wait_src_ready(struct ensoniq * ensoniq) { unsigned int t, r = 0; @@ -515,11 +513,12 @@ static unsigned int snd_es1371_wait_src_ready(ensoniq_t * ensoniq) return r; cond_resched(); } - snd_printk(KERN_ERR "wait source ready timeout 0x%lx [0x%x]\n", ES_REG(ensoniq, 1371_SMPRATE), r); + snd_printk(KERN_ERR "wait source ready timeout 0x%lx [0x%x]\n", + ES_REG(ensoniq, 1371_SMPRATE), r); return 0; } -static unsigned int snd_es1371_src_read(ensoniq_t * ensoniq, unsigned short reg) +static unsigned int snd_es1371_src_read(struct ensoniq * ensoniq, unsigned short reg) { unsigned int temp, i, orig, r; @@ -553,7 +552,7 @@ static unsigned int snd_es1371_src_read(ensoniq_t * ensoniq, unsigned short reg) return temp; } -static void snd_es1371_src_write(ensoniq_t * ensoniq, +static void snd_es1371_src_write(struct ensoniq * ensoniq, unsigned short reg, unsigned short data) { unsigned int r; @@ -569,14 +568,15 @@ static void snd_es1371_src_write(ensoniq_t * ensoniq, #ifdef CHIP1370 -static void snd_es1370_codec_write(ak4531_t *ak4531, +static void snd_es1370_codec_write(struct snd_ak4531 *ak4531, unsigned short reg, unsigned short val) { - ensoniq_t *ensoniq = ak4531->private_data; + struct ensoniq *ensoniq = ak4531->private_data; unsigned long end_time = jiffies + HZ / 10; #if 0 - printk("CODEC WRITE: reg = 0x%x, val = 0x%x (0x%x), creg = 0x%x\n", reg, val, ES_1370_CODEC_WRITE(reg, val), ES_REG(ensoniq, 1370_CODEC)); + printk("CODEC WRITE: reg = 0x%x, val = 0x%x (0x%x), creg = 0x%x\n", + reg, val, ES_1370_CODEC_WRITE(reg, val), ES_REG(ensoniq, 1370_CODEC)); #endif do { if (!(inl(ES_REG(ensoniq, STATUS)) & ES_1370_CSTAT)) { @@ -585,17 +585,18 @@ static void snd_es1370_codec_write(ak4531_t *ak4531, } schedule_timeout_uninterruptible(1); } while (time_after(end_time, jiffies)); - snd_printk(KERN_ERR "codec write timeout, status = 0x%x\n", inl(ES_REG(ensoniq, STATUS))); + snd_printk(KERN_ERR "codec write timeout, status = 0x%x\n", + inl(ES_REG(ensoniq, STATUS))); } #endif /* CHIP1370 */ #ifdef CHIP1371 -static void snd_es1371_codec_write(ac97_t *ac97, +static void snd_es1371_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - ensoniq_t *ensoniq = ac97->private_data; + struct ensoniq *ensoniq = ac97->private_data; unsigned int t, x; down(&ensoniq->src_mutex); @@ -609,12 +610,14 @@ static void snd_es1371_codec_write(ac97_t *ac97, /* wait for not busy (state 0) first to avoid transition states */ for (t = 0; t < POLL_COUNT; t++) { - if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == 0x00000000) + if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == + 0x00000000) break; } /* wait for a SAFE time to write addr/data and then do it, dammit */ for (t = 0; t < POLL_COUNT; t++) { - if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == 0x00010000) + if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == + 0x00010000) break; } outl(ES_1371_CODEC_WRITE(reg, val), ES_REG(ensoniq, 1371_CODEC)); @@ -626,13 +629,14 @@ static void snd_es1371_codec_write(ac97_t *ac97, } } up(&ensoniq->src_mutex); - snd_printk(KERN_ERR "codec write timeout at 0x%lx [0x%x]\n", ES_REG(ensoniq, 1371_CODEC), inl(ES_REG(ensoniq, 1371_CODEC))); + snd_printk(KERN_ERR "codec write timeout at 0x%lx [0x%x]\n", + ES_REG(ensoniq, 1371_CODEC), inl(ES_REG(ensoniq, 1371_CODEC))); } -static unsigned short snd_es1371_codec_read(ac97_t *ac97, +static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - ensoniq_t *ensoniq = ac97->private_data; + struct ensoniq *ensoniq = ac97->private_data; unsigned int t, x, fail = 0; __again: @@ -647,12 +651,14 @@ static unsigned short snd_es1371_codec_read(ac97_t *ac97, /* wait for not busy (state 0) first to avoid transition states */ for (t = 0; t < POLL_COUNT; t++) { - if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == 0x00000000) + if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == + 0x00000000) break; } /* wait for a SAFE time to write addr/data and then do it, dammit */ for (t = 0; t < POLL_COUNT; t++) { - if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == 0x00010000) + if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) == + 0x00010000) break; } outl(ES_1371_CODEC_READS(reg), ES_REG(ensoniq, 1371_CODEC)); @@ -673,18 +679,22 @@ static unsigned short snd_es1371_codec_read(ac97_t *ac97, } up(&ensoniq->src_mutex); if (++fail > 10) { - snd_printk(KERN_ERR "codec read timeout (final) at 0x%lx, reg = 0x%x [0x%x]\n", ES_REG(ensoniq, 1371_CODEC), reg, inl(ES_REG(ensoniq, 1371_CODEC))); + snd_printk(KERN_ERR "codec read timeout (final) " + "at 0x%lx, reg = 0x%x [0x%x]\n", + ES_REG(ensoniq, 1371_CODEC), reg, + inl(ES_REG(ensoniq, 1371_CODEC))); return 0; } goto __again; } } up(&ensoniq->src_mutex); - snd_printk(KERN_ERR "es1371: codec read timeout at 0x%lx [0x%x]\n", ES_REG(ensoniq, 1371_CODEC), inl(ES_REG(ensoniq, 1371_CODEC))); + snd_printk(KERN_ERR "es1371: codec read timeout at 0x%lx [0x%x]\n", + ES_REG(ensoniq, 1371_CODEC), inl(ES_REG(ensoniq, 1371_CODEC))); return 0; } -static void snd_es1371_codec_wait(ac97_t *ac97) +static void snd_es1371_codec_wait(struct snd_ac97 *ac97) { msleep(750); snd_es1371_codec_read(ac97, AC97_RESET); @@ -693,7 +703,7 @@ static void snd_es1371_codec_wait(ac97_t *ac97) msleep(50); } -static void snd_es1371_adc_rate(ensoniq_t * ensoniq, unsigned int rate) +static void snd_es1371_adc_rate(struct ensoniq * ensoniq, unsigned int rate) { unsigned int n, truncm, freq, result; @@ -716,60 +726,70 @@ static void snd_es1371_adc_rate(ensoniq_t * ensoniq, unsigned int rate) 0x8000 | (((119 - truncm) >> 1) << 9) | (n << 4)); } snd_es1371_src_write(ensoniq, ES_SMPREG_ADC + ES_SMPREG_INT_REGS, - (snd_es1371_src_read(ensoniq, ES_SMPREG_ADC + ES_SMPREG_INT_REGS) & 0x00ff) | - ((freq >> 5) & 0xfc00)); + (snd_es1371_src_read(ensoniq, ES_SMPREG_ADC + + ES_SMPREG_INT_REGS) & 0x00ff) | + ((freq >> 5) & 0xfc00)); snd_es1371_src_write(ensoniq, ES_SMPREG_ADC + ES_SMPREG_VFREQ_FRAC, freq & 0x7fff); snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_ADC, n << 8); snd_es1371_src_write(ensoniq, ES_SMPREG_VOL_ADC + 1, n << 8); up(&ensoniq->src_mutex); } -static void snd_es1371_dac1_rate(ensoniq_t * ensoniq, unsigned int rate) +static void snd_es1371_dac1_rate(struct ensoniq * ensoniq, unsigned int rate) { unsigned int freq, r; down(&ensoniq->src_mutex); freq = ((rate << 15) + 1500) / 3000; - r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | ES_1371_DIS_P2 | ES_1371_DIS_R1)) | ES_1371_DIS_P1; + r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | + ES_1371_DIS_P2 | ES_1371_DIS_R1)) | + ES_1371_DIS_P1; outl(r, ES_REG(ensoniq, 1371_SMPRATE)); snd_es1371_src_write(ensoniq, ES_SMPREG_DAC1 + ES_SMPREG_INT_REGS, - (snd_es1371_src_read(ensoniq, ES_SMPREG_DAC1 + ES_SMPREG_INT_REGS) & 0x00ff) | + (snd_es1371_src_read(ensoniq, ES_SMPREG_DAC1 + + ES_SMPREG_INT_REGS) & 0x00ff) | ((freq >> 5) & 0xfc00)); snd_es1371_src_write(ensoniq, ES_SMPREG_DAC1 + ES_SMPREG_VFREQ_FRAC, freq & 0x7fff); - r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | ES_1371_DIS_P2 | ES_1371_DIS_R1)); + r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | + ES_1371_DIS_P2 | ES_1371_DIS_R1)); outl(r, ES_REG(ensoniq, 1371_SMPRATE)); up(&ensoniq->src_mutex); } -static void snd_es1371_dac2_rate(ensoniq_t * ensoniq, unsigned int rate) +static void snd_es1371_dac2_rate(struct ensoniq * ensoniq, unsigned int rate) { unsigned int freq, r; down(&ensoniq->src_mutex); freq = ((rate << 15) + 1500) / 3000; - r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | ES_1371_DIS_P1 | ES_1371_DIS_R1)) | ES_1371_DIS_P2; + r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | + ES_1371_DIS_P1 | ES_1371_DIS_R1)) | + ES_1371_DIS_P2; outl(r, ES_REG(ensoniq, 1371_SMPRATE)); snd_es1371_src_write(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_INT_REGS, - (snd_es1371_src_read(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_INT_REGS) & 0x00ff) | + (snd_es1371_src_read(ensoniq, ES_SMPREG_DAC2 + + ES_SMPREG_INT_REGS) & 0x00ff) | ((freq >> 5) & 0xfc00)); - snd_es1371_src_write(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_VFREQ_FRAC, freq & 0x7fff); - r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | ES_1371_DIS_P1 | ES_1371_DIS_R1)); + snd_es1371_src_write(ensoniq, ES_SMPREG_DAC2 + ES_SMPREG_VFREQ_FRAC, + freq & 0x7fff); + r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE | + ES_1371_DIS_P1 | ES_1371_DIS_R1)); outl(r, ES_REG(ensoniq, 1371_SMPRATE)); up(&ensoniq->src_mutex); } #endif /* CHIP1371 */ -static int snd_ensoniq_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_ensoniq_trigger(struct snd_pcm_substream *substream, int cmd) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); switch (cmd) { case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: { unsigned int what = 0; struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == ensoniq->playback1_substream) { @@ -795,7 +815,7 @@ static int snd_ensoniq_trigger(snd_pcm_substream_t *substream, int cmd) { unsigned int what = 0; struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; snd_pcm_group_for_each(pos, substream) { s = snd_pcm_group_substream_entry(pos); if (s == ensoniq->playback1_substream) { @@ -828,21 +848,21 @@ static int snd_ensoniq_trigger(snd_pcm_substream_t *substream, int cmd) * PCM part */ -static int snd_ensoniq_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_ensoniq_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_ensoniq_hw_free(snd_pcm_substream_t * substream) +static int snd_ensoniq_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static int snd_ensoniq_playback1_prepare(snd_pcm_substream_t * substream) +static int snd_ensoniq_playback1_prepare(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned int mode = 0; ensoniq->p1_dma_size = snd_pcm_lib_buffer_bytes(substream); @@ -867,7 +887,8 @@ static int snd_ensoniq_playback1_prepare(snd_pcm_substream_t * substream) ensoniq->sctrl &= ~(ES_P1_LOOP_SEL | ES_P1_PAUSE | ES_P1_SCT_RLD | ES_P1_MODEM); ensoniq->sctrl |= ES_P1_INT_EN | ES_P1_MODEO(mode); outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); - outl((ensoniq->p1_period_size >> snd_ensoniq_sample_shift[mode]) - 1, ES_REG(ensoniq, DAC1_COUNT)); + outl((ensoniq->p1_period_size >> snd_ensoniq_sample_shift[mode]) - 1, + ES_REG(ensoniq, DAC1_COUNT)); #ifdef CHIP1370 ensoniq->ctrl &= ~ES_1370_WTSRSELM; switch (runtime->rate) { @@ -886,10 +907,10 @@ static int snd_ensoniq_playback1_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_ensoniq_playback2_prepare(snd_pcm_substream_t * substream) +static int snd_ensoniq_playback2_prepare(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned int mode = 0; ensoniq->p2_dma_size = snd_pcm_lib_buffer_bytes(substream); @@ -909,7 +930,8 @@ static int snd_ensoniq_playback2_prepare(snd_pcm_substream_t * substream) ensoniq->sctrl |= ES_P2_INT_EN | ES_P2_MODEO(mode) | ES_P2_END_INCO(mode & 2 ? 2 : 1) | ES_P2_ST_INCO(0); outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); - outl((ensoniq->p2_period_size >> snd_ensoniq_sample_shift[mode]) - 1, ES_REG(ensoniq, DAC2_COUNT)); + outl((ensoniq->p2_period_size >> snd_ensoniq_sample_shift[mode]) - 1, + ES_REG(ensoniq, DAC2_COUNT)); #ifdef CHIP1370 if (!(ensoniq->u.es1370.pclkdiv_lock & ES_MODE_CAPTURE)) { ensoniq->ctrl &= ~ES_1370_PCLKDIVM; @@ -925,10 +947,10 @@ static int snd_ensoniq_playback2_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_ensoniq_capture_prepare(snd_pcm_substream_t * substream) +static int snd_ensoniq_capture_prepare(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned int mode = 0; ensoniq->c_dma_size = snd_pcm_lib_buffer_bytes(substream); @@ -946,7 +968,8 @@ static int snd_ensoniq_capture_prepare(snd_pcm_substream_t * substream) ensoniq->sctrl &= ~(ES_R1_LOOP_SEL | ES_R1_MODEM); ensoniq->sctrl |= ES_R1_INT_EN | ES_R1_MODEO(mode); outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); - outl((ensoniq->c_period_size >> snd_ensoniq_sample_shift[mode]) - 1, ES_REG(ensoniq, ADC_COUNT)); + outl((ensoniq->c_period_size >> snd_ensoniq_sample_shift[mode]) - 1, + ES_REG(ensoniq, ADC_COUNT)); #ifdef CHIP1370 if (!(ensoniq->u.es1370.pclkdiv_lock & ES_MODE_PLAY2)) { ensoniq->ctrl &= ~ES_1370_PCLKDIVM; @@ -962,9 +985,9 @@ static int snd_ensoniq_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_ensoniq_playback1_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ensoniq_playback1_pointer(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); size_t ptr; spin_lock(&ensoniq->reg_lock); @@ -979,9 +1002,9 @@ static snd_pcm_uframes_t snd_ensoniq_playback1_pointer(snd_pcm_substream_t * sub return ptr; } -static snd_pcm_uframes_t snd_ensoniq_playback2_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ensoniq_playback2_pointer(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); size_t ptr; spin_lock(&ensoniq->reg_lock); @@ -996,9 +1019,9 @@ static snd_pcm_uframes_t snd_ensoniq_playback2_pointer(snd_pcm_substream_t * sub return ptr; } -static snd_pcm_uframes_t snd_ensoniq_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_ensoniq_capture_pointer(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); size_t ptr; spin_lock(&ensoniq->reg_lock); @@ -1013,7 +1036,7 @@ static snd_pcm_uframes_t snd_ensoniq_capture_pointer(snd_pcm_substream_t * subst return ptr; } -static snd_pcm_hardware_t snd_ensoniq_playback1 = +static struct snd_pcm_hardware snd_ensoniq_playback1 = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1040,7 +1063,7 @@ static snd_pcm_hardware_t snd_ensoniq_playback1 = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_ensoniq_playback2 = +static struct snd_pcm_hardware snd_ensoniq_playback2 = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1060,7 +1083,7 @@ static snd_pcm_hardware_t snd_ensoniq_playback2 = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_ensoniq_capture = +static struct snd_pcm_hardware snd_ensoniq_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1079,10 +1102,10 @@ static snd_pcm_hardware_t snd_ensoniq_capture = .fifo_size = 0, }; -static int snd_ensoniq_playback1_open(snd_pcm_substream_t * substream) +static int snd_ensoniq_playback1_open(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; ensoniq->mode |= ES_MODE_PLAY1; ensoniq->playback1_substream = substream; @@ -1102,10 +1125,10 @@ static int snd_ensoniq_playback1_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ensoniq_playback2_open(snd_pcm_substream_t * substream) +static int snd_ensoniq_playback2_open(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; ensoniq->mode |= ES_MODE_PLAY2; ensoniq->playback2_substream = substream; @@ -1125,10 +1148,10 @@ static int snd_ensoniq_playback2_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ensoniq_capture_open(snd_pcm_substream_t * substream) +static int snd_ensoniq_capture_open(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; ensoniq->mode |= ES_MODE_CAPTURE; ensoniq->capture_substream = substream; @@ -1144,18 +1167,18 @@ static int snd_ensoniq_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_ensoniq_playback1_close(snd_pcm_substream_t * substream) +static int snd_ensoniq_playback1_close(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); ensoniq->playback1_substream = NULL; ensoniq->mode &= ~ES_MODE_PLAY1; return 0; } -static int snd_ensoniq_playback2_close(snd_pcm_substream_t * substream) +static int snd_ensoniq_playback2_close(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); ensoniq->playback2_substream = NULL; spin_lock_irq(&ensoniq->reg_lock); @@ -1167,9 +1190,9 @@ static int snd_ensoniq_playback2_close(snd_pcm_substream_t * substream) return 0; } -static int snd_ensoniq_capture_close(snd_pcm_substream_t * substream) +static int snd_ensoniq_capture_close(struct snd_pcm_substream *substream) { - ensoniq_t *ensoniq = snd_pcm_substream_chip(substream); + struct ensoniq *ensoniq = snd_pcm_substream_chip(substream); ensoniq->capture_substream = NULL; spin_lock_irq(&ensoniq->reg_lock); @@ -1181,7 +1204,7 @@ static int snd_ensoniq_capture_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_ensoniq_playback1_ops = { +static struct snd_pcm_ops snd_ensoniq_playback1_ops = { .open = snd_ensoniq_playback1_open, .close = snd_ensoniq_playback1_close, .ioctl = snd_pcm_lib_ioctl, @@ -1192,7 +1215,7 @@ static snd_pcm_ops_t snd_ensoniq_playback1_ops = { .pointer = snd_ensoniq_playback1_pointer, }; -static snd_pcm_ops_t snd_ensoniq_playback2_ops = { +static struct snd_pcm_ops snd_ensoniq_playback2_ops = { .open = snd_ensoniq_playback2_open, .close = snd_ensoniq_playback2_close, .ioctl = snd_pcm_lib_ioctl, @@ -1203,7 +1226,7 @@ static snd_pcm_ops_t snd_ensoniq_playback2_ops = { .pointer = snd_ensoniq_playback2_pointer, }; -static snd_pcm_ops_t snd_ensoniq_capture_ops = { +static struct snd_pcm_ops snd_ensoniq_capture_ops = { .open = snd_ensoniq_capture_open, .close = snd_ensoniq_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1214,9 +1237,10 @@ static snd_pcm_ops_t snd_ensoniq_capture_ops = { .pointer = snd_ensoniq_capture_pointer, }; -static int __devinit snd_ensoniq_pcm(ensoniq_t * ensoniq, int device, snd_pcm_t ** rpcm) +static int __devinit snd_ensoniq_pcm(struct ensoniq * ensoniq, int device, + struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1253,9 +1277,10 @@ static int __devinit snd_ensoniq_pcm(ensoniq_t * ensoniq, int device, snd_pcm_t return 0; } -static int __devinit snd_ensoniq_pcm2(ensoniq_t * ensoniq, int device, snd_pcm_t ** rpcm) +static int __devinit snd_ensoniq_pcm2(struct ensoniq * ensoniq, int device, + struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -1298,17 +1323,18 @@ static int __devinit snd_ensoniq_pcm2(ensoniq_t * ensoniq, int device, snd_pcm_t * ENS1371 mixer (including SPDIF interface) */ #ifdef CHIP1371 -static int snd_ens1373_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_ens1373_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_ens1373_spdif_default_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ens1373_spdif_default_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); spin_lock_irq(&ensoniq->reg_lock); ucontrol->value.iec958.status[0] = (ensoniq->spdif_default >> 0) & 0xff; ucontrol->value.iec958.status[1] = (ensoniq->spdif_default >> 8) & 0xff; @@ -1318,10 +1344,10 @@ static int snd_ens1373_spdif_default_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ens1373_spdif_default_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ens1373_spdif_default_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -1332,14 +1358,15 @@ static int snd_ens1373_spdif_default_put(snd_kcontrol_t * kcontrol, spin_lock_irq(&ensoniq->reg_lock); change = ensoniq->spdif_default != val; ensoniq->spdif_default = val; - if (change && ensoniq->playback1_substream == NULL && ensoniq->playback2_substream == NULL) + if (change && ensoniq->playback1_substream == NULL && + ensoniq->playback2_substream == NULL) outl(val, ES_REG(ensoniq, CHANNEL_STATUS)); spin_unlock_irq(&ensoniq->reg_lock); return change; } -static int snd_ens1373_spdif_mask_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ens1373_spdif_mask_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[1] = 0xff; @@ -1348,10 +1375,10 @@ static int snd_ens1373_spdif_mask_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ens1373_spdif_stream_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ens1373_spdif_stream_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); spin_lock_irq(&ensoniq->reg_lock); ucontrol->value.iec958.status[0] = (ensoniq->spdif_stream >> 0) & 0xff; ucontrol->value.iec958.status[1] = (ensoniq->spdif_stream >> 8) & 0xff; @@ -1361,10 +1388,10 @@ static int snd_ens1373_spdif_stream_get(snd_kcontrol_t * kcontrol, return 0; } -static int snd_ens1373_spdif_stream_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_ens1373_spdif_stream_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -1375,7 +1402,8 @@ static int snd_ens1373_spdif_stream_put(snd_kcontrol_t * kcontrol, spin_lock_irq(&ensoniq->reg_lock); change = ensoniq->spdif_stream != val; ensoniq->spdif_stream = val; - if (change && (ensoniq->playback1_substream != NULL || ensoniq->playback2_substream != NULL)) + if (change && (ensoniq->playback1_substream != NULL || + ensoniq->playback2_substream != NULL)) outl(val, ES_REG(ensoniq, CHANNEL_STATUS)); spin_unlock_irq(&ensoniq->reg_lock); return change; @@ -1385,7 +1413,8 @@ static int snd_ens1373_spdif_stream_put(snd_kcontrol_t * kcontrol, { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_es1371_spdif_info, \ .get = snd_es1371_spdif_get, .put = snd_es1371_spdif_put } -static int snd_es1371_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_es1371_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1394,9 +1423,10 @@ static int snd_es1371_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_es1371_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1371_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); spin_lock_irq(&ensoniq->reg_lock); ucontrol->value.integer.value[0] = ensoniq->ctrl & ES_1373_SPDIF_THRU ? 1 : 0; @@ -1404,9 +1434,10 @@ static int snd_es1371_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_es1371_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1371_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); unsigned int nval1, nval2; int change; @@ -1426,7 +1457,7 @@ static int snd_es1371_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t /* spdif controls */ -static snd_kcontrol_new_t snd_es1371_mixer_spdif[] __devinitdata = { +static struct snd_kcontrol_new snd_es1371_mixer_spdif[] __devinitdata = { ES1371_SPDIF(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH)), { .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -1452,7 +1483,8 @@ static snd_kcontrol_new_t snd_es1371_mixer_spdif[] __devinitdata = { }; -static int snd_es1373_rear_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_es1373_rear_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1461,28 +1493,33 @@ static int snd_es1373_rear_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *u return 0; } -static int snd_es1373_rear_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1373_rear_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); int val = 0; spin_lock_irq(&ensoniq->reg_lock); - if ((ensoniq->cssr & (ES_1373_REAR_BIT27|ES_1373_REAR_BIT26|ES_1373_REAR_BIT24)) == ES_1373_REAR_BIT26) + if ((ensoniq->cssr & (ES_1373_REAR_BIT27|ES_1373_REAR_BIT26| + ES_1373_REAR_BIT24)) == ES_1373_REAR_BIT26) val = 1; ucontrol->value.integer.value[0] = val; spin_unlock_irq(&ensoniq->reg_lock); return 0; } -static int snd_es1373_rear_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1373_rear_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); unsigned int nval1; int change; - nval1 = ucontrol->value.integer.value[0] ? ES_1373_REAR_BIT26 : (ES_1373_REAR_BIT27|ES_1373_REAR_BIT24); + nval1 = ucontrol->value.integer.value[0] ? + ES_1373_REAR_BIT26 : (ES_1373_REAR_BIT27|ES_1373_REAR_BIT24); spin_lock_irq(&ensoniq->reg_lock); - change = (ensoniq->cssr & (ES_1373_REAR_BIT27|ES_1373_REAR_BIT26|ES_1373_REAR_BIT24)) != nval1; + change = (ensoniq->cssr & (ES_1373_REAR_BIT27| + ES_1373_REAR_BIT26|ES_1373_REAR_BIT24)) != nval1; ensoniq->cssr &= ~(ES_1373_REAR_BIT27|ES_1373_REAR_BIT26|ES_1373_REAR_BIT24); ensoniq->cssr |= nval1; outl(ensoniq->cssr, ES_REG(ensoniq, STATUS)); @@ -1490,7 +1527,7 @@ static int snd_es1373_rear_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return change; } -static snd_kcontrol_new_t snd_ens1373_rear __devinitdata = +static struct snd_kcontrol_new snd_ens1373_rear __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "AC97 2ch->4ch Copy Switch", @@ -1499,7 +1536,8 @@ static snd_kcontrol_new_t snd_ens1373_rear __devinitdata = .put = snd_es1373_rear_put, }; -static int snd_es1373_line_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_es1373_line_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1508,9 +1546,10 @@ static int snd_es1373_line_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *u return 0; } -static int snd_es1373_line_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1373_line_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); int val = 0; spin_lock_irq(&ensoniq->reg_lock); @@ -1521,9 +1560,10 @@ static int snd_es1373_line_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return 0; } -static int snd_es1373_line_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1373_line_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); int changed; unsigned int ctrl; @@ -1540,7 +1580,7 @@ static int snd_es1373_line_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return changed; } -static snd_kcontrol_new_t snd_ens1373_line __devinitdata = +static struct snd_kcontrol_new snd_ens1373_line __devinitdata = { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Line In->Rear Out Switch", @@ -1549,9 +1589,9 @@ static snd_kcontrol_new_t snd_ens1373_line __devinitdata = .put = snd_es1373_line_put, }; -static void snd_ensoniq_mixer_free_ac97(ac97_t *ac97) +static void snd_ensoniq_mixer_free_ac97(struct snd_ac97 *ac97) { - ensoniq_t *ensoniq = ac97->private_data; + struct ensoniq *ensoniq = ac97->private_data; ensoniq->u.es1371.ac97 = NULL; } @@ -1568,13 +1608,13 @@ static struct { { .vid = PCI_ANY_ID, .did = PCI_ANY_ID } }; -static int snd_ensoniq_1371_mixer(ensoniq_t * ensoniq) +static int snd_ensoniq_1371_mixer(struct ensoniq * ensoniq) { - snd_card_t *card = ensoniq->card; - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_card *card = ensoniq->card; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int err, idx; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_es1371_codec_write, .read = snd_es1371_codec_read, .wait = snd_es1371_codec_wait, @@ -1593,10 +1633,11 @@ static int snd_ensoniq_1371_mixer(ensoniq_t * ensoniq) if (ensoniq->pci->vendor == es1371_spdif_present[idx].vid && ensoniq->pci->device == es1371_spdif_present[idx].did && ensoniq->rev == es1371_spdif_present[idx].rev) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; int i, index = 0; - ensoniq->spdif_default = ensoniq->spdif_stream = SNDRV_PCM_DEFAULT_CON_SPDIF; + ensoniq->spdif_default = ensoniq->spdif_stream = + SNDRV_PCM_DEFAULT_CON_SPDIF; outl(ensoniq->spdif_default, ES_REG(ensoniq, CHANNEL_STATUS)); if (ensoniq->u.es1371.ac97->ext_id & AC97_EI_SPDIF) @@ -1641,7 +1682,8 @@ static int snd_ensoniq_1371_mixer(ensoniq_t * ensoniq) .get = snd_ensoniq_control_get, .put = snd_ensoniq_control_put, \ .private_value = mask } -static int snd_ensoniq_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_ensoniq_control_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1650,9 +1692,10 @@ static int snd_ensoniq_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ return 0; } -static int snd_ensoniq_control_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ensoniq_control_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); int mask = kcontrol->private_value; spin_lock_irq(&ensoniq->reg_lock); @@ -1661,9 +1704,10 @@ static int snd_ensoniq_control_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value return 0; } -static int snd_ensoniq_control_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_ensoniq_control_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - ensoniq_t *ensoniq = snd_kcontrol_chip(kcontrol); + struct ensoniq *ensoniq = snd_kcontrol_chip(kcontrol); int mask = kcontrol->private_value; unsigned int nval; int change; @@ -1682,23 +1726,23 @@ static int snd_ensoniq_control_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value * ENS1370 mixer */ -static snd_kcontrol_new_t snd_es1370_controls[2] __devinitdata = { +static struct snd_kcontrol_new snd_es1370_controls[2] __devinitdata = { ENSONIQ_CONTROL("PCM 0 Output also on Line-In Jack", ES_1370_XCTL0), ENSONIQ_CONTROL("Mic +5V bias", ES_1370_XCTL1) }; #define ES1370_CONTROLS ARRAY_SIZE(snd_es1370_controls) -static void snd_ensoniq_mixer_free_ak4531(ak4531_t *ak4531) +static void snd_ensoniq_mixer_free_ak4531(struct snd_ak4531 *ak4531) { - ensoniq_t *ensoniq = ak4531->private_data; + struct ensoniq *ensoniq = ak4531->private_data; ensoniq->u.es1370.ak4531 = NULL; } -static int __devinit snd_ensoniq_1370_mixer(ensoniq_t * ensoniq) +static int __devinit snd_ensoniq_1370_mixer(struct ensoniq * ensoniq) { - snd_card_t *card = ensoniq->card; - ak4531_t ak4531; + struct snd_card *card = ensoniq->card; + struct snd_ak4531 ak4531; unsigned int idx; int err; @@ -1752,7 +1796,7 @@ static inline int snd_ensoniq_get_joystick_port(int dev) } #endif -static int __devinit snd_ensoniq_create_gameport(ensoniq_t *ensoniq, int dev) +static int __devinit snd_ensoniq_create_gameport(struct ensoniq *ensoniq, int dev) { struct gameport *gp; int io_port; @@ -1775,7 +1819,8 @@ static int __devinit snd_ensoniq_create_gameport(ensoniq_t *ensoniq, int dev) default: if (!request_region(io_port, 8, "ens137x: gameport")) { - printk(KERN_WARNING "ens137x: gameport io port 0x%#x in use\n", io_port); + printk(KERN_WARNING "ens137x: gameport io port 0x%#x in use\n", + io_port); return -EBUSY; } break; @@ -1805,7 +1850,7 @@ static int __devinit snd_ensoniq_create_gameport(ensoniq_t *ensoniq, int dev) return 0; } -static void snd_ensoniq_free_gameport(ensoniq_t *ensoniq) +static void snd_ensoniq_free_gameport(struct ensoniq *ensoniq) { if (ensoniq->gameport) { int port = ensoniq->gameport->io; @@ -1818,36 +1863,40 @@ static void snd_ensoniq_free_gameport(ensoniq_t *ensoniq) } } #else -static inline int snd_ensoniq_create_gameport(ensoniq_t *ensoniq, long port) { return -ENOSYS; } -static inline void snd_ensoniq_free_gameport(ensoniq_t *ensoniq) { } +static inline int snd_ensoniq_create_gameport(struct ensoniq *ensoniq, long port) { return -ENOSYS; } +static inline void snd_ensoniq_free_gameport(struct ensoniq *ensoniq) { } #endif /* SUPPORT_JOYSTICK */ /* */ -static void snd_ensoniq_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_ensoniq_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - ensoniq_t *ensoniq = entry->private_data; + struct ensoniq *ensoniq = entry->private_data; #ifdef CHIP1370 snd_iprintf(buffer, "Ensoniq AudioPCI ES1370\n\n"); #else snd_iprintf(buffer, "Ensoniq AudioPCI ES1371\n\n"); #endif - snd_iprintf(buffer, "Joystick enable : %s\n", ensoniq->ctrl & ES_JYSTK_EN ? "on" : "off"); + snd_iprintf(buffer, "Joystick enable : %s\n", + ensoniq->ctrl & ES_JYSTK_EN ? "on" : "off"); #ifdef CHIP1370 - snd_iprintf(buffer, "MIC +5V bias : %s\n", ensoniq->ctrl & ES_1370_XCTL1 ? "on" : "off"); - snd_iprintf(buffer, "Line In to AOUT : %s\n", ensoniq->ctrl & ES_1370_XCTL0 ? "on" : "off"); + snd_iprintf(buffer, "MIC +5V bias : %s\n", + ensoniq->ctrl & ES_1370_XCTL1 ? "on" : "off"); + snd_iprintf(buffer, "Line In to AOUT : %s\n", + ensoniq->ctrl & ES_1370_XCTL0 ? "on" : "off"); #else - snd_iprintf(buffer, "Joystick port : 0x%x\n", (ES_1371_JOY_ASELI(ensoniq->ctrl) * 8) + 0x200); + snd_iprintf(buffer, "Joystick port : 0x%x\n", + (ES_1371_JOY_ASELI(ensoniq->ctrl) * 8) + 0x200); #endif } -static void __devinit snd_ensoniq_proc_init(ensoniq_t * ensoniq) +static void __devinit snd_ensoniq_proc_init(struct ensoniq * ensoniq) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(ensoniq->card, "audiopci", &entry)) snd_info_set_text_ops(entry, ensoniq, 1024, snd_ensoniq_proc_read); @@ -1857,7 +1906,7 @@ static void __devinit snd_ensoniq_proc_init(ensoniq_t * ensoniq) */ -static int snd_ensoniq_free(ensoniq_t *ensoniq) +static int snd_ensoniq_free(struct ensoniq *ensoniq) { snd_ensoniq_free_gameport(ensoniq); if (ensoniq->irq < 0) @@ -1877,16 +1926,16 @@ static int snd_ensoniq_free(ensoniq_t *ensoniq) snd_dma_free_pages(&ensoniq->dma_bug); #endif if (ensoniq->irq >= 0) - free_irq(ensoniq->irq, (void *)ensoniq); + free_irq(ensoniq->irq, ensoniq); pci_release_regions(ensoniq->pci); pci_disable_device(ensoniq->pci); kfree(ensoniq); return 0; } -static int snd_ensoniq_dev_free(snd_device_t *device) +static int snd_ensoniq_dev_free(struct snd_device *device) { - ensoniq_t *ensoniq = device->device_data; + struct ensoniq *ensoniq = device->device_data; return snd_ensoniq_free(ensoniq); } @@ -1915,13 +1964,15 @@ static struct { }; #endif -static void snd_ensoniq_chip_init(ensoniq_t * ensoniq) +static void snd_ensoniq_chip_init(struct ensoniq *ensoniq) { #ifdef CHIP1371 int idx; struct pci_dev *pci = ensoniq->pci; #endif -// this code was part of snd_ensoniq_create before intruduction of suspend/resume + /* this code was part of snd_ensoniq_create before intruduction + * of suspend/resume + */ #ifdef CHIP1370 outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL)); outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL)); @@ -1983,10 +2034,9 @@ static void snd_ensoniq_chip_init(ensoniq_t * ensoniq) } #ifdef CONFIG_PM -static int snd_ensoniq_suspend (snd_card_t * card, - pm_message_t state) +static int snd_ensoniq_suspend(struct snd_card *card, pm_message_t state) { - ensoniq_t *ensoniq = card->pm_private_data; + struct ensoniq *ensoniq = card->pm_private_data; snd_pcm_suspend_all(ensoniq->pcm1); snd_pcm_suspend_all(ensoniq->pcm2); @@ -1997,16 +2047,14 @@ static int snd_ensoniq_suspend (snd_card_t * card, #else /* FIXME */ #endif - pci_set_power_state(ensoniq->pci, 3); + pci_set_power_state(ensoniq->pci, 3); pci_disable_device(ensoniq->pci); - // snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); // only 2.6.10 return 0; } -static int snd_ensoniq_resume (snd_card_t * card - ) +static int snd_ensoniq_resume(struct snd_card *card) { - ensoniq_t *ensoniq = card->pm_private_data; + struct ensoniq *ensoniq = card->pm_private_data; pci_enable_device(ensoniq->pci); pci_set_power_state(ensoniq->pci, 0); @@ -2020,24 +2068,23 @@ static int snd_ensoniq_resume (snd_card_t * card #else /* FIXME */ #endif - // snd_power_change_state(card, SNDRV_CTL_POWER_D0); // only 2.6.10 return 0; } #endif /* CONFIG_PM */ -static int __devinit snd_ensoniq_create(snd_card_t * card, +static int __devinit snd_ensoniq_create(struct snd_card *card, struct pci_dev *pci, - ensoniq_t ** rensoniq) + struct ensoniq ** rensoniq) { - ensoniq_t *ensoniq; + struct ensoniq *ensoniq; unsigned short cmdw; unsigned char cmdb; #ifdef CHIP1371 int idx; #endif int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_ensoniq_dev_free, }; @@ -2060,7 +2107,8 @@ static int __devinit snd_ensoniq_create(snd_card_t * card, return err; } ensoniq->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_audiopci_interrupt, SA_INTERRUPT|SA_SHIRQ, "Ensoniq AudioPCI", (void *)ensoniq)) { + if (request_irq(pci->irq, snd_audiopci_interrupt, SA_INTERRUPT|SA_SHIRQ, + "Ensoniq AudioPCI", ensoniq)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_ensoniq_free(ensoniq); return -EBUSY; @@ -2083,7 +2131,8 @@ static int __devinit snd_ensoniq_create(snd_card_t * card, ensoniq->subsystem_device_id = cmdw; #ifdef CHIP1370 #if 0 - ensoniq->ctrl = ES_1370_CDC_EN | ES_1370_SERR_DISABLE | ES_1370_PCLKDIVO(ES_1370_SRTODIV(8000)); + ensoniq->ctrl = ES_1370_CDC_EN | ES_1370_SERR_DISABLE | + ES_1370_PCLKDIVO(ES_1370_SRTODIV(8000)); #else /* get microphone working */ ensoniq->ctrl = ES_1370_CDC_EN | ES_1370_PCLKDIVO(ES_1370_SRTODIV(8000)); #endif @@ -2128,9 +2177,9 @@ static int __devinit snd_ensoniq_create(snd_card_t * card, * MIDI section */ -static void snd_ensoniq_midi_interrupt(ensoniq_t * ensoniq) +static void snd_ensoniq_midi_interrupt(struct ensoniq * ensoniq) { - snd_rawmidi_t * rmidi = ensoniq->rmidi; + struct snd_rawmidi *rmidi = ensoniq->rmidi; unsigned char status, mask, byte; if (rmidi == NULL) @@ -2165,9 +2214,9 @@ static void snd_ensoniq_midi_interrupt(ensoniq_t * ensoniq) spin_unlock(&ensoniq->reg_lock); } -static int snd_ensoniq_midi_input_open(snd_rawmidi_substream_t * substream) +static int snd_ensoniq_midi_input_open(struct snd_rawmidi_substream *substream) { - ensoniq_t *ensoniq = substream->rmidi->private_data; + struct ensoniq *ensoniq = substream->rmidi->private_data; spin_lock_irq(&ensoniq->reg_lock); ensoniq->uartm |= ES_MODE_INPUT; @@ -2181,9 +2230,9 @@ static int snd_ensoniq_midi_input_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_ensoniq_midi_input_close(snd_rawmidi_substream_t * substream) +static int snd_ensoniq_midi_input_close(struct snd_rawmidi_substream *substream) { - ensoniq_t *ensoniq = substream->rmidi->private_data; + struct ensoniq *ensoniq = substream->rmidi->private_data; spin_lock_irq(&ensoniq->reg_lock); if (!(ensoniq->uartm & ES_MODE_OUTPUT)) { @@ -2198,9 +2247,9 @@ static int snd_ensoniq_midi_input_close(snd_rawmidi_substream_t * substream) return 0; } -static int snd_ensoniq_midi_output_open(snd_rawmidi_substream_t * substream) +static int snd_ensoniq_midi_output_open(struct snd_rawmidi_substream *substream) { - ensoniq_t *ensoniq = substream->rmidi->private_data; + struct ensoniq *ensoniq = substream->rmidi->private_data; spin_lock_irq(&ensoniq->reg_lock); ensoniq->uartm |= ES_MODE_OUTPUT; @@ -2214,9 +2263,9 @@ static int snd_ensoniq_midi_output_open(snd_rawmidi_substream_t * substream) return 0; } -static int snd_ensoniq_midi_output_close(snd_rawmidi_substream_t * substream) +static int snd_ensoniq_midi_output_close(struct snd_rawmidi_substream *substream) { - ensoniq_t *ensoniq = substream->rmidi->private_data; + struct ensoniq *ensoniq = substream->rmidi->private_data; spin_lock_irq(&ensoniq->reg_lock); if (!(ensoniq->uartm & ES_MODE_INPUT)) { @@ -2231,10 +2280,10 @@ static int snd_ensoniq_midi_output_close(snd_rawmidi_substream_t * substream) return 0; } -static void snd_ensoniq_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_ensoniq_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { unsigned long flags; - ensoniq_t *ensoniq = substream->rmidi->private_data; + struct ensoniq *ensoniq = substream->rmidi->private_data; int idx; spin_lock_irqsave(&ensoniq->reg_lock, flags); @@ -2255,10 +2304,10 @@ static void snd_ensoniq_midi_input_trigger(snd_rawmidi_substream_t * substream, spin_unlock_irqrestore(&ensoniq->reg_lock, flags); } -static void snd_ensoniq_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) +static void snd_ensoniq_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { unsigned long flags; - ensoniq_t *ensoniq = substream->rmidi->private_data; + struct ensoniq *ensoniq = substream->rmidi->private_data; unsigned char byte; spin_lock_irqsave(&ensoniq->reg_lock, flags); @@ -2285,23 +2334,24 @@ static void snd_ensoniq_midi_output_trigger(snd_rawmidi_substream_t * substream, spin_unlock_irqrestore(&ensoniq->reg_lock, flags); } -static snd_rawmidi_ops_t snd_ensoniq_midi_output = +static struct snd_rawmidi_ops snd_ensoniq_midi_output = { .open = snd_ensoniq_midi_output_open, .close = snd_ensoniq_midi_output_close, .trigger = snd_ensoniq_midi_output_trigger, }; -static snd_rawmidi_ops_t snd_ensoniq_midi_input = +static struct snd_rawmidi_ops snd_ensoniq_midi_input = { .open = snd_ensoniq_midi_input_open, .close = snd_ensoniq_midi_input_close, .trigger = snd_ensoniq_midi_input_trigger, }; -static int __devinit snd_ensoniq_midi(ensoniq_t * ensoniq, int device, snd_rawmidi_t **rrawmidi) +static int __devinit snd_ensoniq_midi(struct ensoniq * ensoniq, int device, + struct snd_rawmidi **rrawmidi) { - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; int err; if (rrawmidi) @@ -2315,7 +2365,8 @@ static int __devinit snd_ensoniq_midi(ensoniq_t * ensoniq, int device, snd_rawmi #endif snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, &snd_ensoniq_midi_output); snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT, &snd_ensoniq_midi_input); - rmidi->info_flags |= SNDRV_RAWMIDI_INFO_OUTPUT | SNDRV_RAWMIDI_INFO_INPUT | SNDRV_RAWMIDI_INFO_DUPLEX; + rmidi->info_flags |= SNDRV_RAWMIDI_INFO_OUTPUT | SNDRV_RAWMIDI_INFO_INPUT | + SNDRV_RAWMIDI_INFO_DUPLEX; rmidi->private_data = ensoniq; ensoniq->rmidi = rmidi; if (rrawmidi) @@ -2329,7 +2380,7 @@ static int __devinit snd_ensoniq_midi(ensoniq_t * ensoniq, int device, snd_rawmi static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - ensoniq_t *ensoniq = dev_id; + struct ensoniq *ensoniq = dev_id; unsigned int status, sctrl; if (ensoniq == NULL) @@ -2366,8 +2417,8 @@ static int __devinit snd_audiopci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - ensoniq_t *ensoniq; + struct snd_card *card; + struct ensoniq *ensoniq; int err, pcm_devs[2]; if (dev >= SNDRV_CARDS) -- cgit v1.2.3-70-g09d2 From e571f59436d1827b5f00f3fba90b30ad7a5ff01e Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:04:01 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ES1938 Modules: ES1938 driver Remove xxx_t typedefs from the PCI ES1938 driver. Signed-off-by: Takashi Iwai --- sound/pci/es1938.c | 320 +++++++++++++++++++++++++++++------------------------ 1 file changed, 173 insertions(+), 147 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c index d05c3d2b330..577877dad2e 100644 --- a/sound/pci/es1938.c +++ b/sound/pci/es1938.c @@ -191,11 +191,9 @@ MODULE_PARM_DESC(enable, "Enable ESS Solo-1 soundcard."); */ -typedef struct _snd_es1938 es1938_t; - #define SAVED_REG_SIZE 32 /* max. number of registers to save */ -struct _snd_es1938 { +struct es1938 { int irq; unsigned long io_port; @@ -208,19 +206,18 @@ struct _snd_es1938 { unsigned char irqmask; unsigned char revision; - snd_kcontrol_t *hw_volume; - snd_kcontrol_t *hw_switch; - snd_kcontrol_t *master_volume; - snd_kcontrol_t *master_switch; + struct snd_kcontrol *hw_volume; + struct snd_kcontrol *hw_switch; + struct snd_kcontrol *master_volume; + struct snd_kcontrol *master_switch; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; - snd_pcm_substream_t *capture_substream; - snd_pcm_substream_t *playback1_substream; - snd_pcm_substream_t *playback2_substream; - snd_kmixer_t *mixer; - snd_rawmidi_t *rmidi; + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_pcm_substream *capture_substream; + struct snd_pcm_substream *playback1_substream; + struct snd_pcm_substream *playback2_substream; + struct snd_rawmidi *rmidi; unsigned int dma1_size; unsigned int dma2_size; @@ -232,7 +229,7 @@ struct _snd_es1938 { spinlock_t reg_lock; spinlock_t mixer_lock; - snd_info_entry_t *proc_entry; + struct snd_info_entry *proc_entry; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; @@ -259,7 +256,7 @@ MODULE_DEVICE_TABLE(pci, snd_es1938_ids); /* ----------------------------------------------------------------- * Write to a mixer register * -----------------------------------------------------------------*/ -static void snd_es1938_mixer_write(es1938_t *chip, unsigned char reg, unsigned char val) +static void snd_es1938_mixer_write(struct es1938 *chip, unsigned char reg, unsigned char val) { unsigned long flags; spin_lock_irqsave(&chip->mixer_lock, flags); @@ -274,7 +271,7 @@ static void snd_es1938_mixer_write(es1938_t *chip, unsigned char reg, unsigned c /* ----------------------------------------------------------------- * Read from a mixer register * -----------------------------------------------------------------*/ -static int snd_es1938_mixer_read(es1938_t *chip, unsigned char reg) +static int snd_es1938_mixer_read(struct es1938 *chip, unsigned char reg) { int data; unsigned long flags; @@ -291,7 +288,8 @@ static int snd_es1938_mixer_read(es1938_t *chip, unsigned char reg) /* ----------------------------------------------------------------- * Write to some bits of a mixer register (return old value) * -----------------------------------------------------------------*/ -static int snd_es1938_mixer_bits(es1938_t *chip, unsigned char reg, unsigned char mask, unsigned char val) +static int snd_es1938_mixer_bits(struct es1938 *chip, unsigned char reg, + unsigned char mask, unsigned char val) { unsigned long flags; unsigned char old, new, oval; @@ -314,7 +312,7 @@ static int snd_es1938_mixer_bits(es1938_t *chip, unsigned char reg, unsigned cha /* ----------------------------------------------------------------- * Write command to Controller Registers * -----------------------------------------------------------------*/ -static void snd_es1938_write_cmd(es1938_t *chip, unsigned char cmd) +static void snd_es1938_write_cmd(struct es1938 *chip, unsigned char cmd) { int i; unsigned char v; @@ -330,7 +328,7 @@ static void snd_es1938_write_cmd(es1938_t *chip, unsigned char cmd) /* ----------------------------------------------------------------- * Read the Read Data Buffer * -----------------------------------------------------------------*/ -static int snd_es1938_get_byte(es1938_t *chip) +static int snd_es1938_get_byte(struct es1938 *chip) { int i; unsigned char v; @@ -344,7 +342,7 @@ static int snd_es1938_get_byte(es1938_t *chip) /* ----------------------------------------------------------------- * Write value cmd register * -----------------------------------------------------------------*/ -static void snd_es1938_write(es1938_t *chip, unsigned char reg, unsigned char val) +static void snd_es1938_write(struct es1938 *chip, unsigned char reg, unsigned char val) { unsigned long flags; spin_lock_irqsave(&chip->reg_lock, flags); @@ -359,7 +357,7 @@ static void snd_es1938_write(es1938_t *chip, unsigned char reg, unsigned char va /* ----------------------------------------------------------------- * Read data from cmd register and return it * -----------------------------------------------------------------*/ -static unsigned char snd_es1938_read(es1938_t *chip, unsigned char reg) +static unsigned char snd_es1938_read(struct es1938 *chip, unsigned char reg) { unsigned char val; unsigned long flags; @@ -377,7 +375,8 @@ static unsigned char snd_es1938_read(es1938_t *chip, unsigned char reg) /* ----------------------------------------------------------------- * Write data to cmd register and return old value * -----------------------------------------------------------------*/ -static int snd_es1938_bits(es1938_t *chip, unsigned char reg, unsigned char mask, unsigned char val) +static int snd_es1938_bits(struct es1938 *chip, unsigned char reg, unsigned char mask, + unsigned char val) { unsigned long flags; unsigned char old, new, oval; @@ -402,7 +401,7 @@ static int snd_es1938_bits(es1938_t *chip, unsigned char reg, unsigned char mask /* -------------------------------------------------------------------- * Reset the chip * --------------------------------------------------------------------*/ -static void snd_es1938_reset(es1938_t *chip) +static void snd_es1938_reset(struct es1938 *chip) { int i; @@ -441,13 +440,13 @@ static void snd_es1938_reset(es1938_t *chip) /* -------------------------------------------------------------------- * Reset the FIFOs * --------------------------------------------------------------------*/ -static void snd_es1938_reset_fifo(es1938_t *chip) +static void snd_es1938_reset_fifo(struct es1938 *chip) { outb(2, SLSB_REG(chip, RESET)); outb(0, SLSB_REG(chip, RESET)); } -static ratnum_t clocks[2] = { +static struct snd_ratnum clocks[2] = { { .num = 793800, .den_min = 1, @@ -462,18 +461,18 @@ static ratnum_t clocks[2] = { } }; -static snd_pcm_hw_constraint_ratnums_t hw_constraints_clocks = { +static struct snd_pcm_hw_constraint_ratnums hw_constraints_clocks = { .nrats = 2, .rats = clocks, }; -static void snd_es1938_rate_set(es1938_t *chip, - snd_pcm_substream_t *substream, +static void snd_es1938_rate_set(struct es1938 *chip, + struct snd_pcm_substream *substream, int mode) { unsigned int bits, div0; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; if (runtime->rate_num == clocks[0].num) bits = 128 - runtime->rate_den; else @@ -495,7 +494,7 @@ static void snd_es1938_rate_set(es1938_t *chip, * Configure Solo1 builtin DMA Controller * --------------------------------------------------------------------*/ -static void snd_es1938_playback1_setdma(es1938_t *chip) +static void snd_es1938_playback1_setdma(struct es1938 *chip) { outb(0x00, SLIO_REG(chip, AUDIO2MODE)); outl(chip->dma2_start, SLIO_REG(chip, AUDIO2DMAADDR)); @@ -503,7 +502,7 @@ static void snd_es1938_playback1_setdma(es1938_t *chip) outw(chip->dma2_size, SLIO_REG(chip, AUDIO2DMACOUNT)); } -static void snd_es1938_playback2_setdma(es1938_t *chip) +static void snd_es1938_playback2_setdma(struct es1938 *chip) { /* Enable DMA controller */ outb(0xc4, SLDM_REG(chip, DMACOMMAND)); @@ -518,7 +517,7 @@ static void snd_es1938_playback2_setdma(es1938_t *chip) outb(0, SLDM_REG(chip, DMAMASK)); } -static void snd_es1938_capture_setdma(es1938_t *chip) +static void snd_es1938_capture_setdma(struct es1938 *chip) { /* Enable DMA controller */ outb(0xc4, SLDM_REG(chip, DMACOMMAND)); @@ -538,10 +537,10 @@ static void snd_es1938_capture_setdma(es1938_t *chip) * *** PCM part *** */ -static int snd_es1938_capture_trigger(snd_pcm_substream_t * substream, +static int snd_es1938_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); int val; switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -561,10 +560,10 @@ static int snd_es1938_capture_trigger(snd_pcm_substream_t * substream, return 0; } -static int snd_es1938_playback1_trigger(snd_pcm_substream_t * substream, +static int snd_es1938_playback1_trigger(struct snd_pcm_substream *substream, int cmd) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); switch (cmd) { case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_RESUME: @@ -591,10 +590,10 @@ static int snd_es1938_playback1_trigger(snd_pcm_substream_t * substream, return 0; } -static int snd_es1938_playback2_trigger(snd_pcm_substream_t * substream, +static int snd_es1938_playback2_trigger(struct snd_pcm_substream *substream, int cmd) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); int val; switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -614,7 +613,7 @@ static int snd_es1938_playback2_trigger(snd_pcm_substream_t * substream, return 0; } -static int snd_es1938_playback_trigger(snd_pcm_substream_t *substream, +static int snd_es1938_playback_trigger(struct snd_pcm_substream *substream, int cmd) { switch (substream->number) { @@ -630,10 +629,10 @@ static int snd_es1938_playback_trigger(snd_pcm_substream_t *substream, /* -------------------------------------------------------------------- * First channel for Extended Mode Audio 1 ADC Operation * --------------------------------------------------------------------*/ -static int snd_es1938_capture_prepare(snd_pcm_substream_t * substream) +static int snd_es1938_capture_prepare(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct es1938 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int u, is8, mono; unsigned int size = snd_pcm_lib_buffer_bytes(substream); unsigned int count = snd_pcm_lib_period_bytes(substream); @@ -678,10 +677,10 @@ static int snd_es1938_capture_prepare(snd_pcm_substream_t * substream) /* ------------------------------------------------------------------------------ * Second Audio channel DAC Operation * ------------------------------------------------------------------------------*/ -static int snd_es1938_playback1_prepare(snd_pcm_substream_t * substream) +static int snd_es1938_playback1_prepare(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct es1938 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int u, is8, mono; unsigned int size = snd_pcm_lib_buffer_bytes(substream); unsigned int count = snd_pcm_lib_period_bytes(substream); @@ -706,7 +705,8 @@ static int snd_es1938_playback1_prepare(snd_pcm_substream_t * substream) snd_es1938_mixer_write(chip, ESSSB_IREG_AUDIO2TCOUNTH, count >> 8); /* initialize and configure Audio 2 DAC */ - snd_es1938_mixer_write(chip, ESSSB_IREG_AUDIO2CONTROL2, 0x40 | (u ? 0 : 4) | (mono ? 0 : 2) | (is8 ? 0 : 1)); + snd_es1938_mixer_write(chip, ESSSB_IREG_AUDIO2CONTROL2, 0x40 | (u ? 0 : 4) | + (mono ? 0 : 2) | (is8 ? 0 : 1)); /* program DMA */ snd_es1938_playback1_setdma(chip); @@ -714,10 +714,10 @@ static int snd_es1938_playback1_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_es1938_playback2_prepare(snd_pcm_substream_t * substream) +static int snd_es1938_playback2_prepare(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct es1938 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int u, is8, mono; unsigned int size = snd_pcm_lib_buffer_bytes(substream); unsigned int count = snd_pcm_lib_period_bytes(substream); @@ -756,7 +756,7 @@ static int snd_es1938_playback2_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_es1938_playback_prepare(snd_pcm_substream_t *substream) +static int snd_es1938_playback_prepare(struct snd_pcm_substream *substream) { switch (substream->number) { case 0: @@ -768,9 +768,9 @@ static int snd_es1938_playback_prepare(snd_pcm_substream_t *substream) return -EINVAL; } -static snd_pcm_uframes_t snd_es1938_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_es1938_capture_pointer(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); size_t ptr; size_t old, new; #if 1 @@ -785,9 +785,9 @@ static snd_pcm_uframes_t snd_es1938_capture_pointer(snd_pcm_substream_t * substr return ptr >> chip->dma1_shift; } -static snd_pcm_uframes_t snd_es1938_playback1_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_es1938_playback1_pointer(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); size_t ptr; #if 1 ptr = chip->dma2_size - inw(SLIO_REG(chip, AUDIO2DMACOUNT)); @@ -797,9 +797,9 @@ static snd_pcm_uframes_t snd_es1938_playback1_pointer(snd_pcm_substream_t * subs return ptr >> chip->dma2_shift; } -static snd_pcm_uframes_t snd_es1938_playback2_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_es1938_playback2_pointer(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); size_t ptr; size_t old, new; #if 1 @@ -814,7 +814,7 @@ static snd_pcm_uframes_t snd_es1938_playback2_pointer(snd_pcm_substream_t * subs return ptr >> chip->dma1_shift; } -static snd_pcm_uframes_t snd_es1938_playback_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_es1938_playback_pointer(struct snd_pcm_substream *substream) { switch (substream->number) { case 0: @@ -826,14 +826,14 @@ static snd_pcm_uframes_t snd_es1938_playback_pointer(snd_pcm_substream_t *substr return -EINVAL; } -static int snd_es1938_capture_copy(snd_pcm_substream_t *substream, +static int snd_es1938_capture_copy(struct snd_pcm_substream *substream, int channel, snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - snd_pcm_runtime_t *runtime = substream->runtime; - es1938_t *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct es1938 *chip = snd_pcm_substream_chip(substream); pos <<= chip->dma1_shift; count <<= chip->dma1_shift; snd_assert(pos + count <= chip->dma1_size, return -EINVAL); @@ -852,8 +852,8 @@ static int snd_es1938_capture_copy(snd_pcm_substream_t *substream, /* * buffer management */ -static int snd_es1938_pcm_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t * hw_params) +static int snd_es1938_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { int err; @@ -863,7 +863,7 @@ static int snd_es1938_pcm_hw_params(snd_pcm_substream_t *substream, return 0; } -static int snd_es1938_pcm_hw_free(snd_pcm_substream_t *substream) +static int snd_es1938_pcm_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } @@ -871,11 +871,12 @@ static int snd_es1938_pcm_hw_free(snd_pcm_substream_t *substream) /* ---------------------------------------------------------------------- * Audio1 Capture (ADC) * ----------------------------------------------------------------------*/ -static snd_pcm_hardware_t snd_es1938_capture = +static struct snd_pcm_hardware snd_es1938_capture = { .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER), - .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE, + .formats = (SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE), .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000, .rate_min = 6000, .rate_max = 48000, @@ -892,12 +893,13 @@ static snd_pcm_hardware_t snd_es1938_capture = /* ----------------------------------------------------------------------- * Audio2 Playback (DAC) * -----------------------------------------------------------------------*/ -static snd_pcm_hardware_t snd_es1938_playback = +static struct snd_pcm_hardware snd_es1938_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID), - .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE, + .formats = (SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE), .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000, .rate_min = 6000, .rate_max = 48000, @@ -911,10 +913,10 @@ static snd_pcm_hardware_t snd_es1938_playback = .fifo_size = 256, }; -static int snd_es1938_capture_open(snd_pcm_substream_t * substream) +static int snd_es1938_capture_open(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct es1938 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; if (chip->playback2_substream) return -EAGAIN; @@ -926,10 +928,10 @@ static int snd_es1938_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_es1938_playback_open(snd_pcm_substream_t * substream) +static int snd_es1938_playback_open(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct es1938 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; switch (substream->number) { case 0: @@ -951,17 +953,17 @@ static int snd_es1938_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_es1938_capture_close(snd_pcm_substream_t * substream) +static int snd_es1938_capture_close(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); chip->capture_substream = NULL; return 0; } -static int snd_es1938_playback_close(snd_pcm_substream_t * substream) +static int snd_es1938_playback_close(struct snd_pcm_substream *substream) { - es1938_t *chip = snd_pcm_substream_chip(substream); + struct es1938 *chip = snd_pcm_substream_chip(substream); switch (substream->number) { case 0: @@ -977,7 +979,7 @@ static int snd_es1938_playback_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_es1938_playback_ops = { +static struct snd_pcm_ops snd_es1938_playback_ops = { .open = snd_es1938_playback_open, .close = snd_es1938_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -988,7 +990,7 @@ static snd_pcm_ops_t snd_es1938_playback_ops = { .pointer = snd_es1938_playback_pointer, }; -static snd_pcm_ops_t snd_es1938_capture_ops = { +static struct snd_pcm_ops snd_es1938_capture_ops = { .open = snd_es1938_capture_open, .close = snd_es1938_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1000,9 +1002,9 @@ static snd_pcm_ops_t snd_es1938_capture_ops = { .copy = snd_es1938_capture_copy, }; -static int __devinit snd_es1938_new_pcm(es1938_t *chip, int device) +static int __devinit snd_es1938_new_pcm(struct es1938 *chip, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if ((err = snd_pcm_new(chip->card, "es-1938-1946", device, 2, 1, &pcm)) < 0) @@ -1026,7 +1028,8 @@ static int __devinit snd_es1938_new_pcm(es1938_t *chip, int device) * *** Mixer part *** */ -static int snd_es1938_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_es1938_info_mux(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[8] = { "Mic", "Mic Master", "CD", "AOUT", @@ -1042,16 +1045,18 @@ static int snd_es1938_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * u return 0; } -static int snd_es1938_get_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_get_mux(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.enumerated.item[0] = snd_es1938_mixer_read(chip, 0x1c) & 0x07; return 0; } -static int snd_es1938_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_put_mux(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); unsigned char val = ucontrol->value.enumerated.item[0]; if (val > 7) @@ -1059,7 +1064,8 @@ static int snd_es1938_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return snd_es1938_mixer_bits(chip, 0x1c, 0x07, val) != val; } -static int snd_es1938_info_spatializer_enable(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_es1938_info_spatializer_enable(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1068,17 +1074,19 @@ static int snd_es1938_info_spatializer_enable(snd_kcontrol_t *kcontrol, snd_ctl_ return 0; } -static int snd_es1938_get_spatializer_enable(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_get_spatializer_enable(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); unsigned char val = snd_es1938_mixer_read(chip, 0x50); ucontrol->value.integer.value[0] = !!(val & 8); return 0; } -static int snd_es1938_put_spatializer_enable(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_put_spatializer_enable(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); unsigned char oval, nval; int change; nval = ucontrol->value.integer.value[0] ? 0x0c : 0x04; @@ -1091,7 +1099,8 @@ static int snd_es1938_put_spatializer_enable(snd_kcontrol_t * kcontrol, snd_ctl_ return change; } -static int snd_es1938_info_hw_volume(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_es1938_info_hw_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -1100,15 +1109,17 @@ static int snd_es1938_info_hw_volume(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_es1938_get_hw_volume(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_get_hw_volume(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = snd_es1938_mixer_read(chip, 0x61) & 0x3f; ucontrol->value.integer.value[1] = snd_es1938_mixer_read(chip, 0x63) & 0x3f; return 0; } -static int snd_es1938_info_hw_switch(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_es1938_info_hw_switch(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 2; @@ -1117,24 +1128,25 @@ static int snd_es1938_info_hw_switch(snd_kcontrol_t *kcontrol, snd_ctl_elem_info return 0; } -static int snd_es1938_get_hw_switch(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_get_hw_switch(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = !(snd_es1938_mixer_read(chip, 0x61) & 0x40); ucontrol->value.integer.value[1] = !(snd_es1938_mixer_read(chip, 0x63) & 0x40); return 0; } -static void snd_es1938_hwv_free(snd_kcontrol_t *kcontrol) +static void snd_es1938_hwv_free(struct snd_kcontrol *kcontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); chip->master_volume = NULL; chip->master_switch = NULL; chip->hw_volume = NULL; chip->hw_switch = NULL; } -static int snd_es1938_reg_bits(es1938_t *chip, unsigned char reg, +static int snd_es1938_reg_bits(struct es1938 *chip, unsigned char reg, unsigned char mask, unsigned char val) { if (reg < 0xa0) @@ -1143,7 +1155,7 @@ static int snd_es1938_reg_bits(es1938_t *chip, unsigned char reg, return snd_es1938_bits(chip, reg, mask, val); } -static int snd_es1938_reg_read(es1938_t *chip, unsigned char reg) +static int snd_es1938_reg_read(struct es1938 *chip, unsigned char reg) { if (reg < 0xa0) return snd_es1938_mixer_read(chip, reg); @@ -1157,7 +1169,8 @@ static int snd_es1938_reg_read(es1938_t *chip, unsigned char reg) .get = snd_es1938_get_single, .put = snd_es1938_put_single, \ .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) } -static int snd_es1938_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_es1938_info_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 16) & 0xff; @@ -1168,9 +1181,10 @@ static int snd_es1938_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_es1938_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_get_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0xff; int mask = (kcontrol->private_value >> 16) & 0xff; @@ -1184,9 +1198,10 @@ static int snd_es1938_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_es1938_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_put_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0xff; int mask = (kcontrol->private_value >> 16) & 0xff; @@ -1207,7 +1222,8 @@ static int snd_es1938_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .get = snd_es1938_get_double, .put = snd_es1938_put_double, \ .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) } -static int snd_es1938_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_es1938_info_double(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 24) & 0xff; @@ -1218,9 +1234,10 @@ static int snd_es1938_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_es1938_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_get_double(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); int left_reg = kcontrol->private_value & 0xff; int right_reg = (kcontrol->private_value >> 8) & 0xff; int shift_left = (kcontrol->private_value >> 16) & 0x07; @@ -1243,9 +1260,10 @@ static int snd_es1938_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_es1938_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_es1938_put_double(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - es1938_t *chip = snd_kcontrol_chip(kcontrol); + struct es1938 *chip = snd_kcontrol_chip(kcontrol); int left_reg = kcontrol->private_value & 0xff; int right_reg = (kcontrol->private_value >> 8) & 0xff; int shift_left = (kcontrol->private_value >> 16) & 0x07; @@ -1278,7 +1296,7 @@ static int snd_es1938_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return change; } -static snd_kcontrol_new_t snd_es1938_controls[] = { +static struct snd_kcontrol_new snd_es1938_controls[] = { ES1938_DOUBLE("Master Playback Volume", 0, 0x60, 0x62, 0, 0, 63, 0), ES1938_DOUBLE("Master Playback Switch", 0, 0x60, 0x62, 6, 6, 1, 1), { @@ -1341,7 +1359,7 @@ ES1938_SINGLE("Mic Boost (+26dB)", 0, 0x7d, 3, 1, 0) /* * initialize the chip - used by resume callback, too */ -static void snd_es1938_chip_init(es1938_t *chip) +static void snd_es1938_chip_init(struct es1938 *chip) { /* reset chip */ snd_es1938_reset(chip); @@ -1380,9 +1398,9 @@ static unsigned char saved_regs[SAVED_REG_SIZE+1] = { }; -static int es1938_suspend(snd_card_t *card, pm_message_t state) +static int es1938_suspend(struct snd_card *card, pm_message_t state) { - es1938_t *chip = card->pm_private_data; + struct es1938 *chip = card->pm_private_data; unsigned char *s, *d; snd_pcm_suspend_all(chip->pcm); @@ -1393,19 +1411,19 @@ static int es1938_suspend(snd_card_t *card, pm_message_t state) outb(0x00, SLIO_REG(chip, IRQCONTROL)); /* disable irqs */ if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); pci_disable_device(chip->pci); return 0; } -static int es1938_resume(snd_card_t *card) +static int es1938_resume(struct snd_card *card) { - es1938_t *chip = card->pm_private_data; + struct es1938 *chip = card->pm_private_data; unsigned char *s, *d; pci_enable_device(chip->pci); request_irq(chip->pci->irq, snd_es1938_interrupt, - SA_INTERRUPT|SA_SHIRQ, "ES1938", (void *)chip); + SA_INTERRUPT|SA_SHIRQ, "ES1938", chip); chip->irq = chip->pci->irq; snd_es1938_chip_init(chip); @@ -1422,7 +1440,7 @@ static int es1938_resume(snd_card_t *card) #endif /* CONFIG_PM */ #ifdef SUPPORT_JOYSTICK -static int __devinit snd_es1938_create_gameport(es1938_t *chip) +static int __devinit snd_es1938_create_gameport(struct es1938 *chip) { struct gameport *gp; @@ -1442,7 +1460,7 @@ static int __devinit snd_es1938_create_gameport(es1938_t *chip) return 0; } -static void snd_es1938_free_gameport(es1938_t *chip) +static void snd_es1938_free_gameport(struct es1938 *chip) { if (chip->gameport) { gameport_unregister_port(chip->gameport); @@ -1450,11 +1468,11 @@ static void snd_es1938_free_gameport(es1938_t *chip) } } #else -static inline int snd_es1938_create_gameport(es1938_t *chip) { return -ENOSYS; } -static inline void snd_es1938_free_gameport(es1938_t *chip) { } +static inline int snd_es1938_create_gameport(struct es1938 *chip) { return -ENOSYS; } +static inline void snd_es1938_free_gameport(struct es1938 *chip) { } #endif /* SUPPORT_JOYSTICK */ -static int snd_es1938_free(es1938_t *chip) +static int snd_es1938_free(struct es1938 *chip) { /* disable irqs */ outb(0x00, SLIO_REG(chip, IRQCONTROL)); @@ -1464,26 +1482,26 @@ static int snd_es1938_free(es1938_t *chip) snd_es1938_free_gameport(chip); if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); pci_release_regions(chip->pci); pci_disable_device(chip->pci); kfree(chip); return 0; } -static int snd_es1938_dev_free(snd_device_t *device) +static int snd_es1938_dev_free(struct snd_device *device) { - es1938_t *chip = device->device_data; + struct es1938 *chip = device->device_data; return snd_es1938_free(chip); } -static int __devinit snd_es1938_create(snd_card_t * card, +static int __devinit snd_es1938_create(struct snd_card *card, struct pci_dev * pci, - es1938_t ** rchip) + struct es1938 ** rchip) { - es1938_t *chip; + struct es1938 *chip; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_es1938_dev_free, }; @@ -1519,7 +1537,8 @@ static int __devinit snd_es1938_create(snd_card_t * card, chip->vc_port = pci_resource_start(pci, 2); chip->mpu_port = pci_resource_start(pci, 3); chip->game_port = pci_resource_start(pci, 4); - if (request_irq(pci->irq, snd_es1938_interrupt, SA_INTERRUPT|SA_SHIRQ, "ES1938", (void *)chip)) { + if (request_irq(pci->irq, snd_es1938_interrupt, SA_INTERRUPT|SA_SHIRQ, + "ES1938", chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_es1938_free(chip); return -EBUSY; @@ -1552,7 +1571,7 @@ static int __devinit snd_es1938_create(snd_card_t * card, * -------------------------------------------------------------------- */ static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - es1938_t *chip = dev_id; + struct es1938 *chip = dev_id; unsigned char status, audiostatus; int handled = 0; @@ -1565,9 +1584,12 @@ static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *r if (status & 0x10) { #if 0 printk("Es1938debug - AUDIO channel 1 interrupt\n"); - printk("Es1938debug - AUDIO channel 1 DMAC DMA count: %u\n", inw(SLDM_REG(chip, DMACOUNT))); - printk("Es1938debug - AUDIO channel 1 DMAC DMA base: %u\n", inl(SLDM_REG(chip, DMAADDR))); - printk("Es1938debug - AUDIO channel 1 DMAC DMA status: 0x%x\n", inl(SLDM_REG(chip, DMASTATUS))); + printk("Es1938debug - AUDIO channel 1 DMAC DMA count: %u\n", + inw(SLDM_REG(chip, DMACOUNT))); + printk("Es1938debug - AUDIO channel 1 DMAC DMA base: %u\n", + inl(SLDM_REG(chip, DMAADDR))); + printk("Es1938debug - AUDIO channel 1 DMAC DMA status: 0x%x\n", + inl(SLDM_REG(chip, DMASTATUS))); #endif /* clear irq */ handled = 1; @@ -1582,8 +1604,10 @@ static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *r if (status & 0x20) { #if 0 printk("Es1938debug - AUDIO channel 2 interrupt\n"); - printk("Es1938debug - AUDIO channel 2 DMAC DMA count: %u\n", inw(SLIO_REG(chip, AUDIO2DMACOUNT))); - printk("Es1938debug - AUDIO channel 2 DMAC DMA base: %u\n", inl(SLIO_REG(chip, AUDIO2DMAADDR))); + printk("Es1938debug - AUDIO channel 2 DMAC DMA count: %u\n", + inw(SLIO_REG(chip, AUDIO2DMACOUNT))); + printk("Es1938debug - AUDIO channel 2 DMAC DMA base: %u\n", + inl(SLIO_REG(chip, AUDIO2DMAADDR))); #endif /* clear irq */ @@ -1600,8 +1624,10 @@ static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *r snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, &chip->hw_switch->id); snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, &chip->hw_volume->id); if (!split) { - snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, &chip->master_switch->id); - snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, &chip->master_volume->id); + snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, + &chip->master_switch->id); + snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, + &chip->master_volume->id); } /* ack interrupt */ snd_es1938_mixer_write(chip, 0x66, 0x00); @@ -1623,9 +1649,9 @@ static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *r #define ES1938_DMA_SIZE 64 -static int __devinit snd_es1938_mixer(es1938_t *chip) +static int __devinit snd_es1938_mixer(struct es1938 *chip) { - snd_card_t *card; + struct snd_card *card; unsigned int idx; int err; @@ -1634,7 +1660,7 @@ static int __devinit snd_es1938_mixer(es1938_t *chip) strcpy(card->mixername, "ESS Solo-1"); for (idx = 0; idx < ARRAY_SIZE(snd_es1938_controls); idx++) { - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; kctl = snd_ctl_new1(&snd_es1938_controls[idx], chip); switch (idx) { case 0: @@ -1665,9 +1691,9 @@ static int __devinit snd_es1938_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - es1938_t *chip; - opl3_t *opl3; + struct snd_card *card; + struct es1938 *chip; + struct snd_opl3 *opl3; int idx, err; if (dev >= SNDRV_CARDS) -- cgit v1.2.3-70-g09d2 From 969165a8b5d9a5b3e3c205c312a13a1872844297 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:04:14 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI ES1968 Modules: ES1968 driver Remove xxx_t typedefs from the PCI ES1968 driver. Signed-off-by: Takashi Iwai --- sound/pci/es1968.c | 288 ++++++++++++++++++++++++++--------------------------- 1 file changed, 142 insertions(+), 146 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index 50079dc9074..021862d28f2 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c @@ -470,10 +470,6 @@ static u16 acpi_state_mask[] = { }; -typedef struct snd_es1968 es1968_t; -typedef struct snd_esschan esschan_t; -typedef struct snd_esm_memory esm_memory_t; - /* APU use in the driver */ enum snd_enum_apu_type { ESM_APU_PCM_PLAY, @@ -488,23 +484,23 @@ enum { }; /* DMA Hack! */ -struct snd_esm_memory { +struct esm_memory { struct snd_dma_buffer buf; int empty; /* status */ struct list_head list; }; /* Playback Channel */ -struct snd_esschan { +struct esschan { int running; u8 apu[4]; u8 apu_mode[4]; /* playback/capture pcm buffer */ - esm_memory_t *memory; + struct esm_memory *memory; /* capture mixer buffer */ - esm_memory_t *mixbuf; + struct esm_memory *mixbuf; unsigned int hwptr; /* current hw pointer in bytes */ unsigned int count; /* sample counter in bytes */ @@ -519,7 +515,7 @@ struct snd_esschan { int bob_freq; /* required timer frequency */ - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; /* linked list */ struct list_head list; @@ -529,7 +525,7 @@ struct snd_esschan { #endif }; -struct snd_es1968 { +struct es1968 { /* Module Config */ int total_bufsize; /* in bytes */ @@ -550,19 +546,19 @@ struct snd_es1968 { unsigned long io_port; int type; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; + struct snd_card *card; + struct snd_pcm *pcm; int do_pm; /* power-management enabled */ /* DMA memory block */ struct list_head buf_list; /* ALSA Stuff */ - ac97_t *ac97; - snd_kcontrol_t *master_switch; /* for h/w volume control */ - snd_kcontrol_t *master_volume; + struct snd_ac97 *ac97; + struct snd_kcontrol *master_switch; /* for h/w volume control */ + struct snd_kcontrol *master_volume; - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; spinlock_t reg_lock; spinlock_t ac97_lock; @@ -610,14 +606,14 @@ MODULE_DEVICE_TABLE(pci, snd_es1968_ids); *********************/ /* no spinlock */ -static void __maestro_write(es1968_t *chip, u16 reg, u16 data) +static void __maestro_write(struct es1968 *chip, u16 reg, u16 data) { outw(reg, chip->io_port + ESM_INDEX); outw(data, chip->io_port + ESM_DATA); chip->maestro_map[reg] = data; } -static inline void maestro_write(es1968_t *chip, u16 reg, u16 data) +static inline void maestro_write(struct es1968 *chip, u16 reg, u16 data) { unsigned long flags; spin_lock_irqsave(&chip->reg_lock, flags); @@ -626,7 +622,7 @@ static inline void maestro_write(es1968_t *chip, u16 reg, u16 data) } /* no spinlock */ -static u16 __maestro_read(es1968_t *chip, u16 reg) +static u16 __maestro_read(struct es1968 *chip, u16 reg) { if (READABLE_MAP & (1 << reg)) { outw(reg, chip->io_port + ESM_INDEX); @@ -635,7 +631,7 @@ static u16 __maestro_read(es1968_t *chip, u16 reg) return chip->maestro_map[reg]; } -static inline u16 maestro_read(es1968_t *chip, u16 reg) +static inline u16 maestro_read(struct es1968 *chip, u16 reg) { unsigned long flags; u16 result; @@ -646,7 +642,7 @@ static inline u16 maestro_read(es1968_t *chip, u16 reg) } /* Wait for the codec bus to be free */ -static int snd_es1968_ac97_wait(es1968_t *chip) +static int snd_es1968_ac97_wait(struct es1968 *chip) { int timeout = 100000; @@ -659,9 +655,9 @@ static int snd_es1968_ac97_wait(es1968_t *chip) return 1; /* timeout */ } -static void snd_es1968_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val) +static void snd_es1968_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - es1968_t *chip = ac97->private_data; + struct es1968 *chip = ac97->private_data; unsigned long flags; snd_es1968_ac97_wait(chip); @@ -675,10 +671,10 @@ static void snd_es1968_ac97_write(ac97_t *ac97, unsigned short reg, unsigned sho spin_unlock_irqrestore(&chip->ac97_lock, flags); } -static unsigned short snd_es1968_ac97_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_es1968_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { u16 data = 0; - es1968_t *chip = ac97->private_data; + struct es1968 *chip = ac97->private_data; unsigned long flags; snd_es1968_ac97_wait(chip); @@ -697,7 +693,7 @@ static unsigned short snd_es1968_ac97_read(ac97_t *ac97, unsigned short reg) } /* no spinlock */ -static void apu_index_set(es1968_t *chip, u16 index) +static void apu_index_set(struct es1968 *chip, u16 index) { int i; __maestro_write(chip, IDR1_CRAM_POINTER, index); @@ -708,7 +704,7 @@ static void apu_index_set(es1968_t *chip, u16 index) } /* no spinlock */ -static void apu_data_set(es1968_t *chip, u16 data) +static void apu_data_set(struct es1968 *chip, u16 data) { int i; for (i = 0; i < 1000; i++) { @@ -720,7 +716,7 @@ static void apu_data_set(es1968_t *chip, u16 data) } /* no spinlock */ -static void __apu_set_register(es1968_t *chip, u16 channel, u8 reg, u16 data) +static void __apu_set_register(struct es1968 *chip, u16 channel, u8 reg, u16 data) { snd_assert(channel < NR_APUS, return); #ifdef CONFIG_PM @@ -731,7 +727,7 @@ static void __apu_set_register(es1968_t *chip, u16 channel, u8 reg, u16 data) apu_data_set(chip, data); } -static inline void apu_set_register(es1968_t *chip, u16 channel, u8 reg, u16 data) +static inline void apu_set_register(struct es1968 *chip, u16 channel, u8 reg, u16 data) { unsigned long flags; spin_lock_irqsave(&chip->reg_lock, flags); @@ -739,7 +735,7 @@ static inline void apu_set_register(es1968_t *chip, u16 channel, u8 reg, u16 dat spin_unlock_irqrestore(&chip->reg_lock, flags); } -static u16 __apu_get_register(es1968_t *chip, u16 channel, u8 reg) +static u16 __apu_get_register(struct es1968 *chip, u16 channel, u8 reg) { snd_assert(channel < NR_APUS, return 0); reg |= (channel << 4); @@ -747,7 +743,7 @@ static u16 __apu_get_register(es1968_t *chip, u16 channel, u8 reg) return __maestro_read(chip, IDR0_DATA_PORT); } -static inline u16 apu_get_register(es1968_t *chip, u16 channel, u8 reg) +static inline u16 apu_get_register(struct es1968 *chip, u16 channel, u8 reg) { unsigned long flags; u16 v; @@ -759,7 +755,7 @@ static inline u16 apu_get_register(es1968_t *chip, u16 channel, u8 reg) #if 0 /* ASSP is not supported */ -static void assp_set_register(es1968_t *chip, u32 reg, u32 value) +static void assp_set_register(struct es1968 *chip, u32 reg, u32 value) { unsigned long flags; @@ -769,7 +765,7 @@ static void assp_set_register(es1968_t *chip, u32 reg, u32 value) spin_unlock_irqrestore(&chip->reg_lock, flags); } -static u32 assp_get_register(es1968_t *chip, u32 reg) +static u32 assp_get_register(struct es1968 *chip, u32 reg) { unsigned long flags; u32 value; @@ -784,7 +780,7 @@ static u32 assp_get_register(es1968_t *chip, u32 reg) #endif -static void wave_set_register(es1968_t *chip, u16 reg, u16 value) +static void wave_set_register(struct es1968 *chip, u16 reg, u16 value) { unsigned long flags; @@ -794,7 +790,7 @@ static void wave_set_register(es1968_t *chip, u16 reg, u16 value) spin_unlock_irqrestore(&chip->reg_lock, flags); } -static u16 wave_get_register(es1968_t *chip, u16 reg) +static u16 wave_get_register(struct es1968 *chip, u16 reg) { unsigned long flags; u16 value; @@ -811,7 +807,7 @@ static u16 wave_get_register(es1968_t *chip, u16 reg) * Bob the Timer! * *******************/ -static void snd_es1968_bob_stop(es1968_t *chip) +static void snd_es1968_bob_stop(struct es1968 *chip) { u16 reg; @@ -823,7 +819,7 @@ static void snd_es1968_bob_stop(es1968_t *chip) __maestro_write(chip, 0x17, reg); } -static void snd_es1968_bob_start(es1968_t *chip) +static void snd_es1968_bob_start(struct es1968 *chip) { int prescale; int divide; @@ -863,7 +859,7 @@ static void snd_es1968_bob_start(es1968_t *chip) } /* call with substream spinlock */ -static void snd_es1968_bob_inc(es1968_t *chip, int freq) +static void snd_es1968_bob_inc(struct es1968 *chip, int freq) { chip->bobclient++; if (chip->bobclient == 1) { @@ -877,7 +873,7 @@ static void snd_es1968_bob_inc(es1968_t *chip, int freq) } /* call with substream spinlock */ -static void snd_es1968_bob_dec(es1968_t *chip) +static void snd_es1968_bob_dec(struct es1968 *chip) { chip->bobclient--; if (chip->bobclient <= 0) @@ -887,7 +883,7 @@ static void snd_es1968_bob_dec(es1968_t *chip) struct list_head *p; int max_freq = ESM_BOB_FREQ; list_for_each(p, &chip->substream_list) { - esschan_t *es = list_entry(p, esschan_t, list); + struct esschan *es = list_entry(p, struct esschan, list); if (max_freq < es->bob_freq) max_freq = es->bob_freq; } @@ -900,8 +896,8 @@ static void snd_es1968_bob_dec(es1968_t *chip) } static int -snd_es1968_calc_bob_rate(es1968_t *chip, esschan_t *es, - snd_pcm_runtime_t *runtime) +snd_es1968_calc_bob_rate(struct es1968 *chip, struct esschan *es, + struct snd_pcm_runtime *runtime) { /* we acquire 4 interrupts per period for precise control.. */ int freq = runtime->rate * 4; @@ -922,7 +918,7 @@ snd_es1968_calc_bob_rate(es1968_t *chip, esschan_t *es, * PCM Part * *************/ -static u32 snd_es1968_compute_rate(es1968_t *chip, u32 freq) +static u32 snd_es1968_compute_rate(struct es1968 *chip, u32 freq) { u32 rate = (freq << 16) / chip->clock; #if 0 /* XXX: do we need this? */ @@ -934,7 +930,7 @@ static u32 snd_es1968_compute_rate(es1968_t *chip, u32 freq) /* get current pointer */ static inline unsigned int -snd_es1968_get_dma_ptr(es1968_t *chip, esschan_t *es) +snd_es1968_get_dma_ptr(struct es1968 *chip, struct esschan *es) { unsigned int offset; @@ -945,7 +941,7 @@ snd_es1968_get_dma_ptr(es1968_t *chip, esschan_t *es) return (offset & 0xFFFE); /* hardware is in words */ } -static void snd_es1968_apu_set_freq(es1968_t *chip, int apu, int freq) +static void snd_es1968_apu_set_freq(struct es1968 *chip, int apu, int freq) { apu_set_register(chip, apu, 2, (apu_get_register(chip, apu, 2) & 0x00FF) | @@ -954,7 +950,7 @@ static void snd_es1968_apu_set_freq(es1968_t *chip, int apu, int freq) } /* spin lock held */ -static inline void snd_es1968_trigger_apu(es1968_t *esm, int apu, int mode) +static inline void snd_es1968_trigger_apu(struct es1968 *esm, int apu, int mode) { /* set the APU mode */ __apu_set_register(esm, apu, 0, @@ -962,7 +958,7 @@ static inline void snd_es1968_trigger_apu(es1968_t *esm, int apu, int mode) (mode << 4)); } -static void snd_es1968_pcm_start(es1968_t *chip, esschan_t *es) +static void snd_es1968_pcm_start(struct es1968 *chip, struct esschan *es) { spin_lock(&chip->reg_lock); __apu_set_register(chip, es->apu[0], 5, es->base[0]); @@ -982,7 +978,7 @@ static void snd_es1968_pcm_start(es1968_t *chip, esschan_t *es) spin_unlock(&chip->reg_lock); } -static void snd_es1968_pcm_stop(es1968_t *chip, esschan_t *es) +static void snd_es1968_pcm_stop(struct es1968 *chip, struct esschan *es) { spin_lock(&chip->reg_lock); snd_es1968_trigger_apu(chip, es->apu[0], 0); @@ -995,7 +991,7 @@ static void snd_es1968_pcm_stop(es1968_t *chip, esschan_t *es) } /* set the wavecache control reg */ -static void snd_es1968_program_wavecache(es1968_t *chip, esschan_t *es, +static void snd_es1968_program_wavecache(struct es1968 *chip, struct esschan *es, int channel, u32 addr, int capture) { u32 tmpval = (addr - 0x10) & 0xFFF8; @@ -1016,8 +1012,8 @@ static void snd_es1968_program_wavecache(es1968_t *chip, esschan_t *es, } -static void snd_es1968_playback_setup(es1968_t *chip, esschan_t *es, - snd_pcm_runtime_t *runtime) +static void snd_es1968_playback_setup(struct es1968 *chip, struct esschan *es, + struct snd_pcm_runtime *runtime) { u32 pa; int high_apu = 0; @@ -1119,7 +1115,7 @@ static void snd_es1968_playback_setup(es1968_t *chip, esschan_t *es, } -static void init_capture_apu(es1968_t *chip, esschan_t *es, int channel, +static void init_capture_apu(struct es1968 *chip, struct esschan *es, int channel, unsigned int pa, unsigned int bsize, int mode, int route) { @@ -1164,8 +1160,8 @@ static void init_capture_apu(es1968_t *chip, esschan_t *es, int channel, apu_set_register(chip, apu, 0, 0x400F); } -static void snd_es1968_capture_setup(es1968_t *chip, esschan_t *es, - snd_pcm_runtime_t *runtime) +static void snd_es1968_capture_setup(struct es1968 *chip, struct esschan *es, + struct snd_pcm_runtime *runtime) { int size; u32 freq; @@ -1233,11 +1229,11 @@ static void snd_es1968_capture_setup(es1968_t *chip, esschan_t *es, * ALSA Interface * *******************/ -static int snd_es1968_pcm_prepare(snd_pcm_substream_t *substream) +static int snd_es1968_pcm_prepare(struct snd_pcm_substream *substream) { - es1968_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - esschan_t *es = runtime->private_data; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct esschan *es = runtime->private_data; es->dma_size = snd_pcm_lib_buffer_bytes(substream); es->frag_size = snd_pcm_lib_period_bytes(substream); @@ -1265,10 +1261,10 @@ static int snd_es1968_pcm_prepare(snd_pcm_substream_t *substream) return 0; } -static int snd_es1968_pcm_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_es1968_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - es1968_t *chip = snd_pcm_substream_chip(substream); - esschan_t *es = substream->runtime->private_data; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct esschan *es = substream->runtime->private_data; spin_lock(&chip->substream_lock); switch (cmd) { @@ -1295,10 +1291,10 @@ static int snd_es1968_pcm_trigger(snd_pcm_substream_t *substream, int cmd) return 0; } -static snd_pcm_uframes_t snd_es1968_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_es1968_pcm_pointer(struct snd_pcm_substream *substream) { - es1968_t *chip = snd_pcm_substream_chip(substream); - esschan_t *es = substream->runtime->private_data; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct esschan *es = substream->runtime->private_data; unsigned int ptr; ptr = snd_es1968_get_dma_ptr(chip, es) << es->wav_shift; @@ -1306,7 +1302,7 @@ static snd_pcm_uframes_t snd_es1968_pcm_pointer(snd_pcm_substream_t *substream) return bytes_to_frames(substream->runtime, ptr % es->dma_size); } -static snd_pcm_hardware_t snd_es1968_playback = { +static struct snd_pcm_hardware snd_es1968_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_INTERLEAVED | @@ -1327,7 +1323,7 @@ static snd_pcm_hardware_t snd_es1968_playback = { .fifo_size = 0, }; -static snd_pcm_hardware_t snd_es1968_capture = { +static struct snd_pcm_hardware snd_es1968_capture = { .info = (SNDRV_PCM_INFO_NONINTERLEAVED | SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -1355,14 +1351,14 @@ static snd_pcm_hardware_t snd_es1968_capture = { /* Because the Maestro can only take addresses relative to the PCM base address register :( */ -static int calc_available_memory_size(es1968_t *chip) +static int calc_available_memory_size(struct es1968 *chip) { struct list_head *p; int max_size = 0; down(&chip->memory_mutex); list_for_each(p, &chip->buf_list) { - esm_memory_t *buf = list_entry(p, esm_memory_t, list); + struct esm_memory *buf = list_entry(p, struct esm_memory, list); if (buf->empty && buf->buf.bytes > max_size) max_size = buf->buf.bytes; } @@ -1373,15 +1369,15 @@ static int calc_available_memory_size(es1968_t *chip) } /* allocate a new memory chunk with the specified size */ -static esm_memory_t *snd_es1968_new_memory(es1968_t *chip, int size) +static struct esm_memory *snd_es1968_new_memory(struct es1968 *chip, int size) { - esm_memory_t *buf; + struct esm_memory *buf; struct list_head *p; size = ((size + ESM_MEM_ALIGN - 1) / ESM_MEM_ALIGN) * ESM_MEM_ALIGN; down(&chip->memory_mutex); list_for_each(p, &chip->buf_list) { - buf = list_entry(p, esm_memory_t, list); + buf = list_entry(p, struct esm_memory, list); if (buf->empty && buf->buf.bytes >= size) goto __found; } @@ -1390,7 +1386,7 @@ static esm_memory_t *snd_es1968_new_memory(es1968_t *chip, int size) __found: if (buf->buf.bytes > size) { - esm_memory_t *chunk = kmalloc(sizeof(*chunk), GFP_KERNEL); + struct esm_memory *chunk = kmalloc(sizeof(*chunk), GFP_KERNEL); if (chunk == NULL) { up(&chip->memory_mutex); return NULL; @@ -1409,14 +1405,14 @@ __found: } /* free a memory chunk */ -static void snd_es1968_free_memory(es1968_t *chip, esm_memory_t *buf) +static void snd_es1968_free_memory(struct es1968 *chip, struct esm_memory *buf) { - esm_memory_t *chunk; + struct esm_memory *chunk; down(&chip->memory_mutex); buf->empty = 1; if (buf->list.prev != &chip->buf_list) { - chunk = list_entry(buf->list.prev, esm_memory_t, list); + chunk = list_entry(buf->list.prev, struct esm_memory, list); if (chunk->empty) { chunk->buf.bytes += buf->buf.bytes; list_del(&buf->list); @@ -1425,7 +1421,7 @@ static void snd_es1968_free_memory(es1968_t *chip, esm_memory_t *buf) } } if (buf->list.next != &chip->buf_list) { - chunk = list_entry(buf->list.next, esm_memory_t, list); + chunk = list_entry(buf->list.next, struct esm_memory, list); if (chunk->empty) { buf->buf.bytes += chunk->buf.bytes; list_del(&chunk->list); @@ -1435,7 +1431,7 @@ static void snd_es1968_free_memory(es1968_t *chip, esm_memory_t *buf) up(&chip->memory_mutex); } -static void snd_es1968_free_dmabuf(es1968_t *chip) +static void snd_es1968_free_dmabuf(struct es1968 *chip) { struct list_head *p; @@ -1443,17 +1439,17 @@ static void snd_es1968_free_dmabuf(es1968_t *chip) return; snd_dma_reserve_buf(&chip->dma, snd_dma_pci_buf_id(chip->pci)); while ((p = chip->buf_list.next) != &chip->buf_list) { - esm_memory_t *chunk = list_entry(p, esm_memory_t, list); + struct esm_memory *chunk = list_entry(p, struct esm_memory, list); list_del(p); kfree(chunk); } } static int __devinit -snd_es1968_init_dmabuf(es1968_t *chip) +snd_es1968_init_dmabuf(struct es1968 *chip) { int err; - esm_memory_t *chunk; + struct esm_memory *chunk; chip->dma.dev.type = SNDRV_DMA_TYPE_DEV; chip->dma.dev.dev = snd_dma_pci_data(chip->pci); @@ -1493,12 +1489,12 @@ snd_es1968_init_dmabuf(es1968_t *chip) /* setup the dma_areas */ /* buffer is extracted from the pre-allocated memory chunk */ -static int snd_es1968_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *hw_params) +static int snd_es1968_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - es1968_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - esschan_t *chan = runtime->private_data; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct esschan *chan = runtime->private_data; int size = params_buffer_bytes(hw_params); if (chan->memory) { @@ -1518,11 +1514,11 @@ static int snd_es1968_hw_params(snd_pcm_substream_t *substream, } /* remove dma areas if allocated */ -static int snd_es1968_hw_free(snd_pcm_substream_t * substream) +static int snd_es1968_hw_free(struct snd_pcm_substream *substream) { - es1968_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - esschan_t *chan; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct esschan *chan; if (runtime->private_data == NULL) return 0; @@ -1538,7 +1534,7 @@ static int snd_es1968_hw_free(snd_pcm_substream_t * substream) /* * allocate APU pair */ -static int snd_es1968_alloc_apu_pair(es1968_t *chip, int type) +static int snd_es1968_alloc_apu_pair(struct es1968 *chip, int type) { int apu; @@ -1555,7 +1551,7 @@ static int snd_es1968_alloc_apu_pair(es1968_t *chip, int type) /* * release APU pair */ -static void snd_es1968_free_apu_pair(es1968_t *chip, int apu) +static void snd_es1968_free_apu_pair(struct es1968 *chip, int apu) { chip->apu[apu] = chip->apu[apu + 1] = ESM_APU_FREE; } @@ -1565,11 +1561,11 @@ static void snd_es1968_free_apu_pair(es1968_t *chip, int apu) * PCM open/close * ******************/ -static int snd_es1968_playback_open(snd_pcm_substream_t *substream) +static int snd_es1968_playback_open(struct snd_pcm_substream *substream) { - es1968_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - esschan_t *es; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct esschan *es; int apu1; /* search 2 APUs */ @@ -1606,11 +1602,11 @@ static int snd_es1968_playback_open(snd_pcm_substream_t *substream) return 0; } -static int snd_es1968_capture_open(snd_pcm_substream_t *substream) +static int snd_es1968_capture_open(struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; - es1968_t *chip = snd_pcm_substream_chip(substream); - esschan_t *es; + struct snd_pcm_runtime *runtime = substream->runtime; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct esschan *es; int apu1, apu2; apu1 = snd_es1968_alloc_apu_pair(chip, ESM_APU_PCM_CAPTURE); @@ -1665,10 +1661,10 @@ static int snd_es1968_capture_open(snd_pcm_substream_t *substream) return 0; } -static int snd_es1968_playback_close(snd_pcm_substream_t * substream) +static int snd_es1968_playback_close(struct snd_pcm_substream *substream) { - es1968_t *chip = snd_pcm_substream_chip(substream); - esschan_t *es; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct esschan *es; if (substream->runtime->private_data == NULL) return 0; @@ -1682,10 +1678,10 @@ static int snd_es1968_playback_close(snd_pcm_substream_t * substream) return 0; } -static int snd_es1968_capture_close(snd_pcm_substream_t * substream) +static int snd_es1968_capture_close(struct snd_pcm_substream *substream) { - es1968_t *chip = snd_pcm_substream_chip(substream); - esschan_t *es; + struct es1968 *chip = snd_pcm_substream_chip(substream); + struct esschan *es; if (substream->runtime->private_data == NULL) return 0; @@ -1701,7 +1697,7 @@ static int snd_es1968_capture_close(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_ops_t snd_es1968_playback_ops = { +static struct snd_pcm_ops snd_es1968_playback_ops = { .open = snd_es1968_playback_open, .close = snd_es1968_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1712,7 +1708,7 @@ static snd_pcm_ops_t snd_es1968_playback_ops = { .pointer = snd_es1968_pcm_pointer, }; -static snd_pcm_ops_t snd_es1968_capture_ops = { +static struct snd_pcm_ops snd_es1968_capture_ops = { .open = snd_es1968_capture_open, .close = snd_es1968_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1729,11 +1725,11 @@ static snd_pcm_ops_t snd_es1968_capture_ops = { */ #define CLOCK_MEASURE_BUFSIZE 16768 /* enough large for a single shot */ -static void __devinit es1968_measure_clock(es1968_t *chip) +static void __devinit es1968_measure_clock(struct es1968 *chip) { int i, apu; unsigned int pa, offset, t; - esm_memory_t *memory; + struct esm_memory *memory; struct timeval start_time, stop_time; if (chip->clock == 0) @@ -1824,17 +1820,17 @@ static void __devinit es1968_measure_clock(es1968_t *chip) /* */ -static void snd_es1968_pcm_free(snd_pcm_t *pcm) +static void snd_es1968_pcm_free(struct snd_pcm *pcm) { - es1968_t *esm = pcm->private_data; + struct es1968 *esm = pcm->private_data; snd_es1968_free_dmabuf(esm); esm->pcm = NULL; } static int __devinit -snd_es1968_pcm(es1968_t *chip, int device) +snd_es1968_pcm(struct es1968 *chip, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; /* get DMA buffer */ @@ -1870,11 +1866,11 @@ snd_es1968_pcm(es1968_t *chip, int device) /* * update pointer */ -static void snd_es1968_update_pcm(es1968_t *chip, esschan_t *es) +static void snd_es1968_update_pcm(struct es1968 *chip, struct esschan *es) { unsigned int hwptr; unsigned int diff; - snd_pcm_substream_t *subs = es->substream; + struct snd_pcm_substream *subs = es->substream; if (subs == NULL || !es->running) return; @@ -1899,7 +1895,7 @@ static void snd_es1968_update_pcm(es1968_t *chip, esschan_t *es) */ static void es1968_update_hw_volume(unsigned long private_data) { - es1968_t *chip = (es1968_t *) private_data; + struct es1968 *chip = (struct es1968 *) private_data; int x, val; unsigned long flags; @@ -1959,7 +1955,7 @@ static void es1968_update_hw_volume(unsigned long private_data) */ static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - es1968_t *chip = dev_id; + struct es1968 *chip = dev_id; u32 event; if (!(event = inb(chip->io_port + 0x1A))) @@ -1981,7 +1977,7 @@ static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *r struct list_head *p; spin_lock(&chip->substream_lock); list_for_each(p, &chip->substream_list) { - esschan_t *es = list_entry(p, esschan_t, list); + struct esschan *es = list_entry(p, struct esschan, list); if (es->running) snd_es1968_update_pcm(chip, es); } @@ -2002,13 +1998,13 @@ static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *r */ static int __devinit -snd_es1968_mixer(es1968_t *chip) +snd_es1968_mixer(struct es1968 *chip) { - ac97_bus_t *pbus; - ac97_template_t ac97; - snd_ctl_elem_id_t id; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; + struct snd_ctl_elem_id id; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_es1968_ac97_write, .read = snd_es1968_ac97_read, }; @@ -2039,7 +2035,7 @@ snd_es1968_mixer(es1968_t *chip) * reset ac97 codec */ -static void snd_es1968_ac97_reset(es1968_t *chip) +static void snd_es1968_ac97_reset(struct es1968 *chip) { unsigned long ioaddr = chip->io_port; @@ -2144,7 +2140,7 @@ static void snd_es1968_ac97_reset(es1968_t *chip) outb(0x3f, ioaddr+0xd0); } -static void snd_es1968_reset(es1968_t *chip) +static void snd_es1968_reset(struct es1968 *chip) { /* Reset */ outw(ESM_RESET_MAESTRO | ESM_RESET_DIRECTSOUND, @@ -2157,7 +2153,7 @@ static void snd_es1968_reset(es1968_t *chip) /* * power management */ -static void snd_es1968_set_acpi(es1968_t *chip, int state) +static void snd_es1968_set_acpi(struct es1968 *chip, int state) { u16 active_mask = acpi_state_mask[state]; @@ -2172,7 +2168,7 @@ static void snd_es1968_set_acpi(es1968_t *chip, int state) /* * initialize maestro chip */ -static void snd_es1968_chip_init(es1968_t *chip) +static void snd_es1968_chip_init(struct es1968 *chip) { struct pci_dev *pci = chip->pci; int i; @@ -2369,7 +2365,7 @@ static void snd_es1968_chip_init(es1968_t *chip) } /* Enable IRQ's */ -static void snd_es1968_start_irq(es1968_t *chip) +static void snd_es1968_start_irq(struct es1968 *chip) { unsigned short w; w = ESM_HIRQ_DSIE | ESM_HIRQ_HW_VOLUME; @@ -2382,9 +2378,9 @@ static void snd_es1968_start_irq(es1968_t *chip) /* * PM support */ -static int es1968_suspend(snd_card_t *card, pm_message_t state) +static int es1968_suspend(struct snd_card *card, pm_message_t state) { - es1968_t *chip = card->pm_private_data; + struct es1968 *chip = card->pm_private_data; if (! chip->do_pm) return 0; @@ -2398,9 +2394,9 @@ static int es1968_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int es1968_resume(snd_card_t *card) +static int es1968_resume(struct snd_card *card) { - es1968_t *chip = card->pm_private_data; + struct es1968 *chip = card->pm_private_data; struct list_head *p; if (! chip->do_pm) @@ -2423,7 +2419,7 @@ static int es1968_resume(snd_card_t *card) snd_ac97_resume(chip->ac97); list_for_each(p, &chip->substream_list) { - esschan_t *es = list_entry(p, esschan_t, list); + struct esschan *es = list_entry(p, struct esschan, list); switch (es->mode) { case ESM_MODE_PLAY: snd_es1968_playback_setup(chip, es, es->substream->runtime); @@ -2445,7 +2441,7 @@ static int es1968_resume(snd_card_t *card) #ifdef SUPPORT_JOYSTICK #define JOYSTICK_ADDR 0x200 -static int __devinit snd_es1968_create_gameport(es1968_t *chip, int dev) +static int __devinit snd_es1968_create_gameport(struct es1968 *chip, int dev) { struct gameport *gp; struct resource *r; @@ -2479,7 +2475,7 @@ static int __devinit snd_es1968_create_gameport(es1968_t *chip, int dev) return 0; } -static void snd_es1968_free_gameport(es1968_t *chip) +static void snd_es1968_free_gameport(struct es1968 *chip) { if (chip->gameport) { struct resource *r = gameport_get_port_data(chip->gameport); @@ -2491,11 +2487,11 @@ static void snd_es1968_free_gameport(es1968_t *chip) } } #else -static inline int snd_es1968_create_gameport(es1968_t *chip, int dev) { return -ENOSYS; } -static inline void snd_es1968_free_gameport(es1968_t *chip) { } +static inline int snd_es1968_create_gameport(struct es1968 *chip, int dev) { return -ENOSYS; } +static inline void snd_es1968_free_gameport(struct es1968 *chip) { } #endif -static int snd_es1968_free(es1968_t *chip) +static int snd_es1968_free(struct es1968 *chip) { if (chip->io_port) { synchronize_irq(chip->irq); @@ -2515,9 +2511,9 @@ static int snd_es1968_free(es1968_t *chip) return 0; } -static int snd_es1968_dev_free(snd_device_t *device) +static int snd_es1968_dev_free(struct snd_device *device) { - es1968_t *chip = device->device_data; + struct es1968 *chip = device->device_data; return snd_es1968_free(chip); } @@ -2539,19 +2535,19 @@ static struct ess_device_list mpu_blacklist[] __devinitdata = { { TYPE_MAESTRO2, 0x125d }, }; -static int __devinit snd_es1968_create(snd_card_t * card, +static int __devinit snd_es1968_create(struct snd_card *card, struct pci_dev *pci, int total_bufsize, int play_streams, int capt_streams, int chip_type, int do_pm, - es1968_t **chip_ret) + struct es1968 **chip_ret) { - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_es1968_dev_free, }; - es1968_t *chip; + struct es1968 *chip; int i, err; *chip_ret = NULL; @@ -2657,8 +2653,8 @@ static int __devinit snd_es1968_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - es1968_t *chip; + struct snd_card *card; + struct es1968 *chip; unsigned int i; int err; -- cgit v1.2.3-70-g09d2 From a5f22156e03d40f1da24a1b19a8a84c4fb3208f2 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:04:28 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI FM801 Modules: FM801 driver Remove xxx_t typedefs from the PCI FM801 driver. Signed-off-by: Takashi Iwai --- sound/pci/fm801.c | 229 +++++++++++++++++++++++++++++------------------------- 1 file changed, 121 insertions(+), 108 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index 261061b76c7..a57aca72e91 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c @@ -147,9 +147,7 @@ MODULE_PARM_DESC(tea575x_tuner, "Enable TEA575x tuner."); */ -typedef struct _snd_fm801 fm801_t; - -struct _snd_fm801 { +struct fm801 { int irq; unsigned long port; /* I/O port number */ @@ -172,24 +170,24 @@ struct _snd_fm801 { unsigned int cap_size; unsigned int cap_pos; - ac97_bus_t *ac97_bus; - ac97_t *ac97; - ac97_t *ac97_sec; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97; + struct snd_ac97 *ac97_sec; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; - snd_rawmidi_t *rmidi; - snd_pcm_substream_t *playback_substream; - snd_pcm_substream_t *capture_substream; + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_rawmidi *rmidi; + struct snd_pcm_substream *playback_substream; + struct snd_pcm_substream *capture_substream; unsigned int p_dma_size; unsigned int c_dma_size; spinlock_t reg_lock; - snd_info_entry_t *proc_entry; + struct snd_info_entry *proc_entry; #ifdef TEA575X_RADIO - tea575x_t tea; + struct snd_tea575x tea; #endif }; @@ -205,7 +203,7 @@ MODULE_DEVICE_TABLE(pci, snd_fm801_ids); * common I/O routines */ -static int snd_fm801_update_bits(fm801_t *chip, unsigned short reg, +static int snd_fm801_update_bits(struct fm801 *chip, unsigned short reg, unsigned short mask, unsigned short value) { int change; @@ -222,11 +220,11 @@ static int snd_fm801_update_bits(fm801_t *chip, unsigned short reg, return change; } -static void snd_fm801_codec_write(ac97_t *ac97, +static void snd_fm801_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - fm801_t *chip = ac97->private_data; + struct fm801 *chip = ac97->private_data; int idx; /* @@ -255,9 +253,9 @@ static void snd_fm801_codec_write(ac97_t *ac97, snd_printk(KERN_ERR "AC'97 interface #%d is busy (2)\n", ac97->num); } -static unsigned short snd_fm801_codec_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_fm801_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - fm801_t *chip = ac97->private_data; + struct fm801 *chip = ac97->private_data; int idx; /* @@ -301,7 +299,7 @@ static unsigned int rates[] = { 38400, 44100, 48000 }; -static snd_pcm_hw_constraint_list_t hw_constraints_rates = { +static struct snd_pcm_hw_constraint_list hw_constraints_rates = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, @@ -313,7 +311,7 @@ static unsigned int channels[] = { #define CHANNELS sizeof(channels) / sizeof(channels[0]) -static snd_pcm_hw_constraint_list_t hw_constraints_channels = { +static struct snd_pcm_hw_constraint_list hw_constraints_channels = { .count = CHANNELS, .list = channels, .mask = 0, @@ -338,10 +336,10 @@ static unsigned short snd_fm801_rate_bits(unsigned int rate) * PCM part */ -static int snd_fm801_playback_trigger(snd_pcm_substream_t * substream, +static int snd_fm801_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - fm801_t *chip = snd_pcm_substream_chip(substream); + struct fm801 *chip = snd_pcm_substream_chip(substream); spin_lock(&chip->reg_lock); switch (cmd) { @@ -371,10 +369,10 @@ static int snd_fm801_playback_trigger(snd_pcm_substream_t * substream, return 0; } -static int snd_fm801_capture_trigger(snd_pcm_substream_t * substream, +static int snd_fm801_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - fm801_t *chip = snd_pcm_substream_chip(substream); + struct fm801 *chip = snd_pcm_substream_chip(substream); spin_lock(&chip->reg_lock); switch (cmd) { @@ -404,21 +402,21 @@ static int snd_fm801_capture_trigger(snd_pcm_substream_t * substream, return 0; } -static int snd_fm801_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_fm801_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_fm801_hw_free(snd_pcm_substream_t * substream) +static int snd_fm801_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static int snd_fm801_playback_prepare(snd_pcm_substream_t * substream) +static int snd_fm801_playback_prepare(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct fm801 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; chip->ply_size = snd_pcm_lib_buffer_bytes(substream); chip->ply_count = snd_pcm_lib_period_bytes(substream); @@ -447,10 +445,10 @@ static int snd_fm801_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_fm801_capture_prepare(snd_pcm_substream_t * substream) +static int snd_fm801_capture_prepare(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct fm801 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; chip->cap_size = snd_pcm_lib_buffer_bytes(substream); chip->cap_count = snd_pcm_lib_period_bytes(substream); @@ -473,9 +471,9 @@ static int snd_fm801_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_fm801_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_fm801_playback_pointer(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); + struct fm801 *chip = snd_pcm_substream_chip(substream); size_t ptr; if (!(chip->ply_ctrl & FM801_START)) @@ -490,9 +488,9 @@ static snd_pcm_uframes_t snd_fm801_playback_pointer(snd_pcm_substream_t * substr return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_uframes_t snd_fm801_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_fm801_capture_pointer(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); + struct fm801 *chip = snd_pcm_substream_chip(substream); size_t ptr; if (!(chip->cap_ctrl & FM801_START)) @@ -509,7 +507,7 @@ static snd_pcm_uframes_t snd_fm801_capture_pointer(snd_pcm_substream_t * substre static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - fm801_t *chip = dev_id; + struct fm801 *chip = dev_id; unsigned short status; unsigned int tmp; @@ -555,7 +553,7 @@ static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *re return IRQ_HANDLED; } -static snd_pcm_hardware_t snd_fm801_playback = +static struct snd_pcm_hardware snd_fm801_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -575,7 +573,7 @@ static snd_pcm_hardware_t snd_fm801_playback = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_fm801_capture = +static struct snd_pcm_hardware snd_fm801_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -595,55 +593,59 @@ static snd_pcm_hardware_t snd_fm801_capture = .fifo_size = 0, }; -static int snd_fm801_playback_open(snd_pcm_substream_t * substream) +static int snd_fm801_playback_open(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct fm801 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; chip->playback_substream = substream; runtime->hw = snd_fm801_playback; - snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates); + snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates); if (chip->multichannel) { runtime->hw.channels_max = 6; - snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, &hw_constraints_channels); + snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_CHANNELS, + &hw_constraints_channels); } if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; return 0; } -static int snd_fm801_capture_open(snd_pcm_substream_t * substream) +static int snd_fm801_capture_open(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct fm801 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; chip->capture_substream = substream; runtime->hw = snd_fm801_capture; - snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates); + snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates); if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; return 0; } -static int snd_fm801_playback_close(snd_pcm_substream_t * substream) +static int snd_fm801_playback_close(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); + struct fm801 *chip = snd_pcm_substream_chip(substream); chip->playback_substream = NULL; return 0; } -static int snd_fm801_capture_close(snd_pcm_substream_t * substream) +static int snd_fm801_capture_close(struct snd_pcm_substream *substream) { - fm801_t *chip = snd_pcm_substream_chip(substream); + struct fm801 *chip = snd_pcm_substream_chip(substream); chip->capture_substream = NULL; return 0; } -static snd_pcm_ops_t snd_fm801_playback_ops = { +static struct snd_pcm_ops snd_fm801_playback_ops = { .open = snd_fm801_playback_open, .close = snd_fm801_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -654,7 +656,7 @@ static snd_pcm_ops_t snd_fm801_playback_ops = { .pointer = snd_fm801_playback_pointer, }; -static snd_pcm_ops_t snd_fm801_capture_ops = { +static struct snd_pcm_ops snd_fm801_capture_ops = { .open = snd_fm801_capture_open, .close = snd_fm801_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -665,9 +667,9 @@ static snd_pcm_ops_t snd_fm801_capture_ops = { .pointer = snd_fm801_capture_pointer, }; -static int __devinit snd_fm801_pcm(fm801_t *chip, int device, snd_pcm_t ** rpcm) +static int __devinit snd_fm801_pcm(struct fm801 *chip, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if (rpcm) @@ -703,9 +705,9 @@ static int __devinit snd_fm801_pcm(fm801_t *chip, int device, snd_pcm_t ** rpcm) #define TEA_256PCS_WRITE_ENABLE 2 /* inverted */ #define TEA_256PCS_BUS_CLOCK 3 -static void snd_fm801_tea575x_256pcs_write(tea575x_t *tea, unsigned int val) +static void snd_fm801_tea575x_256pcs_write(struct snd_tea575x *tea, unsigned int val) { - fm801_t *chip = tea->private_data; + struct fm801 *chip = tea->private_data; unsigned short reg; int i = 25; @@ -747,9 +749,9 @@ static void snd_fm801_tea575x_256pcs_write(tea575x_t *tea, unsigned int val) spin_unlock_irq(&chip->reg_lock); } -static unsigned int snd_fm801_tea575x_256pcs_read(tea575x_t *tea) +static unsigned int snd_fm801_tea575x_256pcs_read(struct snd_tea575x *tea) { - fm801_t *chip = tea->private_data; + struct fm801 *chip = tea->private_data; unsigned short reg; unsigned int val = 0; int i; @@ -791,9 +793,9 @@ static unsigned int snd_fm801_tea575x_256pcs_read(tea575x_t *tea) #define TEA_256PCPR_DATA 1 #define TEA_256PCPR_WRITE_ENABLE 2 /* inverted */ -static void snd_fm801_tea575x_256pcpr_write(tea575x_t *tea, unsigned int val) +static void snd_fm801_tea575x_256pcpr_write(struct snd_tea575x *tea, unsigned int val) { - fm801_t *chip = tea->private_data; + struct fm801 *chip = tea->private_data; unsigned short reg; int i = 25; @@ -835,9 +837,9 @@ static void snd_fm801_tea575x_256pcpr_write(tea575x_t *tea, unsigned int val) spin_unlock_irq(&chip->reg_lock); } -static unsigned int snd_fm801_tea575x_256pcpr_read(tea575x_t *tea) +static unsigned int snd_fm801_tea575x_256pcpr_read(struct snd_tea575x *tea) { - fm801_t *chip = tea->private_data; + struct fm801 *chip = tea->private_data; unsigned short reg; unsigned int val = 0; int i; @@ -879,9 +881,9 @@ static unsigned int snd_fm801_tea575x_256pcpr_read(tea575x_t *tea) #define TEA_64PCR_WRITE_ENABLE 1 /* inverted */ #define TEA_64PCR_DATA 2 -static void snd_fm801_tea575x_64pcr_write(tea575x_t *tea, unsigned int val) +static void snd_fm801_tea575x_64pcr_write(struct snd_tea575x *tea, unsigned int val) { - fm801_t *chip = tea->private_data; + struct fm801 *chip = tea->private_data; unsigned short reg; int i = 25; @@ -923,9 +925,9 @@ static void snd_fm801_tea575x_64pcr_write(tea575x_t *tea, unsigned int val) spin_unlock_irq(&chip->reg_lock); } -static unsigned int snd_fm801_tea575x_64pcr_read(tea575x_t *tea) +static unsigned int snd_fm801_tea575x_64pcr_read(struct snd_tea575x *tea) { - fm801_t *chip = tea->private_data; + struct fm801 *chip = tea->private_data; unsigned short reg; unsigned int val = 0; int i; @@ -990,7 +992,8 @@ static struct snd_tea575x_ops snd_fm801_tea_ops[3] = { .get = snd_fm801_get_single, .put = snd_fm801_put_single, \ .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) } -static int snd_fm801_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_fm801_info_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 16) & 0xff; @@ -1001,9 +1004,10 @@ static int snd_fm801_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_fm801_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_fm801_get_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - fm801_t *chip = snd_kcontrol_chip(kcontrol); + struct fm801 *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0xff; int mask = (kcontrol->private_value >> 16) & 0xff; @@ -1015,9 +1019,10 @@ static int snd_fm801_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_fm801_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_fm801_put_single(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - fm801_t *chip = snd_kcontrol_chip(kcontrol); + struct fm801 *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0xff; int mask = (kcontrol->private_value >> 16) & 0xff; @@ -1035,7 +1040,8 @@ static int snd_fm801_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t .get = snd_fm801_get_double, .put = snd_fm801_put_double, \ .private_value = reg | (shift_left << 8) | (shift_right << 12) | (mask << 16) | (invert << 24) } -static int snd_fm801_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_fm801_info_double(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 16) & 0xff; @@ -1046,9 +1052,10 @@ static int snd_fm801_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } -static int snd_fm801_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_fm801_get_double(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - fm801_t *chip = snd_kcontrol_chip(kcontrol); + struct fm801 *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift_left = (kcontrol->private_value >> 8) & 0x0f; int shift_right = (kcontrol->private_value >> 12) & 0x0f; @@ -1066,9 +1073,10 @@ static int snd_fm801_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } -static int snd_fm801_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_fm801_put_double(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - fm801_t *chip = snd_kcontrol_chip(kcontrol); + struct fm801 *chip = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift_left = (kcontrol->private_value >> 8) & 0x0f; int shift_right = (kcontrol->private_value >> 12) & 0x0f; @@ -1087,7 +1095,8 @@ static int snd_fm801_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t (val1 << shift_left ) | (val2 << shift_right)); } -static int snd_fm801_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_fm801_info_mux(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[5] = { "AC97 Primary", "FM", "I2S", "PCM", "AC97 Secondary" @@ -1102,9 +1111,10 @@ static int snd_fm801_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * ui return 0; } -static int snd_fm801_get_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_fm801_get_mux(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - fm801_t *chip = snd_kcontrol_chip(kcontrol); + struct fm801 *chip = snd_kcontrol_chip(kcontrol); unsigned short val; val = inw(FM801_REG(chip, REC_SRC)) & 7; @@ -1114,9 +1124,10 @@ static int snd_fm801_get_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * u return 0; } -static int snd_fm801_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_fm801_put_mux(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - fm801_t *chip = snd_kcontrol_chip(kcontrol); + struct fm801 *chip = snd_kcontrol_chip(kcontrol); unsigned short val; if ((val = ucontrol->value.enumerated.item[0]) > 4) @@ -1124,9 +1135,9 @@ static int snd_fm801_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * u return snd_fm801_update_bits(chip, FM801_REC_SRC, 7, val); } -#define FM801_CONTROLS (sizeof(snd_fm801_controls)/sizeof(snd_kcontrol_new_t)) +#define FM801_CONTROLS ARRAY_SIZE(snd_fm801_controls) -static snd_kcontrol_new_t snd_fm801_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_fm801_controls[] __devinitdata = { FM801_DOUBLE("Wave Playback Volume", FM801_PCM_VOL, 0, 8, 31, 1), FM801_SINGLE("Wave Playback Switch", FM801_PCM_VOL, 15, 1, 1), FM801_DOUBLE("I2S Playback Volume", FM801_I2S_VOL, 0, 8, 31, 1), @@ -1142,9 +1153,9 @@ FM801_SINGLE("FM Playback Switch", FM801_FM_VOL, 15, 1, 1), } }; -#define FM801_CONTROLS_MULTI (sizeof(snd_fm801_controls_multi)/sizeof(snd_kcontrol_new_t)) +#define FM801_CONTROLS_MULTI ARRAY_SIZE(snd_fm801_controls_multi) -static snd_kcontrol_new_t snd_fm801_controls_multi[] __devinitdata = { +static struct snd_kcontrol_new snd_fm801_controls_multi[] __devinitdata = { FM801_SINGLE("AC97 2ch->4ch Copy Switch", FM801_CODEC_CTRL, 7, 1, 0), FM801_SINGLE("AC97 18-bit Switch", FM801_CODEC_CTRL, 10, 1, 0), FM801_SINGLE(SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), FM801_I2S_MODE, 8, 1, 0), @@ -1153,15 +1164,15 @@ FM801_SINGLE(SNDRV_CTL_NAME_IEC958("Raw Data ",CAPTURE,SWITCH), FM801_I2S_MODE, FM801_SINGLE(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH), FM801_GEN_CTRL, 2, 1, 0), }; -static void snd_fm801_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_fm801_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - fm801_t *chip = bus->private_data; + struct fm801 *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_fm801_mixer_free_ac97(ac97_t *ac97) +static void snd_fm801_mixer_free_ac97(struct snd_ac97 *ac97) { - fm801_t *chip = ac97->private_data; + struct fm801 *chip = ac97->private_data; if (ac97->num == 0) { chip->ac97 = NULL; } else { @@ -1169,12 +1180,12 @@ static void snd_fm801_mixer_free_ac97(ac97_t *ac97) } } -static int __devinit snd_fm801_mixer(fm801_t *chip) +static int __devinit snd_fm801_mixer(struct fm801 *chip) { - ac97_template_t ac97; + struct snd_ac97_template ac97; unsigned int i; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_fm801_codec_write, .read = snd_fm801_codec_read, }; @@ -1207,7 +1218,7 @@ static int __devinit snd_fm801_mixer(fm801_t *chip) * initialization routines */ -static int snd_fm801_free(fm801_t *chip) +static int snd_fm801_free(struct fm801 *chip) { unsigned short cmdw; @@ -1224,7 +1235,7 @@ static int snd_fm801_free(fm801_t *chip) snd_tea575x_exit(&chip->tea); #endif if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); pci_release_regions(chip->pci); pci_disable_device(chip->pci); @@ -1232,23 +1243,23 @@ static int snd_fm801_free(fm801_t *chip) return 0; } -static int snd_fm801_dev_free(snd_device_t *device) +static int snd_fm801_dev_free(struct snd_device *device) { - fm801_t *chip = device->device_data; + struct fm801 *chip = device->device_data; return snd_fm801_free(chip); } -static int __devinit snd_fm801_create(snd_card_t * card, +static int __devinit snd_fm801_create(struct snd_card *card, struct pci_dev * pci, int tea575x_tuner, - fm801_t ** rchip) + struct fm801 ** rchip) { - fm801_t *chip; + struct fm801 *chip; unsigned char rev, id; unsigned short cmdw; unsigned long timeout; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_fm801_dev_free, }; @@ -1270,7 +1281,8 @@ static int __devinit snd_fm801_create(snd_card_t * card, return err; } chip->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_fm801_interrupt, SA_INTERRUPT|SA_SHIRQ, "FM801", (void *)chip)) { + if (request_irq(pci->irq, snd_fm801_interrupt, SA_INTERRUPT|SA_SHIRQ, + "FM801", chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", chip->irq); snd_fm801_free(chip); return -EBUSY; @@ -1309,7 +1321,8 @@ static int __devinit snd_fm801_create(snd_card_t * card, timeout = jiffies + HZ / 20; - outw((1<<7) | (id << FM801_AC97_ADDR_SHIFT) | AC97_VENDOR_ID1, FM801_REG(chip, AC97_CMD)); + outw((1<<7) | (id << FM801_AC97_ADDR_SHIFT) | AC97_VENDOR_ID1, + FM801_REG(chip, AC97_CMD)); udelay(5); do { if ((inw(FM801_REG(chip, AC97_CMD)) & (3<<8)) == (1<<8)) { @@ -1383,9 +1396,9 @@ static int __devinit snd_card_fm801_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - fm801_t *chip; - opl3_t *opl3; + struct snd_card *card; + struct fm801 *chip; + struct snd_opl3 *opl3; int err; if (dev >= SNDRV_CARDS) -- cgit v1.2.3-70-g09d2 From 6b75a9d8b6c794d4c41d1b875c3e8e920b09e151 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:04:53 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI Intel8x0 Modules: Intel8x0 driver,Intel8x0-modem driver Remove xxx_t typedefs from the PCI Intel8x0 and modem drivers. Signed-off-by: Takashi Iwai --- sound/pci/intel8x0.c | 428 ++++++++++++++++++++++++++++---------------------- sound/pci/intel8x0m.c | 228 ++++++++++++++------------- 2 files changed, 362 insertions(+), 294 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index af2b1435e63..3ea90f1e22e 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -272,7 +272,8 @@ enum { #define ALI_INT_CPRAIS (1<<7) /* command port available */ #define ALI_INT_SPRAIS (1<<5) /* status port available */ #define ALI_INT_GPIO (1<<1) -#define ALI_INT_MASK (ALI_INT_SPDIFOUT|ALI_INT_CODECSPDIFOUT|ALI_INT_MICIN|ALI_INT_PCMOUT|ALI_INT_PCMIN) +#define ALI_INT_MASK (ALI_INT_SPDIFOUT|ALI_INT_CODECSPDIFOUT|\ + ALI_INT_MICIN|ALI_INT_PCMOUT|ALI_INT_PCMIN) #define ICH_ALI_SC_RESET (1<<31) /* master reset */ #define ICH_ALI_SC_AC97_DBL (1<<30) @@ -303,18 +304,40 @@ enum { * */ -enum { ICHD_PCMIN, ICHD_PCMOUT, ICHD_MIC, ICHD_MIC2, ICHD_PCM2IN, ICHD_SPBAR, ICHD_LAST = ICHD_SPBAR }; -enum { NVD_PCMIN, NVD_PCMOUT, NVD_MIC, NVD_SPBAR, NVD_LAST = NVD_SPBAR }; -enum { ALID_PCMIN, ALID_PCMOUT, ALID_MIC, ALID_AC97SPDIFOUT, ALID_SPDIFIN, ALID_SPDIFOUT, ALID_LAST = ALID_SPDIFOUT }; +enum { + ICHD_PCMIN, + ICHD_PCMOUT, + ICHD_MIC, + ICHD_MIC2, + ICHD_PCM2IN, + ICHD_SPBAR, + ICHD_LAST = ICHD_SPBAR +}; +enum { + NVD_PCMIN, + NVD_PCMOUT, + NVD_MIC, + NVD_SPBAR, + NVD_LAST = NVD_SPBAR +}; +enum { + ALID_PCMIN, + ALID_PCMOUT, + ALID_MIC, + ALID_AC97SPDIFOUT, + ALID_SPDIFIN, + ALID_SPDIFOUT, + ALID_LAST = ALID_SPDIFOUT +}; -#define get_ichdev(substream) (ichdev_t *)(substream->runtime->private_data) +#define get_ichdev(substream) (substream->runtime->private_data) -typedef struct { +struct ichdev { unsigned int ichd; /* ich device number */ unsigned long reg_offset; /* offset to bmaddr */ u32 *bdbar; /* CPU address (32bit) */ unsigned int bdbar_addr; /* PCI bus address (32bit) */ - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; unsigned int physbuf; /* physical address (32bit) */ unsigned int size; unsigned int fragsize; @@ -336,11 +359,9 @@ typedef struct { int pcm_open_flag; unsigned int page_attr_changed: 1; unsigned int suspended: 1; -} ichdev_t; - -typedef struct _snd_intel8x0 intel8x0_t; +}; -struct _snd_intel8x0 { +struct intel8x0 { unsigned int device_type; int irq; @@ -353,11 +374,11 @@ struct _snd_intel8x0 { void __iomem *remap_bmaddr; struct pci_dev *pci; - snd_card_t *card; + struct snd_card *card; int pcm_devs; - snd_pcm_t *pcm[6]; - ichdev_t ichd[6]; + struct snd_pcm *pcm[6]; + struct ichdev ichd[6]; unsigned multi4: 1, multi6: 1, @@ -374,8 +395,8 @@ struct _snd_intel8x0 { int spdif_idx; /* SPDIF BAR index; *_SPBAR or -1 if use PCMOUT */ unsigned int sdm_saved; /* SDM reg value */ - ac97_bus_t *ac97_bus; - ac97_t *ac97[3]; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97[3]; unsigned int ac97_sdin[3]; spinlock_t reg_lock; @@ -418,7 +439,7 @@ MODULE_DEVICE_TABLE(pci, snd_intel8x0_ids); * Lowlevel I/O - busmaster */ -static u8 igetbyte(intel8x0_t *chip, u32 offset) +static u8 igetbyte(struct intel8x0 *chip, u32 offset) { if (chip->bm_mmio) return readb(chip->remap_bmaddr + offset); @@ -426,7 +447,7 @@ static u8 igetbyte(intel8x0_t *chip, u32 offset) return inb(chip->bmaddr + offset); } -static u16 igetword(intel8x0_t *chip, u32 offset) +static u16 igetword(struct intel8x0 *chip, u32 offset) { if (chip->bm_mmio) return readw(chip->remap_bmaddr + offset); @@ -434,7 +455,7 @@ static u16 igetword(intel8x0_t *chip, u32 offset) return inw(chip->bmaddr + offset); } -static u32 igetdword(intel8x0_t *chip, u32 offset) +static u32 igetdword(struct intel8x0 *chip, u32 offset) { if (chip->bm_mmio) return readl(chip->remap_bmaddr + offset); @@ -442,7 +463,7 @@ static u32 igetdword(intel8x0_t *chip, u32 offset) return inl(chip->bmaddr + offset); } -static void iputbyte(intel8x0_t *chip, u32 offset, u8 val) +static void iputbyte(struct intel8x0 *chip, u32 offset, u8 val) { if (chip->bm_mmio) writeb(val, chip->remap_bmaddr + offset); @@ -450,7 +471,7 @@ static void iputbyte(intel8x0_t *chip, u32 offset, u8 val) outb(val, chip->bmaddr + offset); } -static void iputword(intel8x0_t *chip, u32 offset, u16 val) +static void iputword(struct intel8x0 *chip, u32 offset, u16 val) { if (chip->bm_mmio) writew(val, chip->remap_bmaddr + offset); @@ -458,7 +479,7 @@ static void iputword(intel8x0_t *chip, u32 offset, u16 val) outw(val, chip->bmaddr + offset); } -static void iputdword(intel8x0_t *chip, u32 offset, u32 val) +static void iputdword(struct intel8x0 *chip, u32 offset, u32 val) { if (chip->bm_mmio) writel(val, chip->remap_bmaddr + offset); @@ -470,7 +491,7 @@ static void iputdword(intel8x0_t *chip, u32 offset, u32 val) * Lowlevel I/O - AC'97 registers */ -static u16 iagetword(intel8x0_t *chip, u32 offset) +static u16 iagetword(struct intel8x0 *chip, u32 offset) { if (chip->mmio) return readw(chip->remap_addr + offset); @@ -478,7 +499,7 @@ static u16 iagetword(intel8x0_t *chip, u32 offset) return inw(chip->addr + offset); } -static void iaputword(intel8x0_t *chip, u32 offset, u16 val) +static void iaputword(struct intel8x0 *chip, u32 offset, u16 val) { if (chip->mmio) writew(val, chip->remap_addr + offset); @@ -495,7 +516,7 @@ static void iaputword(intel8x0_t *chip, u32 offset, u16 val) */ /* return the GLOB_STA bit for the corresponding codec */ -static unsigned int get_ich_codec_bit(intel8x0_t *chip, unsigned int codec) +static unsigned int get_ich_codec_bit(struct intel8x0 *chip, unsigned int codec) { static unsigned int codec_bit[3] = { ICH_PCR, ICH_SCR, ICH_TCR @@ -506,7 +527,7 @@ static unsigned int get_ich_codec_bit(intel8x0_t *chip, unsigned int codec) return codec_bit[codec]; } -static int snd_intel8x0_codec_semaphore(intel8x0_t *chip, unsigned int codec) +static int snd_intel8x0_codec_semaphore(struct intel8x0 *chip, unsigned int codec) { int time; @@ -545,11 +566,11 @@ static int snd_intel8x0_codec_semaphore(intel8x0_t *chip, unsigned int codec) return -EBUSY; } -static void snd_intel8x0_codec_write(ac97_t *ac97, +static void snd_intel8x0_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0 *chip = ac97->private_data; if (snd_intel8x0_codec_semaphore(chip, ac97->num) < 0) { if (! chip->in_ac97_init) @@ -558,10 +579,10 @@ static void snd_intel8x0_codec_write(ac97_t *ac97, iaputword(chip, reg + ac97->num * 0x80, val); } -static unsigned short snd_intel8x0_codec_read(ac97_t *ac97, +static unsigned short snd_intel8x0_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0 *chip = ac97->private_data; unsigned short res; unsigned int tmp; @@ -573,7 +594,8 @@ static unsigned short snd_intel8x0_codec_read(ac97_t *ac97, res = iagetword(chip, reg + ac97->num * 0x80); if ((tmp = igetdword(chip, ICHREG(GLOB_STA))) & ICH_RCS) { /* reset RCS and preserve other R/WC bits */ - iputdword(chip, ICHREG(GLOB_STA), tmp & ~(ICH_SRI|ICH_PRI|ICH_TRI|ICH_GSCI)); + iputdword(chip, ICHREG(GLOB_STA), tmp & + ~(ICH_SRI|ICH_PRI|ICH_TRI|ICH_GSCI)); if (! chip->in_ac97_init) snd_printk(KERN_ERR "codec_read %d: read timeout for register 0x%x\n", ac97->num, reg); res = 0xffff; @@ -582,7 +604,7 @@ static unsigned short snd_intel8x0_codec_read(ac97_t *ac97, return res; } -static void snd_intel8x0_codec_read_test(intel8x0_t *chip, unsigned int codec) +static void snd_intel8x0_codec_read_test(struct intel8x0 *chip, unsigned int codec) { unsigned int tmp; @@ -590,7 +612,8 @@ static void snd_intel8x0_codec_read_test(intel8x0_t *chip, unsigned int codec) iagetword(chip, codec * 0x80); if ((tmp = igetdword(chip, ICHREG(GLOB_STA))) & ICH_RCS) { /* reset RCS and preserve other R/WC bits */ - iputdword(chip, ICHREG(GLOB_STA), tmp & ~(ICH_SRI|ICH_PRI|ICH_TRI|ICH_GSCI)); + iputdword(chip, ICHREG(GLOB_STA), tmp & + ~(ICH_SRI|ICH_PRI|ICH_TRI|ICH_GSCI)); } } } @@ -598,7 +621,7 @@ static void snd_intel8x0_codec_read_test(intel8x0_t *chip, unsigned int codec) /* * access to AC97 for Ali5455 */ -static int snd_intel8x0_ali_codec_ready(intel8x0_t *chip, int mask) +static int snd_intel8x0_ali_codec_ready(struct intel8x0 *chip, int mask) { int count = 0; for (count = 0; count < 0x7f; count++) { @@ -611,7 +634,7 @@ static int snd_intel8x0_ali_codec_ready(intel8x0_t *chip, int mask) return -EBUSY; } -static int snd_intel8x0_ali_codec_semaphore(intel8x0_t *chip) +static int snd_intel8x0_ali_codec_semaphore(struct intel8x0 *chip) { int time = 100; if (chip->buggy_semaphore) @@ -623,9 +646,9 @@ static int snd_intel8x0_ali_codec_semaphore(intel8x0_t *chip) return snd_intel8x0_ali_codec_ready(chip, ALI_CSPSR_CODEC_READY); } -static unsigned short snd_intel8x0_ali_codec_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_intel8x0_ali_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0 *chip = ac97->private_data; unsigned short data = 0xffff; if (snd_intel8x0_ali_codec_semaphore(chip)) @@ -641,9 +664,10 @@ static unsigned short snd_intel8x0_ali_codec_read(ac97_t *ac97, unsigned short r return data; } -static void snd_intel8x0_ali_codec_write(ac97_t *ac97, unsigned short reg, unsigned short val) +static void snd_intel8x0_ali_codec_write(struct snd_ac97 *ac97, unsigned short reg, + unsigned short val) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0 *chip = ac97->private_data; if (snd_intel8x0_ali_codec_semaphore(chip)) return; @@ -658,7 +682,7 @@ static void snd_intel8x0_ali_codec_write(ac97_t *ac97, unsigned short reg, unsig /* * DMA I/O */ -static void snd_intel8x0_setup_periods(intel8x0_t *chip, ichdev_t *ichdev) +static void snd_intel8x0_setup_periods(struct intel8x0 *chip, struct ichdev *ichdev) { int idx; u32 *bdbar = ichdev->bdbar; @@ -681,10 +705,15 @@ static void snd_intel8x0_setup_periods(intel8x0_t *chip, ichdev_t *ichdev) ichdev->ack_reload = ichdev->ack = 1; ichdev->fragsize1 = ichdev->fragsize; for (idx = 0; idx < (ICH_REG_LVI_MASK + 1) * 2; idx += 2) { - bdbar[idx + 0] = cpu_to_le32(ichdev->physbuf + (((idx >> 1) * ichdev->fragsize) % ichdev->size)); + bdbar[idx + 0] = cpu_to_le32(ichdev->physbuf + + (((idx >> 1) * ichdev->fragsize) % + ichdev->size)); bdbar[idx + 1] = cpu_to_le32(0x80000000 | /* interrupt on completion */ ichdev->fragsize >> ichdev->pos_shift); - // printk("bdbar[%i] = 0x%x [0x%x]\n", idx + 0, bdbar[idx + 0], bdbar[idx + 1]); +#if 0 + printk("bdbar[%i] = 0x%x [0x%x]\n", + idx + 0, bdbar[idx + 0], bdbar[idx + 1]); +#endif } ichdev->frags = ichdev->size / ichdev->fragsize; } @@ -722,7 +751,7 @@ static void fill_nocache(void *buf, int size, int nocache) * Interrupt handler */ -static inline void snd_intel8x0_update(intel8x0_t *chip, ichdev_t *ichdev) +static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ichdev) { unsigned long port = ichdev->reg_offset; int status, civ, i, step; @@ -757,7 +786,12 @@ static inline void snd_intel8x0_update(intel8x0_t *chip, ichdev_t *ichdev) ichdev->lvi_frag++; ichdev->lvi_frag %= ichdev->frags; ichdev->bdbar[ichdev->lvi * 2] = cpu_to_le32(ichdev->physbuf + ichdev->lvi_frag * ichdev->fragsize1); - // printk("new: bdbar[%i] = 0x%x [0x%x], prefetch = %i, all = 0x%x, 0x%x\n", ichdev->lvi * 2, ichdev->bdbar[ichdev->lvi * 2], ichdev->bdbar[ichdev->lvi * 2 + 1], inb(ICH_REG_OFF_PIV + port), inl(port + 4), inb(port + ICH_REG_OFF_CR)); +#if 0 + printk("new: bdbar[%i] = 0x%x [0x%x], prefetch = %i, all = 0x%x, 0x%x\n", + ichdev->lvi * 2, ichdev->bdbar[ichdev->lvi * 2], + ichdev->bdbar[ichdev->lvi * 2 + 1], inb(ICH_REG_OFF_PIV + port), + inl(port + 4), inb(port + ICH_REG_OFF_CR)); +#endif if (--ichdev->ack == 0) { ichdev->ack = ichdev->ack_reload; ack = 1; @@ -773,8 +807,8 @@ static inline void snd_intel8x0_update(intel8x0_t *chip, ichdev_t *ichdev) static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - intel8x0_t *chip = dev_id; - ichdev_t *ichdev; + struct intel8x0 *chip = dev_id; + struct ichdev *ichdev; unsigned int status; unsigned int i; @@ -808,10 +842,10 @@ static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs * PCM part */ -static int snd_intel8x0_pcm_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_intel8x0_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct ichdev *ichdev = get_ichdev(substream); unsigned char val = 0; unsigned long port = ichdev->reg_offset; @@ -847,12 +881,14 @@ static int snd_intel8x0_pcm_trigger(snd_pcm_substream_t *substream, int cmd) return 0; } -static int snd_intel8x0_ali_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_intel8x0_ali_trigger(struct snd_pcm_substream *substream, int cmd) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct ichdev *ichdev = get_ichdev(substream); unsigned long port = ichdev->reg_offset; - static int fiforeg[] = { ICHREG(ALI_FIFOCR1), ICHREG(ALI_FIFOCR2), ICHREG(ALI_FIFOCR3) }; + static int fiforeg[] = { + ICHREG(ALI_FIFOCR1), ICHREG(ALI_FIFOCR2), ICHREG(ALI_FIFOCR3) + }; unsigned int val, fifo; val = igetdword(chip, ICHREG(ALI_DMACR)); @@ -871,14 +907,16 @@ static int snd_intel8x0_ali_trigger(snd_pcm_substream_t *substream, int cmd) } iputbyte(chip, port + ICH_REG_OFF_CR, ICH_IOCE); val &= ~(1 << (ichdev->ali_slot + 16)); /* clear PAUSE flag */ - iputdword(chip, ICHREG(ALI_DMACR), val | (1 << ichdev->ali_slot)); /* start DMA */ + /* start DMA */ + iputdword(chip, ICHREG(ALI_DMACR), val | (1 << ichdev->ali_slot)); break; case SNDRV_PCM_TRIGGER_SUSPEND: ichdev->suspended = 1; /* fallthru */ case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: - iputdword(chip, ICHREG(ALI_DMACR), val | (1 << (ichdev->ali_slot + 16))); /* pause */ + /* pause */ + iputdword(chip, ICHREG(ALI_DMACR), val | (1 << (ichdev->ali_slot + 16))); iputbyte(chip, port + ICH_REG_OFF_CR, 0); while (igetbyte(chip, port + ICH_REG_OFF_CR)) ; @@ -887,7 +925,8 @@ static int snd_intel8x0_ali_trigger(snd_pcm_substream_t *substream, int cmd) /* reset whole DMA things */ iputbyte(chip, port + ICH_REG_OFF_CR, ICH_RESETREGS); /* clear interrupts */ - iputbyte(chip, port + ICH_REG_OFF_SR, igetbyte(chip, port + ICH_REG_OFF_SR) | 0x1e); + iputbyte(chip, port + ICH_REG_OFF_SR, + igetbyte(chip, port + ICH_REG_OFF_SR) | 0x1e); iputdword(chip, ICHREG(ALI_INTERRUPTSR), igetdword(chip, ICHREG(ALI_INTERRUPTSR)) & ichdev->int_sta_mask); break; @@ -897,12 +936,12 @@ static int snd_intel8x0_ali_trigger(snd_pcm_substream_t *substream, int cmd) return 0; } -static int snd_intel8x0_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_intel8x0_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - ichdev_t *ichdev = get_ichdev(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct ichdev *ichdev = get_ichdev(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int dbl = params_rate(hw_params) > 48000; int err; @@ -930,15 +969,16 @@ static int snd_intel8x0_hw_params(snd_pcm_substream_t * substream, ichdev->pcm_open_flag = 1; /* Force SPDIF setting */ if (ichdev->ichd == ICHD_PCMOUT && chip->spdif_idx < 0) - snd_ac97_set_rate(ichdev->pcm->r[0].codec[0], AC97_SPDIF, params_rate(hw_params)); + snd_ac97_set_rate(ichdev->pcm->r[0].codec[0], AC97_SPDIF, + params_rate(hw_params)); } return err; } -static int snd_intel8x0_hw_free(snd_pcm_substream_t * substream) +static int snd_intel8x0_hw_free(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct ichdev *ichdev = get_ichdev(substream); if (ichdev->pcm_open_flag) { snd_ac97_pcm_close(ichdev->pcm); @@ -951,8 +991,8 @@ static int snd_intel8x0_hw_free(snd_pcm_substream_t * substream) return snd_pcm_lib_free_pages(substream); } -static void snd_intel8x0_setup_pcm_out(intel8x0_t *chip, - snd_pcm_runtime_t *runtime) +static void snd_intel8x0_setup_pcm_out(struct intel8x0 *chip, + struct snd_pcm_runtime *runtime) { unsigned int cnt; int dbl = runtime->rate > 48000; @@ -1004,11 +1044,11 @@ static void snd_intel8x0_setup_pcm_out(intel8x0_t *chip, spin_unlock_irq(&chip->reg_lock); } -static int snd_intel8x0_pcm_prepare(snd_pcm_substream_t * substream) +static int snd_intel8x0_pcm_prepare(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct ichdev *ichdev = get_ichdev(substream); ichdev->physbuf = runtime->dma_addr; ichdev->size = snd_pcm_lib_buffer_bytes(substream); @@ -1022,10 +1062,10 @@ static int snd_intel8x0_pcm_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct ichdev *ichdev = get_ichdev(substream); size_t ptr1, ptr; int civ, timeout = 100; unsigned int position; @@ -1052,7 +1092,7 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(snd_pcm_substream_t * substrea return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_hardware_t snd_intel8x0_stream = +static struct snd_pcm_hardware snd_intel8x0_stream = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1077,7 +1117,7 @@ static unsigned int channels4[] = { 2, 4, }; -static snd_pcm_hw_constraint_list_t hw_constraints_channels4 = { +static struct snd_pcm_hw_constraint_list hw_constraints_channels4 = { .count = ARRAY_SIZE(channels4), .list = channels4, .mask = 0, @@ -1087,16 +1127,16 @@ static unsigned int channels6[] = { 2, 4, 6, }; -static snd_pcm_hw_constraint_list_t hw_constraints_channels6 = { +static struct snd_pcm_hw_constraint_list hw_constraints_channels6 = { .count = ARRAY_SIZE(channels6), .list = channels6, .mask = 0, }; -static int snd_intel8x0_pcm_open(snd_pcm_substream_t * substream, ichdev_t *ichdev) +static int snd_intel8x0_pcm_open(struct snd_pcm_substream *substream, struct ichdev *ichdev) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; ichdev->substream = substream; @@ -1113,10 +1153,10 @@ static int snd_intel8x0_pcm_open(snd_pcm_substream_t * substream, ichdev_t *ichd return 0; } -static int snd_intel8x0_playback_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_playback_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct intel8x0 *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err; err = snd_intel8x0_pcm_open(substream, &chip->ichd[ICHD_PCMOUT]); @@ -1125,10 +1165,12 @@ static int snd_intel8x0_playback_open(snd_pcm_substream_t * substream) if (chip->multi6) { runtime->hw.channels_max = 6; - snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, &hw_constraints_channels6); + snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, + &hw_constraints_channels6); } else if (chip->multi4) { runtime->hw.channels_max = 4; - snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, &hw_constraints_channels4); + snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, + &hw_constraints_channels4); } if (chip->dra) { snd_ac97_pcm_double_rate_rules(runtime); @@ -1140,94 +1182,94 @@ static int snd_intel8x0_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_intel8x0_playback_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_playback_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); chip->ichd[ICHD_PCMOUT].substream = NULL; return 0; } -static int snd_intel8x0_capture_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_capture_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); return snd_intel8x0_pcm_open(substream, &chip->ichd[ICHD_PCMIN]); } -static int snd_intel8x0_capture_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_capture_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); chip->ichd[ICHD_PCMIN].substream = NULL; return 0; } -static int snd_intel8x0_mic_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_mic_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); return snd_intel8x0_pcm_open(substream, &chip->ichd[ICHD_MIC]); } -static int snd_intel8x0_mic_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_mic_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); chip->ichd[ICHD_MIC].substream = NULL; return 0; } -static int snd_intel8x0_mic2_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_mic2_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); return snd_intel8x0_pcm_open(substream, &chip->ichd[ICHD_MIC2]); } -static int snd_intel8x0_mic2_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_mic2_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); chip->ichd[ICHD_MIC2].substream = NULL; return 0; } -static int snd_intel8x0_capture2_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_capture2_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); return snd_intel8x0_pcm_open(substream, &chip->ichd[ICHD_PCM2IN]); } -static int snd_intel8x0_capture2_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_capture2_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); chip->ichd[ICHD_PCM2IN].substream = NULL; return 0; } -static int snd_intel8x0_spdif_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_spdif_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); int idx = chip->device_type == DEVICE_NFORCE ? NVD_SPBAR : ICHD_SPBAR; return snd_intel8x0_pcm_open(substream, &chip->ichd[idx]); } -static int snd_intel8x0_spdif_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_spdif_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); int idx = chip->device_type == DEVICE_NFORCE ? NVD_SPBAR : ICHD_SPBAR; chip->ichd[idx].substream = NULL; return 0; } -static int snd_intel8x0_ali_ac97spdifout_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_ali_ac97spdifout_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); unsigned int val; spin_lock_irq(&chip->reg_lock); @@ -1240,9 +1282,9 @@ static int snd_intel8x0_ali_ac97spdifout_open(snd_pcm_substream_t * substream) return snd_intel8x0_pcm_open(substream, &chip->ichd[ALID_AC97SPDIFOUT]); } -static int snd_intel8x0_ali_ac97spdifout_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_ali_ac97spdifout_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); unsigned int val; chip->ichd[ALID_AC97SPDIFOUT].substream = NULL; @@ -1255,39 +1297,39 @@ static int snd_intel8x0_ali_ac97spdifout_close(snd_pcm_substream_t * substream) return 0; } -static int snd_intel8x0_ali_spdifin_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_ali_spdifin_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); return snd_intel8x0_pcm_open(substream, &chip->ichd[ALID_SPDIFIN]); } -static int snd_intel8x0_ali_spdifin_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_ali_spdifin_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); chip->ichd[ALID_SPDIFIN].substream = NULL; return 0; } #if 0 // NYI -static int snd_intel8x0_ali_spdifout_open(snd_pcm_substream_t * substream) +static int snd_intel8x0_ali_spdifout_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); return snd_intel8x0_pcm_open(substream, &chip->ichd[ALID_SPDIFOUT]); } -static int snd_intel8x0_ali_spdifout_close(snd_pcm_substream_t * substream) +static int snd_intel8x0_ali_spdifout_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0 *chip = snd_pcm_substream_chip(substream); chip->ichd[ALID_SPDIFOUT].substream = NULL; return 0; } #endif -static snd_pcm_ops_t snd_intel8x0_playback_ops = { +static struct snd_pcm_ops snd_intel8x0_playback_ops = { .open = snd_intel8x0_playback_open, .close = snd_intel8x0_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1298,7 +1340,7 @@ static snd_pcm_ops_t snd_intel8x0_playback_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_capture_ops = { +static struct snd_pcm_ops snd_intel8x0_capture_ops = { .open = snd_intel8x0_capture_open, .close = snd_intel8x0_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1309,7 +1351,7 @@ static snd_pcm_ops_t snd_intel8x0_capture_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_capture_mic_ops = { +static struct snd_pcm_ops snd_intel8x0_capture_mic_ops = { .open = snd_intel8x0_mic_open, .close = snd_intel8x0_mic_close, .ioctl = snd_pcm_lib_ioctl, @@ -1320,7 +1362,7 @@ static snd_pcm_ops_t snd_intel8x0_capture_mic_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_capture_mic2_ops = { +static struct snd_pcm_ops snd_intel8x0_capture_mic2_ops = { .open = snd_intel8x0_mic2_open, .close = snd_intel8x0_mic2_close, .ioctl = snd_pcm_lib_ioctl, @@ -1331,7 +1373,7 @@ static snd_pcm_ops_t snd_intel8x0_capture_mic2_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_capture2_ops = { +static struct snd_pcm_ops snd_intel8x0_capture2_ops = { .open = snd_intel8x0_capture2_open, .close = snd_intel8x0_capture2_close, .ioctl = snd_pcm_lib_ioctl, @@ -1342,7 +1384,7 @@ static snd_pcm_ops_t snd_intel8x0_capture2_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_spdif_ops = { +static struct snd_pcm_ops snd_intel8x0_spdif_ops = { .open = snd_intel8x0_spdif_open, .close = snd_intel8x0_spdif_close, .ioctl = snd_pcm_lib_ioctl, @@ -1353,7 +1395,7 @@ static snd_pcm_ops_t snd_intel8x0_spdif_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_ali_playback_ops = { +static struct snd_pcm_ops snd_intel8x0_ali_playback_ops = { .open = snd_intel8x0_playback_open, .close = snd_intel8x0_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1364,7 +1406,7 @@ static snd_pcm_ops_t snd_intel8x0_ali_playback_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_ali_capture_ops = { +static struct snd_pcm_ops snd_intel8x0_ali_capture_ops = { .open = snd_intel8x0_capture_open, .close = snd_intel8x0_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1375,7 +1417,7 @@ static snd_pcm_ops_t snd_intel8x0_ali_capture_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_ali_capture_mic_ops = { +static struct snd_pcm_ops snd_intel8x0_ali_capture_mic_ops = { .open = snd_intel8x0_mic_open, .close = snd_intel8x0_mic_close, .ioctl = snd_pcm_lib_ioctl, @@ -1386,7 +1428,7 @@ static snd_pcm_ops_t snd_intel8x0_ali_capture_mic_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_ali_ac97spdifout_ops = { +static struct snd_pcm_ops snd_intel8x0_ali_ac97spdifout_ops = { .open = snd_intel8x0_ali_ac97spdifout_open, .close = snd_intel8x0_ali_ac97spdifout_close, .ioctl = snd_pcm_lib_ioctl, @@ -1397,7 +1439,7 @@ static snd_pcm_ops_t snd_intel8x0_ali_ac97spdifout_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0_ali_spdifin_ops = { +static struct snd_pcm_ops snd_intel8x0_ali_spdifin_ops = { .open = snd_intel8x0_ali_spdifin_open, .close = snd_intel8x0_ali_spdifin_close, .ioctl = snd_pcm_lib_ioctl, @@ -1409,7 +1451,7 @@ static snd_pcm_ops_t snd_intel8x0_ali_spdifin_ops = { }; #if 0 // NYI -static snd_pcm_ops_t snd_intel8x0_ali_spdifout_ops = { +static struct snd_pcm_ops snd_intel8x0_ali_spdifout_ops = { .open = snd_intel8x0_ali_spdifout_open, .close = snd_intel8x0_ali_spdifout_close, .ioctl = snd_pcm_lib_ioctl, @@ -1423,16 +1465,17 @@ static snd_pcm_ops_t snd_intel8x0_ali_spdifout_ops = { struct ich_pcm_table { char *suffix; - snd_pcm_ops_t *playback_ops; - snd_pcm_ops_t *capture_ops; + struct snd_pcm_ops *playback_ops; + struct snd_pcm_ops *capture_ops; size_t prealloc_size; size_t prealloc_max_size; int ac97_idx; }; -static int __devinit snd_intel8x0_pcm1(intel8x0_t *chip, int device, struct ich_pcm_table *rec) +static int __devinit snd_intel8x0_pcm1(struct intel8x0 *chip, int device, + struct ich_pcm_table *rec) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; char name[32]; @@ -1459,7 +1502,8 @@ static int __devinit snd_intel8x0_pcm1(intel8x0_t *chip, int device, struct ich_ strcpy(pcm->name, chip->card->shortname); chip->pcm[device] = pcm; - snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(chip->pci), + snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, + snd_dma_pci_data(chip->pci), rec->prealloc_size, rec->prealloc_max_size); return 0; @@ -1557,7 +1601,7 @@ static struct ich_pcm_table ali_pcms[] __devinitdata = { #endif }; -static int __devinit snd_intel8x0_pcm(intel8x0_t *chip) +static int __devinit snd_intel8x0_pcm(struct intel8x0 *chip) { int i, tblsize, device, err; struct ich_pcm_table *tbl, *rec; @@ -1604,15 +1648,15 @@ static int __devinit snd_intel8x0_pcm(intel8x0_t *chip) * Mixer part */ -static void snd_intel8x0_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_intel8x0_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - intel8x0_t *chip = bus->private_data; + struct intel8x0 *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_intel8x0_mixer_free_ac97(ac97_t *ac97) +static void snd_intel8x0_mixer_free_ac97(struct snd_ac97 *ac97) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0 *chip = ac97->private_data; chip->ac97[ac97->num] = NULL; } @@ -1961,19 +2005,20 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { { } /* terminator */ }; -static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock, const char *quirk_override) +static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock, + const char *quirk_override) { - ac97_bus_t *pbus; - ac97_template_t ac97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; int err; unsigned int i, codecs; unsigned int glob_sta = 0; - ac97_bus_ops_t *ops; - static ac97_bus_ops_t standard_bus_ops = { + struct snd_ac97_bus_ops *ops; + static struct snd_ac97_bus_ops standard_bus_ops = { .write = snd_intel8x0_codec_write, .read = snd_intel8x0_codec_read, }; - static ac97_bus_ops_t ali_bus_ops = { + static struct snd_ac97_bus_ops ali_bus_ops = { .write = snd_intel8x0_ali_codec_write, .read = snd_intel8x0_ali_codec_read, }; @@ -2128,7 +2173,8 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock, const __err: /* clear the cold-reset bit for the next chance */ if (chip->device_type != DEVICE_ALI) - iputdword(chip, ICHREG(GLOB_CNT), igetdword(chip, ICHREG(GLOB_CNT)) & ~ICH_AC97COLD); + iputdword(chip, ICHREG(GLOB_CNT), + igetdword(chip, ICHREG(GLOB_CNT)) & ~ICH_AC97COLD); return err; } @@ -2137,7 +2183,7 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock, const * */ -static void do_ali_reset(intel8x0_t *chip) +static void do_ali_reset(struct intel8x0 *chip) { iputdword(chip, ICHREG(ALI_SCR), ICH_ALI_SC_RESET); iputdword(chip, ICHREG(ALI_FIFOCR1), 0x83838383); @@ -2149,7 +2195,7 @@ static void do_ali_reset(intel8x0_t *chip) iputdword(chip, ICHREG(ALI_INTERRUPTSR), 0x00000000); } -static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) +static int snd_intel8x0_ich_chip_init(struct intel8x0 *chip, int probing) { unsigned long end_time; unsigned int cnt, status, nstatus; @@ -2174,7 +2220,8 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) goto __ok; schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); - snd_printk(KERN_ERR "AC'97 warm reset still in progress? [0x%x]\n", igetdword(chip, ICHREG(GLOB_CNT))); + snd_printk(KERN_ERR "AC'97 warm reset still in progress? [0x%x]\n", + igetdword(chip, ICHREG(GLOB_CNT))); return -EIO; __ok: @@ -2185,14 +2232,16 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) */ end_time = jiffies + HZ; do { - status = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); + status = igetdword(chip, ICHREG(GLOB_STA)) & + (ICH_PCR | ICH_SCR | ICH_TCR); if (status) break; schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); if (! status) { /* no codec is found */ - snd_printk(KERN_ERR "codec_ready: codec is not ready [0x%x]\n", igetdword(chip, ICHREG(GLOB_STA))); + snd_printk(KERN_ERR "codec_ready: codec is not ready [0x%x]\n", + igetdword(chip, ICHREG(GLOB_STA))); return -EIO; } @@ -2220,7 +2269,8 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) /* wait until all the probed codecs are ready */ end_time = jiffies + HZ; do { - nstatus = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); + nstatus = igetdword(chip, ICHREG(GLOB_STA)) & + (ICH_PCR | ICH_SCR | ICH_TCR); if (status == nstatus) break; schedule_timeout_uninterruptible(1); @@ -2241,7 +2291,7 @@ static int snd_intel8x0_ich_chip_init(intel8x0_t *chip, int probing) return 0; } -static int snd_intel8x0_ali_chip_init(intel8x0_t *chip, int probing) +static int snd_intel8x0_ali_chip_init(struct intel8x0 *chip, int probing) { u32 reg; int i = 0; @@ -2276,7 +2326,7 @@ static int snd_intel8x0_ali_chip_init(intel8x0_t *chip, int probing) return 0; } -static int snd_intel8x0_chip_init(intel8x0_t *chip, int probing) +static int snd_intel8x0_chip_init(struct intel8x0 *chip, int probing) { unsigned int i; int err; @@ -2298,11 +2348,12 @@ static int snd_intel8x0_chip_init(intel8x0_t *chip, int probing) iputbyte(chip, ICH_REG_OFF_CR + chip->ichd[i].reg_offset, ICH_RESETREGS); /* initialize Buffer Descriptor Lists */ for (i = 0; i < chip->bdbars_count; i++) - iputdword(chip, ICH_REG_OFF_BDBAR + chip->ichd[i].reg_offset, chip->ichd[i].bdbar_addr); + iputdword(chip, ICH_REG_OFF_BDBAR + chip->ichd[i].reg_offset, + chip->ichd[i].bdbar_addr); return 0; } -static int snd_intel8x0_free(intel8x0_t *chip) +static int snd_intel8x0_free(struct intel8x0 *chip) { unsigned int i; @@ -2325,7 +2376,7 @@ static int snd_intel8x0_free(intel8x0_t *chip) synchronize_irq(chip->irq); __hw_end: if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); if (chip->bdbars.area) { if (chip->fix_nocache) fill_nocache(chip->bdbars.area, chip->bdbars.bytes, 0); @@ -2345,9 +2396,9 @@ static int snd_intel8x0_free(intel8x0_t *chip) /* * power management */ -static int intel8x0_suspend(snd_card_t *card, pm_message_t state) +static int intel8x0_suspend(struct snd_card *card, pm_message_t state) { - intel8x0_t *chip = card->pm_private_data; + struct intel8x0 *chip = card->pm_private_data; int i; for (i = 0; i < chip->pcm_devs; i++) @@ -2355,9 +2406,9 @@ static int intel8x0_suspend(snd_card_t *card, pm_message_t state) /* clear nocache */ if (chip->fix_nocache) { for (i = 0; i < chip->bdbars_count; i++) { - ichdev_t *ichdev = &chip->ichd[i]; + struct ichdev *ichdev = &chip->ichd[i]; if (ichdev->substream && ichdev->page_attr_changed) { - snd_pcm_runtime_t *runtime = ichdev->substream->runtime; + struct snd_pcm_runtime *runtime = ichdev->substream->runtime; if (runtime->dma_area) fill_nocache(runtime->dma_area, runtime->dma_bytes, 0); } @@ -2370,19 +2421,20 @@ static int intel8x0_suspend(snd_card_t *card, pm_message_t state) chip->sdm_saved = igetbyte(chip, ICHREG(SDM)); if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); pci_disable_device(chip->pci); return 0; } -static int intel8x0_resume(snd_card_t *card) +static int intel8x0_resume(struct snd_card *card) { - intel8x0_t *chip = card->pm_private_data; + struct intel8x0 *chip = card->pm_private_data; int i; pci_enable_device(chip->pci); pci_set_master(chip->pci); - request_irq(chip->irq, snd_intel8x0_interrupt, SA_INTERRUPT|SA_SHIRQ, card->shortname, (void *)chip); + request_irq(chip->irq, snd_intel8x0_interrupt, SA_INTERRUPT|SA_SHIRQ, + card->shortname, chip); synchronize_irq(chip->irq); snd_intel8x0_chip_init(chip, 1); @@ -2407,9 +2459,9 @@ static int intel8x0_resume(snd_card_t *card) /* refill nocache */ if (chip->fix_nocache) { for (i = 0; i < chip->bdbars_count; i++) { - ichdev_t *ichdev = &chip->ichd[i]; + struct ichdev *ichdev = &chip->ichd[i]; if (ichdev->substream && ichdev->page_attr_changed) { - snd_pcm_runtime_t *runtime = ichdev->substream->runtime; + struct snd_pcm_runtime *runtime = ichdev->substream->runtime; if (runtime->dma_area) fill_nocache(runtime->dma_area, runtime->dma_bytes, 1); } @@ -2418,7 +2470,7 @@ static int intel8x0_resume(snd_card_t *card) /* resume status */ for (i = 0; i < chip->bdbars_count; i++) { - ichdev_t *ichdev = &chip->ichd[i]; + struct ichdev *ichdev = &chip->ichd[i]; unsigned long port = ichdev->reg_offset; if (! ichdev->substream || ! ichdev->suspended) continue; @@ -2436,10 +2488,10 @@ static int intel8x0_resume(snd_card_t *card) #define INTEL8X0_TESTBUF_SIZE 32768 /* enough large for one shot */ -static void __devinit intel8x0_measure_ac97_clock(intel8x0_t *chip) +static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip) { - snd_pcm_substream_t *subs; - ichdev_t *ichdev; + struct snd_pcm_substream *subs; + struct ichdev *ichdev; unsigned long port; unsigned long pos, t; struct timeval start_time, stop_time; @@ -2516,10 +2568,10 @@ static void __devinit intel8x0_measure_ac97_clock(intel8x0_t *chip) printk(KERN_INFO "intel8x0: clocking to %d\n", chip->ac97_bus->clock); } -static void snd_intel8x0_proc_read(snd_info_entry_t * entry, - snd_info_buffer_t * buffer) +static void snd_intel8x0_proc_read(struct snd_info_entry * entry, + struct snd_info_buffer *buffer) { - intel8x0_t *chip = entry->private_data; + struct intel8x0 *chip = entry->private_data; unsigned int tmp; snd_iprintf(buffer, "Intel8x0\n\n"); @@ -2542,17 +2594,17 @@ static void snd_intel8x0_proc_read(snd_info_entry_t * entry, chip->ac97_sdin[2]); } -static void __devinit snd_intel8x0_proc_init(intel8x0_t * chip) +static void __devinit snd_intel8x0_proc_init(struct intel8x0 * chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "intel8x0", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_intel8x0_proc_read); } -static int snd_intel8x0_dev_free(snd_device_t *device) +static int snd_intel8x0_dev_free(struct snd_device *device) { - intel8x0_t *chip = device->device_data; + struct intel8x0 *chip = device->device_data; return snd_intel8x0_free(chip); } @@ -2561,17 +2613,17 @@ struct ich_reg_info { unsigned int offset; }; -static int __devinit snd_intel8x0_create(snd_card_t * card, +static int __devinit snd_intel8x0_create(struct snd_card *card, struct pci_dev *pci, unsigned long device_type, - intel8x0_t ** r_intel8x0) + struct intel8x0 ** r_intel8x0) { - intel8x0_t *chip; + struct intel8x0 *chip; int err; unsigned int i; unsigned int int_sta_masks; - ichdev_t *ichdev; - static snd_device_ops_t ops = { + struct ichdev *ichdev; + static struct snd_device_ops ops = { .dev_free = snd_intel8x0_dev_free, }; @@ -2734,7 +2786,7 @@ static int __devinit snd_intel8x0_create(snd_card_t * card, /* request irq after initializaing int_sta_mask, etc */ if (request_irq(pci->irq, snd_intel8x0_interrupt, - SA_INTERRUPT|SA_SHIRQ, card->shortname, (void *)chip)) { + SA_INTERRUPT|SA_SHIRQ, card->shortname, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_intel8x0_free(chip); return -EBUSY; @@ -2793,8 +2845,8 @@ static struct shortname_table { static int __devinit snd_intel8x0_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - intel8x0_t *chip; + struct snd_card *card; + struct intel8x0 *chip; int err; struct shortname_table *name; diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c index 3244df9c1e9..3b6724e02e4 100644 --- a/sound/pci/intel8x0m.c +++ b/sound/pci/intel8x0m.c @@ -38,7 +38,8 @@ #include MODULE_AUTHOR("Jaroslav Kysela "); -MODULE_DESCRIPTION("Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7013; NVidia MCP/2/2S/3 modems"); +MODULE_DESCRIPTION("Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; " + "SiS 7013; NVidia MCP/2/2S/3 modems"); MODULE_LICENSE("GPL"); MODULE_SUPPORTED_DEVICE("{{Intel,82801AA-ICH}," "{Intel,82901AB-ICH0}," @@ -163,14 +164,14 @@ DEFINE_REGSET(OFF, 0); /* offset */ enum { ICHD_MDMIN, ICHD_MDMOUT, ICHD_MDMLAST = ICHD_MDMOUT }; enum { ALID_MDMIN, ALID_MDMOUT, ALID_MDMLAST = ALID_MDMOUT }; -#define get_ichdev(substream) (ichdev_t *)(substream->runtime->private_data) +#define get_ichdev(substream) (substream->runtime->private_data) -typedef struct { +struct ichdev { unsigned int ichd; /* ich device number */ unsigned long reg_offset; /* offset to bmaddr */ u32 *bdbar; /* CPU address (32bit) */ unsigned int bdbar_addr; /* PCI bus address (32bit) */ - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; unsigned int physbuf; /* physical address (32bit) */ unsigned int size; unsigned int fragsize; @@ -187,12 +188,10 @@ typedef struct { unsigned int roff_picb; unsigned int int_sta_mask; /* interrupt status mask */ unsigned int ali_slot; /* ALI DMA slot */ - ac97_t *ac97; -} ichdev_t; - -typedef struct _snd_intel8x0m intel8x0_t; + struct snd_ac97 *ac97; +}; -struct _snd_intel8x0m { +struct intel8x0m { unsigned int device_type; int irq; @@ -205,16 +204,16 @@ struct _snd_intel8x0m { void __iomem *remap_bmaddr; struct pci_dev *pci; - snd_card_t *card; + struct snd_card *card; int pcm_devs; - snd_pcm_t *pcm[2]; - ichdev_t ichd[2]; + struct snd_pcm *pcm[2]; + struct ichdev ichd[2]; unsigned int in_ac97_init: 1; - ac97_bus_t *ac97_bus; - ac97_t *ac97; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97; spinlock_t reg_lock; @@ -254,7 +253,7 @@ MODULE_DEVICE_TABLE(pci, snd_intel8x0m_ids); * Lowlevel I/O - busmaster */ -static u8 igetbyte(intel8x0_t *chip, u32 offset) +static u8 igetbyte(struct intel8x0m *chip, u32 offset) { if (chip->bm_mmio) return readb(chip->remap_bmaddr + offset); @@ -262,7 +261,7 @@ static u8 igetbyte(intel8x0_t *chip, u32 offset) return inb(chip->bmaddr + offset); } -static u16 igetword(intel8x0_t *chip, u32 offset) +static u16 igetword(struct intel8x0m *chip, u32 offset) { if (chip->bm_mmio) return readw(chip->remap_bmaddr + offset); @@ -270,7 +269,7 @@ static u16 igetword(intel8x0_t *chip, u32 offset) return inw(chip->bmaddr + offset); } -static u32 igetdword(intel8x0_t *chip, u32 offset) +static u32 igetdword(struct intel8x0m *chip, u32 offset) { if (chip->bm_mmio) return readl(chip->remap_bmaddr + offset); @@ -278,7 +277,7 @@ static u32 igetdword(intel8x0_t *chip, u32 offset) return inl(chip->bmaddr + offset); } -static void iputbyte(intel8x0_t *chip, u32 offset, u8 val) +static void iputbyte(struct intel8x0m *chip, u32 offset, u8 val) { if (chip->bm_mmio) writeb(val, chip->remap_bmaddr + offset); @@ -286,7 +285,7 @@ static void iputbyte(intel8x0_t *chip, u32 offset, u8 val) outb(val, chip->bmaddr + offset); } -static void iputword(intel8x0_t *chip, u32 offset, u16 val) +static void iputword(struct intel8x0m *chip, u32 offset, u16 val) { if (chip->bm_mmio) writew(val, chip->remap_bmaddr + offset); @@ -294,7 +293,7 @@ static void iputword(intel8x0_t *chip, u32 offset, u16 val) outw(val, chip->bmaddr + offset); } -static void iputdword(intel8x0_t *chip, u32 offset, u32 val) +static void iputdword(struct intel8x0m *chip, u32 offset, u32 val) { if (chip->bm_mmio) writel(val, chip->remap_bmaddr + offset); @@ -306,7 +305,7 @@ static void iputdword(intel8x0_t *chip, u32 offset, u32 val) * Lowlevel I/O - AC'97 registers */ -static u16 iagetword(intel8x0_t *chip, u32 offset) +static u16 iagetword(struct intel8x0m *chip, u32 offset) { if (chip->mmio) return readw(chip->remap_addr + offset); @@ -314,7 +313,7 @@ static u16 iagetword(intel8x0_t *chip, u32 offset) return inw(chip->addr + offset); } -static void iaputword(intel8x0_t *chip, u32 offset, u16 val) +static void iaputword(struct intel8x0m *chip, u32 offset, u16 val) { if (chip->mmio) writew(val, chip->remap_addr + offset); @@ -331,7 +330,7 @@ static void iaputword(intel8x0_t *chip, u32 offset, u16 val) */ /* return the GLOB_STA bit for the corresponding codec */ -static unsigned int get_ich_codec_bit(intel8x0_t *chip, unsigned int codec) +static unsigned int get_ich_codec_bit(struct intel8x0m *chip, unsigned int codec) { static unsigned int codec_bit[3] = { ICH_PCR, ICH_SCR, ICH_TCR @@ -340,7 +339,7 @@ static unsigned int get_ich_codec_bit(intel8x0_t *chip, unsigned int codec) return codec_bit[codec]; } -static int snd_intel8x0m_codec_semaphore(intel8x0_t *chip, unsigned int codec) +static int snd_intel8x0m_codec_semaphore(struct intel8x0m *chip, unsigned int codec) { int time; @@ -370,11 +369,11 @@ static int snd_intel8x0m_codec_semaphore(intel8x0_t *chip, unsigned int codec) return -EBUSY; } -static void snd_intel8x0_codec_write(ac97_t *ac97, +static void snd_intel8x0_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0m *chip = ac97->private_data; if (snd_intel8x0m_codec_semaphore(chip, ac97->num) < 0) { if (! chip->in_ac97_init) @@ -383,10 +382,10 @@ static void snd_intel8x0_codec_write(ac97_t *ac97, iaputword(chip, reg + ac97->num * 0x80, val); } -static unsigned short snd_intel8x0_codec_read(ac97_t *ac97, +static unsigned short snd_intel8x0_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0m *chip = ac97->private_data; unsigned short res; unsigned int tmp; @@ -398,7 +397,8 @@ static unsigned short snd_intel8x0_codec_read(ac97_t *ac97, res = iagetword(chip, reg + ac97->num * 0x80); if ((tmp = igetdword(chip, ICHREG(GLOB_STA))) & ICH_RCS) { /* reset RCS and preserve other R/WC bits */ - iputdword(chip, ICHREG(GLOB_STA), tmp & ~(ICH_SRI|ICH_PRI|ICH_TRI|ICH_GSCI)); + iputdword(chip, ICHREG(GLOB_STA), + tmp & ~(ICH_SRI|ICH_PRI|ICH_TRI|ICH_GSCI)); if (! chip->in_ac97_init) snd_printk(KERN_ERR "codec_read %d: read timeout for register 0x%x\n", ac97->num, reg); res = 0xffff; @@ -413,7 +413,7 @@ static unsigned short snd_intel8x0_codec_read(ac97_t *ac97, /* * DMA I/O */ -static void snd_intel8x0_setup_periods(intel8x0_t *chip, ichdev_t *ichdev) +static void snd_intel8x0_setup_periods(struct intel8x0m *chip, struct ichdev *ichdev) { int idx; u32 *bdbar = ichdev->bdbar; @@ -460,7 +460,7 @@ static void snd_intel8x0_setup_periods(intel8x0_t *chip, ichdev_t *ichdev) * Interrupt handler */ -static inline void snd_intel8x0_update(intel8x0_t *chip, ichdev_t *ichdev) +static inline void snd_intel8x0_update(struct intel8x0m *chip, struct ichdev *ichdev) { unsigned long port = ichdev->reg_offset; int civ, i, step; @@ -489,8 +489,15 @@ static inline void snd_intel8x0_update(intel8x0_t *chip, ichdev_t *ichdev) for (i = 0; i < step; i++) { ichdev->lvi_frag++; ichdev->lvi_frag %= ichdev->frags; - ichdev->bdbar[ichdev->lvi * 2] = cpu_to_le32(ichdev->physbuf + ichdev->lvi_frag * ichdev->fragsize1); - // printk("new: bdbar[%i] = 0x%x [0x%x], prefetch = %i, all = 0x%x, 0x%x\n", ichdev->lvi * 2, ichdev->bdbar[ichdev->lvi * 2], ichdev->bdbar[ichdev->lvi * 2 + 1], inb(ICH_REG_OFF_PIV + port), inl(port + 4), inb(port + ICH_REG_OFF_CR)); + ichdev->bdbar[ichdev->lvi * 2] = cpu_to_le32(ichdev->physbuf + + ichdev->lvi_frag * + ichdev->fragsize1); +#if 0 + printk("new: bdbar[%i] = 0x%x [0x%x], prefetch = %i, all = 0x%x, 0x%x\n", + ichdev->lvi * 2, ichdev->bdbar[ichdev->lvi * 2], + ichdev->bdbar[ichdev->lvi * 2 + 1], inb(ICH_REG_OFF_PIV + port), + inl(port + 4), inb(port + ICH_REG_OFF_CR)); +#endif if (--ichdev->ack == 0) { ichdev->ack = ichdev->ack_reload; ack = 1; @@ -506,8 +513,8 @@ static inline void snd_intel8x0_update(intel8x0_t *chip, ichdev_t *ichdev) static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - intel8x0_t *chip = dev_id; - ichdev_t *ichdev; + struct intel8x0m *chip = dev_id; + struct ichdev *ichdev; unsigned int status; unsigned int i; @@ -541,10 +548,10 @@ static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs * PCM part */ -static int snd_intel8x0_pcm_trigger(snd_pcm_substream_t *substream, int cmd) +static int snd_intel8x0_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0m *chip = snd_pcm_substream_chip(substream); + struct ichdev *ichdev = get_ichdev(substream); unsigned char val = 0; unsigned long port = ichdev->reg_offset; @@ -576,21 +583,21 @@ static int snd_intel8x0_pcm_trigger(snd_pcm_substream_t *substream, int cmd) return 0; } -static int snd_intel8x0_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_intel8x0_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_intel8x0_hw_free(snd_pcm_substream_t * substream) +static int snd_intel8x0_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0m *chip = snd_pcm_substream_chip(substream); + struct ichdev *ichdev = get_ichdev(substream); size_t ptr1, ptr; ptr1 = igetword(chip, ichdev->reg_offset + ichdev->roff_picb) << chip->pcm_pos_shift; @@ -604,11 +611,11 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(snd_pcm_substream_t * substrea return bytes_to_frames(substream->runtime, ptr); } -static int snd_intel8x0m_pcm_prepare(snd_pcm_substream_t * substream) +static int snd_intel8x0m_pcm_prepare(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; - ichdev_t *ichdev = get_ichdev(substream); + struct intel8x0m *chip = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; + struct ichdev *ichdev = get_ichdev(substream); ichdev->physbuf = runtime->dma_addr; ichdev->size = snd_pcm_lib_buffer_bytes(substream); @@ -619,7 +626,7 @@ static int snd_intel8x0m_pcm_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_hardware_t snd_intel8x0m_stream = +static struct snd_pcm_hardware snd_intel8x0m_stream = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -641,58 +648,59 @@ static snd_pcm_hardware_t snd_intel8x0m_stream = }; -static int snd_intel8x0m_pcm_open(snd_pcm_substream_t * substream, ichdev_t *ichdev) +static int snd_intel8x0m_pcm_open(struct snd_pcm_substream *substream, struct ichdev *ichdev) { static unsigned int rates[] = { 8000, 9600, 12000, 16000 }; - static snd_pcm_hw_constraint_list_t hw_constraints_rates = { + static struct snd_pcm_hw_constraint_list hw_constraints_rates = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, }; - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; int err; ichdev->substream = substream; runtime->hw = snd_intel8x0m_stream; - err = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates); + err = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates); if ( err < 0 ) return err; runtime->private_data = ichdev; return 0; } -static int snd_intel8x0m_playback_open(snd_pcm_substream_t * substream) +static int snd_intel8x0m_playback_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0m *chip = snd_pcm_substream_chip(substream); return snd_intel8x0m_pcm_open(substream, &chip->ichd[ICHD_MDMOUT]); } -static int snd_intel8x0m_playback_close(snd_pcm_substream_t * substream) +static int snd_intel8x0m_playback_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0m *chip = snd_pcm_substream_chip(substream); chip->ichd[ICHD_MDMOUT].substream = NULL; return 0; } -static int snd_intel8x0m_capture_open(snd_pcm_substream_t * substream) +static int snd_intel8x0m_capture_open(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0m *chip = snd_pcm_substream_chip(substream); return snd_intel8x0m_pcm_open(substream, &chip->ichd[ICHD_MDMIN]); } -static int snd_intel8x0m_capture_close(snd_pcm_substream_t * substream) +static int snd_intel8x0m_capture_close(struct snd_pcm_substream *substream) { - intel8x0_t *chip = snd_pcm_substream_chip(substream); + struct intel8x0m *chip = snd_pcm_substream_chip(substream); chip->ichd[ICHD_MDMIN].substream = NULL; return 0; } -static snd_pcm_ops_t snd_intel8x0m_playback_ops = { +static struct snd_pcm_ops snd_intel8x0m_playback_ops = { .open = snd_intel8x0m_playback_open, .close = snd_intel8x0m_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -703,7 +711,7 @@ static snd_pcm_ops_t snd_intel8x0m_playback_ops = { .pointer = snd_intel8x0_pcm_pointer, }; -static snd_pcm_ops_t snd_intel8x0m_capture_ops = { +static struct snd_pcm_ops snd_intel8x0m_capture_ops = { .open = snd_intel8x0m_capture_open, .close = snd_intel8x0m_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -717,16 +725,17 @@ static snd_pcm_ops_t snd_intel8x0m_capture_ops = { struct ich_pcm_table { char *suffix; - snd_pcm_ops_t *playback_ops; - snd_pcm_ops_t *capture_ops; + struct snd_pcm_ops *playback_ops; + struct snd_pcm_ops *capture_ops; size_t prealloc_size; size_t prealloc_max_size; int ac97_idx; }; -static int __devinit snd_intel8x0_pcm1(intel8x0_t *chip, int device, struct ich_pcm_table *rec) +static int __devinit snd_intel8x0_pcm1(struct intel8x0m *chip, int device, + struct ich_pcm_table *rec) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; char name[32]; @@ -772,7 +781,7 @@ static struct ich_pcm_table intel_pcms[] __devinitdata = { }, }; -static int __devinit snd_intel8x0_pcm(intel8x0_t *chip) +static int __devinit snd_intel8x0_pcm(struct intel8x0m *chip) { int i, tblsize, device, err; struct ich_pcm_table *tbl, *rec; @@ -819,27 +828,27 @@ static int __devinit snd_intel8x0_pcm(intel8x0_t *chip) * Mixer part */ -static void snd_intel8x0_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_intel8x0_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - intel8x0_t *chip = bus->private_data; + struct intel8x0m *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_intel8x0_mixer_free_ac97(ac97_t *ac97) +static void snd_intel8x0_mixer_free_ac97(struct snd_ac97 *ac97) { - intel8x0_t *chip = ac97->private_data; + struct intel8x0m *chip = ac97->private_data; chip->ac97 = NULL; } -static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock) +static int __devinit snd_intel8x0_mixer(struct intel8x0m *chip, int ac97_clock) { - ac97_bus_t *pbus; - ac97_template_t ac97; - ac97_t *x97; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; + struct snd_ac97 *x97; int err; unsigned int glob_sta = 0; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_intel8x0_codec_write, .read = snd_intel8x0_codec_read, }; @@ -880,7 +889,8 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock) __err: /* clear the cold-reset bit for the next chance */ if (chip->device_type != DEVICE_ALI) - iputdword(chip, ICHREG(GLOB_CNT), igetdword(chip, ICHREG(GLOB_CNT)) & ~ICH_AC97COLD); + iputdword(chip, ICHREG(GLOB_CNT), + igetdword(chip, ICHREG(GLOB_CNT)) & ~ICH_AC97COLD); return err; } @@ -889,7 +899,7 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock) * */ -static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) +static int snd_intel8x0m_ich_chip_init(struct intel8x0m *chip, int probing) { unsigned long end_time; unsigned int cnt, status, nstatus; @@ -912,7 +922,8 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) goto __ok; schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); - snd_printk(KERN_ERR "AC'97 warm reset still in progress? [0x%x]\n", igetdword(chip, ICHREG(GLOB_CNT))); + snd_printk(KERN_ERR "AC'97 warm reset still in progress? [0x%x]\n", + igetdword(chip, ICHREG(GLOB_CNT))); return -EIO; __ok: @@ -923,14 +934,16 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) */ end_time = jiffies + HZ; do { - status = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); + status = igetdword(chip, ICHREG(GLOB_STA)) & + (ICH_PCR | ICH_SCR | ICH_TCR); if (status) break; schedule_timeout_uninterruptible(1); } while (time_after_eq(end_time, jiffies)); if (! status) { /* no codec is found */ - snd_printk(KERN_ERR "codec_ready: codec is not ready [0x%x]\n", igetdword(chip, ICHREG(GLOB_STA))); + snd_printk(KERN_ERR "codec_ready: codec is not ready [0x%x]\n", + igetdword(chip, ICHREG(GLOB_STA))); return -EIO; } @@ -952,7 +965,8 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) /* wait until all the probed codecs are ready */ end_time = jiffies + HZ; do { - nstatus = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR | ICH_TCR); + nstatus = igetdword(chip, ICHREG(GLOB_STA)) & + (ICH_PCR | ICH_SCR | ICH_TCR); if (status == nstatus) break; schedule_timeout_uninterruptible(1); @@ -967,7 +981,7 @@ static int snd_intel8x0m_ich_chip_init(intel8x0_t *chip, int probing) return 0; } -static int snd_intel8x0_chip_init(intel8x0_t *chip, int probing) +static int snd_intel8x0_chip_init(struct intel8x0m *chip, int probing) { unsigned int i; int err; @@ -988,7 +1002,7 @@ static int snd_intel8x0_chip_init(intel8x0_t *chip, int probing) return 0; } -static int snd_intel8x0_free(intel8x0_t *chip) +static int snd_intel8x0_free(struct intel8x0m *chip) { unsigned int i; @@ -1010,7 +1024,7 @@ static int snd_intel8x0_free(intel8x0_t *chip) if (chip->remap_bmaddr) iounmap(chip->remap_bmaddr); if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); pci_release_regions(chip->pci); pci_disable_device(chip->pci); kfree(chip); @@ -1021,9 +1035,9 @@ static int snd_intel8x0_free(intel8x0_t *chip) /* * power management */ -static int intel8x0m_suspend(snd_card_t *card, pm_message_t state) +static int intel8x0m_suspend(struct snd_card *card, pm_message_t state) { - intel8x0_t *chip = card->pm_private_data; + struct intel8x0m *chip = card->pm_private_data; int i; for (i = 0; i < chip->pcm_devs; i++) @@ -1034,9 +1048,9 @@ static int intel8x0m_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int intel8x0m_resume(snd_card_t *card) +static int intel8x0m_resume(struct snd_card *card) { - intel8x0_t *chip = card->pm_private_data; + struct intel8x0m *chip = card->pm_private_data; pci_enable_device(chip->pci); pci_set_master(chip->pci); snd_intel8x0_chip_init(chip, 0); @@ -1047,17 +1061,18 @@ static int intel8x0m_resume(snd_card_t *card) } #endif /* CONFIG_PM */ -static void snd_intel8x0m_proc_read(snd_info_entry_t * entry, - snd_info_buffer_t * buffer) +static void snd_intel8x0m_proc_read(struct snd_info_entry * entry, + struct snd_info_buffer *buffer) { - intel8x0_t *chip = entry->private_data; + struct intel8x0m *chip = entry->private_data; unsigned int tmp; snd_iprintf(buffer, "Intel8x0m\n\n"); if (chip->device_type == DEVICE_ALI) return; tmp = igetdword(chip, ICHREG(GLOB_STA)); - snd_iprintf(buffer, "Global control : 0x%08x\n", igetdword(chip, ICHREG(GLOB_CNT))); + snd_iprintf(buffer, "Global control : 0x%08x\n", + igetdword(chip, ICHREG(GLOB_CNT))); snd_iprintf(buffer, "Global status : 0x%08x\n", tmp); snd_iprintf(buffer, "AC'97 codecs ready :%s%s%s%s\n", tmp & ICH_PCR ? " primary" : "", @@ -1066,17 +1081,17 @@ static void snd_intel8x0m_proc_read(snd_info_entry_t * entry, (tmp & (ICH_PCR | ICH_SCR | ICH_TCR)) == 0 ? " none" : ""); } -static void __devinit snd_intel8x0m_proc_init(intel8x0_t * chip) +static void __devinit snd_intel8x0m_proc_init(struct intel8x0m * chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "intel8x0m", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_intel8x0m_proc_read); } -static int snd_intel8x0_dev_free(snd_device_t *device) +static int snd_intel8x0_dev_free(struct snd_device *device) { - intel8x0_t *chip = device->device_data; + struct intel8x0m *chip = device->device_data; return snd_intel8x0_free(chip); } @@ -1085,17 +1100,17 @@ struct ich_reg_info { unsigned int offset; }; -static int __devinit snd_intel8x0m_create(snd_card_t * card, +static int __devinit snd_intel8x0m_create(struct snd_card *card, struct pci_dev *pci, unsigned long device_type, - intel8x0_t ** r_intel8x0) + struct intel8x0m ** r_intel8x0) { - intel8x0_t *chip; + struct intel8x0m *chip; int err; unsigned int i; unsigned int int_sta_masks; - ichdev_t *ichdev; - static snd_device_ops_t ops = { + struct ichdev *ichdev; + static struct snd_device_ops ops = { .dev_free = snd_intel8x0_dev_free, }; static struct ich_reg_info intel_regs[2] = { @@ -1160,7 +1175,8 @@ static int __devinit snd_intel8x0m_create(snd_card_t * card, } port_inited: - if (request_irq(pci->irq, snd_intel8x0_interrupt, SA_INTERRUPT|SA_SHIRQ, card->shortname, (void *)chip)) { + if (request_irq(pci->irq, snd_intel8x0_interrupt, SA_INTERRUPT|SA_SHIRQ, + card->shortname, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_intel8x0_free(chip); return -EBUSY; @@ -1259,8 +1275,8 @@ static struct shortname_table { static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - intel8x0_t *chip; + struct snd_card *card; + struct intel8x0m *chip; int err; struct shortname_table *name; -- cgit v1.2.3-70-g09d2 From 3470c29dbde2aa8320acb29a654b5a72756ee58b Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:05:09 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI Maestro3 Modules: Maestro3 driver Remove xxx_t typedefs from the PCI Maestro3 driver. Signed-off-by: Takashi Iwai --- sound/pci/maestro3.c | 223 +++++++++++++++++++++++++-------------------------- 1 file changed, 111 insertions(+), 112 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index ede7a75bfe0..9878595abe3 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c @@ -767,9 +767,6 @@ MODULE_PARM_DESC(amp_gpio, "GPIO pin number for external amp. (default = -1)"); /* */ -typedef struct snd_m3_dma m3_dma_t; -typedef struct snd_m3 m3_t; - /* quirk lists */ struct m3_quirk { const char *name; /* device name */ @@ -791,11 +788,10 @@ struct m3_list { int max; }; -struct snd_m3_dma { +struct m3_dma { int number; - m3_t *chip; - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; struct assp_instance { unsigned short code, data; @@ -821,16 +817,16 @@ struct snd_m3_dma { struct snd_m3 { - snd_card_t *card; + struct snd_card *card; unsigned long iobase; int irq; unsigned int allegro_flag : 1; - ac97_t *ac97; + struct snd_ac97 *ac97; - snd_pcm_t *pcm; + struct snd_pcm *pcm; struct pci_dev *pci; struct m3_quirk *quirk; @@ -851,17 +847,17 @@ struct snd_m3 { int amp_gpio; /* midi */ - snd_rawmidi_t *rmidi; + struct snd_rawmidi *rmidi; /* pcm streams */ int num_substreams; - m3_dma_t *substreams; + struct m3_dma *substreams; spinlock_t reg_lock; spinlock_t ac97_lock; - snd_kcontrol_t *master_switch; - snd_kcontrol_t *master_volume; + struct snd_kcontrol *master_switch; + struct snd_kcontrol *master_volume; struct tasklet_struct hwvol_tq; #ifdef CONFIG_PM @@ -1021,22 +1017,22 @@ static struct m3_hv_quirk m3_hv_quirk_list[] = { * lowlevel functions */ -static inline void snd_m3_outw(m3_t *chip, u16 value, unsigned long reg) +static inline void snd_m3_outw(struct snd_m3 *chip, u16 value, unsigned long reg) { outw(value, chip->iobase + reg); } -static inline u16 snd_m3_inw(m3_t *chip, unsigned long reg) +static inline u16 snd_m3_inw(struct snd_m3 *chip, unsigned long reg) { return inw(chip->iobase + reg); } -static inline void snd_m3_outb(m3_t *chip, u8 value, unsigned long reg) +static inline void snd_m3_outb(struct snd_m3 *chip, u8 value, unsigned long reg) { outb(value, chip->iobase + reg); } -static inline u8 snd_m3_inb(m3_t *chip, unsigned long reg) +static inline u8 snd_m3_inb(struct snd_m3 *chip, unsigned long reg) { return inb(chip->iobase + reg); } @@ -1045,28 +1041,28 @@ static inline u8 snd_m3_inb(m3_t *chip, unsigned long reg) * access 16bit words to the code or data regions of the dsp's memory. * index addresses 16bit words. */ -static u16 snd_m3_assp_read(m3_t *chip, u16 region, u16 index) +static u16 snd_m3_assp_read(struct snd_m3 *chip, u16 region, u16 index) { snd_m3_outw(chip, region & MEMTYPE_MASK, DSP_PORT_MEMORY_TYPE); snd_m3_outw(chip, index, DSP_PORT_MEMORY_INDEX); return snd_m3_inw(chip, DSP_PORT_MEMORY_DATA); } -static void snd_m3_assp_write(m3_t *chip, u16 region, u16 index, u16 data) +static void snd_m3_assp_write(struct snd_m3 *chip, u16 region, u16 index, u16 data) { snd_m3_outw(chip, region & MEMTYPE_MASK, DSP_PORT_MEMORY_TYPE); snd_m3_outw(chip, index, DSP_PORT_MEMORY_INDEX); snd_m3_outw(chip, data, DSP_PORT_MEMORY_DATA); } -static void snd_m3_assp_halt(m3_t *chip) +static void snd_m3_assp_halt(struct snd_m3 *chip) { chip->reset_state = snd_m3_inb(chip, DSP_PORT_CONTROL_REG_B) & ~REGB_STOP_CLOCK; msleep(10); snd_m3_outb(chip, chip->reset_state & ~REGB_ENABLE_RESET, DSP_PORT_CONTROL_REG_B); } -static void snd_m3_assp_continue(m3_t *chip) +static void snd_m3_assp_continue(struct snd_m3 *chip) { snd_m3_outb(chip, chip->reset_state | REGB_ENABLE_RESET, DSP_PORT_CONTROL_REG_B); } @@ -1080,7 +1076,7 @@ static void snd_m3_assp_continue(m3_t *chip) * by the binary code images. */ -static int snd_m3_add_list(m3_t *chip, struct m3_list *list, u16 val) +static int snd_m3_add_list(struct snd_m3 *chip, struct m3_list *list, u16 val) { snd_m3_assp_write(chip, MEMTYPE_INTERNAL_DATA, list->mem_addr + list->curlen, @@ -1088,7 +1084,7 @@ static int snd_m3_add_list(m3_t *chip, struct m3_list *list, u16 val) return list->curlen++; } -static void snd_m3_remove_list(m3_t *chip, struct m3_list *list, int index) +static void snd_m3_remove_list(struct snd_m3 *chip, struct m3_list *list, int index) { u16 val; int lastindex = list->curlen - 1; @@ -1108,7 +1104,7 @@ static void snd_m3_remove_list(m3_t *chip, struct m3_list *list, int index) list->curlen--; } -static void snd_m3_inc_timer_users(m3_t *chip) +static void snd_m3_inc_timer_users(struct snd_m3 *chip) { chip->timer_users++; if (chip->timer_users != 1) @@ -1127,7 +1123,7 @@ static void snd_m3_inc_timer_users(m3_t *chip) HOST_INT_CTRL); } -static void snd_m3_dec_timer_users(m3_t *chip) +static void snd_m3_dec_timer_users(struct snd_m3 *chip) { chip->timer_users--; if (chip->timer_users > 0) @@ -1151,7 +1147,8 @@ static void snd_m3_dec_timer_users(m3_t *chip) */ /* spinlock held! */ -static int snd_m3_pcm_start(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) +static int snd_m3_pcm_start(struct snd_m3 *chip, struct m3_dma *s, + struct snd_pcm_substream *subs) { if (! s || ! subs) return -EINVAL; @@ -1167,7 +1164,7 @@ static int snd_m3_pcm_start(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) chip->dacs_active); break; case SNDRV_PCM_STREAM_CAPTURE: - snd_m3_assp_write(s->chip, MEMTYPE_INTERNAL_DATA, + snd_m3_assp_write(chip, MEMTYPE_INTERNAL_DATA, KDATA_ADC1_REQUEST, 1); snd_m3_assp_write(chip, MEMTYPE_INTERNAL_DATA, s->inst.data + CDATA_INSTANCE_READY, 1); @@ -1177,7 +1174,8 @@ static int snd_m3_pcm_start(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) } /* spinlock held! */ -static int snd_m3_pcm_stop(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) +static int snd_m3_pcm_stop(struct snd_m3 *chip, struct m3_dma *s, + struct snd_pcm_substream *subs) { if (! s || ! subs) return -EINVAL; @@ -1201,10 +1199,10 @@ static int snd_m3_pcm_stop(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) } static int -snd_m3_pcm_trigger(snd_pcm_substream_t *subs, int cmd) +snd_m3_pcm_trigger(struct snd_pcm_substream *subs, int cmd) { - m3_t *chip = snd_pcm_substream_chip(subs); - m3_dma_t *s = (m3_dma_t*)subs->runtime->private_data; + struct snd_m3 *chip = snd_pcm_substream_chip(subs); + struct m3_dma *s = subs->runtime->private_data; int err = -EINVAL; snd_assert(s != NULL, return -ENXIO); @@ -1238,10 +1236,10 @@ snd_m3_pcm_trigger(snd_pcm_substream_t *subs, int cmd) * setup */ static void -snd_m3_pcm_setup1(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) +snd_m3_pcm_setup1(struct snd_m3 *chip, struct m3_dma *s, struct snd_pcm_substream *subs) { int dsp_in_size, dsp_out_size, dsp_in_buffer, dsp_out_buffer; - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_pcm_runtime *runtime = subs->runtime; if (subs->stream == SNDRV_PCM_STREAM_PLAYBACK) { dsp_in_size = MINISRC_IN_BUFFER_SIZE - (0x20 * 2); @@ -1323,7 +1321,8 @@ snd_m3_pcm_setup1(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) dsp_out_buffer); } -static void snd_m3_pcm_setup2(m3_t *chip, m3_dma_t *s, snd_pcm_runtime_t *runtime) +static void snd_m3_pcm_setup2(struct snd_m3 *chip, struct m3_dma *s, + struct snd_pcm_runtime *runtime) { u32 freq; @@ -1389,7 +1388,8 @@ static struct play_vals { /* the mode passed should be already shifted and masked */ static void -snd_m3_playback_setup(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) +snd_m3_playback_setup(struct snd_m3 *chip, struct m3_dma *s, + struct snd_pcm_substream *subs) { unsigned int i; @@ -1455,7 +1455,7 @@ static struct rec_vals { }; static void -snd_m3_capture_setup(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) +snd_m3_capture_setup(struct snd_m3 *chip, struct m3_dma *s, struct snd_pcm_substream *subs) { unsigned int i; @@ -1481,10 +1481,10 @@ snd_m3_capture_setup(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) s->inst.data + rv[i].addr, rv[i].val); } -static int snd_m3_pcm_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_m3_pcm_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - m3_dma_t *s = (m3_dma_t*) substream->runtime->private_data; + struct m3_dma *s = substream->runtime->private_data; int err; if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0) @@ -1498,24 +1498,24 @@ static int snd_m3_pcm_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_m3_pcm_hw_free(snd_pcm_substream_t * substream) +static int snd_m3_pcm_hw_free(struct snd_pcm_substream *substream) { - m3_dma_t *s; + struct m3_dma *s; if (substream->runtime->private_data == NULL) return 0; - s = (m3_dma_t*) substream->runtime->private_data; + s = substream->runtime->private_data; snd_pcm_lib_free_pages(substream); s->buffer_addr = 0; return 0; } static int -snd_m3_pcm_prepare(snd_pcm_substream_t *subs) +snd_m3_pcm_prepare(struct snd_pcm_substream *subs) { - m3_t *chip = snd_pcm_substream_chip(subs); - snd_pcm_runtime_t *runtime = subs->runtime; - m3_dma_t *s = (m3_dma_t*)runtime->private_data; + struct snd_m3 *chip = snd_pcm_substream_chip(subs); + struct snd_pcm_runtime *runtime = subs->runtime; + struct m3_dma *s = runtime->private_data; snd_assert(s != NULL, return -ENXIO); @@ -1546,7 +1546,7 @@ snd_m3_pcm_prepare(snd_pcm_substream_t *subs) * get current pointer */ static unsigned int -snd_m3_get_pointer(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) +snd_m3_get_pointer(struct snd_m3 *chip, struct m3_dma *s, struct snd_pcm_substream *subs) { u16 hi = 0, lo = 0; int retry = 10; @@ -1571,11 +1571,11 @@ snd_m3_get_pointer(m3_t *chip, m3_dma_t *s, snd_pcm_substream_t *subs) } static snd_pcm_uframes_t -snd_m3_pcm_pointer(snd_pcm_substream_t * subs) +snd_m3_pcm_pointer(struct snd_pcm_substream *subs) { - m3_t *chip = snd_pcm_substream_chip(subs); + struct snd_m3 *chip = snd_pcm_substream_chip(subs); unsigned int ptr; - m3_dma_t *s = (m3_dma_t*)subs->runtime->private_data; + struct m3_dma *s = subs->runtime->private_data; snd_assert(s != NULL, return 0); spin_lock(&chip->reg_lock); @@ -1587,9 +1587,9 @@ snd_m3_pcm_pointer(snd_pcm_substream_t * subs) /* update pointer */ /* spinlock held! */ -static void snd_m3_update_ptr(m3_t *chip, m3_dma_t *s) +static void snd_m3_update_ptr(struct snd_m3 *chip, struct m3_dma *s) { - snd_pcm_substream_t *subs = s->substream; + struct snd_pcm_substream *subs = s->substream; unsigned int hwptr; int diff; @@ -1610,7 +1610,7 @@ static void snd_m3_update_ptr(m3_t *chip, m3_dma_t *s) static void snd_m3_update_hw_volume(unsigned long private_data) { - m3_t *chip = (m3_t *) private_data; + struct snd_m3 *chip = (struct snd_m3 *) private_data; int x, val; unsigned long flags; @@ -1673,7 +1673,7 @@ static void snd_m3_update_hw_volume(unsigned long private_data) static irqreturn_t snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - m3_t *chip = dev_id; + struct snd_m3 *chip = dev_id; u8 status; int i; @@ -1698,7 +1698,7 @@ snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs) /* update adc/dac info if it was a timer int */ spin_lock(&chip->reg_lock); for (i = 0; i < chip->num_substreams; i++) { - m3_dma_t *s = &chip->substreams[i]; + struct m3_dma *s = &chip->substreams[i]; if (s->running) snd_m3_update_ptr(chip, s); } @@ -1722,7 +1722,7 @@ snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs) /* */ -static snd_pcm_hardware_t snd_m3_playback = +static struct snd_pcm_hardware snd_m3_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | @@ -1743,7 +1743,7 @@ static snd_pcm_hardware_t snd_m3_playback = .periods_max = 1024, }; -static snd_pcm_hardware_t snd_m3_capture = +static struct snd_pcm_hardware snd_m3_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | @@ -1769,10 +1769,10 @@ static snd_pcm_hardware_t snd_m3_capture = */ static int -snd_m3_substream_open(m3_t *chip, snd_pcm_substream_t *subs) +snd_m3_substream_open(struct snd_m3 *chip, struct snd_pcm_substream *subs) { int i; - m3_dma_t *s; + struct m3_dma *s; spin_lock_irq(&chip->reg_lock); for (i = 0; i < chip->num_substreams; i++) { @@ -1802,9 +1802,9 @@ __found: } static void -snd_m3_substream_close(m3_t *chip, snd_pcm_substream_t *subs) +snd_m3_substream_close(struct snd_m3 *chip, struct snd_pcm_substream *subs) { - m3_dma_t *s = (m3_dma_t*) subs->runtime->private_data; + struct m3_dma *s = subs->runtime->private_data; if (s == NULL) return; /* not opened properly */ @@ -1824,10 +1824,10 @@ snd_m3_substream_close(m3_t *chip, snd_pcm_substream_t *subs) } static int -snd_m3_playback_open(snd_pcm_substream_t *subs) +snd_m3_playback_open(struct snd_pcm_substream *subs) { - m3_t *chip = snd_pcm_substream_chip(subs); - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_m3 *chip = snd_pcm_substream_chip(subs); + struct snd_pcm_runtime *runtime = subs->runtime; int err; if ((err = snd_m3_substream_open(chip, subs)) < 0) @@ -1840,19 +1840,19 @@ snd_m3_playback_open(snd_pcm_substream_t *subs) } static int -snd_m3_playback_close(snd_pcm_substream_t *subs) +snd_m3_playback_close(struct snd_pcm_substream *subs) { - m3_t *chip = snd_pcm_substream_chip(subs); + struct snd_m3 *chip = snd_pcm_substream_chip(subs); snd_m3_substream_close(chip, subs); return 0; } static int -snd_m3_capture_open(snd_pcm_substream_t *subs) +snd_m3_capture_open(struct snd_pcm_substream *subs) { - m3_t *chip = snd_pcm_substream_chip(subs); - snd_pcm_runtime_t *runtime = subs->runtime; + struct snd_m3 *chip = snd_pcm_substream_chip(subs); + struct snd_pcm_runtime *runtime = subs->runtime; int err; if ((err = snd_m3_substream_open(chip, subs)) < 0) @@ -1865,9 +1865,9 @@ snd_m3_capture_open(snd_pcm_substream_t *subs) } static int -snd_m3_capture_close(snd_pcm_substream_t *subs) +snd_m3_capture_close(struct snd_pcm_substream *subs) { - m3_t *chip = snd_pcm_substream_chip(subs); + struct snd_m3 *chip = snd_pcm_substream_chip(subs); snd_m3_substream_close(chip, subs); return 0; @@ -1877,7 +1877,7 @@ snd_m3_capture_close(snd_pcm_substream_t *subs) * create pcm instance */ -static snd_pcm_ops_t snd_m3_playback_ops = { +static struct snd_pcm_ops snd_m3_playback_ops = { .open = snd_m3_playback_open, .close = snd_m3_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1888,7 +1888,7 @@ static snd_pcm_ops_t snd_m3_playback_ops = { .pointer = snd_m3_pcm_pointer, }; -static snd_pcm_ops_t snd_m3_capture_ops = { +static struct snd_pcm_ops snd_m3_capture_ops = { .open = snd_m3_capture_open, .close = snd_m3_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1900,9 +1900,9 @@ static snd_pcm_ops_t snd_m3_capture_ops = { }; static int __devinit -snd_m3_pcm(m3_t * chip, int device) +snd_m3_pcm(struct snd_m3 * chip, int device) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; err = snd_pcm_new(chip->card, chip->card->driver, device, @@ -1933,7 +1933,7 @@ snd_m3_pcm(m3_t * chip, int device) * Wait for the ac97 serial bus to be free. * return nonzero if the bus is still busy. */ -static int snd_m3_ac97_wait(m3_t *chip) +static int snd_m3_ac97_wait(struct snd_m3 *chip) { int i = 10000; @@ -1947,9 +1947,9 @@ static int snd_m3_ac97_wait(m3_t *chip) } static unsigned short -snd_m3_ac97_read(ac97_t *ac97, unsigned short reg) +snd_m3_ac97_read(struct snd_ac97 *ac97, unsigned short reg) { - m3_t *chip = ac97->private_data; + struct snd_m3 *chip = ac97->private_data; unsigned long flags; unsigned short data; @@ -1965,9 +1965,9 @@ snd_m3_ac97_read(ac97_t *ac97, unsigned short reg) } static void -snd_m3_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val) +snd_m3_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - m3_t *chip = ac97->private_data; + struct snd_m3 *chip = ac97->private_data; unsigned long flags; if (snd_m3_ac97_wait(chip)) @@ -1994,7 +1994,7 @@ static void snd_m3_remote_codec_config(int io, int isremote) /* * hack, returns non zero on err */ -static int snd_m3_try_read_vendor(m3_t *chip) +static int snd_m3_try_read_vendor(struct snd_m3 *chip) { u16 ret; @@ -2011,7 +2011,7 @@ static int snd_m3_try_read_vendor(m3_t *chip) return (ret == 0) || (ret == 0xffff); } -static void snd_m3_ac97_reset(m3_t *chip) +static void snd_m3_ac97_reset(struct snd_m3 *chip) { u16 dir; int delay1 = 0, delay2 = 0, i; @@ -2078,13 +2078,13 @@ static void snd_m3_ac97_reset(m3_t *chip) #endif } -static int __devinit snd_m3_mixer(m3_t *chip) +static int __devinit snd_m3_mixer(struct snd_m3 *chip) { - ac97_bus_t *pbus; - ac97_template_t ac97; - snd_ctl_elem_id_t id; + struct snd_ac97_bus *pbus; + struct snd_ac97_template ac97; + struct snd_ctl_elem_id id; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_m3_ac97_write, .read = snd_m3_ac97_read, }; @@ -2254,7 +2254,7 @@ static u16 minisrc_lpf[MINISRC_LPF_LEN] __devinitdata = { 0X1023, 0X1AA9, 0X0B60, 0XEFDD, 0X186F }; -static void __devinit snd_m3_assp_init(m3_t *chip) +static void __devinit snd_m3_assp_init(struct snd_m3 *chip) { unsigned int i; @@ -2343,7 +2343,7 @@ static void __devinit snd_m3_assp_init(m3_t *chip) } -static int __devinit snd_m3_assp_client_init(m3_t *chip, m3_dma_t *s, int index) +static int __devinit snd_m3_assp_client_init(struct snd_m3 *chip, struct m3_dma *s, int index) { int data_bytes = 2 * ( MINISRC_TMP_BUFFER_SIZE / 2 + MINISRC_IN_BUFFER_SIZE / 2 + @@ -2389,7 +2389,7 @@ static int __devinit snd_m3_assp_client_init(m3_t *chip, m3_dma_t *s, int index) * this needs more magic for 4 speaker, but.. */ static void -snd_m3_amp_enable(m3_t *chip, int enable) +snd_m3_amp_enable(struct snd_m3 *chip, int enable) { int io = chip->iobase; u16 gpo, polarity; @@ -2413,7 +2413,7 @@ snd_m3_amp_enable(m3_t *chip, int enable) } static int -snd_m3_chip_init(m3_t *chip) +snd_m3_chip_init(struct snd_m3 *chip) { struct pci_dev *pcidev = chip->pci; unsigned long io = chip->iobase; @@ -2486,7 +2486,7 @@ snd_m3_chip_init(m3_t *chip) } static void -snd_m3_enable_ints(m3_t *chip) +snd_m3_enable_ints(struct snd_m3 *chip) { unsigned long io = chip->iobase; unsigned short val; @@ -2504,9 +2504,9 @@ snd_m3_enable_ints(m3_t *chip) /* */ -static int snd_m3_free(m3_t *chip) +static int snd_m3_free(struct snd_m3 *chip) { - m3_dma_t *s; + struct m3_dma *s; int i; if (chip->substreams) { @@ -2530,7 +2530,7 @@ static int snd_m3_free(m3_t *chip) if (chip->irq >= 0) { synchronize_irq(chip->irq); - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); } if (chip->iobase) @@ -2546,9 +2546,9 @@ static int snd_m3_free(m3_t *chip) * APM support */ #ifdef CONFIG_PM -static int m3_suspend(snd_card_t *card, pm_message_t state) +static int m3_suspend(struct snd_card *card, pm_message_t state) { - m3_t *chip = card->pm_private_data; + struct snd_m3 *chip = card->pm_private_data; int i, index; if (chip->suspend_mem == NULL) @@ -2578,9 +2578,9 @@ static int m3_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int m3_resume(snd_card_t *card) +static int m3_resume(struct snd_card *card) { - m3_t *chip = card->pm_private_data; + struct snd_m3 *chip = card->pm_private_data; int i, index; if (chip->suspend_mem == NULL) @@ -2625,23 +2625,23 @@ static int m3_resume(snd_card_t *card) /* */ -static int snd_m3_dev_free(snd_device_t *device) +static int snd_m3_dev_free(struct snd_device *device) { - m3_t *chip = device->device_data; + struct snd_m3 *chip = device->device_data; return snd_m3_free(chip); } static int __devinit -snd_m3_create(snd_card_t *card, struct pci_dev *pci, +snd_m3_create(struct snd_card *card, struct pci_dev *pci, int enable_amp, int amp_gpio, - m3_t **chip_ret) + struct snd_m3 **chip_ret) { - m3_t *chip; + struct snd_m3 *chip; int i, err; struct m3_quirk *quirk; struct m3_hv_quirk *hv_quirk; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_m3_dev_free, }; @@ -2710,13 +2710,13 @@ snd_m3_create(snd_card_t *card, struct pci_dev *pci, chip->amp_gpio = GPO_EXT_AMP_M3; chip->num_substreams = NR_DSPS; - chip->substreams = kmalloc(sizeof(m3_dma_t) * chip->num_substreams, GFP_KERNEL); + chip->substreams = kcalloc(chip->num_substreams, sizeof(struct m3_dma), + GFP_KERNEL); if (chip->substreams == NULL) { kfree(chip); pci_disable_device(pci); return -ENOMEM; } - memset(chip->substreams, 0, sizeof(m3_dma_t) * chip->num_substreams); if ((err = pci_request_regions(pci, card->driver)) < 0) { snd_m3_free(chip); @@ -2737,7 +2737,7 @@ snd_m3_create(snd_card_t *card, struct pci_dev *pci, tasklet_init(&chip->hwvol_tq, snd_m3_update_hw_volume, (unsigned long)chip); if (request_irq(pci->irq, snd_m3_interrupt, SA_INTERRUPT|SA_SHIRQ, - card->driver, (void *)chip)) { + card->driver, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_m3_free(chip); return -ENOMEM; @@ -2761,8 +2761,7 @@ snd_m3_create(snd_card_t *card, struct pci_dev *pci, return err; for (i = 0; i < chip->num_substreams; i++) { - m3_dma_t *s = &chip->substreams[i]; - s->chip = chip; + struct m3_dma *s = &chip->substreams[i]; if ((err = snd_m3_assp_client_init(chip, s, i)) < 0) return err; } @@ -2786,8 +2785,8 @@ static int __devinit snd_m3_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - m3_t *chip; + struct snd_card *card; + struct snd_m3 *chip; int err; /* don't pick up modems */ -- cgit v1.2.3-70-g09d2 From 017ce80236c28bae9c2573307f1e76724232f287 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:05:25 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI RME32 Modules: RME32 driver Remove xxx_t typedefs from the PCI RME32 driver. Signed-off-by: Takashi Iwai --- sound/pci/rme32.c | 332 +++++++++++++++++++++++++++--------------------------- 1 file changed, 166 insertions(+), 166 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c index 783df7625c1..0cbef5fe6c6 100644 --- a/sound/pci/rme32.c +++ b/sound/pci/rme32.c @@ -192,7 +192,7 @@ MODULE_SUPPORTED_DEVICE("{{RME,Digi32}," "{RME,Digi32/8}," "{RME,Digi32 PRO}}"); #define RME32_PRO_REVISION_WITH_8414 150 -typedef struct snd_rme32 { +struct rme32 { spinlock_t lock; int irq; unsigned long port; @@ -205,8 +205,8 @@ typedef struct snd_rme32 { u8 rev; /* card revision number */ - snd_pcm_substream_t *playback_substream; - snd_pcm_substream_t *capture_substream; + struct snd_pcm_substream *playback_substream; + struct snd_pcm_substream *capture_substream; int playback_frlog; /* log2 of framesize */ int capture_frlog; @@ -217,15 +217,15 @@ typedef struct snd_rme32 { unsigned int fullduplex_mode; int running; - snd_pcm_indirect_t playback_pcm; - snd_pcm_indirect_t capture_pcm; + struct snd_pcm_indirect playback_pcm; + struct snd_pcm_indirect capture_pcm; - snd_card_t *card; - snd_pcm_t *spdif_pcm; - snd_pcm_t *adat_pcm; + struct snd_card *card; + struct snd_pcm *spdif_pcm; + struct snd_pcm *adat_pcm; struct pci_dev *pci; - snd_kcontrol_t *spdif_ctl; -} rme32_t; + struct snd_kcontrol *spdif_ctl; +}; static struct pci_device_id snd_rme32_ids[] = { {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32, @@ -242,17 +242,17 @@ MODULE_DEVICE_TABLE(pci, snd_rme32_ids); #define RME32_ISWORKING(rme32) ((rme32)->wcreg & RME32_WCR_START) #define RME32_PRO_WITH_8414(rme32) ((rme32)->pci->device == PCI_DEVICE_ID_RME_DIGI32_PRO && (rme32)->rev == RME32_PRO_REVISION_WITH_8414) -static int snd_rme32_playback_prepare(snd_pcm_substream_t * substream); +static int snd_rme32_playback_prepare(struct snd_pcm_substream *substream); -static int snd_rme32_capture_prepare(snd_pcm_substream_t * substream); +static int snd_rme32_capture_prepare(struct snd_pcm_substream *substream); -static int snd_rme32_pcm_trigger(snd_pcm_substream_t * substream, int cmd); +static int snd_rme32_pcm_trigger(struct snd_pcm_substream *substream, int cmd); -static void snd_rme32_proc_init(rme32_t * rme32); +static void snd_rme32_proc_init(struct rme32 * rme32); -static int snd_rme32_create_switches(snd_card_t * card, rme32_t * rme32); +static int snd_rme32_create_switches(struct snd_card *card, struct rme32 * rme32); -static inline unsigned int snd_rme32_pcm_byteptr(rme32_t * rme32) +static inline unsigned int snd_rme32_pcm_byteptr(struct rme32 * rme32) { return (readl(rme32->iobase + RME32_IO_GET_POS) & RME32_RCR_AUDIO_ADDR_MASK); @@ -272,11 +272,11 @@ static int snd_rme32_ratecode(int rate) } /* silence callback for halfduplex mode */ -static int snd_rme32_playback_silence(snd_pcm_substream_t * substream, int channel, /* not used (interleaved data) */ +static int snd_rme32_playback_silence(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, snd_pcm_uframes_t count) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); count <<= rme32->playback_frlog; pos <<= rme32->playback_frlog; memset_io(rme32->iobase + RME32_IO_DATA_BUFFER + pos, 0, count); @@ -284,11 +284,11 @@ static int snd_rme32_playback_silence(snd_pcm_substream_t * substream, int chann } /* copy callback for halfduplex mode */ -static int snd_rme32_playback_copy(snd_pcm_substream_t * substream, int channel, /* not used (interleaved data) */ +static int snd_rme32_playback_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); count <<= rme32->playback_frlog; pos <<= rme32->playback_frlog; if (copy_from_user_toio(rme32->iobase + RME32_IO_DATA_BUFFER + pos, @@ -298,11 +298,11 @@ static int snd_rme32_playback_copy(snd_pcm_substream_t * substream, int channel, } /* copy callback for halfduplex mode */ -static int snd_rme32_capture_copy(snd_pcm_substream_t * substream, int channel, /* not used (interleaved data) */ +static int snd_rme32_capture_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); count <<= rme32->capture_frlog; pos <<= rme32->capture_frlog; if (copy_to_user_fromio(dst, @@ -315,7 +315,7 @@ static int snd_rme32_capture_copy(snd_pcm_substream_t * substream, int channel, /* * SPDIF I/O capabilites (half-duplex mode) */ -static snd_pcm_hardware_t snd_rme32_spdif_info = { +static struct snd_pcm_hardware snd_rme32_spdif_info = { .info = (SNDRV_PCM_INFO_MMAP_IOMEM | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_INTERLEAVED | @@ -341,7 +341,7 @@ static snd_pcm_hardware_t snd_rme32_spdif_info = { /* * ADAT I/O capabilites (half-duplex mode) */ -static snd_pcm_hardware_t snd_rme32_adat_info = +static struct snd_pcm_hardware snd_rme32_adat_info = { .info = (SNDRV_PCM_INFO_MMAP_IOMEM | SNDRV_PCM_INFO_MMAP_VALID | @@ -366,7 +366,7 @@ static snd_pcm_hardware_t snd_rme32_adat_info = /* * SPDIF I/O capabilites (full-duplex mode) */ -static snd_pcm_hardware_t snd_rme32_spdif_fd_info = { +static struct snd_pcm_hardware snd_rme32_spdif_fd_info = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_INTERLEAVED | @@ -392,7 +392,7 @@ static snd_pcm_hardware_t snd_rme32_spdif_fd_info = { /* * ADAT I/O capabilites (full-duplex mode) */ -static snd_pcm_hardware_t snd_rme32_adat_fd_info = +static struct snd_pcm_hardware snd_rme32_adat_fd_info = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | @@ -414,14 +414,14 @@ static snd_pcm_hardware_t snd_rme32_adat_fd_info = .fifo_size = 0, }; -static void snd_rme32_reset_dac(rme32_t *rme32) +static void snd_rme32_reset_dac(struct rme32 *rme32) { writel(rme32->wcreg | RME32_WCR_PD, rme32->iobase + RME32_IO_CONTROL_REGISTER); writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); } -static int snd_rme32_playback_getrate(rme32_t * rme32) +static int snd_rme32_playback_getrate(struct rme32 * rme32) { int rate; @@ -443,7 +443,7 @@ static int snd_rme32_playback_getrate(rme32_t * rme32) return (rme32->wcreg & RME32_WCR_DS_BM) ? rate << 1 : rate; } -static int snd_rme32_capture_getrate(rme32_t * rme32, int *is_adat) +static int snd_rme32_capture_getrate(struct rme32 * rme32, int *is_adat) { int n; @@ -505,7 +505,7 @@ static int snd_rme32_capture_getrate(rme32_t * rme32, int *is_adat) return -1; } -static int snd_rme32_playback_setrate(rme32_t * rme32, int rate) +static int snd_rme32_playback_setrate(struct rme32 * rme32, int rate) { int ds; @@ -561,7 +561,7 @@ static int snd_rme32_playback_setrate(rme32_t * rme32, int rate) return 0; } -static int snd_rme32_setclockmode(rme32_t * rme32, int mode) +static int snd_rme32_setclockmode(struct rme32 * rme32, int mode) { switch (mode) { case RME32_CLOCKMODE_SLAVE: @@ -591,13 +591,13 @@ static int snd_rme32_setclockmode(rme32_t * rme32, int mode) return 0; } -static int snd_rme32_getclockmode(rme32_t * rme32) +static int snd_rme32_getclockmode(struct rme32 * rme32) { return ((rme32->wcreg >> RME32_WCR_BITPOS_FREQ_0) & 1) + (((rme32->wcreg >> RME32_WCR_BITPOS_FREQ_1) & 1) << 1); } -static int snd_rme32_setinputtype(rme32_t * rme32, int type) +static int snd_rme32_setinputtype(struct rme32 * rme32, int type) { switch (type) { case RME32_INPUT_OPTICAL: @@ -623,14 +623,14 @@ static int snd_rme32_setinputtype(rme32_t * rme32, int type) return 0; } -static int snd_rme32_getinputtype(rme32_t * rme32) +static int snd_rme32_getinputtype(struct rme32 * rme32) { return ((rme32->wcreg >> RME32_WCR_BITPOS_INP_0) & 1) + (((rme32->wcreg >> RME32_WCR_BITPOS_INP_1) & 1) << 1); } static void -snd_rme32_setframelog(rme32_t * rme32, int n_channels, int is_playback) +snd_rme32_setframelog(struct rme32 * rme32, int n_channels, int is_playback) { int frlog; @@ -649,7 +649,7 @@ snd_rme32_setframelog(rme32_t * rme32, int n_channels, int is_playback) } } -static int snd_rme32_setformat(rme32_t * rme32, int format) +static int snd_rme32_setformat(struct rme32 * rme32, int format) { switch (format) { case SNDRV_PCM_FORMAT_S16_LE: @@ -666,12 +666,12 @@ static int snd_rme32_setformat(rme32_t * rme32, int format) } static int -snd_rme32_playback_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * params) +snd_rme32_playback_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { int err, rate, dummy; - rme32_t *rme32 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme32 *rme32 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; if (rme32->fullduplex_mode) { err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); @@ -721,12 +721,12 @@ snd_rme32_playback_hw_params(snd_pcm_substream_t * substream, } static int -snd_rme32_capture_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * params) +snd_rme32_capture_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { int err, isadat, rate; - rme32_t *rme32 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme32 *rme32 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; if (rme32->fullduplex_mode) { err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); @@ -782,15 +782,15 @@ snd_rme32_capture_hw_params(snd_pcm_substream_t * substream, return 0; } -static int snd_rme32_pcm_hw_free(snd_pcm_substream_t * substream) +static int snd_rme32_pcm_hw_free(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); if (! rme32->fullduplex_mode) return 0; return snd_pcm_lib_free_pages(substream); } -static void snd_rme32_pcm_start(rme32_t * rme32, int from_pause) +static void snd_rme32_pcm_start(struct rme32 * rme32, int from_pause) { if (!from_pause) { writel(0, rme32->iobase + RME32_IO_RESET_POS); @@ -800,7 +800,7 @@ static void snd_rme32_pcm_start(rme32_t * rme32, int from_pause) writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); } -static void snd_rme32_pcm_stop(rme32_t * rme32, int to_pause) +static void snd_rme32_pcm_stop(struct rme32 * rme32, int to_pause) { /* * Check if there is an unconfirmed IRQ, if so confirm it, or else @@ -821,7 +821,7 @@ static void snd_rme32_pcm_stop(rme32_t * rme32, int to_pause) static irqreturn_t snd_rme32_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - rme32_t *rme32 = (rme32_t *) dev_id; + struct rme32 *rme32 = (struct rme32 *) dev_id; rme32->rcreg = readl(rme32->iobase + RME32_IO_CONTROL_REGISTER); if (!(rme32->rcreg & RME32_RCR_IRQ)) { @@ -841,13 +841,13 @@ snd_rme32_interrupt(int irq, void *dev_id, struct pt_regs *regs) static unsigned int period_bytes[] = { RME32_BLOCK_SIZE }; -static snd_pcm_hw_constraint_list_t hw_constraints_period_bytes = { +static struct snd_pcm_hw_constraint_list hw_constraints_period_bytes = { .count = ARRAY_SIZE(period_bytes), .list = period_bytes, .mask = 0 }; -static void snd_rme32_set_buffer_constraint(rme32_t *rme32, snd_pcm_runtime_t *runtime) +static void snd_rme32_set_buffer_constraint(struct rme32 *rme32, struct snd_pcm_runtime *runtime) { if (! rme32->fullduplex_mode) { snd_pcm_hw_constraint_minmax(runtime, @@ -859,11 +859,11 @@ static void snd_rme32_set_buffer_constraint(rme32_t *rme32, snd_pcm_runtime_t *r } } -static int snd_rme32_playback_spdif_open(snd_pcm_substream_t * substream) +static int snd_rme32_playback_spdif_open(struct snd_pcm_substream *substream) { int rate, dummy; - rme32_t *rme32 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme32 *rme32 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_pcm_set_sync(substream); @@ -902,11 +902,11 @@ static int snd_rme32_playback_spdif_open(snd_pcm_substream_t * substream) return 0; } -static int snd_rme32_capture_spdif_open(snd_pcm_substream_t * substream) +static int snd_rme32_capture_spdif_open(struct snd_pcm_substream *substream) { int isadat, rate; - rme32_t *rme32 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme32 *rme32 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_pcm_set_sync(substream); @@ -941,11 +941,11 @@ static int snd_rme32_capture_spdif_open(snd_pcm_substream_t * substream) } static int -snd_rme32_playback_adat_open(snd_pcm_substream_t *substream) +snd_rme32_playback_adat_open(struct snd_pcm_substream *substream) { int rate, dummy; - rme32_t *rme32 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme32 *rme32 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_pcm_set_sync(substream); @@ -976,11 +976,11 @@ snd_rme32_playback_adat_open(snd_pcm_substream_t *substream) } static int -snd_rme32_capture_adat_open(snd_pcm_substream_t *substream) +snd_rme32_capture_adat_open(struct snd_pcm_substream *substream) { int isadat, rate; - rme32_t *rme32 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme32 *rme32 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; if (rme32->fullduplex_mode) runtime->hw = snd_rme32_adat_fd_info; @@ -1009,9 +1009,9 @@ snd_rme32_capture_adat_open(snd_pcm_substream_t *substream) return 0; } -static int snd_rme32_playback_close(snd_pcm_substream_t * substream) +static int snd_rme32_playback_close(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); int spdif = 0; spin_lock_irq(&rme32->lock); @@ -1028,9 +1028,9 @@ static int snd_rme32_playback_close(snd_pcm_substream_t * substream) return 0; } -static int snd_rme32_capture_close(snd_pcm_substream_t * substream) +static int snd_rme32_capture_close(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme32->lock); rme32->capture_substream = NULL; @@ -1039,9 +1039,9 @@ static int snd_rme32_capture_close(snd_pcm_substream_t * substream) return 0; } -static int snd_rme32_playback_prepare(snd_pcm_substream_t * substream) +static int snd_rme32_playback_prepare(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme32->lock); if (rme32->fullduplex_mode) { @@ -1058,9 +1058,9 @@ static int snd_rme32_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_rme32_capture_prepare(snd_pcm_substream_t * substream) +static int snd_rme32_capture_prepare(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme32->lock); if (rme32->fullduplex_mode) { @@ -1076,11 +1076,11 @@ static int snd_rme32_capture_prepare(snd_pcm_substream_t * substream) } static int -snd_rme32_pcm_trigger(snd_pcm_substream_t * substream, int cmd) +snd_rme32_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); struct list_head *pos; - snd_pcm_substream_t *s; + struct snd_pcm_substream *s; spin_lock(&rme32->lock); snd_pcm_group_for_each(pos, substream) { @@ -1144,33 +1144,33 @@ snd_rme32_pcm_trigger(snd_pcm_substream_t * substream, int cmd) /* pointer callback for halfduplex mode */ static snd_pcm_uframes_t -snd_rme32_playback_pointer(snd_pcm_substream_t * substream) +snd_rme32_playback_pointer(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); return snd_rme32_pcm_byteptr(rme32) >> rme32->playback_frlog; } static snd_pcm_uframes_t -snd_rme32_capture_pointer(snd_pcm_substream_t * substream) +snd_rme32_capture_pointer(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); return snd_rme32_pcm_byteptr(rme32) >> rme32->capture_frlog; } /* ack and pointer callbacks for fullduplex mode */ -static void snd_rme32_pb_trans_copy(snd_pcm_substream_t *substream, - snd_pcm_indirect_t *rec, size_t bytes) +static void snd_rme32_pb_trans_copy(struct snd_pcm_substream *substream, + struct snd_pcm_indirect *rec, size_t bytes) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); memcpy_toio(rme32->iobase + RME32_IO_DATA_BUFFER + rec->hw_data, substream->runtime->dma_area + rec->sw_data, bytes); } -static int snd_rme32_playback_fd_ack(snd_pcm_substream_t *substream) +static int snd_rme32_playback_fd_ack(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); - snd_pcm_indirect_t *rec, *cprec; + struct rme32 *rme32 = snd_pcm_substream_chip(substream); + struct snd_pcm_indirect *rec, *cprec; rec = &rme32->playback_pcm; cprec = &rme32->capture_pcm; @@ -1184,41 +1184,41 @@ static int snd_rme32_playback_fd_ack(snd_pcm_substream_t *substream) return 0; } -static void snd_rme32_cp_trans_copy(snd_pcm_substream_t *substream, - snd_pcm_indirect_t *rec, size_t bytes) +static void snd_rme32_cp_trans_copy(struct snd_pcm_substream *substream, + struct snd_pcm_indirect *rec, size_t bytes) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); memcpy_fromio(substream->runtime->dma_area + rec->sw_data, rme32->iobase + RME32_IO_DATA_BUFFER + rec->hw_data, bytes); } -static int snd_rme32_capture_fd_ack(snd_pcm_substream_t *substream) +static int snd_rme32_capture_fd_ack(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); snd_pcm_indirect_capture_transfer(substream, &rme32->capture_pcm, snd_rme32_cp_trans_copy); return 0; } static snd_pcm_uframes_t -snd_rme32_playback_fd_pointer(snd_pcm_substream_t * substream) +snd_rme32_playback_fd_pointer(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); return snd_pcm_indirect_playback_pointer(substream, &rme32->playback_pcm, snd_rme32_pcm_byteptr(rme32)); } static snd_pcm_uframes_t -snd_rme32_capture_fd_pointer(snd_pcm_substream_t * substream) +snd_rme32_capture_fd_pointer(struct snd_pcm_substream *substream) { - rme32_t *rme32 = snd_pcm_substream_chip(substream); + struct rme32 *rme32 = snd_pcm_substream_chip(substream); return snd_pcm_indirect_capture_pointer(substream, &rme32->capture_pcm, snd_rme32_pcm_byteptr(rme32)); } /* for halfduplex mode */ -static snd_pcm_ops_t snd_rme32_playback_spdif_ops = { +static struct snd_pcm_ops snd_rme32_playback_spdif_ops = { .open = snd_rme32_playback_spdif_open, .close = snd_rme32_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1232,7 +1232,7 @@ static snd_pcm_ops_t snd_rme32_playback_spdif_ops = { .mmap = snd_pcm_lib_mmap_iomem, }; -static snd_pcm_ops_t snd_rme32_capture_spdif_ops = { +static struct snd_pcm_ops snd_rme32_capture_spdif_ops = { .open = snd_rme32_capture_spdif_open, .close = snd_rme32_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1245,7 +1245,7 @@ static snd_pcm_ops_t snd_rme32_capture_spdif_ops = { .mmap = snd_pcm_lib_mmap_iomem, }; -static snd_pcm_ops_t snd_rme32_playback_adat_ops = { +static struct snd_pcm_ops snd_rme32_playback_adat_ops = { .open = snd_rme32_playback_adat_open, .close = snd_rme32_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1258,7 +1258,7 @@ static snd_pcm_ops_t snd_rme32_playback_adat_ops = { .mmap = snd_pcm_lib_mmap_iomem, }; -static snd_pcm_ops_t snd_rme32_capture_adat_ops = { +static struct snd_pcm_ops snd_rme32_capture_adat_ops = { .open = snd_rme32_capture_adat_open, .close = snd_rme32_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1271,7 +1271,7 @@ static snd_pcm_ops_t snd_rme32_capture_adat_ops = { }; /* for fullduplex mode */ -static snd_pcm_ops_t snd_rme32_playback_spdif_fd_ops = { +static struct snd_pcm_ops snd_rme32_playback_spdif_fd_ops = { .open = snd_rme32_playback_spdif_open, .close = snd_rme32_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1283,7 +1283,7 @@ static snd_pcm_ops_t snd_rme32_playback_spdif_fd_ops = { .ack = snd_rme32_playback_fd_ack, }; -static snd_pcm_ops_t snd_rme32_capture_spdif_fd_ops = { +static struct snd_pcm_ops snd_rme32_capture_spdif_fd_ops = { .open = snd_rme32_capture_spdif_open, .close = snd_rme32_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1295,7 +1295,7 @@ static snd_pcm_ops_t snd_rme32_capture_spdif_fd_ops = { .ack = snd_rme32_capture_fd_ack, }; -static snd_pcm_ops_t snd_rme32_playback_adat_fd_ops = { +static struct snd_pcm_ops snd_rme32_playback_adat_fd_ops = { .open = snd_rme32_playback_adat_open, .close = snd_rme32_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1306,7 +1306,7 @@ static snd_pcm_ops_t snd_rme32_playback_adat_fd_ops = { .ack = snd_rme32_playback_fd_ack, }; -static snd_pcm_ops_t snd_rme32_capture_adat_fd_ops = { +static struct snd_pcm_ops snd_rme32_capture_adat_fd_ops = { .open = snd_rme32_capture_adat_open, .close = snd_rme32_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1319,7 +1319,7 @@ static snd_pcm_ops_t snd_rme32_capture_adat_fd_ops = { static void snd_rme32_free(void *private_data) { - rme32_t *rme32 = (rme32_t *) private_data; + struct rme32 *rme32 = (struct rme32 *) private_data; if (rme32 == NULL) { return; @@ -1340,20 +1340,20 @@ static void snd_rme32_free(void *private_data) pci_disable_device(rme32->pci); } -static void snd_rme32_free_spdif_pcm(snd_pcm_t * pcm) +static void snd_rme32_free_spdif_pcm(struct snd_pcm *pcm) { - rme32_t *rme32 = (rme32_t *) pcm->private_data; + struct rme32 *rme32 = (struct rme32 *) pcm->private_data; rme32->spdif_pcm = NULL; } static void -snd_rme32_free_adat_pcm(snd_pcm_t *pcm) +snd_rme32_free_adat_pcm(struct snd_pcm *pcm) { - rme32_t *rme32 = (rme32_t *) pcm->private_data; + struct rme32 *rme32 = (struct rme32 *) pcm->private_data; rme32->adat_pcm = NULL; } -static int __devinit snd_rme32_create(rme32_t * rme32) +static int __devinit snd_rme32_create(struct rme32 * rme32) { struct pci_dev *pci = rme32->pci; int err; @@ -1479,10 +1479,10 @@ static int __devinit snd_rme32_create(rme32_t * rme32) */ static void -snd_rme32_proc_read(snd_info_entry_t * entry, snd_info_buffer_t * buffer) +snd_rme32_proc_read(struct snd_info_entry * entry, struct snd_info_buffer *buffer) { int n; - rme32_t *rme32 = (rme32_t *) entry->private_data; + struct rme32 *rme32 = (struct rme32 *) entry->private_data; rme32->rcreg = readl(rme32->iobase + RME32_IO_CONTROL_REGISTER); @@ -1573,9 +1573,9 @@ snd_rme32_proc_read(snd_info_entry_t * entry, snd_info_buffer_t * buffer) } } -static void __devinit snd_rme32_proc_init(rme32_t * rme32) +static void __devinit snd_rme32_proc_init(struct rme32 * rme32) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(rme32->card, "rme32", &entry)) snd_info_set_text_ops(entry, rme32, 1024, snd_rme32_proc_read); @@ -1586,8 +1586,8 @@ static void __devinit snd_rme32_proc_init(rme32_t * rme32) */ static int -snd_rme32_info_loopback_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +snd_rme32_info_loopback_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1596,10 +1596,10 @@ snd_rme32_info_loopback_control(snd_kcontrol_t * kcontrol, return 0; } static int -snd_rme32_get_loopback_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_rme32_get_loopback_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme32->lock); ucontrol->value.integer.value[0] = @@ -1608,10 +1608,10 @@ snd_rme32_get_loopback_control(snd_kcontrol_t * kcontrol, return 0; } static int -snd_rme32_put_loopback_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_rme32_put_loopback_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -1630,10 +1630,10 @@ snd_rme32_put_loopback_control(snd_kcontrol_t * kcontrol, } static int -snd_rme32_info_inputtype_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +snd_rme32_info_inputtype_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); static char *texts[4] = { "Optical", "Coaxial", "Internal", "XLR" }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -1660,10 +1660,10 @@ snd_rme32_info_inputtype_control(snd_kcontrol_t * kcontrol, return 0; } static int -snd_rme32_get_inputtype_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_rme32_get_inputtype_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); unsigned int items = 3; spin_lock_irq(&rme32->lock); @@ -1689,10 +1689,10 @@ snd_rme32_get_inputtype_control(snd_kcontrol_t * kcontrol, return 0; } static int -snd_rme32_put_inputtype_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_rme32_put_inputtype_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); unsigned int val; int change, items = 3; @@ -1718,8 +1718,8 @@ snd_rme32_put_inputtype_control(snd_kcontrol_t * kcontrol, } static int -snd_rme32_info_clockmode_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +snd_rme32_info_clockmode_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[4] = { "AutoSync", "Internal 32.0kHz", @@ -1737,10 +1737,10 @@ snd_rme32_info_clockmode_control(snd_kcontrol_t * kcontrol, return 0; } static int -snd_rme32_get_clockmode_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_rme32_get_clockmode_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme32->lock); ucontrol->value.enumerated.item[0] = snd_rme32_getclockmode(rme32); @@ -1748,10 +1748,10 @@ snd_rme32_get_clockmode_control(snd_kcontrol_t * kcontrol, return 0; } static int -snd_rme32_put_clockmode_control(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +snd_rme32_put_clockmode_control(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -1763,7 +1763,7 @@ snd_rme32_put_clockmode_control(snd_kcontrol_t * kcontrol, return change; } -static u32 snd_rme32_convert_from_aes(snd_aes_iec958_t * aes) +static u32 snd_rme32_convert_from_aes(struct snd_aes_iec958 * aes) { u32 val = 0; val |= (aes->status[0] & IEC958_AES0_PROFESSIONAL) ? RME32_WCR_PRO : 0; @@ -1774,7 +1774,7 @@ static u32 snd_rme32_convert_from_aes(snd_aes_iec958_t * aes) return val; } -static void snd_rme32_convert_to_aes(snd_aes_iec958_t * aes, u32 val) +static void snd_rme32_convert_to_aes(struct snd_aes_iec958 * aes, u32 val) { aes->status[0] = ((val & RME32_WCR_PRO) ? IEC958_AES0_PROFESSIONAL : 0); if (val & RME32_WCR_PRO) @@ -1783,28 +1783,28 @@ static void snd_rme32_convert_to_aes(snd_aes_iec958_t * aes, u32 val) aes->status[0] |= (val & RME32_WCR_EMP) ? IEC958_AES0_CON_EMPHASIS_5015 : 0; } -static int snd_rme32_control_spdif_info(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_rme32_control_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme32_control_spdif_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_rme32_control_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); snd_rme32_convert_to_aes(&ucontrol->value.iec958, rme32->wcreg_spdif); return 0; } -static int snd_rme32_control_spdif_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * ucontrol) +static int snd_rme32_control_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -1816,30 +1816,30 @@ static int snd_rme32_control_spdif_put(snd_kcontrol_t * kcontrol, return change; } -static int snd_rme32_control_spdif_stream_info(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_rme32_control_spdif_stream_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme32_control_spdif_stream_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * +static int snd_rme32_control_spdif_stream_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value * ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); snd_rme32_convert_to_aes(&ucontrol->value.iec958, rme32->wcreg_spdif_stream); return 0; } -static int snd_rme32_control_spdif_stream_put(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * +static int snd_rme32_control_spdif_stream_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value * ucontrol) { - rme32_t *rme32 = snd_kcontrol_chip(kcontrol); + struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -1854,23 +1854,23 @@ static int snd_rme32_control_spdif_stream_put(snd_kcontrol_t * kcontrol, return change; } -static int snd_rme32_control_spdif_mask_info(snd_kcontrol_t * kcontrol, - snd_ctl_elem_info_t * uinfo) +static int snd_rme32_control_spdif_mask_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme32_control_spdif_mask_get(snd_kcontrol_t * kcontrol, - snd_ctl_elem_value_t * +static int snd_rme32_control_spdif_mask_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value * ucontrol) { ucontrol->value.iec958.status[0] = kcontrol->private_value; return 0; } -static snd_kcontrol_new_t snd_rme32_controls[] = { +static struct snd_kcontrol_new snd_rme32_controls[] = { { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, DEFAULT), @@ -1925,10 +1925,10 @@ static snd_kcontrol_new_t snd_rme32_controls[] = { } }; -static int snd_rme32_create_switches(snd_card_t * card, rme32_t * rme32) +static int snd_rme32_create_switches(struct snd_card *card, struct rme32 * rme32) { int idx, err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; for (idx = 0; idx < (int)ARRAY_SIZE(snd_rme32_controls); idx++) { if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_rme32_controls[idx], rme32))) < 0) @@ -1944,7 +1944,7 @@ static int snd_rme32_create_switches(snd_card_t * card, rme32_t * rme32) * Card initialisation */ -static void snd_rme32_card_free(snd_card_t * card) +static void snd_rme32_card_free(struct snd_card *card) { snd_rme32_free(card->private_data); } @@ -1953,8 +1953,8 @@ static int __devinit snd_rme32_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - rme32_t *rme32; - snd_card_t *card; + struct rme32 *rme32; + struct snd_card *card; int err; if (dev >= SNDRV_CARDS) { @@ -1966,10 +1966,10 @@ snd_rme32_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) } if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, - sizeof(rme32_t))) == NULL) + sizeof(struct rme32))) == NULL) return -ENOMEM; card->private_free = snd_rme32_card_free; - rme32 = (rme32_t *) card->private_data; + rme32 = (struct rme32 *) card->private_data; rme32->card = card; rme32->pci = pci; snd_card_set_dev(card, &pci->dev); -- cgit v1.2.3-70-g09d2 From a3aefd883dc8c17c2231d763630ffe5cd118d7e8 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:05:37 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI RME96 Modules: RME96 driver Remove xxx_t typedefs from the PCI RME96 driver. Signed-off-by: Takashi Iwai --- sound/pci/rme96.c | 320 +++++++++++++++++++++++++++--------------------------- 1 file changed, 160 insertions(+), 160 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c index 6d422ef6499..0e694b011dc 100644 --- a/sound/pci/rme96.c +++ b/sound/pci/rme96.c @@ -201,7 +201,7 @@ MODULE_PARM_DESC(enable, "Enable RME Digi96 soundcard."); #define RME96_AD1855_VOL_BITS 10 -typedef struct snd_rme96 { +struct rme96 { spinlock_t lock; int irq; unsigned long port; @@ -216,8 +216,8 @@ typedef struct snd_rme96 { u8 rev; /* card revision number */ - snd_pcm_substream_t *playback_substream; - snd_pcm_substream_t *capture_substream; + struct snd_pcm_substream *playback_substream; + struct snd_pcm_substream *capture_substream; int playback_frlog; /* log2 of framesize */ int capture_frlog; @@ -225,12 +225,12 @@ typedef struct snd_rme96 { size_t playback_periodsize; /* in bytes, zero if not used */ size_t capture_periodsize; /* in bytes, zero if not used */ - snd_card_t *card; - snd_pcm_t *spdif_pcm; - snd_pcm_t *adat_pcm; + struct snd_card *card; + struct snd_pcm *spdif_pcm; + struct snd_pcm *adat_pcm; struct pci_dev *pci; - snd_kcontrol_t *spdif_ctl; -} rme96_t; + struct snd_kcontrol *spdif_ctl; +}; static struct pci_device_id snd_rme96_ids[] = { { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96, @@ -257,44 +257,44 @@ MODULE_DEVICE_TABLE(pci, snd_rme96_ids); #define RME96_185X_MAX_OUT(rme96) ((1 << (RME96_DAC_IS_1852(rme96) ? RME96_AD1852_VOL_BITS : RME96_AD1855_VOL_BITS)) - 1) static int -snd_rme96_playback_prepare(snd_pcm_substream_t *substream); +snd_rme96_playback_prepare(struct snd_pcm_substream *substream); static int -snd_rme96_capture_prepare(snd_pcm_substream_t *substream); +snd_rme96_capture_prepare(struct snd_pcm_substream *substream); static int -snd_rme96_playback_trigger(snd_pcm_substream_t *substream, +snd_rme96_playback_trigger(struct snd_pcm_substream *substream, int cmd); static int -snd_rme96_capture_trigger(snd_pcm_substream_t *substream, +snd_rme96_capture_trigger(struct snd_pcm_substream *substream, int cmd); static snd_pcm_uframes_t -snd_rme96_playback_pointer(snd_pcm_substream_t *substream); +snd_rme96_playback_pointer(struct snd_pcm_substream *substream); static snd_pcm_uframes_t -snd_rme96_capture_pointer(snd_pcm_substream_t *substream); +snd_rme96_capture_pointer(struct snd_pcm_substream *substream); static void __devinit -snd_rme96_proc_init(rme96_t *rme96); +snd_rme96_proc_init(struct rme96 *rme96); static int -snd_rme96_create_switches(snd_card_t *card, - rme96_t *rme96); +snd_rme96_create_switches(struct snd_card *card, + struct rme96 *rme96); static int -snd_rme96_getinputtype(rme96_t *rme96); +snd_rme96_getinputtype(struct rme96 *rme96); static inline unsigned int -snd_rme96_playback_ptr(rme96_t *rme96) +snd_rme96_playback_ptr(struct rme96 *rme96) { return (readl(rme96->iobase + RME96_IO_GET_PLAY_POS) & RME96_RCR_AUDIO_ADDR_MASK) >> rme96->playback_frlog; } static inline unsigned int -snd_rme96_capture_ptr(rme96_t *rme96) +snd_rme96_capture_ptr(struct rme96 *rme96) { return (readl(rme96->iobase + RME96_IO_GET_REC_POS) & RME96_RCR_AUDIO_ADDR_MASK) >> rme96->capture_frlog; @@ -315,12 +315,12 @@ snd_rme96_ratecode(int rate) } static int -snd_rme96_playback_silence(snd_pcm_substream_t *substream, +snd_rme96_playback_silence(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, snd_pcm_uframes_t count) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); count <<= rme96->playback_frlog; pos <<= rme96->playback_frlog; memset_io(rme96->iobase + RME96_IO_PLAY_BUFFER + pos, @@ -329,13 +329,13 @@ snd_rme96_playback_silence(snd_pcm_substream_t *substream, } static int -snd_rme96_playback_copy(snd_pcm_substream_t *substream, +snd_rme96_playback_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); count <<= rme96->playback_frlog; pos <<= rme96->playback_frlog; copy_from_user_toio(rme96->iobase + RME96_IO_PLAY_BUFFER + pos, src, @@ -344,13 +344,13 @@ snd_rme96_playback_copy(snd_pcm_substream_t *substream, } static int -snd_rme96_capture_copy(snd_pcm_substream_t *substream, +snd_rme96_capture_copy(struct snd_pcm_substream *substream, int channel, /* not used (interleaved data) */ snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); count <<= rme96->capture_frlog; pos <<= rme96->capture_frlog; copy_to_user_fromio(dst, rme96->iobase + RME96_IO_REC_BUFFER + pos, @@ -361,7 +361,7 @@ snd_rme96_capture_copy(snd_pcm_substream_t *substream, /* * Digital output capabilites (S/PDIF) */ -static snd_pcm_hardware_t snd_rme96_playback_spdif_info = +static struct snd_pcm_hardware snd_rme96_playback_spdif_info = { .info = (SNDRV_PCM_INFO_MMAP_IOMEM | SNDRV_PCM_INFO_MMAP_VALID | @@ -390,7 +390,7 @@ static snd_pcm_hardware_t snd_rme96_playback_spdif_info = /* * Digital input capabilites (S/PDIF) */ -static snd_pcm_hardware_t snd_rme96_capture_spdif_info = +static struct snd_pcm_hardware snd_rme96_capture_spdif_info = { .info = (SNDRV_PCM_INFO_MMAP_IOMEM | SNDRV_PCM_INFO_MMAP_VALID | @@ -419,7 +419,7 @@ static snd_pcm_hardware_t snd_rme96_capture_spdif_info = /* * Digital output capabilites (ADAT) */ -static snd_pcm_hardware_t snd_rme96_playback_adat_info = +static struct snd_pcm_hardware snd_rme96_playback_adat_info = { .info = (SNDRV_PCM_INFO_MMAP_IOMEM | SNDRV_PCM_INFO_MMAP_VALID | @@ -444,7 +444,7 @@ static snd_pcm_hardware_t snd_rme96_playback_adat_info = /* * Digital input capabilites (ADAT) */ -static snd_pcm_hardware_t snd_rme96_capture_adat_info = +static struct snd_pcm_hardware snd_rme96_capture_adat_info = { .info = (SNDRV_PCM_INFO_MMAP_IOMEM | SNDRV_PCM_INFO_MMAP_VALID | @@ -479,7 +479,7 @@ static snd_pcm_hardware_t snd_rme96_capture_adat_info = * the volume. */ static void -snd_rme96_write_SPI(rme96_t *rme96, u16 val) +snd_rme96_write_SPI(struct rme96 *rme96, u16 val) { int i; @@ -506,7 +506,7 @@ snd_rme96_write_SPI(rme96_t *rme96, u16 val) } static void -snd_rme96_apply_dac_volume(rme96_t *rme96) +snd_rme96_apply_dac_volume(struct rme96 *rme96) { if (RME96_DAC_IS_1852(rme96)) { snd_rme96_write_SPI(rme96, (rme96->vol[0] << 2) | 0x0); @@ -518,7 +518,7 @@ snd_rme96_apply_dac_volume(rme96_t *rme96) } static void -snd_rme96_reset_dac(rme96_t *rme96) +snd_rme96_reset_dac(struct rme96 *rme96) { writel(rme96->wcreg | RME96_WCR_PD, rme96->iobase + RME96_IO_CONTROL_REGISTER); @@ -526,14 +526,14 @@ snd_rme96_reset_dac(rme96_t *rme96) } static int -snd_rme96_getmontracks(rme96_t *rme96) +snd_rme96_getmontracks(struct rme96 *rme96) { return ((rme96->wcreg >> RME96_WCR_BITPOS_MONITOR_0) & 1) + (((rme96->wcreg >> RME96_WCR_BITPOS_MONITOR_1) & 1) << 1); } static int -snd_rme96_setmontracks(rme96_t *rme96, +snd_rme96_setmontracks(struct rme96 *rme96, int montracks) { if (montracks & 1) { @@ -551,14 +551,14 @@ snd_rme96_setmontracks(rme96_t *rme96, } static int -snd_rme96_getattenuation(rme96_t *rme96) +snd_rme96_getattenuation(struct rme96 *rme96) { return ((rme96->wcreg >> RME96_WCR_BITPOS_GAIN_0) & 1) + (((rme96->wcreg >> RME96_WCR_BITPOS_GAIN_1) & 1) << 1); } static int -snd_rme96_setattenuation(rme96_t *rme96, +snd_rme96_setattenuation(struct rme96 *rme96, int attenuation) { switch (attenuation) { @@ -586,7 +586,7 @@ snd_rme96_setattenuation(rme96_t *rme96, } static int -snd_rme96_capture_getrate(rme96_t *rme96, +snd_rme96_capture_getrate(struct rme96 *rme96, int *is_adat) { int n, rate; @@ -649,7 +649,7 @@ snd_rme96_capture_getrate(rme96_t *rme96, } static int -snd_rme96_playback_getrate(rme96_t *rme96) +snd_rme96_playback_getrate(struct rme96 *rme96) { int rate, dummy; @@ -679,7 +679,7 @@ snd_rme96_playback_getrate(rme96_t *rme96) } static int -snd_rme96_playback_setrate(rme96_t *rme96, +snd_rme96_playback_setrate(struct rme96 *rme96, int rate) { int ds; @@ -731,7 +731,7 @@ snd_rme96_playback_setrate(rme96_t *rme96, } static int -snd_rme96_capture_analog_setrate(rme96_t *rme96, +snd_rme96_capture_analog_setrate(struct rme96 *rme96, int rate) { switch (rate) { @@ -773,7 +773,7 @@ snd_rme96_capture_analog_setrate(rme96_t *rme96, } static int -snd_rme96_setclockmode(rme96_t *rme96, +snd_rme96_setclockmode(struct rme96 *rme96, int mode) { switch (mode) { @@ -801,7 +801,7 @@ snd_rme96_setclockmode(rme96_t *rme96, } static int -snd_rme96_getclockmode(rme96_t *rme96) +snd_rme96_getclockmode(struct rme96 *rme96) { if (rme96->areg & RME96_AR_WSEL) { return RME96_CLOCKMODE_WORDCLOCK; @@ -811,7 +811,7 @@ snd_rme96_getclockmode(rme96_t *rme96) } static int -snd_rme96_setinputtype(rme96_t *rme96, +snd_rme96_setinputtype(struct rme96 *rme96, int type) { int n; @@ -872,7 +872,7 @@ snd_rme96_setinputtype(rme96_t *rme96, } static int -snd_rme96_getinputtype(rme96_t *rme96) +snd_rme96_getinputtype(struct rme96 *rme96) { if (rme96->areg & RME96_AR_ANALOG) { return RME96_INPUT_ANALOG; @@ -882,7 +882,7 @@ snd_rme96_getinputtype(rme96_t *rme96) } static void -snd_rme96_setframelog(rme96_t *rme96, +snd_rme96_setframelog(struct rme96 *rme96, int n_channels, int is_playback) { @@ -904,7 +904,7 @@ snd_rme96_setframelog(rme96_t *rme96, } static int -snd_rme96_playback_setformat(rme96_t *rme96, +snd_rme96_playback_setformat(struct rme96 *rme96, int format) { switch (format) { @@ -922,7 +922,7 @@ snd_rme96_playback_setformat(rme96_t *rme96, } static int -snd_rme96_capture_setformat(rme96_t *rme96, +snd_rme96_capture_setformat(struct rme96 *rme96, int format) { switch (format) { @@ -940,7 +940,7 @@ snd_rme96_capture_setformat(rme96_t *rme96, } static void -snd_rme96_set_period_properties(rme96_t *rme96, +snd_rme96_set_period_properties(struct rme96 *rme96, size_t period_bytes) { switch (period_bytes) { @@ -959,11 +959,11 @@ snd_rme96_set_period_properties(rme96_t *rme96, } static int -snd_rme96_playback_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *params) +snd_rme96_playback_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme96 *rme96 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err, rate, dummy; runtime->dma_area = (void __force *)(rme96->iobase + @@ -1012,11 +1012,11 @@ snd_rme96_playback_hw_params(snd_pcm_substream_t *substream, } static int -snd_rme96_capture_hw_params(snd_pcm_substream_t *substream, - snd_pcm_hw_params_t *params) +snd_rme96_capture_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme96 *rme96 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; int err, isadat, rate; runtime->dma_area = (void __force *)(rme96->iobase + @@ -1066,7 +1066,7 @@ snd_rme96_capture_hw_params(snd_pcm_substream_t *substream, } static void -snd_rme96_playback_start(rme96_t *rme96, +snd_rme96_playback_start(struct rme96 *rme96, int from_pause) { if (!from_pause) { @@ -1078,7 +1078,7 @@ snd_rme96_playback_start(rme96_t *rme96, } static void -snd_rme96_capture_start(rme96_t *rme96, +snd_rme96_capture_start(struct rme96 *rme96, int from_pause) { if (!from_pause) { @@ -1090,7 +1090,7 @@ snd_rme96_capture_start(rme96_t *rme96, } static void -snd_rme96_playback_stop(rme96_t *rme96) +snd_rme96_playback_stop(struct rme96 *rme96) { /* * Check if there is an unconfirmed IRQ, if so confirm it, or else @@ -1105,7 +1105,7 @@ snd_rme96_playback_stop(rme96_t *rme96) } static void -snd_rme96_capture_stop(rme96_t *rme96) +snd_rme96_capture_stop(struct rme96 *rme96) { rme96->rcreg = readl(rme96->iobase + RME96_IO_CONTROL_REGISTER); if (rme96->rcreg & RME96_RCR_IRQ_2) { @@ -1120,7 +1120,7 @@ snd_rme96_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - rme96_t *rme96 = (rme96_t *)dev_id; + struct rme96 *rme96 = (struct rme96 *)dev_id; rme96->rcreg = readl(rme96->iobase + RME96_IO_CONTROL_REGISTER); /* fastpath out, to ease interrupt sharing */ @@ -1145,18 +1145,18 @@ snd_rme96_interrupt(int irq, static unsigned int period_bytes[] = { RME96_SMALL_BLOCK_SIZE, RME96_LARGE_BLOCK_SIZE }; -static snd_pcm_hw_constraint_list_t hw_constraints_period_bytes = { +static struct snd_pcm_hw_constraint_list hw_constraints_period_bytes = { .count = ARRAY_SIZE(period_bytes), .list = period_bytes, .mask = 0 }; static int -snd_rme96_playback_spdif_open(snd_pcm_substream_t *substream) +snd_rme96_playback_spdif_open(struct snd_pcm_substream *substream) { int rate, dummy; - rme96_t *rme96 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme96 *rme96 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_pcm_set_sync(substream); @@ -1191,11 +1191,11 @@ snd_rme96_playback_spdif_open(snd_pcm_substream_t *substream) } static int -snd_rme96_capture_spdif_open(snd_pcm_substream_t *substream) +snd_rme96_capture_spdif_open(struct snd_pcm_substream *substream) { int isadat, rate; - rme96_t *rme96 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme96 *rme96 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_pcm_set_sync(substream); @@ -1226,11 +1226,11 @@ snd_rme96_capture_spdif_open(snd_pcm_substream_t *substream) } static int -snd_rme96_playback_adat_open(snd_pcm_substream_t *substream) +snd_rme96_playback_adat_open(struct snd_pcm_substream *substream) { int rate, dummy; - rme96_t *rme96 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme96 *rme96 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_pcm_set_sync(substream); @@ -1260,11 +1260,11 @@ snd_rme96_playback_adat_open(snd_pcm_substream_t *substream) } static int -snd_rme96_capture_adat_open(snd_pcm_substream_t *substream) +snd_rme96_capture_adat_open(struct snd_pcm_substream *substream) { int isadat, rate; - rme96_t *rme96 = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct rme96 *rme96 = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; snd_pcm_set_sync(substream); @@ -1297,9 +1297,9 @@ snd_rme96_capture_adat_open(snd_pcm_substream_t *substream) } static int -snd_rme96_playback_close(snd_pcm_substream_t *substream) +snd_rme96_playback_close(struct snd_pcm_substream *substream) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); int spdif = 0; spin_lock_irq(&rme96->lock); @@ -1319,9 +1319,9 @@ snd_rme96_playback_close(snd_pcm_substream_t *substream) } static int -snd_rme96_capture_close(snd_pcm_substream_t *substream) +snd_rme96_capture_close(struct snd_pcm_substream *substream) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme96->lock); if (RME96_ISRECORDING(rme96)) { @@ -1334,9 +1334,9 @@ snd_rme96_capture_close(snd_pcm_substream_t *substream) } static int -snd_rme96_playback_prepare(snd_pcm_substream_t *substream) +snd_rme96_playback_prepare(struct snd_pcm_substream *substream) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme96->lock); if (RME96_ISPLAYING(rme96)) { @@ -1348,9 +1348,9 @@ snd_rme96_playback_prepare(snd_pcm_substream_t *substream) } static int -snd_rme96_capture_prepare(snd_pcm_substream_t *substream) +snd_rme96_capture_prepare(struct snd_pcm_substream *substream) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); spin_lock_irq(&rme96->lock); if (RME96_ISRECORDING(rme96)) { @@ -1362,10 +1362,10 @@ snd_rme96_capture_prepare(snd_pcm_substream_t *substream) } static int -snd_rme96_playback_trigger(snd_pcm_substream_t *substream, +snd_rme96_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -1405,10 +1405,10 @@ snd_rme96_playback_trigger(snd_pcm_substream_t *substream, } static int -snd_rme96_capture_trigger(snd_pcm_substream_t *substream, +snd_rme96_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -1449,20 +1449,20 @@ snd_rme96_capture_trigger(snd_pcm_substream_t *substream, } static snd_pcm_uframes_t -snd_rme96_playback_pointer(snd_pcm_substream_t *substream) +snd_rme96_playback_pointer(struct snd_pcm_substream *substream) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); return snd_rme96_playback_ptr(rme96); } static snd_pcm_uframes_t -snd_rme96_capture_pointer(snd_pcm_substream_t *substream) +snd_rme96_capture_pointer(struct snd_pcm_substream *substream) { - rme96_t *rme96 = snd_pcm_substream_chip(substream); + struct rme96 *rme96 = snd_pcm_substream_chip(substream); return snd_rme96_capture_ptr(rme96); } -static snd_pcm_ops_t snd_rme96_playback_spdif_ops = { +static struct snd_pcm_ops snd_rme96_playback_spdif_ops = { .open = snd_rme96_playback_spdif_open, .close = snd_rme96_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1475,7 +1475,7 @@ static snd_pcm_ops_t snd_rme96_playback_spdif_ops = { .mmap = snd_pcm_lib_mmap_iomem, }; -static snd_pcm_ops_t snd_rme96_capture_spdif_ops = { +static struct snd_pcm_ops snd_rme96_capture_spdif_ops = { .open = snd_rme96_capture_spdif_open, .close = snd_rme96_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1487,7 +1487,7 @@ static snd_pcm_ops_t snd_rme96_capture_spdif_ops = { .mmap = snd_pcm_lib_mmap_iomem, }; -static snd_pcm_ops_t snd_rme96_playback_adat_ops = { +static struct snd_pcm_ops snd_rme96_playback_adat_ops = { .open = snd_rme96_playback_adat_open, .close = snd_rme96_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -1500,7 +1500,7 @@ static snd_pcm_ops_t snd_rme96_playback_adat_ops = { .mmap = snd_pcm_lib_mmap_iomem, }; -static snd_pcm_ops_t snd_rme96_capture_adat_ops = { +static struct snd_pcm_ops snd_rme96_capture_adat_ops = { .open = snd_rme96_capture_adat_open, .close = snd_rme96_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -1515,7 +1515,7 @@ static snd_pcm_ops_t snd_rme96_capture_adat_ops = { static void snd_rme96_free(void *private_data) { - rme96_t *rme96 = (rme96_t *)private_data; + struct rme96 *rme96 = (struct rme96 *)private_data; if (rme96 == NULL) { return; @@ -1540,21 +1540,21 @@ snd_rme96_free(void *private_data) } static void -snd_rme96_free_spdif_pcm(snd_pcm_t *pcm) +snd_rme96_free_spdif_pcm(struct snd_pcm *pcm) { - rme96_t *rme96 = (rme96_t *) pcm->private_data; + struct rme96 *rme96 = (struct rme96 *) pcm->private_data; rme96->spdif_pcm = NULL; } static void -snd_rme96_free_adat_pcm(snd_pcm_t *pcm) +snd_rme96_free_adat_pcm(struct snd_pcm *pcm) { - rme96_t *rme96 = (rme96_t *) pcm->private_data; + struct rme96 *rme96 = (struct rme96 *) pcm->private_data; rme96->adat_pcm = NULL; } static int __devinit -snd_rme96_create(rme96_t *rme96) +snd_rme96_create(struct rme96 *rme96) { struct pci_dev *pci = rme96->pci; int err; @@ -1671,10 +1671,10 @@ snd_rme96_create(rme96_t *rme96) */ static void -snd_rme96_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +snd_rme96_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { int n; - rme96_t *rme96 = (rme96_t *)entry->private_data; + struct rme96 *rme96 = (struct rme96 *)entry->private_data; rme96->rcreg = readl(rme96->iobase + RME96_IO_CONTROL_REGISTER); @@ -1800,9 +1800,9 @@ snd_rme96_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) } static void __devinit -snd_rme96_proc_init(rme96_t *rme96) +snd_rme96_proc_init(struct rme96 *rme96) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(rme96->card, "rme96", &entry)) snd_info_set_text_ops(entry, rme96, 1024, snd_rme96_proc_read); @@ -1813,7 +1813,7 @@ snd_rme96_proc_init(rme96_t *rme96) */ static int -snd_rme96_info_loopback_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +snd_rme96_info_loopback_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1822,9 +1822,9 @@ snd_rme96_info_loopback_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } static int -snd_rme96_get_loopback_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_get_loopback_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme96->lock); ucontrol->value.integer.value[0] = rme96->wcreg & RME96_WCR_SEL ? 0 : 1; @@ -1832,9 +1832,9 @@ snd_rme96_get_loopback_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * return 0; } static int -snd_rme96_put_loopback_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_put_loopback_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -1849,10 +1849,10 @@ snd_rme96_put_loopback_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * } static int -snd_rme96_info_inputtype_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +snd_rme96_info_inputtype_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *_texts[5] = { "Optical", "Coaxial", "Internal", "XLR", "Analog" }; - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); char *texts[5] = { _texts[0], _texts[1], _texts[2], _texts[3], _texts[4] }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -1886,9 +1886,9 @@ snd_rme96_info_inputtype_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } static int -snd_rme96_get_inputtype_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_get_inputtype_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); unsigned int items = 3; spin_lock_irq(&rme96->lock); @@ -1925,9 +1925,9 @@ snd_rme96_get_inputtype_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } static int -snd_rme96_put_inputtype_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_put_inputtype_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); unsigned int val; int change, items = 3; @@ -1967,7 +1967,7 @@ snd_rme96_put_inputtype_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t } static int -snd_rme96_info_clockmode_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +snd_rme96_info_clockmode_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[3] = { "AutoSync", "Internal", "Word" }; @@ -1981,9 +1981,9 @@ snd_rme96_info_clockmode_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } static int -snd_rme96_get_clockmode_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_get_clockmode_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme96->lock); ucontrol->value.enumerated.item[0] = snd_rme96_getclockmode(rme96); @@ -1991,9 +1991,9 @@ snd_rme96_get_clockmode_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } static int -snd_rme96_put_clockmode_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_put_clockmode_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -2006,7 +2006,7 @@ snd_rme96_put_clockmode_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t } static int -snd_rme96_info_attenuation_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +snd_rme96_info_attenuation_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[4] = { "0 dB", "-6 dB", "-12 dB", "-18 dB" }; @@ -2020,9 +2020,9 @@ snd_rme96_info_attenuation_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } static int -snd_rme96_get_attenuation_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_get_attenuation_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme96->lock); ucontrol->value.enumerated.item[0] = snd_rme96_getattenuation(rme96); @@ -2030,9 +2030,9 @@ snd_rme96_get_attenuation_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_ return 0; } static int -snd_rme96_put_attenuation_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_put_attenuation_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -2046,7 +2046,7 @@ snd_rme96_put_attenuation_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_ } static int -snd_rme96_info_montracks_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +snd_rme96_info_montracks_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[4] = { "1+2", "3+4", "5+6", "7+8" }; @@ -2060,9 +2060,9 @@ snd_rme96_info_montracks_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * return 0; } static int -snd_rme96_get_montracks_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_get_montracks_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme96->lock); ucontrol->value.enumerated.item[0] = snd_rme96_getmontracks(rme96); @@ -2070,9 +2070,9 @@ snd_rme96_get_montracks_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return 0; } static int -snd_rme96_put_montracks_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +snd_rme96_put_montracks_control(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); unsigned int val; int change; @@ -2084,7 +2084,7 @@ snd_rme96_put_montracks_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t return change; } -static u32 snd_rme96_convert_from_aes(snd_aes_iec958_t *aes) +static u32 snd_rme96_convert_from_aes(struct snd_aes_iec958 *aes) { u32 val = 0; val |= (aes->status[0] & IEC958_AES0_PROFESSIONAL) ? RME96_WCR_PRO : 0; @@ -2096,7 +2096,7 @@ static u32 snd_rme96_convert_from_aes(snd_aes_iec958_t *aes) return val; } -static void snd_rme96_convert_to_aes(snd_aes_iec958_t *aes, u32 val) +static void snd_rme96_convert_to_aes(struct snd_aes_iec958 *aes, u32 val) { aes->status[0] = ((val & RME96_WCR_PRO) ? IEC958_AES0_PROFESSIONAL : 0) | ((val & RME96_WCR_DOLBY) ? IEC958_AES0_NONAUDIO : 0); @@ -2106,24 +2106,24 @@ static void snd_rme96_convert_to_aes(snd_aes_iec958_t *aes, u32 val) aes->status[0] |= (val & RME96_WCR_EMP) ? IEC958_AES0_CON_EMPHASIS_5015 : 0; } -static int snd_rme96_control_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme96_control_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme96_control_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme96_control_spdif_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); snd_rme96_convert_to_aes(&ucontrol->value.iec958, rme96->wcreg_spdif); return 0; } -static int snd_rme96_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme96_control_spdif_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -2135,24 +2135,24 @@ static int snd_rme96_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_v return change; } -static int snd_rme96_control_spdif_stream_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme96_control_spdif_stream_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme96_control_spdif_stream_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme96_control_spdif_stream_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); snd_rme96_convert_to_aes(&ucontrol->value.iec958, rme96->wcreg_spdif_stream); return 0; } -static int snd_rme96_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme96_control_spdif_stream_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); int change; u32 val; @@ -2167,23 +2167,23 @@ static int snd_rme96_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl return change; } -static int snd_rme96_control_spdif_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_rme96_control_spdif_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->count = 1; return 0; } -static int snd_rme96_control_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_rme96_control_spdif_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.iec958.status[0] = kcontrol->private_value; return 0; } static int -snd_rme96_dac_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +snd_rme96_dac_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -2193,9 +2193,9 @@ snd_rme96_dac_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) } static int -snd_rme96_dac_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +snd_rme96_dac_volume_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *u) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); spin_lock_irq(&rme96->lock); u->value.integer.value[0] = rme96->vol[0]; @@ -2206,9 +2206,9 @@ snd_rme96_dac_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) } static int -snd_rme96_dac_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) +snd_rme96_dac_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *u) { - rme96_t *rme96 = snd_kcontrol_chip(kcontrol); + struct rme96 *rme96 = snd_kcontrol_chip(kcontrol); int change = 0; if (!RME96_HAS_ANALOG_OUT(rme96)) { @@ -2231,7 +2231,7 @@ snd_rme96_dac_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u) return change; } -static snd_kcontrol_new_t snd_rme96_controls[] = { +static struct snd_kcontrol_new snd_rme96_controls[] = { { .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), @@ -2312,11 +2312,11 @@ static snd_kcontrol_new_t snd_rme96_controls[] = { }; static int -snd_rme96_create_switches(snd_card_t *card, - rme96_t *rme96) +snd_rme96_create_switches(struct snd_card *card, + struct rme96 *rme96) { int idx, err; - snd_kcontrol_t *kctl; + struct snd_kcontrol *kctl; for (idx = 0; idx < 7; idx++) { if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_rme96_controls[idx], rme96))) < 0) @@ -2338,7 +2338,7 @@ snd_rme96_create_switches(snd_card_t *card, * Card initialisation */ -static void snd_rme96_card_free(snd_card_t *card) +static void snd_rme96_card_free(struct snd_card *card) { snd_rme96_free(card->private_data); } @@ -2348,8 +2348,8 @@ snd_rme96_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - rme96_t *rme96; - snd_card_t *card; + struct rme96 *rme96; + struct snd_card *card; int err; u8 val; @@ -2361,10 +2361,10 @@ snd_rme96_probe(struct pci_dev *pci, return -ENOENT; } if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, - sizeof(rme96_t))) == NULL) + sizeof(struct rme96))) == NULL) return -ENOMEM; card->private_free = snd_rme96_card_free; - rme96 = (rme96_t *)card->private_data; + rme96 = (struct rme96 *)card->private_data; rme96->card = card; rme96->pci = pci; snd_card_set_dev(card, &pci->dev); -- cgit v1.2.3-70-g09d2 From 016e401c2e64ce5c440b1f68eae4a53273aa0bc2 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:05:57 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI Sonicvibes Modules: SonicVibes driver Remove xxx_t typedefs from the PCI Sonicvibes driver. Signed-off-by: Takashi Iwai --- sound/pci/sonicvibes.c | 227 ++++++++++++++++++++++++------------------------- 1 file changed, 113 insertions(+), 114 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c index b66459f69c0..7bbea3738b8 100644 --- a/sound/pci/sonicvibes.c +++ b/sound/pci/sonicvibes.c @@ -195,9 +195,7 @@ MODULE_PARM_DESC(dmaio, "DDMA i/o base address for S3 SonicVibes soundcard."); */ -typedef struct _snd_sonicvibes sonicvibes_t; - -struct _snd_sonicvibes { +struct sonicvibes { unsigned long dma1size; unsigned long dma2size; int irq; @@ -224,20 +222,20 @@ struct _snd_sonicvibes { unsigned int mode; struct pci_dev *pci; - snd_card_t *card; - snd_pcm_t *pcm; - snd_pcm_substream_t *playback_substream; - snd_pcm_substream_t *capture_substream; - snd_rawmidi_t *rmidi; - snd_hwdep_t *fmsynth; /* S3FM */ + struct snd_card *card; + struct snd_pcm *pcm; + struct snd_pcm_substream *playback_substream; + struct snd_pcm_substream *capture_substream; + struct snd_rawmidi *rmidi; + struct snd_hwdep *fmsynth; /* S3FM */ spinlock_t reg_lock; unsigned int p_dma_size; unsigned int c_dma_size; - snd_kcontrol_t *master_mute; - snd_kcontrol_t *master_volume; + struct snd_kcontrol *master_mute; + struct snd_kcontrol *master_volume; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; @@ -251,13 +249,13 @@ static struct pci_device_id snd_sonic_ids[] = { MODULE_DEVICE_TABLE(pci, snd_sonic_ids); -static ratden_t sonicvibes_adc_clock = { +static struct snd_ratden sonicvibes_adc_clock = { .num_min = 4000 * 65536, .num_max = 48000UL * 65536, .num_step = 1, .den = 65536, }; -static snd_pcm_hw_constraint_ratdens_t snd_sonicvibes_hw_constraints_adc_clock = { +static struct snd_pcm_hw_constraint_ratdens snd_sonicvibes_hw_constraints_adc_clock = { .nrats = 1, .rats = &sonicvibes_adc_clock, }; @@ -266,7 +264,7 @@ static snd_pcm_hw_constraint_ratdens_t snd_sonicvibes_hw_constraints_adc_clock = * common I/O routines */ -static inline void snd_sonicvibes_setdmaa(sonicvibes_t * sonic, +static inline void snd_sonicvibes_setdmaa(struct sonicvibes * sonic, unsigned int addr, unsigned int count) { @@ -279,7 +277,7 @@ static inline void snd_sonicvibes_setdmaa(sonicvibes_t * sonic, #endif } -static inline void snd_sonicvibes_setdmac(sonicvibes_t * sonic, +static inline void snd_sonicvibes_setdmac(struct sonicvibes * sonic, unsigned int addr, unsigned int count) { @@ -294,18 +292,18 @@ static inline void snd_sonicvibes_setdmac(sonicvibes_t * sonic, #endif } -static inline unsigned int snd_sonicvibes_getdmaa(sonicvibes_t * sonic) +static inline unsigned int snd_sonicvibes_getdmaa(struct sonicvibes * sonic) { return (inl(sonic->dmaa_port + SV_DMA_COUNT0) & 0xffffff) + 1; } -static inline unsigned int snd_sonicvibes_getdmac(sonicvibes_t * sonic) +static inline unsigned int snd_sonicvibes_getdmac(struct sonicvibes * sonic) { /* note: dmac is working in word mode!!! */ return ((inl(sonic->dmac_port + SV_DMA_COUNT0) & 0xffffff) + 1) << 1; } -static void snd_sonicvibes_out1(sonicvibes_t * sonic, +static void snd_sonicvibes_out1(struct sonicvibes * sonic, unsigned char reg, unsigned char value) { @@ -315,7 +313,7 @@ static void snd_sonicvibes_out1(sonicvibes_t * sonic, udelay(10); } -static void snd_sonicvibes_out(sonicvibes_t * sonic, +static void snd_sonicvibes_out(struct sonicvibes * sonic, unsigned char reg, unsigned char value) { @@ -329,7 +327,7 @@ static void snd_sonicvibes_out(sonicvibes_t * sonic, spin_unlock_irqrestore(&sonic->reg_lock, flags); } -static unsigned char snd_sonicvibes_in1(sonicvibes_t * sonic, unsigned char reg) +static unsigned char snd_sonicvibes_in1(struct sonicvibes * sonic, unsigned char reg) { unsigned char value; @@ -340,7 +338,7 @@ static unsigned char snd_sonicvibes_in1(sonicvibes_t * sonic, unsigned char reg) return value; } -static unsigned char snd_sonicvibes_in(sonicvibes_t * sonic, unsigned char reg) +static unsigned char snd_sonicvibes_in(struct sonicvibes * sonic, unsigned char reg) { unsigned long flags; unsigned char value; @@ -355,7 +353,7 @@ static unsigned char snd_sonicvibes_in(sonicvibes_t * sonic, unsigned char reg) } #if 0 -static void snd_sonicvibes_debug(sonicvibes_t * sonic) +static void snd_sonicvibes_debug(struct sonicvibes * sonic) { printk("SV REGS: INDEX = 0x%02x ", inb(SV_REG(sonic, INDEX))); printk(" STATUS = 0x%02x\n", inb(SV_REG(sonic, STATUS))); @@ -427,7 +425,7 @@ static void snd_sonicvibes_debug(sonicvibes_t * sonic) #endif -static void snd_sonicvibes_setfmt(sonicvibes_t * sonic, +static void snd_sonicvibes_setfmt(struct sonicvibes * sonic, unsigned char mask, unsigned char value) { @@ -483,7 +481,7 @@ static void snd_sonicvibes_pll(unsigned int rate, #endif } -static void snd_sonicvibes_setpll(sonicvibes_t * sonic, +static void snd_sonicvibes_setpll(struct sonicvibes * sonic, unsigned char reg, unsigned int rate) { @@ -499,7 +497,7 @@ static void snd_sonicvibes_setpll(sonicvibes_t * sonic, } } -static void snd_sonicvibes_set_adc_rate(sonicvibes_t * sonic, unsigned int rate) +static void snd_sonicvibes_set_adc_rate(struct sonicvibes * sonic, unsigned int rate) { unsigned long flags; unsigned int div; @@ -520,8 +518,8 @@ static void snd_sonicvibes_set_adc_rate(sonicvibes_t * sonic, unsigned int rate) spin_unlock_irqrestore(&sonic->reg_lock, flags); } -static int snd_sonicvibes_hw_constraint_dac_rate(snd_pcm_hw_params_t *params, - snd_pcm_hw_rule_t *rule) +static int snd_sonicvibes_hw_constraint_dac_rate(struct snd_pcm_hw_params *params, + struct snd_pcm_hw_rule *rule) { unsigned int rate, div, r, m, n; @@ -545,7 +543,7 @@ static int snd_sonicvibes_hw_constraint_dac_rate(snd_pcm_hw_params_t *params, return 0; } -static void snd_sonicvibes_set_dac_rate(sonicvibes_t * sonic, unsigned int rate) +static void snd_sonicvibes_set_dac_rate(struct sonicvibes * sonic, unsigned int rate) { unsigned int div; unsigned long flags; @@ -559,7 +557,7 @@ static void snd_sonicvibes_set_dac_rate(sonicvibes_t * sonic, unsigned int rate) spin_unlock_irqrestore(&sonic->reg_lock, flags); } -static int snd_sonicvibes_trigger(sonicvibes_t * sonic, int what, int cmd) +static int snd_sonicvibes_trigger(struct sonicvibes * sonic, int what, int cmd) { int result = 0; @@ -583,7 +581,7 @@ static int snd_sonicvibes_trigger(sonicvibes_t * sonic, int what, int cmd) static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - sonicvibes_t *sonic = dev_id; + struct sonicvibes *sonic = dev_id; unsigned char status; status = inb(SV_REG(sonic, STATUS)); @@ -646,35 +644,35 @@ static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_reg * PCM part */ -static int snd_sonicvibes_playback_trigger(snd_pcm_substream_t * substream, +static int snd_sonicvibes_playback_trigger(struct snd_pcm_substream *substream, int cmd) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); return snd_sonicvibes_trigger(sonic, 1, cmd); } -static int snd_sonicvibes_capture_trigger(snd_pcm_substream_t * substream, +static int snd_sonicvibes_capture_trigger(struct snd_pcm_substream *substream, int cmd) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); return snd_sonicvibes_trigger(sonic, 2, cmd); } -static int snd_sonicvibes_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_sonicvibes_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); } -static int snd_sonicvibes_hw_free(snd_pcm_substream_t * substream) +static int snd_sonicvibes_hw_free(struct snd_pcm_substream *substream) { return snd_pcm_lib_free_pages(substream); } -static int snd_sonicvibes_playback_prepare(snd_pcm_substream_t * substream) +static int snd_sonicvibes_playback_prepare(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned char fmt = 0; unsigned int size = snd_pcm_lib_buffer_bytes(substream); unsigned int count = snd_pcm_lib_period_bytes(substream); @@ -695,10 +693,10 @@ static int snd_sonicvibes_playback_prepare(snd_pcm_substream_t * substream) return 0; } -static int snd_sonicvibes_capture_prepare(snd_pcm_substream_t * substream) +static int snd_sonicvibes_capture_prepare(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; unsigned char fmt = 0; unsigned int size = snd_pcm_lib_buffer_bytes(substream); unsigned int count = snd_pcm_lib_period_bytes(substream); @@ -720,9 +718,9 @@ static int snd_sonicvibes_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static snd_pcm_uframes_t snd_sonicvibes_playback_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_sonicvibes_playback_pointer(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); size_t ptr; if (!(sonic->enable & 1)) @@ -731,9 +729,9 @@ static snd_pcm_uframes_t snd_sonicvibes_playback_pointer(snd_pcm_substream_t * s return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_uframes_t snd_sonicvibes_capture_pointer(snd_pcm_substream_t * substream) +static snd_pcm_uframes_t snd_sonicvibes_capture_pointer(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); size_t ptr; if (!(sonic->enable & 2)) return 0; @@ -741,7 +739,7 @@ static snd_pcm_uframes_t snd_sonicvibes_capture_pointer(snd_pcm_substream_t * su return bytes_to_frames(substream->runtime, ptr); } -static snd_pcm_hardware_t snd_sonicvibes_playback = +static struct snd_pcm_hardware snd_sonicvibes_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -760,7 +758,7 @@ static snd_pcm_hardware_t snd_sonicvibes_playback = .fifo_size = 0, }; -static snd_pcm_hardware_t snd_sonicvibes_capture = +static struct snd_pcm_hardware snd_sonicvibes_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -779,10 +777,10 @@ static snd_pcm_hardware_t snd_sonicvibes_capture = .fifo_size = 0, }; -static int snd_sonicvibes_playback_open(snd_pcm_substream_t * substream) +static int snd_sonicvibes_playback_open(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; sonic->mode |= SV_MODE_PLAY; sonic->playback_substream = substream; @@ -791,10 +789,10 @@ static int snd_sonicvibes_playback_open(snd_pcm_substream_t * substream) return 0; } -static int snd_sonicvibes_capture_open(snd_pcm_substream_t * substream) +static int snd_sonicvibes_capture_open(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); - snd_pcm_runtime_t *runtime = substream->runtime; + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; sonic->mode |= SV_MODE_CAPTURE; sonic->capture_substream = substream; @@ -804,25 +802,25 @@ static int snd_sonicvibes_capture_open(snd_pcm_substream_t * substream) return 0; } -static int snd_sonicvibes_playback_close(snd_pcm_substream_t * substream) +static int snd_sonicvibes_playback_close(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); sonic->playback_substream = NULL; sonic->mode &= ~SV_MODE_PLAY; return 0; } -static int snd_sonicvibes_capture_close(snd_pcm_substream_t * substream) +static int snd_sonicvibes_capture_close(struct snd_pcm_substream *substream) { - sonicvibes_t *sonic = snd_pcm_substream_chip(substream); + struct sonicvibes *sonic = snd_pcm_substream_chip(substream); sonic->capture_substream = NULL; sonic->mode &= ~SV_MODE_CAPTURE; return 0; } -static snd_pcm_ops_t snd_sonicvibes_playback_ops = { +static struct snd_pcm_ops snd_sonicvibes_playback_ops = { .open = snd_sonicvibes_playback_open, .close = snd_sonicvibes_playback_close, .ioctl = snd_pcm_lib_ioctl, @@ -833,7 +831,7 @@ static snd_pcm_ops_t snd_sonicvibes_playback_ops = { .pointer = snd_sonicvibes_playback_pointer, }; -static snd_pcm_ops_t snd_sonicvibes_capture_ops = { +static struct snd_pcm_ops snd_sonicvibes_capture_ops = { .open = snd_sonicvibes_capture_open, .close = snd_sonicvibes_capture_close, .ioctl = snd_pcm_lib_ioctl, @@ -844,9 +842,9 @@ static snd_pcm_ops_t snd_sonicvibes_capture_ops = { .pointer = snd_sonicvibes_capture_pointer, }; -static int __devinit snd_sonicvibes_pcm(sonicvibes_t * sonic, int device, snd_pcm_t ** rpcm) +static int __devinit snd_sonicvibes_pcm(struct sonicvibes * sonic, int device, struct snd_pcm ** rpcm) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; if ((err = snd_pcm_new(sonic->card, "s3_86c617", device, 1, 1, &pcm)) < 0) @@ -878,7 +876,7 @@ static int __devinit snd_sonicvibes_pcm(sonicvibes_t * sonic, int device, snd_pc .info = snd_sonicvibes_info_mux, \ .get = snd_sonicvibes_get_mux, .put = snd_sonicvibes_put_mux } -static int snd_sonicvibes_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_sonicvibes_info_mux(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[7] = { "CD", "PCM", "Aux1", "Line", "Aux0", "Mic", "Mix" @@ -893,9 +891,9 @@ static int snd_sonicvibes_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t return 0; } -static int snd_sonicvibes_get_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_sonicvibes_get_mux(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol); + struct sonicvibes *sonic = snd_kcontrol_chip(kcontrol); spin_lock_irq(&sonic->reg_lock); ucontrol->value.enumerated.item[0] = ((snd_sonicvibes_in1(sonic, SV_IREG_LEFT_ADC) & SV_RECSRC_OUT) >> 5) - 1; @@ -904,9 +902,9 @@ static int snd_sonicvibes_get_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_ return 0; } -static int snd_sonicvibes_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_sonicvibes_put_mux(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol); + struct sonicvibes *sonic = snd_kcontrol_chip(kcontrol); unsigned short left, right, oval1, oval2; int change; @@ -933,7 +931,7 @@ static int snd_sonicvibes_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_ .get = snd_sonicvibes_get_single, .put = snd_sonicvibes_put_single, \ .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) } -static int snd_sonicvibes_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_sonicvibes_info_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 16) & 0xff; @@ -944,9 +942,9 @@ static int snd_sonicvibes_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_sonicvibes_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_sonicvibes_get_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol); + struct sonicvibes *sonic = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0xff; int mask = (kcontrol->private_value >> 16) & 0xff; @@ -960,9 +958,9 @@ static int snd_sonicvibes_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return 0; } -static int snd_sonicvibes_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_sonicvibes_put_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol); + struct sonicvibes *sonic = snd_kcontrol_chip(kcontrol); int reg = kcontrol->private_value & 0xff; int shift = (kcontrol->private_value >> 8) & 0xff; int mask = (kcontrol->private_value >> 16) & 0xff; @@ -989,7 +987,7 @@ static int snd_sonicvibes_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_val .get = snd_sonicvibes_get_double, .put = snd_sonicvibes_put_double, \ .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) } -static int snd_sonicvibes_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) +static int snd_sonicvibes_info_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { int mask = (kcontrol->private_value >> 24) & 0xff; @@ -1000,9 +998,9 @@ static int snd_sonicvibes_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_inf return 0; } -static int snd_sonicvibes_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_sonicvibes_get_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol); + struct sonicvibes *sonic = snd_kcontrol_chip(kcontrol); int left_reg = kcontrol->private_value & 0xff; int right_reg = (kcontrol->private_value >> 8) & 0xff; int shift_left = (kcontrol->private_value >> 16) & 0x07; @@ -1021,9 +1019,9 @@ static int snd_sonicvibes_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return 0; } -static int snd_sonicvibes_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) +static int snd_sonicvibes_put_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol); + struct sonicvibes *sonic = snd_kcontrol_chip(kcontrol); int left_reg = kcontrol->private_value & 0xff; int right_reg = (kcontrol->private_value >> 8) & 0xff; int shift_left = (kcontrol->private_value >> 16) & 0x07; @@ -1053,7 +1051,7 @@ static int snd_sonicvibes_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_val return change; } -static snd_kcontrol_new_t snd_sonicvibes_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_sonicvibes_controls[] __devinitdata = { SONICVIBES_DOUBLE("Capture Volume", 0, SV_IREG_LEFT_ADC, SV_IREG_RIGHT_ADC, 0, 0, 15, 0), SONICVIBES_DOUBLE("Aux Playback Switch", 0, SV_IREG_LEFT_AUX1, SV_IREG_RIGHT_AUX1, 7, 7, 1, 1), SONICVIBES_DOUBLE("Aux Playback Volume", 0, SV_IREG_LEFT_AUX1, SV_IREG_RIGHT_AUX1, 0, 0, 31, 1), @@ -1077,17 +1075,17 @@ SONICVIBES_SINGLE("Loopback Capture Volume", 0, SV_IREG_ADC_OUTPUT_CTRL, 2, 63, SONICVIBES_MUX("Capture Source", 0) }; -static void snd_sonicvibes_master_free(snd_kcontrol_t *kcontrol) +static void snd_sonicvibes_master_free(struct snd_kcontrol *kcontrol) { - sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol); + struct sonicvibes *sonic = snd_kcontrol_chip(kcontrol); sonic->master_mute = NULL; sonic->master_volume = NULL; } -static int __devinit snd_sonicvibes_mixer(sonicvibes_t * sonic) +static int __devinit snd_sonicvibes_mixer(struct sonicvibes * sonic) { - snd_card_t *card; - snd_kcontrol_t *kctl; + struct snd_card *card; + struct snd_kcontrol *kctl; unsigned int idx; int err; @@ -1110,10 +1108,10 @@ static int __devinit snd_sonicvibes_mixer(sonicvibes_t * sonic) */ -static void snd_sonicvibes_proc_read(snd_info_entry_t *entry, - snd_info_buffer_t * buffer) +static void snd_sonicvibes_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - sonicvibes_t *sonic = entry->private_data; + struct sonicvibes *sonic = entry->private_data; unsigned char tmp; tmp = sonic->srs_space & 0x0f; @@ -1140,9 +1138,9 @@ static void snd_sonicvibes_proc_read(snd_info_entry_t *entry, snd_iprintf(buffer, "MIDI to ext. Tx : %s\n", tmp & 0x04 ? "on" : "off"); } -static void __devinit snd_sonicvibes_proc_init(sonicvibes_t * sonic) +static void __devinit snd_sonicvibes_proc_init(struct sonicvibes * sonic) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(sonic->card, "sonicvibes", &entry)) snd_info_set_text_ops(entry, sonic, 1024, snd_sonicvibes_proc_read); @@ -1153,10 +1151,10 @@ static void __devinit snd_sonicvibes_proc_init(sonicvibes_t * sonic) */ #ifdef SUPPORT_JOYSTICK -static snd_kcontrol_new_t snd_sonicvibes_game_control __devinitdata = +static struct snd_kcontrol_new snd_sonicvibes_game_control __devinitdata = SONICVIBES_SINGLE("Joystick Speed", 0, SV_IREG_GAME_PORT, 1, 15, 0); -static int __devinit snd_sonicvibes_create_gameport(sonicvibes_t *sonic) +static int __devinit snd_sonicvibes_create_gameport(struct sonicvibes *sonic) { struct gameport *gp; @@ -1178,7 +1176,7 @@ static int __devinit snd_sonicvibes_create_gameport(sonicvibes_t *sonic) return 0; } -static void snd_sonicvibes_free_gameport(sonicvibes_t *sonic) +static void snd_sonicvibes_free_gameport(struct sonicvibes *sonic) { if (sonic->gameport) { gameport_unregister_port(sonic->gameport); @@ -1186,11 +1184,11 @@ static void snd_sonicvibes_free_gameport(sonicvibes_t *sonic) } } #else -static inline int snd_sonicvibes_create_gameport(sonicvibes_t *sonic) { return -ENOSYS; } -static inline void snd_sonicvibes_free_gameport(sonicvibes_t *sonic) { } +static inline int snd_sonicvibes_create_gameport(struct sonicvibes *sonic) { return -ENOSYS; } +static inline void snd_sonicvibes_free_gameport(struct sonicvibes *sonic) { } #endif -static int snd_sonicvibes_free(sonicvibes_t *sonic) +static int snd_sonicvibes_free(struct sonicvibes *sonic) { snd_sonicvibes_free_gameport(sonic); pci_write_config_dword(sonic->pci, 0x40, sonic->dmaa_port); @@ -1205,22 +1203,22 @@ static int snd_sonicvibes_free(sonicvibes_t *sonic) return 0; } -static int snd_sonicvibes_dev_free(snd_device_t *device) +static int snd_sonicvibes_dev_free(struct snd_device *device) { - sonicvibes_t *sonic = device->device_data; + struct sonicvibes *sonic = device->device_data; return snd_sonicvibes_free(sonic); } -static int __devinit snd_sonicvibes_create(snd_card_t * card, +static int __devinit snd_sonicvibes_create(struct snd_card *card, struct pci_dev *pci, int reverb, int mge, - sonicvibes_t ** rsonic) + struct sonicvibes ** rsonic) { - sonicvibes_t *sonic; + struct sonicvibes *sonic; unsigned int dmaa, dmac; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_sonicvibes_dev_free, }; @@ -1365,7 +1363,7 @@ static int __devinit snd_sonicvibes_create(snd_card_t * card, * MIDI section */ -static snd_kcontrol_new_t snd_sonicvibes_midi_controls[] __devinitdata = { +static struct snd_kcontrol_new snd_sonicvibes_midi_controls[] __devinitdata = { SONICVIBES_SINGLE("SonicVibes Wave Source RAM", 0, SV_IREG_WAVE_SOURCE, 0, 1, 0), SONICVIBES_SINGLE("SonicVibes Wave Source RAM+ROM", 0, SV_IREG_WAVE_SOURCE, 1, 1, 0), SONICVIBES_SINGLE("SonicVibes Onboard Synth", 0, SV_IREG_MPU401, 0, 1, 0), @@ -1373,24 +1371,25 @@ SONICVIBES_SINGLE("SonicVibes External Rx to Synth", 0, SV_IREG_MPU401, 1, 1, 0) SONICVIBES_SINGLE("SonicVibes External Tx", 0, SV_IREG_MPU401, 2, 1, 0) }; -static int snd_sonicvibes_midi_input_open(mpu401_t * mpu) +static int snd_sonicvibes_midi_input_open(struct snd_mpu401 * mpu) { - sonicvibes_t *sonic = mpu->private_data; + struct sonicvibes *sonic = mpu->private_data; outb(sonic->irqmask &= ~SV_MIDI_MASK, SV_REG(sonic, IRQMASK)); return 0; } -static void snd_sonicvibes_midi_input_close(mpu401_t * mpu) +static void snd_sonicvibes_midi_input_close(struct snd_mpu401 * mpu) { - sonicvibes_t *sonic = mpu->private_data; + struct sonicvibes *sonic = mpu->private_data; outb(sonic->irqmask |= SV_MIDI_MASK, SV_REG(sonic, IRQMASK)); } -static int __devinit snd_sonicvibes_midi(sonicvibes_t * sonic, snd_rawmidi_t * rmidi) +static int __devinit snd_sonicvibes_midi(struct sonicvibes * sonic, + struct snd_rawmidi *rmidi) { - mpu401_t * mpu = rmidi->private_data; - snd_card_t *card = sonic->card; - snd_rawmidi_str_t *dir; + struct snd_mpu401 * mpu = rmidi->private_data; + struct snd_card *card = sonic->card; + struct snd_rawmidi_str *dir; unsigned int idx; int err; @@ -1408,10 +1407,10 @@ static int __devinit snd_sonic_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; - snd_card_t *card; - sonicvibes_t *sonic; - snd_rawmidi_t *midi_uart; - opl3_t *opl3; + struct snd_card *card; + struct sonicvibes *sonic; + struct snd_rawmidi *midi_uart; + struct snd_opl3 *opl3; int idx, err; if (dev >= SNDRV_CARDS) -- cgit v1.2.3-70-g09d2 From e437e3d7c7fb656010f8f767d20215e67b847685 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:06:15 +0100 Subject: [ALSA] Remove xxx_t typedefs: PCI VIA82xx Modules: VIA82xx driver,VIA82xx-modem driver Remove xxx_t typedefs from the PCI VIA82xx and modem drivers. Signed-off-by: Takashi Iwai --- sound/pci/via82xx.c | 390 +++++++++++++++++++++++++--------------------- sound/pci/via82xx_modem.c | 217 ++++++++++++++------------ 2 files changed, 328 insertions(+), 279 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index f0d8c7f24f2..c87000130dd 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -302,12 +302,6 @@ DEFINE_VIA_REGSET(CAPTURE_8233, 0x60); #define VIA_DXS_SRC 5 -/* - */ - -typedef struct _snd_via82xx via82xx_t; -typedef struct via_dev viadev_t; - /* * pcm stream */ @@ -319,11 +313,11 @@ struct snd_via_sg_table { #define VIA_TABLE_SIZE 255 -struct via_dev { +struct viadev { unsigned int reg_offset; unsigned long port; int direction; /* playback = 0, capture = 1 */ - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; int running; unsigned int tbl_entries; /* # descriptors */ struct snd_dma_buffer table; @@ -350,7 +344,7 @@ struct via_rate_lock { int used; }; -struct _snd_via82xx { +struct via82xx { int irq; unsigned long port; @@ -374,27 +368,27 @@ struct _snd_via82xx { unsigned int intr_mask; /* SGD_SHADOW mask to check interrupts */ struct pci_dev *pci; - snd_card_t *card; + struct snd_card *card; unsigned int num_devs; unsigned int playback_devno, multi_devno, capture_devno; - viadev_t devs[VIA_MAX_DEVS]; + struct viadev devs[VIA_MAX_DEVS]; struct via_rate_lock rates[2]; /* playback and capture */ unsigned int dxs_fixed: 1; /* DXS channel accepts only 48kHz */ unsigned int no_vra: 1; /* no need to set VRA on DXS channels */ unsigned int dxs_src: 1; /* use full SRC capabilities of DXS */ unsigned int spdif_on: 1; /* only spdif rates work to external DACs */ - snd_pcm_t *pcms[2]; - snd_rawmidi_t *rmidi; + struct snd_pcm *pcms[2]; + struct snd_rawmidi *rmidi; - ac97_bus_t *ac97_bus; - ac97_t *ac97; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97; unsigned int ac97_clock; unsigned int ac97_secondary; /* secondary AC'97 codec is present */ spinlock_t reg_lock; - snd_info_entry_t *proc_entry; + struct snd_info_entry *proc_entry; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; @@ -419,12 +413,12 @@ MODULE_DEVICE_TABLE(pci, snd_via82xx_ids); * periods = number of periods * fragsize = period size in bytes */ -static int build_via_table(viadev_t *dev, snd_pcm_substream_t *substream, +static int build_via_table(struct viadev *dev, struct snd_pcm_substream *substream, struct pci_dev *pci, unsigned int periods, unsigned int fragsize) { unsigned int i, idx, ofs, rest; - via82xx_t *chip = snd_pcm_substream_chip(substream); + struct via82xx *chip = snd_pcm_substream_chip(substream); struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); if (dev->table.area == NULL) { @@ -487,7 +481,7 @@ static int build_via_table(viadev_t *dev, snd_pcm_substream_t *substream, } -static int clean_via_table(viadev_t *dev, snd_pcm_substream_t *substream, +static int clean_via_table(struct viadev *dev, struct snd_pcm_substream *substream, struct pci_dev *pci) { if (dev->table.area) { @@ -503,17 +497,17 @@ static int clean_via_table(viadev_t *dev, snd_pcm_substream_t *substream, * Basic I/O */ -static inline unsigned int snd_via82xx_codec_xread(via82xx_t *chip) +static inline unsigned int snd_via82xx_codec_xread(struct via82xx *chip) { return inl(VIAREG(chip, AC97)); } -static inline void snd_via82xx_codec_xwrite(via82xx_t *chip, unsigned int val) +static inline void snd_via82xx_codec_xwrite(struct via82xx *chip, unsigned int val) { outl(val, VIAREG(chip, AC97)); } -static int snd_via82xx_codec_ready(via82xx_t *chip, int secondary) +static int snd_via82xx_codec_ready(struct via82xx *chip, int secondary) { unsigned int timeout = 1000; /* 1ms */ unsigned int val; @@ -523,11 +517,12 @@ static int snd_via82xx_codec_ready(via82xx_t *chip, int secondary) if (!((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)) return val & 0xffff; } - snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", secondary, snd_via82xx_codec_xread(chip)); + snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", + secondary, snd_via82xx_codec_xread(chip)); return -EIO; } -static int snd_via82xx_codec_valid(via82xx_t *chip, int secondary) +static int snd_via82xx_codec_valid(struct via82xx *chip, int secondary) { unsigned int timeout = 1000; /* 1ms */ unsigned int val, val1; @@ -544,20 +539,20 @@ static int snd_via82xx_codec_valid(via82xx_t *chip, int secondary) return -EIO; } -static void snd_via82xx_codec_wait(ac97_t *ac97) +static void snd_via82xx_codec_wait(struct snd_ac97 *ac97) { - via82xx_t *chip = ac97->private_data; + struct via82xx *chip = ac97->private_data; int err; err = snd_via82xx_codec_ready(chip, ac97->num); /* here we need to wait fairly for long time.. */ msleep(500); } -static void snd_via82xx_codec_write(ac97_t *ac97, +static void snd_via82xx_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - via82xx_t *chip = ac97->private_data; + struct via82xx *chip = ac97->private_data; unsigned int xval; xval = !ac97->num ? VIA_REG_AC97_CODEC_ID_PRIMARY : VIA_REG_AC97_CODEC_ID_SECONDARY; @@ -568,9 +563,9 @@ static void snd_via82xx_codec_write(ac97_t *ac97, snd_via82xx_codec_ready(chip, ac97->num); } -static unsigned short snd_via82xx_codec_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_via82xx_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - via82xx_t *chip = ac97->private_data; + struct via82xx *chip = ac97->private_data; unsigned int xval, val = 0xffff; int again = 0; @@ -580,7 +575,8 @@ static unsigned short snd_via82xx_codec_read(ac97_t *ac97, unsigned short reg) xval |= (reg & 0x7f) << VIA_REG_AC97_CMD_SHIFT; while (1) { if (again++ > 3) { - snd_printk(KERN_ERR "codec_read: codec %i is not valid [0x%x]\n", ac97->num, snd_via82xx_codec_xread(chip)); + snd_printk(KERN_ERR "codec_read: codec %i is not valid [0x%x]\n", + ac97->num, snd_via82xx_codec_xread(chip)); return 0xffff; } snd_via82xx_codec_xwrite(chip, xval); @@ -594,7 +590,7 @@ static unsigned short snd_via82xx_codec_read(ac97_t *ac97, unsigned short reg) return val & 0xffff; } -static void snd_via82xx_channel_reset(via82xx_t *chip, viadev_t *viadev) +static void snd_via82xx_channel_reset(struct via82xx *chip, struct viadev *viadev) { outb(VIA_REG_CTRL_PAUSE | VIA_REG_CTRL_TERMINATE | VIA_REG_CTRL_RESET, VIADEV_REG(viadev, OFFSET_CONTROL)); @@ -617,7 +613,7 @@ static void snd_via82xx_channel_reset(via82xx_t *chip, viadev_t *viadev) */ static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - via82xx_t *chip = dev_id; + struct via82xx *chip = dev_id; unsigned int status; unsigned int i; @@ -632,7 +628,7 @@ static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *r /* check status for each stream */ spin_lock(&chip->reg_lock); for (i = 0; i < chip->num_devs; i++) { - viadev_t *viadev = &chip->devs[i]; + struct viadev *viadev = &chip->devs[i]; unsigned char c_status = inb(VIADEV_REG(viadev, OFFSET_STATUS)); if (! (c_status & (VIA_REG_STAT_EOL|VIA_REG_STAT_FLAG|VIA_REG_STAT_STOPPED))) continue; @@ -663,7 +659,7 @@ static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *r */ static irqreturn_t snd_via8233_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - via82xx_t *chip = dev_id; + struct via82xx *chip = dev_id; unsigned int status; unsigned int i; int irqreturn = 0; @@ -673,8 +669,8 @@ static irqreturn_t snd_via8233_interrupt(int irq, void *dev_id, struct pt_regs * status = inl(VIAREG(chip, SGD_SHADOW)); for (i = 0; i < chip->num_devs; i++) { - viadev_t *viadev = &chip->devs[i]; - snd_pcm_substream_t *substream; + struct viadev *viadev = &chip->devs[i]; + struct snd_pcm_substream *substream; unsigned char c_status, shadow_status; shadow_status = (status >> viadev->shadow_shift) & @@ -719,10 +715,10 @@ static irqreturn_t snd_via8233_interrupt(int irq, void *dev_id, struct pt_regs * /* * trigger callback */ -static int snd_via82xx_pcm_trigger(snd_pcm_substream_t * substream, int cmd) +static int snd_via82xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; unsigned char val; if (chip->chip_type != TYPE_VIA686) @@ -766,9 +762,11 @@ static int snd_via82xx_pcm_trigger(snd_pcm_substream_t * substream, int cmd) */ #define check_invalid_pos(viadev,pos) \ - ((pos) < viadev->lastpos && ((pos) >= viadev->bufsize2 || viadev->lastpos < viadev->bufsize2)) + ((pos) < viadev->lastpos && ((pos) >= viadev->bufsize2 ||\ + viadev->lastpos < viadev->bufsize2)) -static inline unsigned int calc_linear_pos(viadev_t *viadev, unsigned int idx, unsigned int count) +static inline unsigned int calc_linear_pos(struct viadev *viadev, unsigned int idx, + unsigned int count) { unsigned int size, base, res; @@ -780,7 +778,8 @@ static inline unsigned int calc_linear_pos(viadev_t *viadev, unsigned int idx, u /* check the validity of the calculated position */ if (size < count) { - snd_printd(KERN_ERR "invalid via82xx_cur_ptr (size = %d, count = %d)\n", (int)size, (int)count); + snd_printd(KERN_ERR "invalid via82xx_cur_ptr (size = %d, count = %d)\n", + (int)size, (int)count); res = viadev->lastpos; } else { if (! count) { @@ -796,12 +795,18 @@ static inline unsigned int calc_linear_pos(viadev_t *viadev, unsigned int idx, u } if (check_invalid_pos(viadev, res)) { #ifdef POINTER_DEBUG - printk(KERN_DEBUG "fail: idx = %i/%i, lastpos = 0x%x, bufsize2 = 0x%x, offsize = 0x%x, size = 0x%x, count = 0x%x\n", idx, viadev->tbl_entries, viadev->lastpos, viadev->bufsize2, viadev->idx_table[idx].offset, viadev->idx_table[idx].size, count); + printk(KERN_DEBUG "fail: idx = %i/%i, lastpos = 0x%x, " + "bufsize2 = 0x%x, offsize = 0x%x, size = 0x%x, " + "count = 0x%x\n", idx, viadev->tbl_entries, + viadev->lastpos, viadev->bufsize2, + viadev->idx_table[idx].offset, + viadev->idx_table[idx].size, count); #endif /* count register returns full size when end of buffer is reached */ res = base + size; if (check_invalid_pos(viadev, res)) { - snd_printd(KERN_ERR "invalid via82xx_cur_ptr (2), using last valid pointer\n"); + snd_printd(KERN_ERR "invalid via82xx_cur_ptr (2), " + "using last valid pointer\n"); res = viadev->lastpos; } } @@ -812,10 +817,10 @@ static inline unsigned int calc_linear_pos(viadev_t *viadev, unsigned int idx, u /* * get the current pointer on via686 */ -static snd_pcm_uframes_t snd_via686_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_via686_pcm_pointer(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; unsigned int idx, ptr, count, res; snd_assert(viadev->tbl_entries, return 0); @@ -842,10 +847,10 @@ static snd_pcm_uframes_t snd_via686_pcm_pointer(snd_pcm_substream_t *substream) /* * get the current pointer on via823x */ -static snd_pcm_uframes_t snd_via8233_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_via8233_pcm_pointer(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; unsigned int idx, count, res; int status; @@ -865,7 +870,8 @@ static snd_pcm_uframes_t snd_via8233_pcm_pointer(snd_pcm_substream_t *substream) idx = count >> 24; if (idx >= viadev->tbl_entries) { #ifdef POINTER_DEBUG - printk(KERN_DEBUG "fail: invalid idx = %i/%i\n", idx, viadev->tbl_entries); + printk(KERN_DEBUG "fail: invalid idx = %i/%i\n", idx, + viadev->tbl_entries); #endif res = viadev->lastpos; } else { @@ -895,11 +901,11 @@ unlock: * hw_params callback: * allocate the buffer and build up the buffer description table */ -static int snd_via82xx_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_via82xx_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; int err; err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); @@ -918,10 +924,10 @@ static int snd_via82xx_hw_params(snd_pcm_substream_t * substream, * hw_free callback: * clean up the buffer description table and release the buffer */ -static int snd_via82xx_hw_free(snd_pcm_substream_t * substream) +static int snd_via82xx_hw_free(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; clean_via_table(viadev, substream, chip->pci); snd_pcm_lib_free_pages(substream); @@ -932,7 +938,7 @@ static int snd_via82xx_hw_free(snd_pcm_substream_t * substream) /* * set up the table pointer */ -static void snd_via82xx_set_table_ptr(via82xx_t *chip, viadev_t *viadev) +static void snd_via82xx_set_table_ptr(struct via82xx *chip, struct viadev *viadev) { snd_via82xx_codec_ready(chip, 0); outl((u32)viadev->table.addr, VIADEV_REG(viadev, OFFSET_TABLE_PTR)); @@ -943,7 +949,8 @@ static void snd_via82xx_set_table_ptr(via82xx_t *chip, viadev_t *viadev) /* * prepare callback for playback and capture on via686 */ -static void via686_setup_format(via82xx_t *chip, viadev_t *viadev, snd_pcm_runtime_t *runtime) +static void via686_setup_format(struct via82xx *chip, struct viadev *viadev, + struct snd_pcm_runtime *runtime) { snd_via82xx_channel_reset(chip, viadev); /* this must be set after channel_reset */ @@ -956,11 +963,11 @@ static void via686_setup_format(via82xx_t *chip, viadev_t *viadev, snd_pcm_runti VIA_REG_TYPE_INT_FLAG, VIADEV_REG(viadev, OFFSET_TYPE)); } -static int snd_via686_playback_prepare(snd_pcm_substream_t *substream) +static int snd_via686_playback_prepare(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; - snd_pcm_runtime_t *runtime = substream->runtime; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; snd_ac97_set_rate(chip->ac97, AC97_PCM_FRONT_DAC_RATE, runtime->rate); snd_ac97_set_rate(chip->ac97, AC97_SPDIF, runtime->rate); @@ -968,11 +975,11 @@ static int snd_via686_playback_prepare(snd_pcm_substream_t *substream) return 0; } -static int snd_via686_capture_prepare(snd_pcm_substream_t *substream) +static int snd_via686_capture_prepare(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; - snd_pcm_runtime_t *runtime = substream->runtime; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; snd_ac97_set_rate(chip->ac97, AC97_PCM_LR_ADC_RATE, runtime->rate); via686_setup_format(chip, viadev, runtime); @@ -1002,11 +1009,11 @@ static int via_lock_rate(struct via_rate_lock *rec, int rate) /* * prepare callback for DSX playback on via823x */ -static int snd_via8233_playback_prepare(snd_pcm_substream_t *substream) +static int snd_via8233_playback_prepare(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; - snd_pcm_runtime_t *runtime = substream->runtime; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; int ac97_rate = chip->dxs_src ? 48000 : runtime->rate; int rate_changed; u32 rbits; @@ -1022,12 +1029,15 @@ static int snd_via8233_playback_prepare(snd_pcm_substream_t *substream) if (runtime->rate == 48000) rbits = 0xfffff; else - rbits = (0x100000 / 48000) * runtime->rate + ((0x100000 % 48000) * runtime->rate) / 48000; + rbits = (0x100000 / 48000) * runtime->rate + + ((0x100000 % 48000) * runtime->rate) / 48000; snd_assert((rbits & ~0xfffff) == 0, return -EINVAL); snd_via82xx_channel_reset(chip, viadev); snd_via82xx_set_table_ptr(chip, viadev); - outb(chip->playback_volume[viadev->reg_offset / 0x10][0], VIADEV_REG(viadev, OFS_PLAYBACK_VOLUME_L)); - outb(chip->playback_volume[viadev->reg_offset / 0x10][1], VIADEV_REG(viadev, OFS_PLAYBACK_VOLUME_R)); + outb(chip->playback_volume[viadev->reg_offset / 0x10][0], + VIADEV_REG(viadev, OFS_PLAYBACK_VOLUME_L)); + outb(chip->playback_volume[viadev->reg_offset / 0x10][1], + VIADEV_REG(viadev, OFS_PLAYBACK_VOLUME_R)); outl((runtime->format == SNDRV_PCM_FORMAT_S16_LE ? VIA8233_REG_TYPE_16BIT : 0) | /* format */ (runtime->channels > 1 ? VIA8233_REG_TYPE_STEREO : 0) | /* stereo */ rbits | /* rate */ @@ -1041,11 +1051,11 @@ static int snd_via8233_playback_prepare(snd_pcm_substream_t *substream) /* * prepare callback for multi-channel playback on via823x */ -static int snd_via8233_multi_prepare(snd_pcm_substream_t *substream) +static int snd_via8233_multi_prepare(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; - snd_pcm_runtime_t *runtime = substream->runtime; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; unsigned int slots; int fmt; @@ -1058,7 +1068,8 @@ static int snd_via8233_multi_prepare(snd_pcm_substream_t *substream) snd_via82xx_channel_reset(chip, viadev); snd_via82xx_set_table_ptr(chip, viadev); - fmt = (runtime->format == SNDRV_PCM_FORMAT_S16_LE) ? VIA_REG_MULTPLAY_FMT_16BIT : VIA_REG_MULTPLAY_FMT_8BIT; + fmt = (runtime->format == SNDRV_PCM_FORMAT_S16_LE) ? + VIA_REG_MULTPLAY_FMT_16BIT : VIA_REG_MULTPLAY_FMT_8BIT; fmt |= runtime->channels << 4; outb(fmt, VIADEV_REG(viadev, OFS_MULTPLAY_FORMAT)); #if 0 @@ -1089,11 +1100,11 @@ static int snd_via8233_multi_prepare(snd_pcm_substream_t *substream) /* * prepare callback for capture on via823x */ -static int snd_via8233_capture_prepare(snd_pcm_substream_t *substream) +static int snd_via8233_capture_prepare(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; - snd_pcm_runtime_t *runtime = substream->runtime; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; + struct snd_pcm_runtime *runtime = substream->runtime; if (via_lock_rate(&chip->rates[1], runtime->rate) < 0) return -EINVAL; @@ -1114,7 +1125,7 @@ static int snd_via8233_capture_prepare(snd_pcm_substream_t *substream) /* * pcm hardware definition, identical for both playback and capture */ -static snd_pcm_hardware_t snd_via82xx_hw = +static struct snd_pcm_hardware snd_via82xx_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -1139,9 +1150,10 @@ static snd_pcm_hardware_t snd_via82xx_hw = /* * open callback skeleton */ -static int snd_via82xx_pcm_open(via82xx_t *chip, viadev_t *viadev, snd_pcm_substream_t * substream) +static int snd_via82xx_pcm_open(struct via82xx *chip, struct viadev *viadev, + struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; int err; struct via_rate_lock *ratep; @@ -1191,10 +1203,10 @@ static int snd_via82xx_pcm_open(via82xx_t *chip, viadev_t *viadev, snd_pcm_subst /* * open callback for playback on via686 and via823x DSX */ -static int snd_via82xx_playback_open(snd_pcm_substream_t * substream) +static int snd_via82xx_playback_open(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = &chip->devs[chip->playback_devno + substream->number]; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = &chip->devs[chip->playback_devno + substream->number]; int err; if ((err = snd_via82xx_pcm_open(chip, viadev, substream)) < 0) @@ -1205,10 +1217,10 @@ static int snd_via82xx_playback_open(snd_pcm_substream_t * substream) /* * open callback for playback on via823x multi-channel */ -static int snd_via8233_multi_open(snd_pcm_substream_t * substream) +static int snd_via8233_multi_open(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = &chip->devs[chip->multi_devno]; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = &chip->devs[chip->multi_devno]; int err; /* channels constraint for VIA8233A * 3 and 5 channels are not supported @@ -1216,7 +1228,7 @@ static int snd_via8233_multi_open(snd_pcm_substream_t * substream) static unsigned int channels[] = { 1, 2, 4, 6 }; - static snd_pcm_hw_constraint_list_t hw_constraints_channels = { + static struct snd_pcm_hw_constraint_list hw_constraints_channels = { .count = ARRAY_SIZE(channels), .list = channels, .mask = 0, @@ -1226,17 +1238,19 @@ static int snd_via8233_multi_open(snd_pcm_substream_t * substream) return err; substream->runtime->hw.channels_max = 6; if (chip->revision == VIA_REV_8233A) - snd_pcm_hw_constraint_list(substream->runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, &hw_constraints_channels); + snd_pcm_hw_constraint_list(substream->runtime, 0, + SNDRV_PCM_HW_PARAM_CHANNELS, + &hw_constraints_channels); return 0; } /* * open callback for capture on via686 and via823x */ -static int snd_via82xx_capture_open(snd_pcm_substream_t * substream) +static int snd_via82xx_capture_open(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = &chip->devs[chip->capture_devno + substream->pcm->device]; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = &chip->devs[chip->capture_devno + substream->pcm->device]; return snd_via82xx_pcm_open(chip, viadev, substream); } @@ -1244,10 +1258,10 @@ static int snd_via82xx_capture_open(snd_pcm_substream_t * substream) /* * close callback */ -static int snd_via82xx_pcm_close(snd_pcm_substream_t * substream) +static int snd_via82xx_pcm_close(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; struct via_rate_lock *ratep; /* release the rate lock */ @@ -1264,7 +1278,7 @@ static int snd_via82xx_pcm_close(snd_pcm_substream_t * substream) /* via686 playback callbacks */ -static snd_pcm_ops_t snd_via686_playback_ops = { +static struct snd_pcm_ops snd_via686_playback_ops = { .open = snd_via82xx_playback_open, .close = snd_via82xx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -1277,7 +1291,7 @@ static snd_pcm_ops_t snd_via686_playback_ops = { }; /* via686 capture callbacks */ -static snd_pcm_ops_t snd_via686_capture_ops = { +static struct snd_pcm_ops snd_via686_capture_ops = { .open = snd_via82xx_capture_open, .close = snd_via82xx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -1290,7 +1304,7 @@ static snd_pcm_ops_t snd_via686_capture_ops = { }; /* via823x DSX playback callbacks */ -static snd_pcm_ops_t snd_via8233_playback_ops = { +static struct snd_pcm_ops snd_via8233_playback_ops = { .open = snd_via82xx_playback_open, .close = snd_via82xx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -1303,7 +1317,7 @@ static snd_pcm_ops_t snd_via8233_playback_ops = { }; /* via823x multi-channel playback callbacks */ -static snd_pcm_ops_t snd_via8233_multi_ops = { +static struct snd_pcm_ops snd_via8233_multi_ops = { .open = snd_via8233_multi_open, .close = snd_via82xx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -1316,7 +1330,7 @@ static snd_pcm_ops_t snd_via8233_multi_ops = { }; /* via823x capture callbacks */ -static snd_pcm_ops_t snd_via8233_capture_ops = { +static struct snd_pcm_ops snd_via8233_capture_ops = { .open = snd_via82xx_capture_open, .close = snd_via82xx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -1329,7 +1343,8 @@ static snd_pcm_ops_t snd_via8233_capture_ops = { }; -static void init_viadev(via82xx_t *chip, int idx, unsigned int reg_offset, int shadow_pos, int direction) +static void init_viadev(struct via82xx *chip, int idx, unsigned int reg_offset, + int shadow_pos, int direction) { chip->devs[idx].reg_offset = reg_offset; chip->devs[idx].shadow_shift = shadow_pos * 4; @@ -1340,9 +1355,9 @@ static void init_viadev(via82xx_t *chip, int idx, unsigned int reg_offset, int s /* * create pcm instances for VIA8233, 8233C and 8235 (not 8233A) */ -static int __devinit snd_via8233_pcm_new(via82xx_t *chip) +static int __devinit snd_via8233_pcm_new(struct via82xx *chip) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int i, err; chip->playback_devno = 0; /* x 4 */ @@ -1367,7 +1382,8 @@ static int __devinit snd_via8233_pcm_new(via82xx_t *chip) init_viadev(chip, chip->capture_devno, VIA_REG_CAPTURE_8233_STATUS, 6, 1); if ((err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024)) < 0) + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024)) < 0) return err; /* PCM #1: multi-channel playback and 2nd capture */ @@ -1385,7 +1401,8 @@ static int __devinit snd_via8233_pcm_new(via82xx_t *chip) init_viadev(chip, chip->capture_devno + 1, VIA_REG_CAPTURE_8233_STATUS + 0x10, 7, 1); if ((err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024)) < 0) + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024)) < 0) return err; return 0; @@ -1394,9 +1411,9 @@ static int __devinit snd_via8233_pcm_new(via82xx_t *chip) /* * create pcm instances for VIA8233A */ -static int __devinit snd_via8233a_pcm_new(via82xx_t *chip) +static int __devinit snd_via8233a_pcm_new(struct via82xx *chip) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; chip->multi_devno = 0; @@ -1420,7 +1437,8 @@ static int __devinit snd_via8233a_pcm_new(via82xx_t *chip) init_viadev(chip, chip->capture_devno, VIA_REG_CAPTURE_8233_STATUS, 6, 1); if ((err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024)) < 0) + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024)) < 0) return err; /* SPDIF supported? */ @@ -1439,7 +1457,8 @@ static int __devinit snd_via8233a_pcm_new(via82xx_t *chip) init_viadev(chip, chip->playback_devno, 0x30, 3, 0); if ((err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024)) < 0) + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024)) < 0) return err; return 0; @@ -1448,9 +1467,9 @@ static int __devinit snd_via8233a_pcm_new(via82xx_t *chip) /* * create a pcm instance for via686a/b */ -static int __devinit snd_via686_pcm_new(via82xx_t *chip) +static int __devinit snd_via686_pcm_new(struct via82xx *chip) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; chip->playback_devno = 0; @@ -1470,7 +1489,8 @@ static int __devinit snd_via686_pcm_new(via82xx_t *chip) init_viadev(chip, 1, VIA_REG_CAPTURE_STATUS, 0, 1); if ((err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024)) < 0) + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024)) < 0) return err; return 0; @@ -1481,7 +1501,8 @@ static int __devinit snd_via686_pcm_new(via82xx_t *chip) * Mixer part */ -static int snd_via8233_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_via8233_capture_source_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { /* formerly they were "Line" and "Mic", but it looks like that they * have nothing to do with the actual physical connections... @@ -1498,17 +1519,19 @@ static int snd_via8233_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_ele return 0; } -static int snd_via8233_capture_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_capture_source_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); unsigned long port = chip->port + (kcontrol->id.index ? (VIA_REG_CAPTURE_CHANNEL + 0x10) : VIA_REG_CAPTURE_CHANNEL); ucontrol->value.enumerated.item[0] = inb(port) & VIA_REG_CAPTURE_CHANNEL_MIC ? 1 : 0; return 0; } -static int snd_via8233_capture_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_capture_source_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); unsigned long port = chip->port + (kcontrol->id.index ? (VIA_REG_CAPTURE_CHANNEL + 0x10) : VIA_REG_CAPTURE_CHANNEL); u8 val, oval; @@ -1523,7 +1546,7 @@ static int snd_via8233_capture_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem return val != oval; } -static snd_kcontrol_new_t snd_via8233_capture_source __devinitdata = { +static struct snd_kcontrol_new snd_via8233_capture_source __devinitdata = { .name = "Input Source Select", .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .info = snd_via8233_capture_source_info, @@ -1531,7 +1554,8 @@ static snd_kcontrol_new_t snd_via8233_capture_source __devinitdata = { .put = snd_via8233_capture_source_put, }; -static int snd_via8233_dxs3_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_via8233_dxs3_spdif_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->count = 1; @@ -1540,9 +1564,10 @@ static int snd_via8233_dxs3_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_in return 0; } -static int snd_via8233_dxs3_spdif_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_dxs3_spdif_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); u8 val; pci_read_config_byte(chip->pci, VIA8233_SPDIF_CTRL, &val); @@ -1550,9 +1575,10 @@ static int snd_via8233_dxs3_spdif_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return 0; } -static int snd_via8233_dxs3_spdif_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_dxs3_spdif_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); u8 val, oval; pci_read_config_byte(chip->pci, VIA8233_SPDIF_CTRL, &oval); @@ -1568,7 +1594,7 @@ static int snd_via8233_dxs3_spdif_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return 0; } -static snd_kcontrol_new_t snd_via8233_dxs3_spdif_control __devinitdata = { +static struct snd_kcontrol_new snd_via8233_dxs3_spdif_control __devinitdata = { .name = SNDRV_CTL_NAME_IEC958("Output ",NONE,SWITCH), .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .info = snd_via8233_dxs3_spdif_info, @@ -1576,7 +1602,8 @@ static snd_kcontrol_new_t snd_via8233_dxs3_spdif_control __devinitdata = { .put = snd_via8233_dxs3_spdif_put, }; -static int snd_via8233_dxs_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) +static int snd_via8233_dxs_volume_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -1585,9 +1612,10 @@ static int snd_via8233_dxs_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_in return 0; } -static int snd_via8233_dxs_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_dxs_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioff(kcontrol, &ucontrol->id); ucontrol->value.integer.value[0] = VIA_DXS_MAX_VOLUME - chip->playback_volume[idx][0]; @@ -1595,17 +1623,19 @@ static int snd_via8233_dxs_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return 0; } -static int snd_via8233_pcmdxs_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_pcmdxs_volume_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); ucontrol->value.integer.value[0] = VIA_DXS_MAX_VOLUME - chip->playback_volume_c[0]; ucontrol->value.integer.value[1] = VIA_DXS_MAX_VOLUME - chip->playback_volume_c[1]; return 0; } -static int snd_via8233_dxs_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_dxs_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); unsigned int idx = snd_ctl_get_ioff(kcontrol, &ucontrol->id); unsigned long port = chip->port + 0x10 * idx; unsigned char val; @@ -1625,9 +1655,10 @@ static int snd_via8233_dxs_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_val return change; } -static int snd_via8233_pcmdxs_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) +static int snd_via8233_pcmdxs_volume_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) { - via82xx_t *chip = snd_kcontrol_chip(kcontrol); + struct via82xx *chip = snd_kcontrol_chip(kcontrol); unsigned int idx; unsigned char val; int i, change = 0; @@ -1650,7 +1681,7 @@ static int snd_via8233_pcmdxs_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_ return change; } -static snd_kcontrol_new_t snd_via8233_pcmdxs_volume_control __devinitdata = { +static struct snd_kcontrol_new snd_via8233_pcmdxs_volume_control __devinitdata = { .name = "PCM Playback Volume", .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .info = snd_via8233_dxs_volume_info, @@ -1658,7 +1689,7 @@ static snd_kcontrol_new_t snd_via8233_pcmdxs_volume_control __devinitdata = { .put = snd_via8233_pcmdxs_volume_put, }; -static snd_kcontrol_new_t snd_via8233_dxs_volume_control __devinitdata = { +static struct snd_kcontrol_new snd_via8233_dxs_volume_control __devinitdata = { .name = "VIA DXS Playback Volume", .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .count = 4, @@ -1670,15 +1701,15 @@ static snd_kcontrol_new_t snd_via8233_dxs_volume_control __devinitdata = { /* */ -static void snd_via82xx_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_via82xx_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - via82xx_t *chip = bus->private_data; + struct via82xx *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_via82xx_mixer_free_ac97(ac97_t *ac97) +static void snd_via82xx_mixer_free_ac97(struct snd_ac97 *ac97) { - via82xx_t *chip = ac97->private_data; + struct via82xx *chip = ac97->private_data; chip->ac97 = NULL; } @@ -1735,11 +1766,11 @@ static struct ac97_quirk ac97_quirks[] = { { } /* terminator */ }; -static int __devinit snd_via82xx_mixer_new(via82xx_t *chip, const char *quirk_override) +static int __devinit snd_via82xx_mixer_new(struct via82xx *chip, const char *quirk_override) { - ac97_template_t ac97; + struct snd_ac97_template ac97; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_via82xx_codec_write, .read = snd_via82xx_codec_read, .wait = snd_via82xx_codec_wait, @@ -1770,7 +1801,7 @@ static int __devinit snd_via82xx_mixer_new(via82xx_t *chip, const char *quirk_ov #ifdef SUPPORT_JOYSTICK #define JOYSTICK_ADDR 0x200 -static int __devinit snd_via686_create_gameport(via82xx_t *chip, unsigned char *legacy) +static int __devinit snd_via686_create_gameport(struct via82xx *chip, unsigned char *legacy) { struct gameport *gp; struct resource *r; @@ -1780,7 +1811,8 @@ static int __devinit snd_via686_create_gameport(via82xx_t *chip, unsigned char * r = request_region(JOYSTICK_ADDR, 8, "VIA686 gameport"); if (!r) { - printk(KERN_WARNING "via82xx: cannot reserve joystick port 0x%#x\n", JOYSTICK_ADDR); + printk(KERN_WARNING "via82xx: cannot reserve joystick port 0x%#x\n", + JOYSTICK_ADDR); return -EBUSY; } @@ -1806,7 +1838,7 @@ static int __devinit snd_via686_create_gameport(via82xx_t *chip, unsigned char * return 0; } -static void snd_via686_free_gameport(via82xx_t *chip) +static void snd_via686_free_gameport(struct via82xx *chip) { if (chip->gameport) { struct resource *r = gameport_get_port_data(chip->gameport); @@ -1817,11 +1849,11 @@ static void snd_via686_free_gameport(via82xx_t *chip) } } #else -static inline int snd_via686_create_gameport(via82xx_t *chip, unsigned char *legacy) +static inline int snd_via686_create_gameport(struct via82xx *chip, unsigned char *legacy) { return -ENOSYS; } -static inline void snd_via686_free_gameport(via82xx_t *chip) { } +static inline void snd_via686_free_gameport(struct via82xx *chip) { } #endif @@ -1829,7 +1861,7 @@ static inline void snd_via686_free_gameport(via82xx_t *chip) { } * */ -static int __devinit snd_via8233_init_misc(via82xx_t *chip) +static int __devinit snd_via8233_init_misc(struct via82xx *chip) { int i, err, caps; unsigned char val; @@ -1850,7 +1882,7 @@ static int __devinit snd_via8233_init_misc(via82xx_t *chip) /* when no h/w PCM volume control is found, use DXS volume control * as the PCM vol control */ - snd_ctl_elem_id_t sid; + struct snd_ctl_elem_id sid; memset(&sid, 0, sizeof(sid)); strcpy(sid.name, "PCM Playback Volume"); sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER; @@ -1877,7 +1909,7 @@ static int __devinit snd_via8233_init_misc(via82xx_t *chip) return 0; } -static int __devinit snd_via686_init_misc(via82xx_t *chip) +static int __devinit snd_via686_init_misc(struct via82xx *chip) { unsigned char legacy, legacy_cfg; int rev_h = 0; @@ -1954,9 +1986,10 @@ static int __devinit snd_via686_init_misc(via82xx_t *chip) /* * proc interface */ -static void snd_via82xx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void snd_via82xx_proc_read(struct snd_info_entry *entry, + struct snd_info_buffer *buffer) { - via82xx_t *chip = entry->private_data; + struct via82xx *chip = entry->private_data; int i; snd_iprintf(buffer, "%s\n\n", chip->card->longname); @@ -1965,9 +1998,9 @@ static void snd_via82xx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *bu } } -static void __devinit snd_via82xx_proc_init(via82xx_t *chip) +static void __devinit snd_via82xx_proc_init(struct via82xx *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "via82xx", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_via82xx_proc_read); @@ -1977,7 +2010,7 @@ static void __devinit snd_via82xx_proc_init(via82xx_t *chip) * */ -static int snd_via82xx_chip_init(via82xx_t *chip) +static int snd_via82xx_chip_init(struct via82xx *chip) { unsigned int val; unsigned long end_time; @@ -2080,7 +2113,8 @@ static int snd_via82xx_chip_init(via82xx_t *chip) unsigned long port = chip->port + 0x10 * idx; for (i = 0; i < 2; i++) { chip->playback_volume[idx][i]=chip->playback_volume_c[i]; - outb(chip->playback_volume_c[i], port + VIA_REG_OFS_PLAYBACK_VOLUME_L + i); + outb(chip->playback_volume_c[i], + port + VIA_REG_OFS_PLAYBACK_VOLUME_L + i); } } } @@ -2092,9 +2126,9 @@ static int snd_via82xx_chip_init(via82xx_t *chip) /* * power management */ -static int snd_via82xx_suspend(snd_card_t *card, pm_message_t state) +static int snd_via82xx_suspend(struct snd_card *card, pm_message_t state) { - via82xx_t *chip = card->pm_private_data; + struct via82xx *chip = card->pm_private_data; int i; for (i = 0; i < 2; i++) @@ -2117,9 +2151,9 @@ static int snd_via82xx_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int snd_via82xx_resume(snd_card_t *card) +static int snd_via82xx_resume(struct snd_card *card) { - via82xx_t *chip = card->pm_private_data; + struct via82xx *chip = card->pm_private_data; int i; pci_enable_device(chip->pci); @@ -2147,7 +2181,7 @@ static int snd_via82xx_resume(snd_card_t *card) } #endif /* CONFIG_PM */ -static int snd_via82xx_free(via82xx_t *chip) +static int snd_via82xx_free(struct via82xx *chip) { unsigned int i; @@ -2159,7 +2193,7 @@ static int snd_via82xx_free(via82xx_t *chip) synchronize_irq(chip->irq); __end_hw: if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); release_and_free_resource(chip->mpu_res); pci_release_regions(chip->pci); @@ -2173,22 +2207,22 @@ static int snd_via82xx_free(via82xx_t *chip) return 0; } -static int snd_via82xx_dev_free(snd_device_t *device) +static int snd_via82xx_dev_free(struct snd_device *device) { - via82xx_t *chip = device->device_data; + struct via82xx *chip = device->device_data; return snd_via82xx_free(chip); } -static int __devinit snd_via82xx_create(snd_card_t * card, +static int __devinit snd_via82xx_create(struct snd_card *card, struct pci_dev *pci, int chip_type, int revision, unsigned int ac97_clock, - via82xx_t ** r_via) + struct via82xx ** r_via) { - via82xx_t *chip; + struct via82xx *chip; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_via82xx_dev_free, }; @@ -2225,7 +2259,7 @@ static int __devinit snd_via82xx_create(snd_card_t * card, chip_type == TYPE_VIA8233 ? snd_via8233_interrupt : snd_via686_interrupt, SA_INTERRUPT|SA_SHIRQ, - card->driver, (void *)chip)) { + card->driver, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_via82xx_free(chip); return -EBUSY; @@ -2363,8 +2397,8 @@ static int __devinit check_dxs_list(struct pci_dev *pci) static int __devinit snd_via82xx_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - via82xx_t *chip; + struct snd_card *card; + struct via82xx *chip; unsigned char revision; int chip_type = 0, card_type; unsigned int i; diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c index b83660bd05b..55ef69a8d2d 100644 --- a/sound/pci/via82xx_modem.c +++ b/sound/pci/via82xx_modem.c @@ -206,9 +206,6 @@ DEFINE_VIA_REGSET(MI, 0x50); VIA_MC97_CTRL_SECONDARY) -typedef struct _snd_via82xx_modem via82xx_t; -typedef struct via_dev viadev_t; - /* * pcm stream */ @@ -220,11 +217,11 @@ struct snd_via_sg_table { #define VIA_TABLE_SIZE 255 -struct via_dev { +struct viadev { unsigned int reg_offset; unsigned long port; int direction; /* playback = 0, capture = 1 */ - snd_pcm_substream_t *substream; + struct snd_pcm_substream *substream; int running; unsigned int tbl_entries; /* # descriptors */ struct snd_dma_buffer table; @@ -239,7 +236,7 @@ enum { TYPE_CARD_VIA82XX_MODEM = 1 }; #define VIA_MAX_MODEM_DEVS 2 -struct _snd_via82xx_modem { +struct via82xx_modem { int irq; unsigned long port; @@ -247,21 +244,21 @@ struct _snd_via82xx_modem { unsigned int intr_mask; /* SGD_SHADOW mask to check interrupts */ struct pci_dev *pci; - snd_card_t *card; + struct snd_card *card; unsigned int num_devs; unsigned int playback_devno, capture_devno; - viadev_t devs[VIA_MAX_MODEM_DEVS]; + struct viadev devs[VIA_MAX_MODEM_DEVS]; - snd_pcm_t *pcms[2]; + struct snd_pcm *pcms[2]; - ac97_bus_t *ac97_bus; - ac97_t *ac97; + struct snd_ac97_bus *ac97_bus; + struct snd_ac97 *ac97; unsigned int ac97_clock; unsigned int ac97_secondary; /* secondary AC'97 codec is present */ spinlock_t reg_lock; - snd_info_entry_t *proc_entry; + struct snd_info_entry *proc_entry; }; static struct pci_device_id snd_via82xx_modem_ids[] = { @@ -279,12 +276,12 @@ MODULE_DEVICE_TABLE(pci, snd_via82xx_modem_ids); * periods = number of periods * fragsize = period size in bytes */ -static int build_via_table(viadev_t *dev, snd_pcm_substream_t *substream, +static int build_via_table(struct viadev *dev, struct snd_pcm_substream *substream, struct pci_dev *pci, unsigned int periods, unsigned int fragsize) { unsigned int i, idx, ofs, rest; - via82xx_t *chip = snd_pcm_substream_chip(substream); + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); if (dev->table.area == NULL) { @@ -346,7 +343,7 @@ static int build_via_table(viadev_t *dev, snd_pcm_substream_t *substream, } -static int clean_via_table(viadev_t *dev, snd_pcm_substream_t *substream, +static int clean_via_table(struct viadev *dev, struct snd_pcm_substream *substream, struct pci_dev *pci) { if (dev->table.area) { @@ -362,17 +359,17 @@ static int clean_via_table(viadev_t *dev, snd_pcm_substream_t *substream, * Basic I/O */ -static inline unsigned int snd_via82xx_codec_xread(via82xx_t *chip) +static inline unsigned int snd_via82xx_codec_xread(struct via82xx_modem *chip) { return inl(VIAREG(chip, AC97)); } -static inline void snd_via82xx_codec_xwrite(via82xx_t *chip, unsigned int val) +static inline void snd_via82xx_codec_xwrite(struct via82xx_modem *chip, unsigned int val) { outl(val, VIAREG(chip, AC97)); } -static int snd_via82xx_codec_ready(via82xx_t *chip, int secondary) +static int snd_via82xx_codec_ready(struct via82xx_modem *chip, int secondary) { unsigned int timeout = 1000; /* 1ms */ unsigned int val; @@ -382,11 +379,12 @@ static int snd_via82xx_codec_ready(via82xx_t *chip, int secondary) if (!((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)) return val & 0xffff; } - snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", secondary, snd_via82xx_codec_xread(chip)); + snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", + secondary, snd_via82xx_codec_xread(chip)); return -EIO; } -static int snd_via82xx_codec_valid(via82xx_t *chip, int secondary) +static int snd_via82xx_codec_valid(struct via82xx_modem *chip, int secondary) { unsigned int timeout = 1000; /* 1ms */ unsigned int val, val1; @@ -403,20 +401,20 @@ static int snd_via82xx_codec_valid(via82xx_t *chip, int secondary) return -EIO; } -static void snd_via82xx_codec_wait(ac97_t *ac97) +static void snd_via82xx_codec_wait(struct snd_ac97 *ac97) { - via82xx_t *chip = ac97->private_data; + struct via82xx_modem *chip = ac97->private_data; int err; err = snd_via82xx_codec_ready(chip, ac97->num); /* here we need to wait fairly for long time.. */ msleep(500); } -static void snd_via82xx_codec_write(ac97_t *ac97, +static void snd_via82xx_codec_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) { - via82xx_t *chip = ac97->private_data; + struct via82xx_modem *chip = ac97->private_data; unsigned int xval; if(reg == AC97_GPIO_STATUS) { outl(val, VIAREG(chip, GPI_STATUS)); @@ -430,9 +428,9 @@ static void snd_via82xx_codec_write(ac97_t *ac97, snd_via82xx_codec_ready(chip, ac97->num); } -static unsigned short snd_via82xx_codec_read(ac97_t *ac97, unsigned short reg) +static unsigned short snd_via82xx_codec_read(struct snd_ac97 *ac97, unsigned short reg) { - via82xx_t *chip = ac97->private_data; + struct via82xx_modem *chip = ac97->private_data; unsigned int xval, val = 0xffff; int again = 0; @@ -442,7 +440,8 @@ static unsigned short snd_via82xx_codec_read(ac97_t *ac97, unsigned short reg) xval |= (reg & 0x7f) << VIA_REG_AC97_CMD_SHIFT; while (1) { if (again++ > 3) { - snd_printk(KERN_ERR "codec_read: codec %i is not valid [0x%x]\n", ac97->num, snd_via82xx_codec_xread(chip)); + snd_printk(KERN_ERR "codec_read: codec %i is not valid [0x%x]\n", + ac97->num, snd_via82xx_codec_xread(chip)); return 0xffff; } snd_via82xx_codec_xwrite(chip, xval); @@ -456,7 +455,7 @@ static unsigned short snd_via82xx_codec_read(ac97_t *ac97, unsigned short reg) return val & 0xffff; } -static void snd_via82xx_channel_reset(via82xx_t *chip, viadev_t *viadev) +static void snd_via82xx_channel_reset(struct via82xx_modem *chip, struct viadev *viadev) { outb(VIA_REG_CTRL_PAUSE | VIA_REG_CTRL_TERMINATE | VIA_REG_CTRL_RESET, VIADEV_REG(viadev, OFFSET_CONTROL)); @@ -478,7 +477,7 @@ static void snd_via82xx_channel_reset(via82xx_t *chip, viadev_t *viadev) static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - via82xx_t *chip = dev_id; + struct via82xx_modem *chip = dev_id; unsigned int status; unsigned int i; @@ -491,7 +490,7 @@ static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id, struct pt_regs * /* check status for each stream */ spin_lock(&chip->reg_lock); for (i = 0; i < chip->num_devs; i++) { - viadev_t *viadev = &chip->devs[i]; + struct viadev *viadev = &chip->devs[i]; unsigned char c_status = inb(VIADEV_REG(viadev, OFFSET_STATUS)); c_status &= (VIA_REG_STAT_EOL|VIA_REG_STAT_FLAG|VIA_REG_STAT_STOPPED); if (! c_status) @@ -514,10 +513,10 @@ static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id, struct pt_regs * /* * trigger callback */ -static int snd_via82xx_pcm_trigger(snd_pcm_substream_t * substream, int cmd) +static int snd_via82xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; unsigned char val = 0; switch (cmd) { @@ -555,9 +554,11 @@ static int snd_via82xx_pcm_trigger(snd_pcm_substream_t * substream, int cmd) */ #define check_invalid_pos(viadev,pos) \ - ((pos) < viadev->lastpos && ((pos) >= viadev->bufsize2 || viadev->lastpos < viadev->bufsize2)) + ((pos) < viadev->lastpos && ((pos) >= viadev->bufsize2 ||\ + viadev->lastpos < viadev->bufsize2)) -static inline unsigned int calc_linear_pos(viadev_t *viadev, unsigned int idx, unsigned int count) +static inline unsigned int calc_linear_pos(struct viadev *viadev, unsigned int idx, + unsigned int count) { unsigned int size, res; @@ -566,24 +567,33 @@ static inline unsigned int calc_linear_pos(viadev_t *viadev, unsigned int idx, u /* check the validity of the calculated position */ if (size < count) { - snd_printd(KERN_ERR "invalid via82xx_cur_ptr (size = %d, count = %d)\n", (int)size, (int)count); + snd_printd(KERN_ERR "invalid via82xx_cur_ptr (size = %d, count = %d)\n", + (int)size, (int)count); res = viadev->lastpos; } else if (check_invalid_pos(viadev, res)) { #ifdef POINTER_DEBUG - printk(KERN_DEBUG "fail: idx = %i/%i, lastpos = 0x%x, bufsize2 = 0x%x, offsize = 0x%x, size = 0x%x, count = 0x%x\n", idx, viadev->tbl_entries, viadev->lastpos, viadev->bufsize2, viadev->idx_table[idx].offset, viadev->idx_table[idx].size, count); + printk(KERN_DEBUG "fail: idx = %i/%i, lastpos = 0x%x, " + "bufsize2 = 0x%x, offsize = 0x%x, size = 0x%x, " + "count = 0x%x\n", idx, viadev->tbl_entries, viadev->lastpos, + viadev->bufsize2, viadev->idx_table[idx].offset, + viadev->idx_table[idx].size, count); #endif if (count && size < count) { - snd_printd(KERN_ERR "invalid via82xx_cur_ptr, using last valid pointer\n"); + snd_printd(KERN_ERR "invalid via82xx_cur_ptr, " + "using last valid pointer\n"); res = viadev->lastpos; } else { if (! count) /* bogus count 0 on the DMA boundary? */ res = viadev->idx_table[idx].offset; else - /* count register returns full size when end of buffer is reached */ + /* count register returns full size + * when end of buffer is reached + */ res = viadev->idx_table[idx].offset + size; if (check_invalid_pos(viadev, res)) { - snd_printd(KERN_ERR "invalid via82xx_cur_ptr (2), using last valid pointer\n"); + snd_printd(KERN_ERR "invalid via82xx_cur_ptr (2), " + "using last valid pointer\n"); res = viadev->lastpos; } } @@ -597,10 +607,10 @@ static inline unsigned int calc_linear_pos(viadev_t *viadev, unsigned int idx, u /* * get the current pointer on via686 */ -static snd_pcm_uframes_t snd_via686_pcm_pointer(snd_pcm_substream_t *substream) +static snd_pcm_uframes_t snd_via686_pcm_pointer(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; unsigned int idx, ptr, count, res; snd_assert(viadev->tbl_entries, return 0); @@ -616,7 +626,8 @@ static snd_pcm_uframes_t snd_via686_pcm_pointer(snd_pcm_substream_t *substream) if (ptr <= (unsigned int)viadev->table.addr) idx = 0; else /* CURR_PTR holds the address + 8 */ - idx = ((ptr - (unsigned int)viadev->table.addr) / 8 - 1) % viadev->tbl_entries; + idx = ((ptr - (unsigned int)viadev->table.addr) / 8 - 1) % + viadev->tbl_entries; res = calc_linear_pos(viadev, idx, count); spin_unlock(&chip->reg_lock); @@ -627,11 +638,11 @@ static snd_pcm_uframes_t snd_via686_pcm_pointer(snd_pcm_substream_t *substream) * hw_params callback: * allocate the buffer and build up the buffer description table */ -static int snd_via82xx_hw_params(snd_pcm_substream_t * substream, - snd_pcm_hw_params_t * hw_params) +static int snd_via82xx_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *hw_params) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; int err; err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); @@ -653,10 +664,10 @@ static int snd_via82xx_hw_params(snd_pcm_substream_t * substream, * hw_free callback: * clean up the buffer description table and release the buffer */ -static int snd_via82xx_hw_free(snd_pcm_substream_t * substream) +static int snd_via82xx_hw_free(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; clean_via_table(viadev, substream, chip->pci); snd_pcm_lib_free_pages(substream); @@ -667,7 +678,7 @@ static int snd_via82xx_hw_free(snd_pcm_substream_t * substream) /* * set up the table pointer */ -static void snd_via82xx_set_table_ptr(via82xx_t *chip, viadev_t *viadev) +static void snd_via82xx_set_table_ptr(struct via82xx_modem *chip, struct viadev *viadev) { snd_via82xx_codec_ready(chip, chip->ac97_secondary); outl((u32)viadev->table.addr, VIADEV_REG(viadev, OFFSET_TABLE_PTR)); @@ -678,10 +689,10 @@ static void snd_via82xx_set_table_ptr(via82xx_t *chip, viadev_t *viadev) /* * prepare callback for playback and capture */ -static int snd_via82xx_pcm_prepare(snd_pcm_substream_t *substream) +static int snd_via82xx_pcm_prepare(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = substream->runtime->private_data; snd_via82xx_channel_reset(chip, viadev); /* this must be set after channel_reset */ @@ -694,7 +705,7 @@ static int snd_via82xx_pcm_prepare(snd_pcm_substream_t *substream) /* * pcm hardware definition, identical for both playback and capture */ -static snd_pcm_hardware_t snd_via82xx_hw = +static struct snd_pcm_hardware snd_via82xx_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -719,12 +730,13 @@ static snd_pcm_hardware_t snd_via82xx_hw = /* * open callback skeleton */ -static int snd_via82xx_modem_pcm_open(via82xx_t *chip, viadev_t *viadev, snd_pcm_substream_t * substream) +static int snd_via82xx_modem_pcm_open(struct via82xx_modem *chip, struct viadev *viadev, + struct snd_pcm_substream *substream) { - snd_pcm_runtime_t *runtime = substream->runtime; + struct snd_pcm_runtime *runtime = substream->runtime; int err; static unsigned int rates[] = { 8000, 9600, 12000, 16000 }; - static snd_pcm_hw_constraint_list_t hw_constraints_rates = { + static struct snd_pcm_hw_constraint_list hw_constraints_rates = { .count = ARRAY_SIZE(rates), .list = rates, .mask = 0, @@ -732,7 +744,8 @@ static int snd_via82xx_modem_pcm_open(via82xx_t *chip, viadev_t *viadev, snd_pcm runtime->hw = snd_via82xx_hw; - if ((err = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates)) < 0) + if ((err = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, + &hw_constraints_rates)) < 0) return err; /* we may remove following constaint when we modify table entries @@ -750,10 +763,10 @@ static int snd_via82xx_modem_pcm_open(via82xx_t *chip, viadev_t *viadev, snd_pcm /* * open callback for playback */ -static int snd_via82xx_playback_open(snd_pcm_substream_t * substream) +static int snd_via82xx_playback_open(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = &chip->devs[chip->playback_devno + substream->number]; + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = &chip->devs[chip->playback_devno + substream->number]; return snd_via82xx_modem_pcm_open(chip, viadev, substream); } @@ -761,10 +774,10 @@ static int snd_via82xx_playback_open(snd_pcm_substream_t * substream) /* * open callback for capture */ -static int snd_via82xx_capture_open(snd_pcm_substream_t * substream) +static int snd_via82xx_capture_open(struct snd_pcm_substream *substream) { - via82xx_t *chip = snd_pcm_substream_chip(substream); - viadev_t *viadev = &chip->devs[chip->capture_devno + substream->pcm->device]; + struct via82xx_modem *chip = snd_pcm_substream_chip(substream); + struct viadev *viadev = &chip->devs[chip->capture_devno + substream->pcm->device]; return snd_via82xx_modem_pcm_open(chip, viadev, substream); } @@ -772,9 +785,9 @@ static int snd_via82xx_capture_open(snd_pcm_substream_t * substream) /* * close callback */ -static int snd_via82xx_pcm_close(snd_pcm_substream_t * substream) +static int snd_via82xx_pcm_close(struct snd_pcm_substream *substream) { - viadev_t *viadev = (viadev_t *)substream->runtime->private_data; + struct viadev *viadev = substream->runtime->private_data; viadev->substream = NULL; return 0; @@ -782,7 +795,7 @@ static int snd_via82xx_pcm_close(snd_pcm_substream_t * substream) /* via686 playback callbacks */ -static snd_pcm_ops_t snd_via686_playback_ops = { +static struct snd_pcm_ops snd_via686_playback_ops = { .open = snd_via82xx_playback_open, .close = snd_via82xx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -795,7 +808,7 @@ static snd_pcm_ops_t snd_via686_playback_ops = { }; /* via686 capture callbacks */ -static snd_pcm_ops_t snd_via686_capture_ops = { +static struct snd_pcm_ops snd_via686_capture_ops = { .open = snd_via82xx_capture_open, .close = snd_via82xx_pcm_close, .ioctl = snd_pcm_lib_ioctl, @@ -808,7 +821,8 @@ static snd_pcm_ops_t snd_via686_capture_ops = { }; -static void init_viadev(via82xx_t *chip, int idx, unsigned int reg_offset, int direction) +static void init_viadev(struct via82xx_modem *chip, int idx, unsigned int reg_offset, + int direction) { chip->devs[idx].reg_offset = reg_offset; chip->devs[idx].direction = direction; @@ -818,9 +832,9 @@ static void init_viadev(via82xx_t *chip, int idx, unsigned int reg_offset, int d /* * create a pcm instance for via686a/b */ -static int __devinit snd_via686_pcm_new(via82xx_t *chip) +static int __devinit snd_via686_pcm_new(struct via82xx_modem *chip) { - snd_pcm_t *pcm; + struct snd_pcm *pcm; int err; chip->playback_devno = 0; @@ -841,7 +855,8 @@ static int __devinit snd_via686_pcm_new(via82xx_t *chip) init_viadev(chip, 1, VIA_REG_MI_STATUS, 1); if ((err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, - snd_dma_pci_data(chip->pci), 64*1024, 128*1024)) < 0) + snd_dma_pci_data(chip->pci), + 64*1024, 128*1024)) < 0) return err; return 0; @@ -853,24 +868,24 @@ static int __devinit snd_via686_pcm_new(via82xx_t *chip) */ -static void snd_via82xx_mixer_free_ac97_bus(ac97_bus_t *bus) +static void snd_via82xx_mixer_free_ac97_bus(struct snd_ac97_bus *bus) { - via82xx_t *chip = bus->private_data; + struct via82xx_modem *chip = bus->private_data; chip->ac97_bus = NULL; } -static void snd_via82xx_mixer_free_ac97(ac97_t *ac97) +static void snd_via82xx_mixer_free_ac97(struct snd_ac97 *ac97) { - via82xx_t *chip = ac97->private_data; + struct via82xx_modem *chip = ac97->private_data; chip->ac97 = NULL; } -static int __devinit snd_via82xx_mixer_new(via82xx_t *chip) +static int __devinit snd_via82xx_mixer_new(struct via82xx_modem *chip) { - ac97_template_t ac97; + struct snd_ac97_template ac97; int err; - static ac97_bus_ops_t ops = { + static struct snd_ac97_bus_ops ops = { .write = snd_via82xx_codec_write, .read = snd_via82xx_codec_read, .wait = snd_via82xx_codec_wait, @@ -898,9 +913,9 @@ static int __devinit snd_via82xx_mixer_new(via82xx_t *chip) /* * proc interface */ -static void snd_via82xx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) +static void snd_via82xx_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) { - via82xx_t *chip = entry->private_data; + struct via82xx_modem *chip = entry->private_data; int i; snd_iprintf(buffer, "%s\n\n", chip->card->longname); @@ -909,9 +924,9 @@ static void snd_via82xx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *bu } } -static void __devinit snd_via82xx_proc_init(via82xx_t *chip) +static void __devinit snd_via82xx_proc_init(struct via82xx_modem *chip) { - snd_info_entry_t *entry; + struct snd_info_entry *entry; if (! snd_card_proc_new(chip->card, "via82xx", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_via82xx_proc_read); @@ -921,7 +936,7 @@ static void __devinit snd_via82xx_proc_init(via82xx_t *chip) * */ -static int snd_via82xx_chip_init(via82xx_t *chip) +static int snd_via82xx_chip_init(struct via82xx_modem *chip) { unsigned int val; unsigned long end_time; @@ -1004,9 +1019,9 @@ static int snd_via82xx_chip_init(via82xx_t *chip) /* * power management */ -static int snd_via82xx_suspend(snd_card_t *card, pm_message_t state) +static int snd_via82xx_suspend(struct snd_card *card, pm_message_t state) { - via82xx_t *chip = card->pm_private_data; + struct via82xx_modem *chip = card->pm_private_data; int i; for (i = 0; i < 2; i++) @@ -1021,9 +1036,9 @@ static int snd_via82xx_suspend(snd_card_t *card, pm_message_t state) return 0; } -static int snd_via82xx_resume(snd_card_t *card) +static int snd_via82xx_resume(struct snd_card *card) { - via82xx_t *chip = card->pm_private_data; + struct via82xx_modem *chip = card->pm_private_data; int i; pci_enable_device(chip->pci); @@ -1041,7 +1056,7 @@ static int snd_via82xx_resume(snd_card_t *card) } #endif /* CONFIG_PM */ -static int snd_via82xx_free(via82xx_t *chip) +static int snd_via82xx_free(struct via82xx_modem *chip) { unsigned int i; @@ -1053,29 +1068,29 @@ static int snd_via82xx_free(via82xx_t *chip) synchronize_irq(chip->irq); __end_hw: if (chip->irq >= 0) - free_irq(chip->irq, (void *)chip); + free_irq(chip->irq, chip); pci_release_regions(chip->pci); pci_disable_device(chip->pci); kfree(chip); return 0; } -static int snd_via82xx_dev_free(snd_device_t *device) +static int snd_via82xx_dev_free(struct snd_device *device) { - via82xx_t *chip = device->device_data; + struct via82xx_modem *chip = device->device_data; return snd_via82xx_free(chip); } -static int __devinit snd_via82xx_create(snd_card_t * card, +static int __devinit snd_via82xx_create(struct snd_card *card, struct pci_dev *pci, int chip_type, int revision, unsigned int ac97_clock, - via82xx_t ** r_via) + struct via82xx_modem ** r_via) { - via82xx_t *chip; + struct via82xx_modem *chip; int err; - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_via82xx_dev_free, }; @@ -1099,7 +1114,7 @@ static int __devinit snd_via82xx_create(snd_card_t * card, } chip->port = pci_resource_start(pci, 0); if (request_irq(pci->irq, snd_via82xx_interrupt, SA_INTERRUPT|SA_SHIRQ, - card->driver, (void *)chip)) { + card->driver, chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_via82xx_free(chip); return -EBUSY; @@ -1134,8 +1149,8 @@ static int __devinit snd_via82xx_create(snd_card_t * card, static int __devinit snd_via82xx_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - snd_card_t *card; - via82xx_t *chip; + struct snd_card *card; + struct via82xx_modem *chip; unsigned char revision; int chip_type = 0, card_type; unsigned int i; -- cgit v1.2.3-70-g09d2 From 9398441edaf0dc64eca828e3ce7a0326c8640d4c Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:30:43 +0100 Subject: [ALSA] ac97-codec - Better ac97_bus name Modules: AC97 Codec Generate a better name string for ac97_bus sysfs interface including the name of ac97 codec chip. Signed-off-by: Takashi Iwai --- sound/pci/ac97/ac97_codec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index bdb6a8cc0ae..9faeaefc8e6 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -137,7 +137,7 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = { { 0x43585421, 0xffffffff, "HSD11246", NULL, NULL }, // SmartMC II { 0x43585428, 0xfffffff8, "Cx20468", patch_conexant, NULL }, // SmartAMC fixme: the mask might be different { 0x44543031, 0xfffffff0, "DT0398", NULL, NULL }, -{ 0x454d4328, 0xffffffff, "28028", NULL, NULL }, // same as TR28028? +{ 0x454d4328, 0xffffffff, "EM28028", NULL, NULL }, // same as TR28028? { 0x45838308, 0xffffffff, "ESS1988", NULL, NULL }, { 0x48525300, 0xffffff00, "HMP9701", NULL, NULL }, { 0x49434501, 0xffffffff, "ICE1230", NULL, NULL }, @@ -1816,7 +1816,9 @@ static int snd_ac97_dev_register(struct snd_device *device) ac97->dev.bus = &ac97_bus_type; ac97->dev.parent = ac97->bus->card->dev; ac97->dev.release = ac97_device_release; - snprintf(ac97->dev.bus_id, BUS_ID_SIZE, "card%d-%d", ac97->bus->card->number, ac97->num); + snprintf(ac97->dev.bus_id, BUS_ID_SIZE, "%d-%d:%s", + ac97->bus->card->number, ac97->num, + snd_ac97_get_short_name(ac97)); if ((err = device_register(&ac97->dev)) < 0) { snd_printk(KERN_ERR "Can't register ac97 bus\n"); ac97->dev.bus = NULL; -- cgit v1.2.3-70-g09d2 From fd66e0d0591dd12eb0bea1e9f3aa194bb93cebbd Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 15:31:34 +0100 Subject: [ALSA] hda-codec - Add AD1988 support Modules: HDA Codec driver Add AD1988 codec support to hda-codec driver. Still experimental, and no BIOS configuration parser is implemented yet. Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_analog.c | 785 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 785 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 1f371fe6b92..25116a883ca 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -41,6 +41,7 @@ struct ad198x_spec { * max_channels, dacs must be set * dig_out_nid and hp_nid are optional */ + unsigned int cur_eapd; /* capture */ unsigned int num_adc_nids; @@ -856,6 +857,789 @@ static int patch_ad1981(struct hda_codec *codec) } +/* + * AD1988 + * + * Output pins and routes + * + * Pin Mix Sel DAC + * port-A 0x11 (mute/hp) <- 0x22 <- 0x37 <- 03/04/06 + * port-B 0x14 (mute/hp) <- 0x2b <- 0x30 <- 03/04/06 + * port-C 0x15 (mute) <- 0x2c <- 0x31 <- 05/0a + * port-D 0x12 (mute/hp) <- 0x29 <- 04 + * port-E 0x17 (mute/hp) <- 0x26 <- 0x32 <- 05/0a + * port-F 0x16 (mute) <- 0x2a <- 06 + * port-G 0x24 (mute) <- 0x27 <- 05 + * port-H 0x25 (mute) <- 0x28 <- 0a + * mono 0x13 (mute/amp)<- 0x1e <- 0x36 <- 03/04/06 + * + * + * Input pins and routes + * + * pin boost mix input # / adc input # + * port-A 0x11 -> 0x38 -> mix 2, ADC 0 + * port-B 0x14 -> 0x39 -> mix 0, ADC 1 + * port-C 0x15 -> 0x3a -> 33:0 - mix 1, ADC 2 + * port-D 0x12 -> 0x3d -> mix 3, ADC 8 + * port-E 0x17 -> 0x3c -> 34:0 - mix 4, ADC 4 + * port-F 0x16 -> 0x3b -> mix 5, ADC 3 + * port-G 0x24 -> N/A -> 33:1 - mix 1, 34:1 - mix 4, ADC 6 + * port-H 0x25 -> N/A -> 33:2 - mix 1, 34:2 - mix 4, ADC 7 + * + * + * DAC assignment + * front DAC - 04 + * surr DAC - 06 + * CLFE DAC - 05 + * side DAC - 0a + * opt DAC - 03 + * + * Inputs of Analog Mix (0x20) + * 0:Port-B (front mic) + * 1:Port-C/G/H (line-in) + * 2:Port-A + * 3:Port-D (line-in/2) + * 4:Port-E/G/H (mic-in) + * 5:Port-F (mic2-in) + * 6:CD + * 7:Beep + * + * ADC selection + * 0:Port-A + * 1:Port-B (front mic-in) + * 2:Port-C (line-in) + * 3:Port-F (mic2-in) + * 4:Port-E (mic-in) + * 5:CD + * 6:Port-G + * 7:Port-H + * 8:Port-D (line-in/2) + * 9:Mix + * + * Proposed pin assignments by the datasheet + * + * 6-stack + * Port-A front headphone + * B front mic-in + * C rear line-in + * D rear front-out + * E rear mic-in + * F rear surround + * G rear CLFE + * H rear side + * + * 3-stack + * Port-A front headphone + * B front mic + * C rear line-in/surround + * D rear front-out + * E rear mic-in/CLFE + * + * laptop + * Port-A headphone + * B mic-in + * C docking station + * D internal speaker (with EAPD) + * E/F quad mic array + */ + + +/* models */ +enum { + AD1988_6STACK, + AD1988_6STACK_DIG, + AD1988_3STACK, + AD1988_3STACK_DIG, + AD1988_LAPTOP, + AD1988_LAPTOP_DIG, + AD1988_MODEL_LAST, +}; + + +/* + * mixers + */ + +static hda_nid_t ad1988_dac_nids[4] = { + 0x04, 0x06, 0x05, 0x0a +}; + +static hda_nid_t ad1988_adc_nids[3] = { + 0x08, 0x09, 0x0f +}; + +#define AD1988_SPDIF_OUT 0x02 +#define AD1988_SPDIF_IN 0x07 + +static struct hda_input_mux ad1988_6stack_capture_source = { + .num_items = 5, + .items = { + { "Front Mic", 0x0 }, + { "Line", 0x1 }, + { "Mic", 0x4 }, + { "CD", 0x5 }, + { "Mix", 0x9 }, + }, +}; + +static struct hda_input_mux ad1988_laptop_capture_source = { + .num_items = 3, + .items = { + { "Mic/Line", 0x0 }, + { "CD", 0x5 }, + { "Mix", 0x9 }, + }, +}; + +/* + */ +static int ad198x_ch_mode_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct ad198x_spec *spec = codec->spec; + return snd_hda_ch_mode_info(codec, uinfo, spec->channel_mode, + spec->num_channel_mode); +} + +static int ad198x_ch_mode_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct ad198x_spec *spec = codec->spec; + return snd_hda_ch_mode_get(codec, ucontrol, spec->channel_mode, + spec->num_channel_mode, spec->multiout.max_channels); +} + +static int ad198x_ch_mode_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct ad198x_spec *spec = codec->spec; + return snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode, + spec->num_channel_mode, &spec->multiout.max_channels); +} + +/* + * EAPD control + */ +static int ad1988_eapd_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; + uinfo->count = 1; + uinfo->value.integer.min = 0; + uinfo->value.integer.max = 1; + return 0; +} + +static int ad1988_eapd_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct ad198x_spec *spec = codec->spec; + ucontrol->value.enumerated.item[0] = ! spec->cur_eapd; + return 0; +} + +static int ad1988_eapd_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct ad198x_spec *spec = codec->spec; + unsigned int eapd; + eapd = ! ucontrol->value.enumerated.item[0]; + if (eapd == spec->cur_eapd && ! codec->in_resume) + return 0; + spec->cur_eapd = eapd; + snd_hda_codec_write(codec, 0x12 /* port-D */, + 0, AC_VERB_SET_EAPD_BTLENABLE, + eapd ? 0x02 : 0x00); + return 0; +} + +/* 6-stack mode */ +static struct snd_kcontrol_new ad1988_6stack_mixers[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x04, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x06, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Side Playback Volume", 0x0a, 0x0, HDA_OUTPUT), + + HDA_BIND_MUTE("Front Playback Switch", 0x29, 2, HDA_INPUT), + HDA_BIND_MUTE("Surround Playback Switch", 0x2a, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("Center Playback Switch", 0x27, 1, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("LFE Playback Switch", 0x27, 2, 2, HDA_INPUT), + HDA_BIND_MUTE("Side Playback Switch", 0x28, 2, HDA_INPUT), + HDA_BIND_MUTE("Headphone Playback Switch", 0x22, 2, HDA_INPUT), + HDA_BIND_MUTE("Mono Playback Switch", 0x1e, 2, HDA_INPUT), + + HDA_CODEC_VOLUME("CD Playback Volume", 0x20, 0x6, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x20, 0x6, HDA_INPUT), + HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x20, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x20, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x20, 0x1, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x20, 0x1, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x20, 0x4, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x20, 0x4, HDA_INPUT), + + HDA_CODEC_VOLUME("Beep Playback Volume", 0x10, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Beep Playback Switch", 0x10, 0x0, HDA_OUTPUT), + + HDA_CODEC_VOLUME("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + + HDA_CODEC_VOLUME("Front Mic Boost", 0x39, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Mic Boost", 0x3c, 0x0, HDA_OUTPUT), + + { } /* end */ +}; + +/* 3-stack mode */ +static struct snd_kcontrol_new ad1988_3stack_mixers[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x04, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x06, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), + + HDA_BIND_MUTE("Front Playback Switch", 0x29, 2, HDA_INPUT), + HDA_BIND_MUTE("Surround Playback Switch", 0x2a, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("Center Playback Switch", 0x27, 1, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("LFE Playback Switch", 0x27, 2, 2, HDA_INPUT), + HDA_BIND_MUTE("Headphone Playback Switch", 0x22, 2, HDA_INPUT), + HDA_BIND_MUTE("Mono Playback Switch", 0x1e, 2, HDA_INPUT), + + HDA_CODEC_VOLUME("CD Playback Volume", 0x20, 0x6, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x20, 0x6, HDA_INPUT), + HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x20, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x20, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x20, 0x1, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x20, 0x1, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x20, 0x4, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x20, 0x4, HDA_INPUT), + + HDA_CODEC_VOLUME("Beep Playback Volume", 0x10, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Beep Playback Switch", 0x10, 0x0, HDA_OUTPUT), + + HDA_CODEC_VOLUME("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + + HDA_CODEC_VOLUME("Front Mic Boost", 0x39, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Mic Boost", 0x3c, 0x0, HDA_OUTPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Channel Mode", + .info = ad198x_ch_mode_info, + .get = ad198x_ch_mode_get, + .put = ad198x_ch_mode_put, + }, + + { } /* end */ +}; + +/* laptop mode */ +static struct snd_kcontrol_new ad1988_laptop_mixers[] = { + HDA_CODEC_VOLUME("PCM Playback Volume", 0x04, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("PCM Playback Switch", 0x29, 0x0, HDA_INPUT), + HDA_BIND_MUTE("Mono Playback Switch", 0x1e, 2, HDA_INPUT), + + HDA_CODEC_VOLUME("CD Playback Volume", 0x20, 0x6, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x20, 0x6, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x20, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x20, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x20, 0x1, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x20, 0x1, HDA_INPUT), + + HDA_CODEC_VOLUME("Beep Playback Volume", 0x10, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Beep Playback Switch", 0x10, 0x0, HDA_OUTPUT), + + HDA_CODEC_VOLUME("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + + HDA_CODEC_VOLUME("Mic Boost", 0x39, 0x0, HDA_OUTPUT), + + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "External Amplifier", + .info = ad1988_eapd_info, + .get = ad1988_eapd_get, + .put = ad1988_eapd_put, + }, + + { } /* end */ +}; + +/* capture */ +static struct snd_kcontrol_new ad1988_capture_mixers[] = { + HDA_CODEC_VOLUME("Capture Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Capture Switch", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x0d, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x0d, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 2, 0x0e, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 2, 0x0e, 0x0, HDA_OUTPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* The multiple "Capture Source" controls confuse alsamixer + * So call somewhat different.. + * FIXME: the controls appear in the "playback" view! + */ + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 3, + .info = ad198x_mux_enum_info, + .get = ad198x_mux_enum_get, + .put = ad198x_mux_enum_put, + }, + { } /* end */ +}; + +static int ad1988_spdif_playback_source_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + static char *texts[] = { + "PCM", "ADC1", "ADC2", "ADC3" + }; + uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; + uinfo->count = 1; + uinfo->value.enumerated.items = 4; + if (uinfo->value.enumerated.item >= 4) + uinfo->value.enumerated.item = 3; + strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]); + return 0; +} + +static int ad1988_spdif_playback_source_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + unsigned int sel; + + sel = snd_hda_codec_read(codec, 0x02, 0, AC_VERB_GET_CONNECT_SEL, 0); + if (sel > 0) { + sel = snd_hda_codec_read(codec, 0x0b, 0, AC_VERB_GET_CONNECT_SEL, 0); + if (sel <= 3) + sel++; + else + sel = 0; + } + ucontrol->value.enumerated.item[0] = sel; + return 0; +} + +static int ad1988_spdif_playback_source_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + unsigned int sel; + int change; + + sel = snd_hda_codec_read(codec, 0x02, 0, AC_VERB_GET_CONNECT_SEL, 0); + if (! ucontrol->value.enumerated.item[0]) { + change = sel != 0; + if (change) + snd_hda_codec_write(codec, 0x02, 0, AC_VERB_SET_CONNECT_SEL, 0); + } else { + change = sel == 0; + if (change) + snd_hda_codec_write(codec, 0x02, 0, AC_VERB_SET_CONNECT_SEL, 1); + sel = snd_hda_codec_read(codec, 0x0b, 0, AC_VERB_GET_CONNECT_SEL, 0) + 1; + change |= sel == ucontrol->value.enumerated.item[0]; + if (change) + snd_hda_codec_write(codec, 0x02, 0, AC_VERB_SET_CONNECT_SEL, + ucontrol->value.enumerated.item[0] - 1); + } + return change; +} + +static struct snd_kcontrol_new ad1988_spdif_out_mixers[] = { + HDA_CODEC_VOLUME("IEC958 Playback Volume", 0x1b, 0x0, HDA_OUTPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "IEC958 Playback Source", + .info = ad1988_spdif_playback_source_info, + .get = ad1988_spdif_playback_source_get, + .put = ad1988_spdif_playback_source_put, + }, + { } /* end */ +}; + +static struct snd_kcontrol_new ad1988_spdif_in_mixers[] = { + HDA_CODEC_VOLUME("IEC958 Capture Volume", 0x1c, 0x0, HDA_INPUT), + { } /* end */ +}; + + +/* + * initialization verbs + */ + +/* + * for 6-stack (+dig) + */ +static struct hda_verb ad1988_6stack_init_verbs[] = { + /* Front, Surround, CLFE, side DAC; mute as default */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + /* Port-A front headphon path */ + {0x37, AC_VERB_SET_CONNECT_SEL, 0x01}, /* DAC1:04h */ + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x11, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + /* Port-D line-out path */ + {0x29, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x29, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + /* Port-F surround path */ + {0x2a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x2a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + /* Port-G CLFE path */ + {0x27, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x27, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x24, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + /* Port-H side path */ + {0x28, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x28, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x25, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x25, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + /* Mono out path */ + {0x36, AC_VERB_SET_CONNECT_SEL, 0x1}, /* DAC1:04h */ + {0x1e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x1e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x13, AC_VERB_SET_AMP_GAIN_MUTE, 0xb01f}, /* unmute, 0dB */ + /* Port-B front mic-in path */ + {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x39, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + /* Port-C line-in path */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + {0x3a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x33, AC_VERB_SET_CONNECT_SEL, 0x0}, + /* Port-E mic-in path */ + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x3c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x34, AC_VERB_SET_CONNECT_SEL, 0x0}, + + { } +}; + +static struct hda_verb ad1988_capture_init_verbs[] = { + /* mute analog mix */ + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)}, + /* select ADCs - front-mic */ + {0x0c, AC_VERB_SET_CONNECT_SEL, 0x1}, + {0x0d, AC_VERB_SET_CONNECT_SEL, 0x1}, + {0x0e, AC_VERB_SET_CONNECT_SEL, 0x1}, + /* ADCs; muted */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + + { } +}; + +static struct hda_verb ad1988_spdif_init_verbs[] = { + /* SPDIF out sel */ + {0x02, AC_VERB_SET_CONNECT_SEL, 0x0}, /* PCM */ + {0x0b, AC_VERB_SET_CONNECT_SEL, 0x0}, /* ADC1 */ + {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + /* SPDIF out pin */ + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE | 0x27}, /* 0dB */ + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x17}, /* 0dB */ + + { } +}; + +/* + * verbs for 3stack (+dig) + */ +static struct hda_verb ad1988_3stack_ch2_init[] = { + /* set port-C to line-in */ + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, + { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, + /* set port-E to mic-in */ + { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, + { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, + { } /* end */ +}; + +static struct hda_verb ad1988_3stack_ch6_init[] = { + /* set port-C to surround out */ + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, + { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + /* set port-E to CLFE out */ + { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, + { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { } /* end */ +}; + +static struct hda_channel_mode ad1988_3stack_modes[2] = { + { 2, ad1988_3stack_ch2_init }, + { 6, ad1988_3stack_ch6_init }, +}; + +static struct hda_verb ad1988_3stack_init_verbs[] = { + /* Front, Surround, CLFE, side DAC; mute as default */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + /* Port-A front headphon path */ + {0x37, AC_VERB_SET_CONNECT_SEL, 0x01}, /* DAC1:04h */ + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x11, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + /* Port-D line-out path */ + {0x29, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x29, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + /* Mono out path */ + {0x36, AC_VERB_SET_CONNECT_SEL, 0x1}, /* DAC1:04h */ + {0x1e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x1e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x13, AC_VERB_SET_AMP_GAIN_MUTE, 0xb01f}, /* unmute, 0dB */ + /* Port-B front mic-in path */ + {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x39, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + /* Port-C line-in/surround path */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + {0x3a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x33, AC_VERB_SET_CONNECT_SEL, 0x0}, + /* Port-E mic-in/CLFE path */ + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x3c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x34, AC_VERB_SET_CONNECT_SEL, 0x0}, + /* mute analog mix */ + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)}, + /* select ADCs - front-mic */ + {0x0c, AC_VERB_SET_CONNECT_SEL, 0x1}, + {0x0d, AC_VERB_SET_CONNECT_SEL, 0x1}, + {0x0e, AC_VERB_SET_CONNECT_SEL, 0x1}, + /* ADCs; muted */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + { } +}; + +/* + * verbs for laptop mode (+dig) + */ +static struct hda_verb ad1988_laptop_hp_on[] = { + /* unmute port-A and mute port-D */ + { 0x11, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, + { 0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, + { } /* end */ +}; +static struct hda_verb ad1988_laptop_hp_off[] = { + /* mute port-A and unmute port-D */ + { 0x11, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, + { 0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, + { } /* end */ +}; + +#define AD1988_HP_EVENT 0x01 + +static struct hda_verb ad1988_laptop_init_verbs[] = { + /* Front, Surround, CLFE, side DAC; mute as default */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + /* Port-A front headphon path */ + {0x37, AC_VERB_SET_CONNECT_SEL, 0x01}, /* DAC1:04h */ + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x11, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + /* unsolicited event for pin-sense */ + {0x11, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | AD1988_HP_EVENT }, + /* Port-D line-out path + EAPD */ + {0x29, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x29, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x12, AC_VERB_SET_EAPD_BTLENABLE, 0x00}, /* EAPD-off */ + /* Mono out path */ + {0x36, AC_VERB_SET_CONNECT_SEL, 0x1}, /* DAC1:04h */ + {0x1e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x1e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x13, AC_VERB_SET_AMP_GAIN_MUTE, 0xb01f}, /* unmute, 0dB */ + /* Port-B mic-in path */ + {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x39, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + /* Port-C docking station - try to output */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x3a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x33, AC_VERB_SET_CONNECT_SEL, 0x0}, + /* mute analog mix */ + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)}, + {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)}, + /* select ADCs - mic */ + {0x0c, AC_VERB_SET_CONNECT_SEL, 0x1}, + {0x0d, AC_VERB_SET_CONNECT_SEL, 0x1}, + {0x0e, AC_VERB_SET_CONNECT_SEL, 0x1}, + /* ADCs; muted */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + { } +}; + +static void ad1988_laptop_unsol_event(struct hda_codec *codec, unsigned int res) +{ + if ((res >> 26) != AD1988_HP_EVENT) + return; + if (snd_hda_codec_read(codec, 0x11, 0, AC_VERB_GET_PIN_SENSE, 0) & (1 << 31)) + snd_hda_sequence_write(codec, ad1988_laptop_hp_on); + else + snd_hda_sequence_write(codec, ad1988_laptop_hp_off); +} + + +/* + */ + +static struct hda_board_config ad1988_cfg_tbl[] = { + { .modelname = "6stack", .config = AD1988_6STACK }, + { .modelname = "6stack-dig", .config = AD1988_6STACK_DIG }, + { .modelname = "3stack", .config = AD1988_3STACK }, + { .modelname = "3stack-dig", .config = AD1988_3STACK_DIG }, + { .modelname = "laptop", .config = AD1988_LAPTOP }, + { .modelname = "laptop-dig", .config = AD1988_LAPTOP_DIG }, + {} +}; + +static int patch_ad1988(struct hda_codec *codec) +{ + struct ad198x_spec *spec; + int board_config; + + spec = kzalloc(sizeof(*spec), GFP_KERNEL); + if (spec == NULL) + return -ENOMEM; + + init_MUTEX(&spec->amp_mutex); + codec->spec = spec; + + board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl); + if (board_config < 0 || board_config >= AD1988_MODEL_LAST) { + printk(KERN_INFO "hda_codec: Unknown model for ALC880, trying auto-probe from BIOS...\n"); + board_config = AD1988_6STACK; + } + + switch (board_config) { + case AD1988_6STACK: + case AD1988_6STACK_DIG: + spec->multiout.max_channels = 8; + spec->multiout.num_dacs = 4; + spec->multiout.dac_nids = ad1988_dac_nids; + spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); + spec->adc_nids = ad1988_adc_nids; + spec->input_mux = &ad1988_6stack_capture_source; + spec->num_mixers = 1; + spec->mixers[0] = ad1988_6stack_mixers; + spec->num_init_verbs = 1; + spec->init_verbs[0] = ad1988_6stack_init_verbs; + if (board_config == AD1988_6STACK_DIG) { + spec->multiout.dig_out_nid = AD1988_SPDIF_OUT; + spec->dig_in_nid = AD1988_SPDIF_IN; + } + break; + case AD1988_3STACK: + case AD1988_3STACK_DIG: + spec->multiout.max_channels = 6; + spec->multiout.num_dacs = 3; + spec->multiout.dac_nids = ad1988_dac_nids; + spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); + spec->adc_nids = ad1988_adc_nids; + spec->input_mux = &ad1988_6stack_capture_source; + spec->channel_mode = ad1988_3stack_modes; + spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes); + spec->num_mixers = 1; + spec->mixers[0] = ad1988_3stack_mixers; + spec->num_init_verbs = 1; + spec->init_verbs[0] = ad1988_3stack_init_verbs; + if (board_config == AD1988_3STACK_DIG) + spec->multiout.dig_out_nid = AD1988_SPDIF_OUT; + break; + case AD1988_LAPTOP: + case AD1988_LAPTOP_DIG: + spec->multiout.max_channels = 2; + spec->multiout.num_dacs = 1; + spec->multiout.dac_nids = ad1988_dac_nids; + spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); + spec->adc_nids = ad1988_adc_nids; + spec->input_mux = &ad1988_laptop_capture_source; + spec->num_mixers = 1; + spec->mixers[0] = ad1988_laptop_mixers; + spec->num_init_verbs = 1; + spec->init_verbs[0] = ad1988_laptop_init_verbs; + if (board_config == AD1988_LAPTOP_DIG) + spec->multiout.dig_out_nid = AD1988_SPDIF_OUT; + break; + } + + spec->mixers[spec->num_mixers++] = ad1988_capture_mixers; + spec->init_verbs[spec->num_init_verbs++] = ad1988_capture_init_verbs; + if (spec->multiout.dig_out_nid) { + spec->mixers[spec->num_mixers++] = ad1988_spdif_out_mixers; + spec->init_verbs[spec->num_init_verbs++] = ad1988_spdif_init_verbs; + } + if (spec->dig_in_nid) + spec->mixers[spec->num_mixers++] = ad1988_spdif_in_mixers; + + codec->patch_ops = ad198x_patch_ops; + switch (board_config) { + case AD1988_LAPTOP: + case AD1988_LAPTOP_DIG: + codec->patch_ops.unsol_event = ad1988_laptop_unsol_event; + break; + } + + return 0; +} + + /* * patch entries */ @@ -863,5 +1647,6 @@ struct hda_codec_preset snd_hda_preset_analog[] = { { .id = 0x11d41981, .name = "AD1981", .patch = patch_ad1981 }, { .id = 0x11d41983, .name = "AD1983", .patch = patch_ad1983 }, { .id = 0x11d41986, .name = "AD1986A", .patch = patch_ad1986a }, + { .id = 0x11d41988, .name = "AD1988", .patch = patch_ad1988 }, {} /* terminator */ }; -- cgit v1.2.3-70-g09d2 From e26e7545e9542425f140cb4c605a7ab5a3b13e00 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:00:01 +0100 Subject: [ALSA] ac97 - NULL check in snd_ac97_suspend/resume Modules: AC97 Codec Add NULL check in snd_ac97_suspend() and snd_ac97_resume() so that the caller doesn't have to do it by itself. Signed-off-by: Takashi Iwai --- sound/pci/ac97/ac97_codec.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 9faeaefc8e6..abc83fa85bc 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -2186,6 +2186,8 @@ static void snd_ac97_powerdown(struct snd_ac97 *ac97) */ void snd_ac97_suspend(struct snd_ac97 *ac97) { + if (! ac97) + return; if (ac97->build_ops->suspend) ac97->build_ops->suspend(ac97); snd_ac97_powerdown(ac97); @@ -2242,6 +2244,9 @@ void snd_ac97_resume(struct snd_ac97 *ac97) { unsigned long end_time; + if (! ac97) + return; + if (ac97->bus->ops->reset) { ac97->bus->ops->reset(ac97); goto __reset_ready; -- cgit v1.2.3-70-g09d2 From 0ed1cad172176a4595f82e8cd9055938ad54bd4b Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:06:05 +0100 Subject: [ALSA] vx-driver - Fix PM support Fix PM support on VX drivers (vxpocket and vx222). Signed-off-by: Takashi Iwai --- include/sound/vx_core.h | 6 ++++++ sound/drivers/vx/vx_core.c | 18 ++++++++---------- sound/pci/vx222/vx222.c | 33 ++++++++++++++++++++++++++++++++- sound/pcmcia/vx/vxpocket.c | 9 +++++---- 4 files changed, 51 insertions(+), 15 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h index 0a85c37d1bc..5fd6f3305e0 100644 --- a/include/sound/vx_core.h +++ b/include/sound/vx_core.h @@ -346,6 +346,12 @@ void vx_set_internal_clock(struct vx_core *chip, unsigned int freq); int vx_change_frequency(struct vx_core *chip); +/* + * PM + */ +int snd_vx_suspend(struct vx_core *card, pm_message_t state); +int snd_vx_resume(struct vx_core *card); + /* * hardware constants */ diff --git a/sound/drivers/vx/vx_core.c b/sound/drivers/vx/vx_core.c index 5abf4235177..43f615d7a54 100644 --- a/sound/drivers/vx/vx_core.c +++ b/sound/drivers/vx/vx_core.c @@ -709,13 +709,11 @@ int snd_vx_dsp_load(struct vx_core *chip, const struct firmware *dsp) /* * suspend */ -static int snd_vx_suspend(struct snd_card *card, pm_message_t state) +int snd_vx_suspend(struct vx_core *chip, pm_message_t state) { - struct vx_core *chip = card->pm_private_data; unsigned int i; - snd_assert(chip, return -EINVAL); - + snd_power_change_state(chip->card, SNDRV_CTL_POWER_D3hot); chip->chip_status |= VX_STAT_IN_SUSPEND; for (i = 0; i < chip->hw->num_codecs; i++) snd_pcm_suspend_all(chip->pcm[i]); @@ -726,13 +724,10 @@ static int snd_vx_suspend(struct snd_card *card, pm_message_t state) /* * resume */ -static int snd_vx_resume(struct snd_card *card) +int snd_vx_resume(struct vx_core *chip) { - struct vx_core *chip = card->pm_private_data; int i, err; - snd_assert(chip, return -EINVAL); - chip->chip_status &= ~VX_STAT_CHIP_INIT; for (i = 0; i < 4; i++) { @@ -748,6 +743,7 @@ static int snd_vx_resume(struct snd_card *card) chip->chip_status |= VX_STAT_CHIP_INIT; chip->chip_status &= ~VX_STAT_IN_SUSPEND; + snd_power_change_state(chip->card, SNDRV_CTL_POWER_D0); return 0; } @@ -789,8 +785,6 @@ struct vx_core *snd_vx_create(struct snd_card *card, struct snd_vx_hardware *hw, strcpy(card->driver, hw->name); sprintf(card->shortname, "Digigram %s", hw->name); - snd_card_set_pm_callback(card, snd_vx_suspend, snd_vx_resume, chip); - vx_proc_init(chip); return chip; @@ -822,3 +816,7 @@ EXPORT_SYMBOL(snd_vx_irq_handler); EXPORT_SYMBOL(snd_vx_dsp_boot); EXPORT_SYMBOL(snd_vx_dsp_load); EXPORT_SYMBOL(snd_vx_load_boot_image); +#ifdef CONFIG_PM +EXPORT_SYMBOL(snd_vx_suspend); +EXPORT_SYMBOL(snd_vx_resume); +#endif diff --git a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c index 4ebbabedb3c..c816ddf1b21 100644 --- a/sound/pci/vx222/vx222.c +++ b/sound/pci/vx222/vx222.c @@ -218,6 +218,7 @@ static int __devinit snd_vx222_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = vx; vx->core.ibl.size = ibl[dev]; sprintf(card->longname, "%s at 0x%lx & 0x%lx, irq %i", @@ -250,12 +251,42 @@ static void __devexit snd_vx222_remove(struct pci_dev *pci) pci_set_drvdata(pci, NULL); } +#ifdef CONFIG_PM +static int snd_vx222_suspend(struct pci_dev *pci, pm_message_t state) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct snd_vx222 *vx = card->private_data; + int err; + + err = snd_vx_suspend(&vx->core, state); + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); + return err; +} + +static int snd_vx222_resume(struct pci_dev *pci) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct snd_vx222 *vx = card->private_data; + + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); + return snd_vx_resume(&vx->core); +} +#endif + static struct pci_driver driver = { .name = "Digigram VX222", .id_table = snd_vx222_ids, .probe = snd_vx222_probe, .remove = __devexit_p(snd_vx222_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_vx222_suspend, + .resume = snd_vx222_resume, +#endif }; static int __init alsa_card_vx222_init(void) diff --git a/sound/pcmcia/vx/vxpocket.c b/sound/pcmcia/vx/vxpocket.c index 00962971414..5bb079d1795 100644 --- a/sound/pcmcia/vx/vxpocket.c +++ b/sound/pcmcia/vx/vxpocket.c @@ -342,9 +342,9 @@ static int vxpocket_event(event_t event, int priority, event_callback_args_t *ar case CS_EVENT_PM_SUSPEND: snd_printdd(KERN_DEBUG "SUSPEND\n"); link->state |= DEV_SUSPEND; - if (chip && chip->card->pm_suspend) { + if (chip) { snd_printdd(KERN_DEBUG "snd_vx_suspend calling\n"); - chip->card->pm_suspend(chip->card, PMSG_SUSPEND); + snd_vx_suspend(chip, PMSG_SUSPEND); } /* Fall through... */ case CS_EVENT_RESET_PHYSICAL: @@ -362,9 +362,9 @@ static int vxpocket_event(event_t event, int priority, event_callback_args_t *ar //struct snd_vxpocket *vxp = (struct snd_vxpocket *)chip; snd_printdd(KERN_DEBUG "requestconfig...\n"); pcmcia_request_configuration(link->handle, &link->conf); - if (chip && chip->card->pm_resume) { + if (chip) { snd_printdd(KERN_DEBUG "calling snd_vx_resume\n"); - chip->card->pm_resume(chip->card); + snd_vx_resume(chip); } } snd_printdd(KERN_DEBUG "resume done!\n"); @@ -407,6 +407,7 @@ static dev_link_t *vxpocket_attach(void) snd_card_free(card); return NULL; } + card->private_data = vxp; vxp->index = i; card_alloc |= 1 << i; -- cgit v1.2.3-70-g09d2 From 92304cc7ecfc87d8336696ab5fe6a1c0eec2ff00 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:07:46 +0100 Subject: [ALSA] atiixp - Fix PM support Modules: ATIIXP driver,ATIIXP-modem driver Fix PM support on ATIIXP and modem drivers. Signed-off-by: Takashi Iwai --- sound/pci/atiixp.c | 38 ++++++++++++++++++++++---------------- sound/pci/atiixp_modem.c | 41 +++++++++++++++++++++++------------------ 2 files changed, 45 insertions(+), 34 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 5ead66610ed..a039284c7c5 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -1415,11 +1415,13 @@ static int __devinit snd_atiixp_mixer_new(struct atiixp *chip, int clock, /* * power management */ -static int snd_atiixp_suspend(struct snd_card *card, pm_message_t state) +static int snd_atiixp_suspend(struct pci_dev *pci, pm_message_t state) { - struct atiixp *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct atiixp *chip = card->private_data; int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for (i = 0; i < NUM_ATI_PCMDEVS; i++) if (chip->pcmdevs[i]) { struct atiixp_dma *dma = &chip->dmas[i]; @@ -1429,31 +1431,32 @@ static int snd_atiixp_suspend(struct snd_card *card, pm_message_t state) snd_pcm_suspend_all(chip->pcmdevs[i]); } for (i = 0; i < NUM_ATI_CODECS; i++) - if (chip->ac97[i]) - snd_ac97_suspend(chip->ac97[i]); + snd_ac97_suspend(chip->ac97[i]); snd_atiixp_aclink_down(chip); snd_atiixp_chip_stop(chip); - pci_set_power_state(chip->pci, PCI_D3hot); - pci_disable_device(chip->pci); + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_atiixp_resume(struct snd_card *card) +static int snd_atiixp_resume(struct pci_dev *pci) { - struct atiixp *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct atiixp *chip = card->private_data; int i; - pci_enable_device(chip->pci); - pci_set_power_state(chip->pci, PCI_D0); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); snd_atiixp_aclink_reset(chip); snd_atiixp_chip_start(chip); for (i = 0; i < NUM_ATI_CODECS; i++) - if (chip->ac97[i]) - snd_ac97_resume(chip->ac97[i]); + snd_ac97_resume(chip->ac97[i]); for (i = 0; i < NUM_ATI_PCMDEVS; i++) if (chip->pcmdevs[i]) { @@ -1468,6 +1471,7 @@ static int snd_atiixp_resume(struct snd_card *card) } } + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -1604,6 +1608,7 @@ static int __devinit snd_atiixp_probe(struct pci_dev *pci, strcpy(card->shortname, "ATI IXP"); if ((err = snd_atiixp_create(card, pci, &chip)) < 0) goto __error; + card->private_data = chip; if ((err = snd_atiixp_aclink_reset(chip)) < 0) goto __error; @@ -1625,8 +1630,6 @@ static int __devinit snd_atiixp_probe(struct pci_dev *pci, chip->ac97[0] ? snd_ac97_get_short_name(chip->ac97[0]) : "?", chip->addr, chip->irq); - snd_card_set_pm_callback(card, snd_atiixp_suspend, snd_atiixp_resume, chip); - if ((err = snd_card_register(card)) < 0) goto __error; @@ -1649,7 +1652,10 @@ static struct pci_driver driver = { .id_table = snd_atiixp_ids, .probe = snd_atiixp_probe, .remove = __devexit_p(snd_atiixp_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_atiixp_suspend, + .resume = snd_atiixp_resume, +#endif }; diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index 15be161b0a9..73f1f2b1a35 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c @@ -1113,41 +1113,44 @@ static int __devinit snd_atiixp_mixer_new(struct atiixp_modem *chip, int clock) /* * power management */ -static int snd_atiixp_suspend(struct snd_card *card, pm_message_t state) +static int snd_atiixp_suspend(struct pci_dev *pci, pm_message_t state) { - struct atiixp_modem *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct atiixp_modem *chip = card->private_data; int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for (i = 0; i < NUM_ATI_PCMDEVS; i++) - if (chip->pcmdevs[i]) - snd_pcm_suspend_all(chip->pcmdevs[i]); + snd_pcm_suspend_all(chip->pcmdevs[i]); for (i = 0; i < NUM_ATI_CODECS; i++) - if (chip->ac97[i]) - snd_ac97_suspend(chip->ac97[i]); + snd_ac97_suspend(chip->ac97[i]); snd_atiixp_aclink_down(chip); snd_atiixp_chip_stop(chip); - pci_set_power_state(chip->pci, PCI_D3hot); - pci_disable_device(chip->pci); + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_atiixp_resume(struct snd_card *card) +static int snd_atiixp_resume(struct pci_dev *pci) { - struct atiixp_modem *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct atiixp_modem *chip = card->private_data; int i; - pci_enable_device(chip->pci); - pci_set_power_state(chip->pci, PCI_D0); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); snd_atiixp_aclink_reset(chip); snd_atiixp_chip_start(chip); for (i = 0; i < NUM_ATI_CODECS; i++) - if (chip->ac97[i]) - snd_ac97_resume(chip->ac97[i]); + snd_ac97_resume(chip->ac97[i]); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -1284,6 +1287,7 @@ static int __devinit snd_atiixp_probe(struct pci_dev *pci, strcpy(card->shortname, "ATI IXP Modem"); if ((err = snd_atiixp_create(card, pci, &chip)) < 0) goto __error; + card->private_data = chip; if ((err = snd_atiixp_aclink_reset(chip)) < 0) goto __error; @@ -1301,8 +1305,6 @@ static int __devinit snd_atiixp_probe(struct pci_dev *pci, sprintf(card->longname, "%s rev %x at 0x%lx, irq %i", card->shortname, revision, chip->addr, chip->irq); - snd_card_set_pm_callback(card, snd_atiixp_suspend, snd_atiixp_resume, chip); - if ((err = snd_card_register(card)) < 0) goto __error; @@ -1325,7 +1327,10 @@ static struct pci_driver driver = { .id_table = snd_atiixp_ids, .probe = snd_atiixp_probe, .remove = __devexit_p(snd_atiixp_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_atiixp_suspend, + .resume = snd_atiixp_resume, +#endif }; -- cgit v1.2.3-70-g09d2 From 38c0a158ee23027e6a4fe47311e05d9c34c94da4 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:08:11 +0100 Subject: [ALSA] cs4281 - Fix PM support Modules: CS4281 driver Fix PM support on CS4281 driver. Signed-off-by: Takashi Iwai --- sound/pci/cs4281.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index 116cdc1c552..4f65ec56bf3 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c @@ -1339,10 +1339,6 @@ static int snd_cs4281_dev_free(struct snd_device *device) } static int snd_cs4281_chip_init(struct cs4281 *chip); /* defined below */ -#ifdef CONFIG_PM -static int cs4281_suspend(struct snd_card *card, pm_message_t state); -static int cs4281_resume(struct snd_card *card); -#endif static int __devinit snd_cs4281_create(struct snd_card *card, struct pci_dev *pci, @@ -1411,8 +1407,6 @@ static int __devinit snd_cs4281_create(struct snd_card *card, snd_cs4281_proc_init(chip); - snd_card_set_pm_callback(card, cs4281_suspend, cs4281_resume, chip); - snd_card_set_dev(card, &pci->dev); *rchip = chip; @@ -1936,6 +1930,7 @@ static int __devinit snd_cs4281_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; if ((err = snd_cs4281_mixer(chip)) < 0) { snd_card_free(card); @@ -2007,18 +2002,18 @@ static int saved_regs[SUSPEND_REGISTERS] = { #define CLKCR1_CKRA 0x00010000L -static int cs4281_suspend(struct snd_card *card, pm_message_t state) +static int cs4281_suspend(struct pci_dev *pci, pm_message_t state) { - struct cs4281 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct cs4281 *chip = card->private_data; u32 ulCLK; unsigned int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(chip->pcm); - if (chip->ac97) - snd_ac97_suspend(chip->ac97); - if (chip->ac97_secondary) - snd_ac97_suspend(chip->ac97_secondary); + snd_ac97_suspend(chip->ac97); + snd_ac97_suspend(chip->ac97_secondary); ulCLK = snd_cs4281_peekBA0(chip, BA0_CLKCR1); ulCLK |= CLKCR1_CKRA; @@ -2048,18 +2043,21 @@ static int cs4281_suspend(struct snd_card *card, pm_message_t state) ulCLK &= ~CLKCR1_CKRA; snd_cs4281_pokeBA0(chip, BA0_CLKCR1, ulCLK); - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int cs4281_resume(struct snd_card *card) +static int cs4281_resume(struct pci_dev *pci) { - struct cs4281 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct cs4281 *chip = card->private_data; unsigned int i; u32 ulCLK; - pci_enable_device(chip->pci); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); ulCLK = snd_cs4281_peekBA0(chip, BA0_CLKCR1); ulCLK |= CLKCR1_CKRA; @@ -2072,15 +2070,14 @@ static int cs4281_resume(struct snd_card *card) if (saved_regs[i]) snd_cs4281_pokeBA0(chip, saved_regs[i], chip->suspend_regs[i]); - if (chip->ac97) - snd_ac97_resume(chip->ac97); - if (chip->ac97_secondary) - snd_ac97_resume(chip->ac97_secondary); + snd_ac97_resume(chip->ac97); + snd_ac97_resume(chip->ac97_secondary); ulCLK = snd_cs4281_peekBA0(chip, BA0_CLKCR1); ulCLK &= ~CLKCR1_CKRA; snd_cs4281_pokeBA0(chip, BA0_CLKCR1, ulCLK); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -2090,7 +2087,10 @@ static struct pci_driver driver = { .id_table = snd_cs4281_ids, .probe = snd_cs4281_probe, .remove = __devexit_p(snd_cs4281_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = cs4281_suspend, + .resume = cs4281_resume, +#endif }; static int __init alsa_card_cs4281_init(void) -- cgit v1.2.3-70-g09d2 From b34a580ec5b2eb7d3a7645552821e9dadb42bdab Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:08:27 +0100 Subject: [ALSA] es1938 - Fix PM support Modules: ES1938 driver Fix PM support on ES1938 driver. Signed-off-by: Takashi Iwai --- sound/pci/es1938.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c index 577877dad2e..0d556b09ad0 100644 --- a/sound/pci/es1938.c +++ b/sound/pci/es1938.c @@ -1398,11 +1398,13 @@ static unsigned char saved_regs[SAVED_REG_SIZE+1] = { }; -static int es1938_suspend(struct snd_card *card, pm_message_t state) +static int es1938_suspend(struct pci_dev *pci, pm_message_t state) { - struct es1938 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct es1938 *chip = card->private_data; unsigned char *s, *d; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(chip->pcm); /* save mixer-related registers */ @@ -1411,20 +1413,23 @@ static int es1938_suspend(struct snd_card *card, pm_message_t state) outb(0x00, SLIO_REG(chip, IRQCONTROL)); /* disable irqs */ if (chip->irq >= 0) - free_irq(chip->irq, chip); - pci_disable_device(chip->pci); + free_irq(chip->irq, chip); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int es1938_resume(struct snd_card *card) +static int es1938_resume(struct pci_dev *pci) { - struct es1938 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct es1938 *chip = card->private_data; unsigned char *s, *d; - pci_enable_device(chip->pci); - request_irq(chip->pci->irq, snd_es1938_interrupt, + pci_restore_state(pci); + pci_enable_device(pci); + request_irq(pci->irq, snd_es1938_interrupt, SA_INTERRUPT|SA_SHIRQ, "ES1938", chip); - chip->irq = chip->pci->irq; + chip->irq = pci->irq; snd_es1938_chip_init(chip); /* restore mixer-related registers */ @@ -1435,6 +1440,7 @@ static int es1938_resume(struct snd_card *card) snd_es1938_write(chip, *s, *d); } + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -1553,8 +1559,6 @@ static int __devinit snd_es1938_create(struct snd_card *card, snd_es1938_chip_init(chip); - snd_card_set_pm_callback(card, es1938_suspend, es1938_resume, chip); - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { snd_es1938_free(chip); return err; @@ -1717,6 +1721,7 @@ static int __devinit snd_es1938_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; strcpy(card->driver, "ES1938"); strcpy(card->shortname, "ESS ES1938 (Solo-1)"); @@ -1781,7 +1786,10 @@ static struct pci_driver driver = { .id_table = snd_es1938_ids, .probe = snd_es1938_probe, .remove = __devexit_p(snd_es1938_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = es1938_suspend, + .resume = es1938_resume, +#endif }; static int __init alsa_card_es1938_init(void) -- cgit v1.2.3-70-g09d2 From 1d4b822be64b119b47c172aaac7ee76949470e28 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:08:43 +0100 Subject: [ALSA] es1968 - Fix PM support Modules: ES1968 driver Fix PM support on ES1968 driver. Signed-off-by: Takashi Iwai --- sound/pci/es1968.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index 021862d28f2..240cf2b4205 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c @@ -2378,33 +2378,38 @@ static void snd_es1968_start_irq(struct es1968 *chip) /* * PM support */ -static int es1968_suspend(struct snd_card *card, pm_message_t state) +static int es1968_suspend(struct pci_dev *pci, pm_message_t state) { - struct es1968 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct es1968 *chip = card->private_data; if (! chip->do_pm) return 0; chip->in_suspend = 1; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(chip->pcm); snd_ac97_suspend(chip->ac97); snd_es1968_bob_stop(chip); snd_es1968_set_acpi(chip, ACPI_D3); - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int es1968_resume(struct snd_card *card) +static int es1968_resume(struct pci_dev *pci) { - struct es1968 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct es1968 *chip = card->private_data; struct list_head *p; if (! chip->do_pm) return 0; /* restore all our config */ - pci_enable_device(chip->pci); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); snd_es1968_chip_init(chip); /* need to restore the base pointers.. */ @@ -2434,6 +2439,7 @@ static int es1968_resume(struct snd_card *card) if (chip->bobclient) snd_es1968_bob_start(chip); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); chip->in_suspend = 0; return 0; } @@ -2631,9 +2637,6 @@ static int __devinit snd_es1968_create(struct snd_card *card, snd_es1968_chip_init(chip); - if (chip->do_pm) - snd_card_set_pm_callback(card, es1968_suspend, es1968_resume, chip); - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { snd_es1968_free(chip); return err; @@ -2683,6 +2686,7 @@ static int __devinit snd_es1968_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; switch (chip->type) { case TYPE_MAESTRO2E: @@ -2760,7 +2764,10 @@ static struct pci_driver driver = { .id_table = snd_es1968_ids, .probe = snd_es1968_probe, .remove = __devexit_p(snd_es1968_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = es1968_suspend, + .resume = es1968_resume, +#endif }; static int __init alsa_card_es1968_init(void) -- cgit v1.2.3-70-g09d2 From cb28e45ba2aa42393596a364d4f947027db8a1b5 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:09:04 +0100 Subject: [ALSA] cs46xx - Fix PM support Modules: CS46xx driver Fix PM support on CS46xx driver. Signed-off-by: Takashi Iwai --- include/sound/cs46xx.h | 2 ++ sound/pci/cs46xx/cs46xx.c | 6 +++++- sound/pci/cs46xx/cs46xx_lib.c | 28 +++++++++++++++------------- 3 files changed, 22 insertions(+), 14 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/cs46xx.h b/include/sound/cs46xx.h index b33ca2a3630..199b5098ff7 100644 --- a/include/sound/cs46xx.h +++ b/include/sound/cs46xx.h @@ -1728,6 +1728,8 @@ int snd_cs46xx_create(struct snd_card *card, struct pci_dev *pci, int external_amp, int thinkpad, struct snd_cs46xx **rcodec); +int snd_cs46xx_suspend(struct pci_dev *pci, pm_message_t state); +int snd_cs46xx_resume(struct pci_dev *pci); int snd_cs46xx_pcm(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm); int snd_cs46xx_pcm_rear(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm); diff --git a/sound/pci/cs46xx/cs46xx.c b/sound/pci/cs46xx/cs46xx.c index 7d6b29e5433..c590602e20c 100644 --- a/sound/pci/cs46xx/cs46xx.c +++ b/sound/pci/cs46xx/cs46xx.c @@ -98,6 +98,7 @@ static int __devinit snd_card_cs46xx_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; chip->accept_valid = mmap_valid[dev]; if ((err = snd_cs46xx_pcm(chip, 0, NULL)) < 0) { snd_card_free(card); @@ -166,7 +167,10 @@ static struct pci_driver driver = { .id_table = snd_cs46xx_ids, .probe = snd_card_cs46xx_probe, .remove = __devexit_p(snd_card_cs46xx_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_cs46xx_suspend, + .resume = snd_cs46xx_resume, +#endif }; static int __init alsa_card_cs46xx_init(void) diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index 11d91d08a14..0ec0592a6e6 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c @@ -3654,18 +3654,19 @@ static struct cs_card_type __devinitdata cards[] = { * APM support */ #ifdef CONFIG_PM -static int snd_cs46xx_suspend(struct snd_card *card, pm_message_t state) +int snd_cs46xx_suspend(struct pci_dev *pci, pm_message_t state) { - struct snd_cs46xx *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_cs46xx *chip = card->private_data; int amp_saved; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(chip->pcm); // chip->ac97_powerdown = snd_cs46xx_codec_read(chip, AC97_POWER_CONTROL); // chip->ac97_general_purpose = snd_cs46xx_codec_read(chip, BA0_AC97_GENERAL_PURPOSE); snd_ac97_suspend(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]); - if (chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]) - snd_ac97_suspend(chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]); + snd_ac97_suspend(chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]); amp_saved = chip->amplifier; /* turn off amp */ @@ -3674,17 +3675,20 @@ static int snd_cs46xx_suspend(struct snd_card *card, pm_message_t state) /* disable CLKRUN */ chip->active_ctrl(chip, -chip->amplifier); chip->amplifier = amp_saved; /* restore the status */ - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_cs46xx_resume(struct snd_card *card) +int snd_cs46xx_resume(struct pci_dev *pci) { - struct snd_cs46xx *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_cs46xx *chip = card->private_data; int amp_saved; - pci_enable_device(chip->pci); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); amp_saved = chip->amplifier; chip->amplifier = 0; chip->active_ctrl(chip, 1); /* force to on */ @@ -3703,14 +3707,14 @@ static int snd_cs46xx_resume(struct snd_card *card) #endif snd_ac97_resume(chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]); - if (chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]) - snd_ac97_resume(chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]); + snd_ac97_resume(chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]); if (amp_saved) chip->amplifier_ctrl(chip, 1); /* turn amp on */ else chip->active_ctrl(chip, -1); /* disable CLKRUN */ chip->amplifier = amp_saved; + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -3870,8 +3874,6 @@ int __devinit snd_cs46xx_create(struct snd_card *card, snd_cs46xx_proc_init(card, chip); - snd_card_set_pm_callback(card, snd_cs46xx_suspend, snd_cs46xx_resume, chip); - chip->active_ctrl(chip, -1); /* disable CLKRUN */ snd_card_set_dev(card, &pci->dev); -- cgit v1.2.3-70-g09d2 From fb0700b4debbf45fb0465b40188bdc5396947bda Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:09:25 +0100 Subject: [ALSA] trident - Fix PM support Modules: Trident driver Fix PM support on Trident driver. Signed-off-by: Takashi Iwai --- include/sound/trident.h | 2 ++ sound/pci/trident/trident.c | 6 +++++- sound/pci/trident/trident_main.c | 41 +++++++++++++++++----------------------- 3 files changed, 24 insertions(+), 25 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/trident.h b/include/sound/trident.h index 2c54569fc60..9752243241e 100644 --- a/include/sound/trident.h +++ b/include/sound/trident.h @@ -452,6 +452,8 @@ void snd_trident_free_voice(struct snd_trident * trident, struct snd_trident_voi void snd_trident_start_voice(struct snd_trident * trident, unsigned int voice); void snd_trident_stop_voice(struct snd_trident * trident, unsigned int voice); void snd_trident_write_voice_regs(struct snd_trident * trident, struct snd_trident_voice *voice); +int snd_trident_suspend(struct pci_dev *pci, pm_message_t state); +int snd_trident_resume(struct pci_dev *pci); /* TLB memory allocation */ struct snd_util_memblk *snd_trident_alloc_pages(struct snd_trident *trident, diff --git a/sound/pci/trident/trident.c b/sound/pci/trident/trident.c index 0999f1f83a9..2b21df16ad6 100644 --- a/sound/pci/trident/trident.c +++ b/sound/pci/trident/trident.c @@ -100,6 +100,7 @@ static int __devinit snd_trident_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = trident; switch (trident->device) { case TRIDENT_DEVICE_ID_DX: @@ -180,7 +181,10 @@ static struct pci_driver driver = { .id_table = snd_trident_ids, .probe = snd_trident_probe, .remove = __devexit_p(snd_trident_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_trident_suspend, + .resume = snd_trident_resume, +#endif }; static int __init alsa_card_trident_init(void) diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c index 6277dccebf6..83b7d8aba9e 100644 --- a/sound/pci/trident/trident_main.c +++ b/sound/pci/trident/trident_main.c @@ -52,10 +52,6 @@ static int snd_trident_pcm_mixer_free(struct snd_trident *trident, struct snd_pcm_substream *substream); static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs); -#ifdef CONFIG_PM -static int snd_trident_suspend(struct snd_card *card, pm_message_t state); -static int snd_trident_resume(struct snd_card *card); -#endif static int snd_trident_sis_reset(struct snd_trident *trident); static void snd_trident_clear_voices(struct snd_trident * trident, @@ -3661,8 +3657,6 @@ int __devinit snd_trident_create(struct snd_card *card, snd_trident_enable_eso(trident); - - snd_card_set_pm_callback(card, snd_trident_suspend, snd_trident_resume, trident); snd_trident_proc_init(trident); snd_card_set_dev(card, &pci->dev); *rtrident = trident; @@ -3938,20 +3932,19 @@ static void snd_trident_clear_voices(struct snd_trident * trident, unsigned shor } #ifdef CONFIG_PM -static int snd_trident_suspend(struct snd_card *card, pm_message_t state) +int snd_trident_suspend(struct pci_dev *pci, pm_message_t state) { - struct snd_trident *trident = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_trident *trident = card->private_data; trident->in_suspend = 1; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(trident->pcm); - if (trident->foldback) - snd_pcm_suspend_all(trident->foldback); - if (trident->spdif) - snd_pcm_suspend_all(trident->spdif); + snd_pcm_suspend_all(trident->foldback); + snd_pcm_suspend_all(trident->spdif); snd_ac97_suspend(trident->ac97); - if (trident->ac97_sec) - snd_ac97_suspend(trident->ac97_sec); + snd_ac97_suspend(trident->ac97_sec); switch (trident->device) { case TRIDENT_DEVICE_ID_DX: @@ -3960,19 +3953,19 @@ static int snd_trident_suspend(struct snd_card *card, pm_message_t state) case TRIDENT_DEVICE_ID_SI7018: break; } - pci_disable_device(trident->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_trident_resume(struct snd_card *card) +int snd_trident_resume(struct pci_dev *pci) { - struct snd_trident *trident = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_trident *trident = card->private_data; - pci_enable_device(trident->pci); - if (pci_set_dma_mask(trident->pci, 0x3fffffff) < 0 || - pci_set_consistent_dma_mask(trident->pci, 0x3fffffff) < 0) - snd_printk(KERN_WARNING "trident: can't set the proper DMA mask\n"); - pci_set_master(trident->pci); /* to be sure */ + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); /* to be sure */ switch (trident->device) { case TRIDENT_DEVICE_ID_DX: @@ -3987,14 +3980,14 @@ static int snd_trident_resume(struct snd_card *card) } snd_ac97_resume(trident->ac97); - if (trident->ac97_sec) - snd_ac97_resume(trident->ac97_sec); + snd_ac97_resume(trident->ac97_sec); /* restore some registers */ outl(trident->musicvol_wavevol, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL)); snd_trident_enable_eso(trident); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); trident->in_suspend = 0; return 0; } -- cgit v1.2.3-70-g09d2 From ded462356886e5f80f6a20b227f7e5cf7cfc5159 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:09:43 +0100 Subject: [ALSA] ymfpci - Fix PM support Modules: YMFPCI driver Fix PM support on YMFPCI driver. Signed-off-by: Takashi Iwai --- include/sound/ymfpci.h | 3 +++ sound/pci/ymfpci/ymfpci.c | 7 ++++++- sound/pci/ymfpci/ymfpci_main.c | 23 ++++++++++++++--------- 3 files changed, 23 insertions(+), 10 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/ymfpci.h b/include/sound/ymfpci.h index ec790a9c496..d567bfdbf51 100644 --- a/include/sound/ymfpci.h +++ b/include/sound/ymfpci.h @@ -369,6 +369,9 @@ int snd_ymfpci_create(struct snd_card *card, struct snd_ymfpci ** rcodec); void snd_ymfpci_free_gameport(struct snd_ymfpci *chip); +int snd_ymfpci_suspend(struct pci_dev *pci, pm_message_t state); +int snd_ymfpci_resume(struct pci_dev *pci); + int snd_ymfpci_pcm(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c index 42499a94df4..9e30e2c76c7 100644 --- a/sound/pci/ymfpci/ymfpci.c +++ b/sound/pci/ymfpci/ymfpci.c @@ -271,6 +271,8 @@ static int __devinit snd_card_ymfpci_probe(struct pci_dev *pci, } chip->fm_res = fm_res; chip->mpu_res = mpu_res; + card->private_data = chip; + strcpy(card->driver, str); sprintf(card->shortname, "Yamaha DS-XG (%s)", str); sprintf(card->longname, "%s at 0x%lx, irq %i", @@ -347,7 +349,10 @@ static struct pci_driver driver = { .id_table = snd_ymfpci_ids, .probe = snd_card_ymfpci_probe, .remove = __devexit_p(snd_card_ymfpci_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_ymfpci_suspend, + .resume = snd_ymfpci_resume, +#endif }; static int __init alsa_card_ymfpci_init(void) diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index 62c9f25e8e7..1dfc7233c6a 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -2175,11 +2175,13 @@ static int saved_regs_index[] = { }; #define YDSXGR_NUM_SAVED_REGS ARRAY_SIZE(saved_regs_index) -static int snd_ymfpci_suspend(struct snd_card *card, pm_message_t state) +int snd_ymfpci_suspend(struct pci_dev *pci, pm_message_t state) { - struct snd_ymfpci *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_ymfpci *chip = card->private_data; unsigned int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(chip->pcm); snd_pcm_suspend_all(chip->pcm2); snd_pcm_suspend_all(chip->pcm_spdif); @@ -2190,18 +2192,21 @@ static int snd_ymfpci_suspend(struct snd_card *card, pm_message_t state) chip->saved_ydsxgr_mode = snd_ymfpci_readl(chip, YDSXGR_MODE); snd_ymfpci_writel(chip, YDSXGR_NATIVEDACOUTVOL, 0); snd_ymfpci_disable_dsp(chip); - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_ymfpci_resume(struct snd_card *card) +int snd_ymfpci_resume(struct pci_dev *pci) { - struct snd_ymfpci *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_ymfpci *chip = card->private_data; unsigned int i; - pci_enable_device(chip->pci); - pci_set_master(chip->pci); - snd_ymfpci_aclink_reset(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); + snd_ymfpci_aclink_reset(pci); snd_ymfpci_codec_ready(chip, 0); snd_ymfpci_download_image(chip); udelay(100); @@ -2218,6 +2223,7 @@ static int snd_ymfpci_resume(struct snd_card *card) chip->active_bank = snd_ymfpci_readl(chip, YDSXGR_CTRLSELECT); spin_unlock_irq(&chip->reg_lock); } + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -2296,7 +2302,6 @@ int __devinit snd_ymfpci_create(struct snd_card *card, snd_ymfpci_free(chip); return -ENOMEM; } - snd_card_set_pm_callback(card, snd_ymfpci_suspend, snd_ymfpci_resume, chip); #endif if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { -- cgit v1.2.3-70-g09d2 From 5809c6c41ae95ce3f45ad14d31503deb1fa8268a Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:10:01 +0100 Subject: [ALSA] intel8x0 - Fix PM support Modules: Intel8x0 driver,Intel8x0-modem driver Fix PM support on Intel8x0 and modem drivers. Signed-off-by: Takashi Iwai --- sound/pci/intel8x0.c | 37 ++++++++++++++++++++++--------------- sound/pci/intel8x0m.c | 35 +++++++++++++++++++++-------------- 2 files changed, 43 insertions(+), 29 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 3ea90f1e22e..c5c4ec64a15 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -2396,11 +2396,13 @@ static int snd_intel8x0_free(struct intel8x0 *chip) /* * power management */ -static int intel8x0_suspend(struct snd_card *card, pm_message_t state) +static int intel8x0_suspend(struct pci_dev *pci, pm_message_t state) { - struct intel8x0 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct intel8x0 *chip = card->private_data; int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for (i = 0; i < chip->pcm_devs; i++) snd_pcm_suspend_all(chip->pcm[i]); /* clear nocache */ @@ -2415,26 +2417,29 @@ static int intel8x0_suspend(struct snd_card *card, pm_message_t state) } } for (i = 0; i < 3; i++) - if (chip->ac97[i]) - snd_ac97_suspend(chip->ac97[i]); + snd_ac97_suspend(chip->ac97[i]); if (chip->device_type == DEVICE_INTEL_ICH4) chip->sdm_saved = igetbyte(chip, ICHREG(SDM)); if (chip->irq >= 0) free_irq(chip->irq, chip); - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int intel8x0_resume(struct snd_card *card) +static int intel8x0_resume(struct pci_dev *pci) { - struct intel8x0 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct intel8x0 *chip = card->private_data; int i; - pci_enable_device(chip->pci); - pci_set_master(chip->pci); - request_irq(chip->irq, snd_intel8x0_interrupt, SA_INTERRUPT|SA_SHIRQ, + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); + request_irq(pci->irq, snd_intel8x0_interrupt, SA_INTERRUPT|SA_SHIRQ, card->shortname, chip); + chip->irq = pci->irq; synchronize_irq(chip->irq); snd_intel8x0_chip_init(chip, 1); @@ -2453,8 +2458,7 @@ static int intel8x0_resume(struct snd_card *card) fill_nocache(chip->bdbars.area, chip->bdbars.bytes, 1); for (i = 0; i < 3; i++) - if (chip->ac97[i]) - snd_ac97_resume(chip->ac97[i]); + snd_ac97_resume(chip->ac97[i]); /* refill nocache */ if (chip->fix_nocache) { @@ -2482,6 +2486,7 @@ static int intel8x0_resume(struct snd_card *card) iputbyte(chip, port + ichdev->roff_sr, ICH_FIFOE | ICH_BCIS | ICH_LVBCI); } + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -2800,8 +2805,6 @@ static int __devinit snd_intel8x0_create(struct snd_card *card, return err; } - snd_card_set_pm_callback(card, intel8x0_suspend, intel8x0_resume, chip); - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { snd_intel8x0_free(chip); return err; @@ -2889,6 +2892,7 @@ static int __devinit snd_intel8x0_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; if ((err = snd_intel8x0_mixer(chip, ac97_clock, ac97_quirk)) < 0) { snd_card_free(card); @@ -2927,7 +2931,10 @@ static struct pci_driver driver = { .id_table = snd_intel8x0_ids, .probe = snd_intel8x0_probe, .remove = __devexit_p(snd_intel8x0_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = intel8x0_suspend, + .resume = intel8x0_resume, +#endif }; diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c index 3b6724e02e4..466170e1216 100644 --- a/sound/pci/intel8x0m.c +++ b/sound/pci/intel8x0m.c @@ -1035,28 +1035,33 @@ static int snd_intel8x0_free(struct intel8x0m *chip) /* * power management */ -static int intel8x0m_suspend(struct snd_card *card, pm_message_t state) +static int intel8x0m_suspend(struct pci_dev *pci, pm_message_t state) { - struct intel8x0m *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct intel8x0m *chip = card->private_data; int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for (i = 0; i < chip->pcm_devs; i++) snd_pcm_suspend_all(chip->pcm[i]); - if (chip->ac97) - snd_ac97_suspend(chip->ac97); - pci_disable_device(chip->pci); + snd_ac97_suspend(chip->ac97); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int intel8x0m_resume(struct snd_card *card) +static int intel8x0m_resume(struct pci_dev *pci) { - struct intel8x0m *chip = card->pm_private_data; - pci_enable_device(chip->pci); - pci_set_master(chip->pci); + struct snd_card *card = pci_get_drvdata(pci); + struct intel8x0m *chip = card->private_data; + + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); snd_intel8x0_chip_init(chip, 0); - if (chip->ac97) - snd_ac97_resume(chip->ac97); + snd_ac97_resume(chip->ac97); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -1233,8 +1238,6 @@ static int __devinit snd_intel8x0m_create(struct snd_card *card, return err; } - snd_card_set_pm_callback(card, intel8x0m_suspend, intel8x0m_resume, chip); - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { snd_intel8x0_free(chip); return err; @@ -1298,6 +1301,7 @@ static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; if ((err = snd_intel8x0_mixer(chip, ac97_clock)) < 0) { snd_card_free(card); @@ -1332,7 +1336,10 @@ static struct pci_driver driver = { .id_table = snd_intel8x0m_ids, .probe = snd_intel8x0m_probe, .remove = __devexit_p(snd_intel8x0m_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = intel8x0m_suspend, + .resume = intel8x0m_resume, +#endif }; -- cgit v1.2.3-70-g09d2 From 0e2364a7013688c06d1a9454a2c20567027f6a6e Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:10:19 +0100 Subject: [ALSA] maestro3 - Fix PM support Modules: Maestro3 driver Fix PM support on maestro3 driver. Signed-off-by: Takashi Iwai --- sound/pci/maestro3.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index 9878595abe3..d3ef0cc6c4f 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c @@ -2546,14 +2546,16 @@ static int snd_m3_free(struct snd_m3 *chip) * APM support */ #ifdef CONFIG_PM -static int m3_suspend(struct snd_card *card, pm_message_t state) +static int m3_suspend(struct pci_dev *pci, pm_message_t state) { - struct snd_m3 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_m3 *chip = card->private_data; int i, index; if (chip->suspend_mem == NULL) return 0; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(chip->pcm); snd_ac97_suspend(chip->ac97); @@ -2574,20 +2576,23 @@ static int m3_suspend(struct snd_card *card, pm_message_t state) snd_m3_outw(chip, 0xffff, 0x54); snd_m3_outw(chip, 0xffff, 0x56); - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int m3_resume(struct snd_card *card) +static int m3_resume(struct pci_dev *pci) { - struct snd_m3 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_m3 *chip = card->private_data; int i, index; if (chip->suspend_mem == NULL) return 0; - pci_enable_device(chip->pci); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); /* first lets just bring everything back. .*/ snd_m3_outw(chip, 0, 0x54); @@ -2617,6 +2622,7 @@ static int m3_resume(struct snd_card *card) snd_m3_enable_ints(chip); snd_m3_amp_enable(chip, 1); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -2748,8 +2754,6 @@ snd_m3_create(struct snd_card *card, struct pci_dev *pci, chip->suspend_mem = vmalloc(sizeof(u16) * (REV_B_CODE_MEMORY_LENGTH + REV_B_DATA_MEMORY_LENGTH)); if (chip->suspend_mem == NULL) snd_printk(KERN_WARNING "can't allocate apm buffer\n"); - else - snd_card_set_pm_callback(card, m3_suspend, m3_resume, chip); #endif if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { @@ -2825,6 +2829,7 @@ snd_m3_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) snd_card_free(card); return err; } + card->private_data = chip; sprintf(card->shortname, "ESS %s PCI", card->driver); sprintf(card->longname, "%s at 0x%lx, irq %d", @@ -2860,7 +2865,10 @@ static struct pci_driver driver = { .id_table = snd_m3_ids, .probe = snd_m3_probe, .remove = __devexit_p(snd_m3_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = m3_suspend, + .resume = m3_resume, +#endif }; static int __init alsa_card_m3_init(void) -- cgit v1.2.3-70-g09d2 From 57feb83507d598de04e986cfa463acda9f2a67a8 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:10:35 +0100 Subject: [ALSA] via82xx - Fix PM support Modules: VIA82xx driver,VIA82xx-modem driver Fix PM support on VIA82xx and modem drivers. Signed-off-by: Takashi Iwai --- sound/pci/via82xx.c | 33 ++++++++++++++++++++------------- sound/pci/via82xx_modem.c | 35 +++++++++++++++++++++-------------- 2 files changed, 41 insertions(+), 27 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index c87000130dd..ce4985f8078 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2126,14 +2126,15 @@ static int snd_via82xx_chip_init(struct via82xx *chip) /* * power management */ -static int snd_via82xx_suspend(struct snd_card *card, pm_message_t state) +static int snd_via82xx_suspend(struct pci_dev *pci, pm_message_t state) { - struct via82xx *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct via82xx *chip = card->private_data; int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for (i = 0; i < 2; i++) - if (chip->pcms[i]) - snd_pcm_suspend_all(chip->pcms[i]); + snd_pcm_suspend_all(chip->pcms[i]); for (i = 0; i < chip->num_devs; i++) snd_via82xx_channel_reset(chip, &chip->devs[i]); synchronize_irq(chip->irq); @@ -2146,18 +2147,21 @@ static int snd_via82xx_suspend(struct snd_card *card, pm_message_t state) chip->capture_src_saved[1] = inb(chip->port + VIA_REG_CAPTURE_CHANNEL + 0x10); } - pci_set_power_state(chip->pci, 3); - pci_disable_device(chip->pci); + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_via82xx_resume(struct snd_card *card) +static int snd_via82xx_resume(struct pci_dev *pci) { - struct via82xx *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct via82xx *chip = card->private_data; int i; - pci_enable_device(chip->pci); - pci_set_power_state(chip->pci, 0); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); snd_via82xx_chip_init(chip); @@ -2177,6 +2181,7 @@ static int snd_via82xx_resume(struct snd_card *card) for (i = 0; i < chip->num_devs; i++) snd_via82xx_channel_reset(chip, &chip->devs[i]); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -2453,6 +2458,7 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci, if ((err = snd_via82xx_create(card, pci, chip_type, revision, ac97_clock, &chip)) < 0) goto __error; + card->private_data = chip; if ((err = snd_via82xx_mixer_new(chip, ac97_quirk)) < 0) goto __error; @@ -2481,8 +2487,6 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci, goto __error; } - snd_card_set_pm_callback(card, snd_via82xx_suspend, snd_via82xx_resume, chip); - /* disable interrupts */ for (i = 0; i < chip->num_devs; i++) snd_via82xx_channel_reset(chip, &chip->devs[i]); @@ -2516,7 +2520,10 @@ static struct pci_driver driver = { .id_table = snd_via82xx_ids, .probe = snd_via82xx_probe, .remove = __devexit_p(snd_via82xx_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_via82xx_suspend, + .resume = snd_via82xx_resume, +#endif }; static int __init alsa_card_via82xx_init(void) diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c index 55ef69a8d2d..22ce4d30992 100644 --- a/sound/pci/via82xx_modem.c +++ b/sound/pci/via82xx_modem.c @@ -1019,31 +1019,35 @@ static int snd_via82xx_chip_init(struct via82xx_modem *chip) /* * power management */ -static int snd_via82xx_suspend(struct snd_card *card, pm_message_t state) +static int snd_via82xx_suspend(struct pci_dev *pci, pm_message_t state) { - struct via82xx_modem *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct via82xx_modem *chip = card->private_data; int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for (i = 0; i < 2; i++) - if (chip->pcms[i]) - snd_pcm_suspend_all(chip->pcms[i]); + snd_pcm_suspend_all(chip->pcms[i]); for (i = 0; i < chip->num_devs; i++) snd_via82xx_channel_reset(chip, &chip->devs[i]); synchronize_irq(chip->irq); snd_ac97_suspend(chip->ac97); - pci_set_power_state(chip->pci, 3); - pci_disable_device(chip->pci); + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_via82xx_resume(struct snd_card *card) +static int snd_via82xx_resume(struct pci_dev *pci) { - struct via82xx_modem *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct via82xx_modem *chip = card->private_data; int i; - pci_enable_device(chip->pci); - pci_set_power_state(chip->pci, 0); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); snd_via82xx_chip_init(chip); @@ -1052,6 +1056,7 @@ static int snd_via82xx_resume(struct snd_card *card) for (i = 0; i < chip->num_devs; i++) snd_via82xx_channel_reset(chip, &chip->devs[i]); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -1176,14 +1181,13 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci, if ((err = snd_via82xx_create(card, pci, chip_type, revision, ac97_clock, &chip)) < 0) goto __error; + card->private_data = chip; if ((err = snd_via82xx_mixer_new(chip)) < 0) goto __error; if ((err = snd_via686_pcm_new(chip)) < 0 ) goto __error; - snd_card_set_pm_callback(card, snd_via82xx_suspend, snd_via82xx_resume, chip); - /* disable interrupts */ for (i = 0; i < chip->num_devs; i++) snd_via82xx_channel_reset(chip, &chip->devs[i]); @@ -1216,7 +1220,10 @@ static struct pci_driver driver = { .id_table = snd_via82xx_modem_ids, .probe = snd_via82xx_probe, .remove = __devexit_p(snd_via82xx_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_via82xx_suspend, + .resume = snd_via82xx_resume, +#endif }; static int __init alsa_card_via82xx_init(void) -- cgit v1.2.3-70-g09d2 From bf53c3b3f368cdc2aa9a59f220337ede854f507d Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:10:51 +0100 Subject: [ALSA] ali5451 - Fix PM support Modules: ALI5451 driver Fix PM support on ALI5451 driver. Signed-off-by: Takashi Iwai --- sound/pci/ali5451/ali5451.c | 46 +++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index 2538cda2521..bc4d1ef08ef 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -1991,9 +1991,10 @@ static int __devinit snd_ali_mixer(struct snd_ali * codec) } #ifdef CONFIG_PM -static int ali_suspend(struct snd_card *card, pm_message_t state) +static int ali_suspend(struct pci_dev *pci, pm_message_t state) { - struct snd_ali *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_ali *chip = card->private_data; struct snd_ali_image *im; int i, j; @@ -2001,11 +2002,10 @@ static int ali_suspend(struct snd_card *card, pm_message_t state) if (! im) return 0; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for(i = 0 ; i < chip->num_of_codecs ; i++) { - if (chip->pcm[i]) - snd_pcm_suspend_all(chip->pcm[i]); - if(chip->ac97[i]) - snd_ac97_suspend(chip->ac97[i]); + snd_pcm_suspend_all(chip->pcm[i]); + snd_ac97_suspend(chip->ac97[i]); } spin_lock_irq(&chip->reg_lock); @@ -2033,13 +2033,15 @@ static int ali_suspend(struct snd_card *card, pm_message_t state) outl(0xffffffff, ALI_REG(chip, ALI_STOP)); spin_unlock_irq(&chip->reg_lock); - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int ali_resume(struct snd_card *card) +static int ali_resume(struct pci_dev *pci) { - struct snd_ali *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct snd_ali *chip = card->private_data; struct snd_ali_image *im; int i, j; @@ -2047,7 +2049,8 @@ static int ali_resume(struct snd_card *card) if (! im) return 0; - pci_enable_device(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); spin_lock_irq(&chip->reg_lock); @@ -2071,9 +2074,9 @@ static int ali_resume(struct snd_card *card) spin_unlock_irq(&chip->reg_lock); for(i = 0 ; i < chip->num_of_codecs ; i++) - if(chip->ac97[i]) - snd_ac97_resume(chip->ac97[i]); + snd_ac97_resume(chip->ac97[i]); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -2204,9 +2207,8 @@ static int __devinit snd_ali_create(struct snd_card *card, { struct snd_ali *codec; int i, err; - unsigned short cmdw = 0; - struct pci_dev *pci_dev = NULL; - static struct snd_device_ops ops = { + unsigned short cmdw; + static struct snd_device_ops ops = { .dev_free = snd_ali_dev_free, }; @@ -2281,16 +2283,14 @@ static int __devinit snd_ali_create(struct snd_card *card, codec->chregs.data.ainten = 0x00; /* M1533: southbridge */ - pci_dev = pci_get_device(0x10b9, 0x1533, NULL); - codec->pci_m1533 = pci_dev; + codec->pci_m1533 = pci_get_device(0x10b9, 0x1533, NULL); if (! codec->pci_m1533) { snd_printk(KERN_ERR "ali5451: cannot find ALi 1533 chip.\n"); snd_ali_free(codec); return -ENODEV; } /* M7101: power management */ - pci_dev = pci_get_device(0x10b9, 0x7101, NULL); - codec->pci_m7101 = pci_dev; + codec->pci_m7101 = pci_get_device(0x10b9, 0x7101, NULL); if (! codec->pci_m7101 && codec->revision == ALI_5451_V02) { snd_printk(KERN_ERR "ali5451: cannot find ALi 7101 chip.\n"); snd_ali_free(codec); @@ -2317,8 +2317,6 @@ static int __devinit snd_ali_create(struct snd_card *card, codec->image = kmalloc(sizeof(*codec->image), GFP_KERNEL); if (! codec->image) snd_printk(KERN_WARNING "can't allocate apm buffer\n"); - else - snd_card_set_pm_callback(card, ali_suspend, ali_resume, codec); #endif snd_ali_enable_address_interrupt(codec); @@ -2346,6 +2344,7 @@ static int __devinit snd_ali_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = codec; snd_ali_printk("mixer building ...\n"); if ((err = snd_ali_mixer(codec)) < 0) { @@ -2387,7 +2386,10 @@ static struct pci_driver driver = { .id_table = snd_ali_ids, .probe = snd_ali_probe, .remove = __devexit_p(snd_ali_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = ali_suspend, + .resume = ali_resume, +#endif }; static int __init alsa_card_ali_init(void) -- cgit v1.2.3-70-g09d2 From 421a12520d4ed4a0c96640fb672ef24ad8019beb Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:11:09 +0100 Subject: [ALSA] hda-intel - Fix PM support Modules: HDA Intel driver Fix PM support on HDA-Intel driver. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_intel.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index abdbd96d4c0..3945c44440c 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1326,28 +1326,33 @@ static int __devinit azx_init_stream(struct azx *chip) /* * power management */ -static int azx_suspend(struct snd_card *card, pm_message_t state) +static int azx_suspend(struct pci_dev *pci, pm_message_t state) { - struct azx *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct azx *chip = card->private_data; int i; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); for (i = 0; i < chip->pcm_devs; i++) - if (chip->pcm[i]) - snd_pcm_suspend_all(chip->pcm[i]); + snd_pcm_suspend_all(chip->pcm[i]); snd_hda_suspend(chip->bus, state); azx_free_cmd_io(chip); - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int azx_resume(struct snd_card *card) +static int azx_resume(struct pci_dev *pci) { - struct azx *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct azx *chip = card->private_data; - pci_enable_device(chip->pci); - pci_set_master(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_master(pci); azx_init_chip(chip); snd_hda_resume(chip->bus); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -1559,6 +1564,7 @@ static int __devinit azx_probe(struct pci_dev *pci, const struct pci_device_id * snd_card_free(card); return err; } + card->private_data = chip; /* create codec instances */ if ((err = azx_codec_create(chip, model)) < 0) { @@ -1578,7 +1584,6 @@ static int __devinit azx_probe(struct pci_dev *pci, const struct pci_device_id * return err; } - snd_card_set_pm_callback(card, azx_suspend, azx_resume, chip); snd_card_set_dev(card, &pci->dev); if ((err = snd_card_register(card)) < 0) { @@ -1618,7 +1623,10 @@ static struct pci_driver driver = { .id_table = azx_ids, .probe = azx_probe, .remove = __devexit_p(azx_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = azx_suspend, + .resume = azx_resume, +#endif }; static int __init alsa_card_azx_init(void) -- cgit v1.2.3-70-g09d2 From 3fcf7d2cd8e0ebce10e4bf89da175ff9bd6aa2da Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:11:24 +0100 Subject: [ALSA] nm256-intel - Fix PM support Modules: NM256 driver Fix PM support on NM256 driver. Signed-off-by: Takashi Iwai --- sound/pci/nm256/nm256.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c index 99ec1c17049..0d0ff54f0fc 100644 --- a/sound/pci/nm256/nm256.c +++ b/sound/pci/nm256/nm256.c @@ -1308,24 +1308,29 @@ snd_nm256_peek_for_sig(struct nm256 *chip) * APM event handler, so the card is properly reinitialized after a power * event. */ -static int nm256_suspend(struct snd_card *card, pm_message_t state) +static int nm256_suspend(struct pci_dev *pci, pm_message_t state) { - struct nm256 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct nm256 *chip = card->private_data; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_pcm_suspend_all(chip->pcm); snd_ac97_suspend(chip->ac97); chip->coeffs_current = 0; - pci_disable_device(chip->pci); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int nm256_resume(struct snd_card *card) +static int nm256_resume(struct pci_dev *pci) { - struct nm256 *chip = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct nm256 *chip = card->private_data; int i; /* Perform a full reset on the hardware */ - pci_enable_device(chip->pci); + pci_restore_state(pci); + pci_enable_device(pci); snd_nm256_init_chip(chip); /* restore ac97 */ @@ -1340,6 +1345,7 @@ static int nm256_resume(struct snd_card *card) } } + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -1524,8 +1530,6 @@ snd_nm256_create(struct snd_card *card, struct pci_dev *pci, // pci_set_master(pci); /* needed? */ - snd_card_set_pm_callback(card, nm256_suspend, nm256_resume, chip); - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) goto __error; @@ -1625,6 +1629,7 @@ static int __devinit snd_nm256_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; if (reset_workaround) { snd_printdd(KERN_INFO "nm256: reset_workaround activated\n"); @@ -1668,7 +1673,10 @@ static struct pci_driver driver = { .id_table = snd_nm256_ids, .probe = snd_nm256_probe, .remove = __devexit_p(snd_nm256_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = nm256_suspend, + .resume = nm256_resume, +#endif }; -- cgit v1.2.3-70-g09d2 From 11d3824ad7d6240d7ce44bdf1d9e81e62a903f72 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:13:05 +0100 Subject: [ALSA] ak4531 - Add PM support Modules: AK4531 codec Add PM support to AK4531 codec driver. Signed-off-by: Takashi Iwai --- include/sound/ak4531_codec.h | 5 +++++ sound/pci/ac97/ak4531_codec.c | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/include/sound/ak4531_codec.h b/include/sound/ak4531_codec.h index 4e7c661af48..edf04070ce7 100644 --- a/include/sound/ak4531_codec.h +++ b/include/sound/ak4531_codec.h @@ -77,4 +77,9 @@ struct snd_ak4531 { int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531, struct snd_ak4531 **rak4531); +#ifdef CONFIG_PM +void snd_ak4531_suspend(struct snd_ak4531 *ak4531); +void snd_ak4531_resume(struct snd_ak4531 *ak4531); +#endif + #endif /* __SOUND_AK4531_CODEC_H */ diff --git a/sound/pci/ac97/ak4531_codec.c b/sound/pci/ac97/ak4531_codec.c index 088d8dc336b..3eb885584e9 100644 --- a/sound/pci/ac97/ak4531_codec.c +++ b/sound/pci/ac97/ak4531_codec.c @@ -371,7 +371,7 @@ int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531, ak4531->write(ak4531, AK4531_RESET, 0x03); /* no RST, PD */ udelay(100); ak4531->write(ak4531, AK4531_CLOCK, 0x00); /* CODEC ADC and CODEC DAC use {LR,B}CLK2 and run off LRCLK2 PLL */ - for (idx = 0; idx < 0x19; idx++) { + for (idx = 0; idx <= 0x19; idx++) { if (idx == AK4531_RESET || idx == AK4531_CLOCK) continue; ak4531->write(ak4531, idx, ak4531->regs[idx] = snd_ak4531_initial_map[idx]); /* recording source is mixer */ @@ -395,6 +395,36 @@ int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531, return 0; } +/* + * power management + */ +#ifdef CONFIG_PM +void snd_ak4531_suspend(struct snd_ak4531 *ak4531) +{ + /* mute */ + ak4531->write(ak4531, AK4531_LMASTER, 0x9f); + ak4531->write(ak4531, AK4531_RMASTER, 0x9f); + /* powerdown */ + ak4531->write(ak4531, AK4531_RESET, 0x01); +} + +void snd_ak4531_resume(struct snd_ak4531 *ak4531) +{ + int idx; + + /* initialize */ + ak4531->write(ak4531, AK4531_RESET, 0x03); + udelay(100); + ak4531->write(ak4531, AK4531_CLOCK, 0x00); + /* restore mixer registers */ + for (idx = 0; idx <= 0x19; idx++) { + if (idx == AK4531_RESET || idx == AK4531_CLOCK) + continue; + ak4531->write(ak4531, idx, ak4531->regs[idx]); + } +} +#endif + /* */ @@ -420,6 +450,10 @@ static void snd_ak4531_proc_init(struct snd_card *card, struct snd_ak4531 *ak453 } EXPORT_SYMBOL(snd_ak4531_mixer); +#ifdef CONFIG_PM +EXPORT_SYMBOL(snd_ak4531_suspend); +EXPORT_SYMBOL(snd_ak4531_resume); +#endif /* * INIT part -- cgit v1.2.3-70-g09d2 From fe8be10786c040bce53c18048d75b1b23aec64ae Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:13:41 +0100 Subject: [ALSA] ens137x - Fix and ADD PM support Modules: ENS1370/1+ driver Fix PM support on ens1371 driver. Add PM support on ens1370 (together with AK4531), too. Signed-off-by: Takashi Iwai --- sound/pci/ens1370.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index 2cc0f83a0fd..ff86fabc98c 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -2034,40 +2034,45 @@ static void snd_ensoniq_chip_init(struct ensoniq *ensoniq) } #ifdef CONFIG_PM -static int snd_ensoniq_suspend(struct snd_card *card, pm_message_t state) +static int snd_ensoniq_suspend(struct pci_dev *pci, pm_message_t state) { - struct ensoniq *ensoniq = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct ensoniq *ensoniq = card->private_data; + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); + snd_pcm_suspend_all(ensoniq->pcm1); snd_pcm_suspend_all(ensoniq->pcm2); #ifdef CHIP1371 - if (ensoniq->u.es1371.ac97) - snd_ac97_suspend(ensoniq->u.es1371.ac97); + snd_ac97_suspend(ensoniq->u.es1371.ac97); #else - /* FIXME */ + snd_ak4531_suspend(ensoniq->u.es1370.ak4531); #endif - pci_set_power_state(ensoniq->pci, 3); - pci_disable_device(ensoniq->pci); + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); return 0; } -static int snd_ensoniq_resume(struct snd_card *card) +static int snd_ensoniq_resume(struct pci_dev *pci) { - struct ensoniq *ensoniq = card->pm_private_data; + struct snd_card *card = pci_get_drvdata(pci); + struct ensoniq *ensoniq = card->private_data; - pci_enable_device(ensoniq->pci); - pci_set_power_state(ensoniq->pci, 0); - pci_set_master(ensoniq->pci); + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); snd_ensoniq_chip_init(ensoniq); #ifdef CHIP1371 - if (ensoniq->u.es1371.ac97) - snd_ac97_resume(ensoniq->u.es1371.ac97); + snd_ac97_resume(ensoniq->u.es1371.ac97); #else - /* FIXME */ + snd_ak4531_resume(ensoniq->u.es1370.ak4531); #endif + snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; } #endif /* CONFIG_PM */ @@ -2165,8 +2170,6 @@ static int __devinit snd_ensoniq_create(struct snd_card *card, snd_ensoniq_proc_init(ensoniq); - snd_card_set_pm_callback(card, snd_ensoniq_suspend, snd_ensoniq_resume, ensoniq); - snd_card_set_dev(card, &pci->dev); *rensoniq = ensoniq; @@ -2436,6 +2439,7 @@ static int __devinit snd_audiopci_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = ensoniq; pcm_devs[0] = 0; pcm_devs[1] = 1; #ifdef CHIP1370 @@ -2495,7 +2499,10 @@ static struct pci_driver driver = { .id_table = snd_audiopci_ids, .probe = snd_audiopci_probe, .remove = __devexit_p(snd_audiopci_remove), - SND_PCI_PM_CALLBACKS +#ifdef CONFIG_PM + .suspend = snd_ensoniq_suspend, + .resume = snd_ensoniq_resume, +#endif }; static int __init alsa_card_ens137x_init(void) -- cgit v1.2.3-70-g09d2 From 09668b441dacdf4640509b640ad73e24efd5204f Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:14:10 +0100 Subject: [ALSA] emu10k1 - Add PM support Modules: EMU10K1/EMU10K2 driver Add PM support to emu10k1 driver. Signed-off-by: Takashi Iwai --- include/sound/emu10k1.h | 31 +++- sound/pci/emu10k1/emu10k1.c | 144 +++++++++++------- sound/pci/emu10k1/emu10k1_main.c | 308 +++++++++++++++++++++++++-------------- sound/pci/emu10k1/emufx.c | 121 ++++++++++++++- sound/pci/emu10k1/emupcm.c | 14 +- sound/pci/emu10k1/p16v.c | 43 +++++- 6 files changed, 491 insertions(+), 170 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index d14c543b160..3d0496cc109 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h @@ -1071,7 +1071,8 @@ struct snd_emu10k1 { unsigned long port; /* I/O port number */ unsigned int tos_link: 1, /* tos link detected */ - rear_ac97: 1; /* rear channels are on AC'97 */ + rear_ac97: 1, /* rear channels are on AC'97 */ + enable_ir: 1; /* Contains profile of card capabilities */ const struct snd_emu_chip_details *card_capabilities; unsigned int audigy; /* is Audigy? */ @@ -1108,6 +1109,7 @@ struct snd_emu10k1 { struct snd_pcm *pcm; struct snd_pcm *pcm_mic; struct snd_pcm *pcm_efx; + struct snd_pcm *pcm_multi; struct snd_pcm *pcm_p16v; spinlock_t synth_lock; @@ -1153,6 +1155,17 @@ struct snd_emu10k1 { unsigned int efx_voices_mask[2]; unsigned int next_free_voice; + +#ifdef CONFIG_PM + unsigned int *saved_ptr; + unsigned int *saved_gpr; + unsigned int *tram_val_saved; + unsigned int *tram_addr_saved; + unsigned int *saved_icode; + unsigned int *p16v_saved; + unsigned int saved_a_iocfg, saved_hcfg; +#endif + }; int snd_emu10k1_create(struct snd_card *card, @@ -1178,11 +1191,11 @@ int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); -/* initialization */ void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice); int snd_emu10k1_init_efx(struct snd_emu10k1 *emu); void snd_emu10k1_free_efx(struct snd_emu10k1 *emu); int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size); +int snd_emu10k1_done(struct snd_emu10k1 * emu); /* I/O functions */ unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn); @@ -1206,6 +1219,20 @@ unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg); void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data); unsigned int snd_emu10k1_rate_to_pitch(unsigned int rate); +#ifdef CONFIG_PM +void snd_emu10k1_suspend_regs(struct snd_emu10k1 *emu); +void snd_emu10k1_resume_init(struct snd_emu10k1 *emu); +void snd_emu10k1_resume_regs(struct snd_emu10k1 *emu); +int snd_emu10k1_efx_alloc_pm_buffer(struct snd_emu10k1 *emu); +void snd_emu10k1_efx_free_pm_buffer(struct snd_emu10k1 *emu); +void snd_emu10k1_efx_suspend(struct snd_emu10k1 *emu); +void snd_emu10k1_efx_resume(struct snd_emu10k1 *emu); +int snd_p16v_alloc_pm_buffer(struct snd_emu10k1 *emu); +void snd_p16v_free_pm_buffer(struct snd_emu10k1 *emu); +void snd_p16v_suspend(struct snd_emu10k1 *emu); +void snd_p16v_resume(struct snd_emu10k1 *emu); +#endif + /* memory allocation */ struct snd_util_memblk *snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream); int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk); diff --git a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c index 9be90022477..2dfa932f782 100644 --- a/sound/pci/emu10k1/emu10k1.c +++ b/sound/pci/emu10k1/emu10k1.c @@ -125,65 +125,43 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci, if ((err = snd_emu10k1_create(card, pci, extin[dev], extout[dev], (long)max_buffer_size[dev] * 1024 * 1024, enable_ir[dev], subsystem[dev], - &emu)) < 0) { - snd_card_free(card); - return err; - } - if ((err = snd_emu10k1_pcm(emu, 0, NULL)) < 0) { - snd_card_free(card); - return err; - } - if ((err = snd_emu10k1_pcm_mic(emu, 1, NULL)) < 0) { - snd_card_free(card); - return err; - } - if ((err = snd_emu10k1_pcm_efx(emu, 2, NULL)) < 0) { - snd_card_free(card); - return err; - } + &emu)) < 0) + goto error; + card->private_data = emu; + if ((err = snd_emu10k1_pcm(emu, 0, NULL)) < 0) + goto error; + if ((err = snd_emu10k1_pcm_mic(emu, 1, NULL)) < 0) + goto error; + if ((err = snd_emu10k1_pcm_efx(emu, 2, NULL)) < 0) + goto error; /* This stores the periods table. */ if (emu->card_capabilities->ca0151_chip) { /* P16V */ - if(snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), 1024, &emu->p16v_buffer) < 0) { - snd_p16v_free(emu); - return -ENOMEM; - } + if ((err = snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), + 1024, &emu->p16v_buffer)) < 0) + goto error; } - if ((err = snd_emu10k1_mixer(emu, 0, 3)) < 0) { - snd_card_free(card); - return err; - } + if ((err = snd_emu10k1_mixer(emu, 0, 3)) < 0) + goto error; - if ((err = snd_emu10k1_timer(emu, 0)) < 0) { - snd_card_free(card); - return err; - } + if ((err = snd_emu10k1_timer(emu, 0)) < 0) + goto error; - if ((err = snd_emu10k1_pcm_multi(emu, 3, NULL)) < 0) { - snd_card_free(card); - return err; - } - if (emu->card_capabilities->ca0151_chip) { /* P16V */ - if ((err = snd_p16v_pcm(emu, 4, NULL)) < 0) { - snd_card_free(card); - return err; - } + if ((err = snd_emu10k1_pcm_multi(emu, 3, NULL)) < 0) + goto error; + if (emu->card_capabilities->ca0151_chip) { /* P16V */ + if ((err = snd_p16v_pcm(emu, 4, NULL)) < 0) + goto error; } if (emu->audigy) { - if ((err = snd_emu10k1_audigy_midi(emu)) < 0) { - snd_card_free(card); - return err; - } + if ((err = snd_emu10k1_audigy_midi(emu)) < 0) + goto error; } else { - if ((err = snd_emu10k1_midi(emu)) < 0) { - snd_card_free(card); - return err; - } - } - if ((err = snd_emu10k1_fx8010_new(emu, 0, NULL)) < 0) { - snd_card_free(card); - return err; + if ((err = snd_emu10k1_midi(emu)) < 0) + goto error; } + if ((err = snd_emu10k1_fx8010_new(emu, 0, NULL)) < 0) + goto error; #ifdef ENABLE_SYNTH if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, sizeof(struct snd_emu10k1_synth_arg), &wave) < 0 || @@ -206,13 +184,16 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci, "%s (rev.%d, serial:0x%x) at 0x%lx, irq %i", card->shortname, emu->revision, emu->serial, emu->port, emu->irq); - if ((err = snd_card_register(card)) < 0) { - snd_card_free(card); - return err; - } + if ((err = snd_card_register(card)) < 0) + goto error; + pci_set_drvdata(pci, card); dev++; return 0; + + error: + snd_card_free(card); + return err; } static void __devexit snd_card_emu10k1_remove(struct pci_dev *pci) @@ -221,11 +202,68 @@ static void __devexit snd_card_emu10k1_remove(struct pci_dev *pci) pci_set_drvdata(pci, NULL); } + +#ifdef CONFIG_PM +static int snd_emu10k1_suspend(struct pci_dev *pci, pm_message_t state) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct snd_emu10k1 *emu = card->private_data; + + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); + + snd_pcm_suspend_all(emu->pcm); + snd_pcm_suspend_all(emu->pcm_mic); + snd_pcm_suspend_all(emu->pcm_efx); + snd_pcm_suspend_all(emu->pcm_multi); + snd_pcm_suspend_all(emu->pcm_p16v); + + snd_ac97_suspend(emu->ac97); + + snd_emu10k1_efx_suspend(emu); + snd_emu10k1_suspend_regs(emu); + if (emu->card_capabilities->ca0151_chip) + snd_p16v_suspend(emu); + + snd_emu10k1_done(emu); + + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); + return 0; +} + +int snd_emu10k1_resume(struct pci_dev *pci) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct snd_emu10k1 *emu = card->private_data; + + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); + + snd_emu10k1_resume_init(emu); + snd_emu10k1_efx_resume(emu); + snd_ac97_resume(emu->ac97); + snd_emu10k1_resume_regs(emu); + + if (emu->card_capabilities->ca0151_chip) + snd_p16v_resume(emu); + + snd_power_change_state(card, SNDRV_CTL_POWER_D0); + return 0; +} +#endif + static struct pci_driver driver = { .name = "EMU10K1_Audigy", .id_table = snd_emu10k1_ids, .probe = snd_card_emu10k1_probe, .remove = __devexit_p(snd_card_emu10k1_remove), +#ifdef CONFIG_PM + .suspend = snd_emu10k1_suspend, + .resume = snd_emu10k1_resume, +#endif }; static int __init alsa_card_emu10k1_init(void) diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index f9855073a0a..cc36b748d9a 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -42,12 +42,6 @@ #include "p16v.h" #include "tina2.h" -#if 0 -MODULE_AUTHOR("Jaroslav Kysela , Creative Labs, Inc."); -MODULE_DESCRIPTION("Routines for control of EMU10K1 chips"); -MODULE_LICENSE("GPL"); -#endif - /************************************************************************* * EMU10K1 init / done *************************************************************************/ @@ -97,17 +91,14 @@ void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int ch) } } -static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir) +static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) { - int ch, idx, err; unsigned int silent_page; - - emu->fx8010.itram_size = (16 * 1024)/2; - emu->fx8010.etram_pages.area = NULL; - emu->fx8010.etram_pages.bytes = 0; + int ch; /* disable audio and lock cache */ - outl(HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE, emu->port + HCFG); + outl(HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE, + emu->port + HCFG); /* reset recording buffers */ snd_emu10k1_ptr_write(emu, MICBS, 0, ADCBS_BUFSIZE_NONE); @@ -128,48 +119,17 @@ static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir) /* set SPDIF bypass mode */ snd_emu10k1_ptr_write(emu, SPBYPASS, 0, SPBYPASS_FORMAT); /* enable rear left + rear right AC97 slots */ - snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_REAR_RIGHT | AC97SLOT_REAR_LEFT); + snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_REAR_RIGHT | + AC97SLOT_REAR_LEFT); } /* init envelope engine */ - for (ch = 0; ch < NUM_G; ch++) { - emu->voices[ch].emu = emu; - emu->voices[ch].number = ch; + for (ch = 0; ch < NUM_G; ch++) snd_emu10k1_voice_init(emu, ch); - } - /* - * Init to 0x02109204 : - * Clock accuracy = 0 (1000ppm) - * Sample Rate = 2 (48kHz) - * Audio Channel = 1 (Left of 2) - * Source Number = 0 (Unspecified) - * Generation Status = 1 (Original for Cat Code 12) - * Cat Code = 12 (Digital Signal Mixer) - * Mode = 0 (Mode 0) - * Emphasis = 0 (None) - * CP = 1 (Copyright unasserted) - * AN = 0 (Audio data) - * P = 0 (Consumer) - */ - snd_emu10k1_ptr_write(emu, SPCS0, 0, - emu->spdif_bits[0] = - SPCS_CLKACCY_1000PPM | SPCS_SAMPLERATE_48 | - SPCS_CHANNELNUM_LEFT | SPCS_SOURCENUM_UNSPEC | - SPCS_GENERATIONSTATUS | 0x00001200 | - 0x00000000 | SPCS_EMPHASIS_NONE | SPCS_COPYRIGHT); - snd_emu10k1_ptr_write(emu, SPCS1, 0, - emu->spdif_bits[1] = - SPCS_CLKACCY_1000PPM | SPCS_SAMPLERATE_48 | - SPCS_CHANNELNUM_LEFT | SPCS_SOURCENUM_UNSPEC | - SPCS_GENERATIONSTATUS | 0x00001200 | - 0x00000000 | SPCS_EMPHASIS_NONE | SPCS_COPYRIGHT); - snd_emu10k1_ptr_write(emu, SPCS2, 0, - emu->spdif_bits[2] = - SPCS_CLKACCY_1000PPM | SPCS_SAMPLERATE_48 | - SPCS_CHANNELNUM_LEFT | SPCS_SOURCENUM_UNSPEC | - SPCS_GENERATIONSTATUS | 0x00001200 | - 0x00000000 | SPCS_EMPHASIS_NONE | SPCS_COPYRIGHT); + snd_emu10k1_ptr_write(emu, SPCS0, 0, emu->spdif_bits[0]); + snd_emu10k1_ptr_write(emu, SPCS1, 0, emu->spdif_bits[1]); + snd_emu10k1_ptr_write(emu, SPCS2, 0, emu->spdif_bits[2]); if (emu->card_capabilities->ca0151_chip) { /* audigy2 */ /* Hacks for Alice3 to work independent of haP16V driver */ @@ -196,7 +156,7 @@ static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir) /* Hacks for Alice3 to work independent of haP16V driver */ u32 tmp; - snd_printk(KERN_ERR "Audigy2 value:Special config.\n"); + snd_printk(KERN_INFO "Audigy2 value: Special config.\n"); //Setup SRCMulti_I2S SamplingRate tmp = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0); tmp &= 0xfffff1ff; @@ -221,14 +181,6 @@ static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir) outl(tmp, emu->port + A_IOCFG); } - - /* - * Clear page with silence & setup all pointers to this page - */ - memset(emu->silent_page.area, 0, PAGE_SIZE); - silent_page = emu->silent_page.addr << 1; - for (idx = 0; idx < MAXPAGES; idx++) - ((u32 *)emu->ptb_pages.area)[idx] = cpu_to_le32(silent_page | idx); snd_emu10k1_ptr_write(emu, PTB, 0, emu->ptb_pages.addr); snd_emu10k1_ptr_write(emu, TCB, 0, 0); /* taken from original driver */ snd_emu10k1_ptr_write(emu, TCBS, 0, 4); /* taken from original driver */ @@ -287,12 +239,11 @@ static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir) outl(reg | A_IOCFG_GPOUT0, emu->port + A_IOCFG); } - /* - * Initialize the effect engine - */ - if ((err = snd_emu10k1_init_efx(emu)) < 0) - return err; + return 0; +} +static void snd_emu10k1_audio_enable(struct snd_emu10k1 *emu) +{ /* * Enable the audio bit */ @@ -335,15 +286,9 @@ static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir) #endif snd_emu10k1_intr_enable(emu, INTE_PCIERRORENABLE); - - emu->reserved_page = (struct snd_emu10k1_memblk *)snd_emu10k1_synth_alloc(emu, 4096); - if (emu->reserved_page) - emu->reserved_page->map_locked = 1; - - return 0; } -static int snd_emu10k1_done(struct snd_emu10k1 * emu) +int snd_emu10k1_done(struct snd_emu10k1 * emu) { int ch; @@ -382,18 +327,10 @@ static int snd_emu10k1_done(struct snd_emu10k1 * emu) snd_emu10k1_ptr_write(emu, SOLEL, 0, 0); snd_emu10k1_ptr_write(emu, SOLEH, 0, 0); - /* remove reserved page */ - if (emu->reserved_page != NULL) { - snd_emu10k1_synth_free(emu, (struct snd_util_memblk *)emu->reserved_page); - emu->reserved_page = NULL; - } - /* disable audio and lock cache */ outl(HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE, emu->port + HCFG); snd_emu10k1_ptr_write(emu, PTB, 0, 0); - snd_emu10k1_free_efx(emu); - return 0; } @@ -609,11 +546,22 @@ static int __devinit snd_emu10k1_cardbus_init(struct snd_emu10k1 * emu) * Create the EMU10K1 instance */ +#ifdef CONFIG_PM +static int alloc_pm_buffer(struct snd_emu10k1 *emu); +static void free_pm_buffer(struct snd_emu10k1 *emu); +#endif + static int snd_emu10k1_free(struct snd_emu10k1 *emu) { if (emu->port) { /* avoid access to already used hardware */ snd_emu10k1_fx8010_tram_setup(emu, 0); snd_emu10k1_done(emu); + /* remove reserved page */ + if (emu->reserved_page) { + snd_emu10k1_synth_free(emu, (struct snd_util_memblk *)emu->reserved_page); + emu->reserved_page = NULL; + } + snd_emu10k1_free_efx(emu); } if (emu->memhdr) snd_util_memhdr_free(emu->memhdr); @@ -623,13 +571,16 @@ static int snd_emu10k1_free(struct snd_emu10k1 *emu) snd_dma_free_pages(&emu->ptb_pages); vfree(emu->page_ptr_table); vfree(emu->page_addr_table); +#ifdef CONFIG_PM + free_pm_buffer(emu); +#endif if (emu->irq >= 0) free_irq(emu->irq, (void *)emu); if (emu->port) pci_release_regions(emu->pci); - pci_disable_device(emu->pci); if (emu->card_capabilities->ca0151_chip) /* P16V */ snd_p16v_free(emu); + pci_disable_device(emu->pci); kfree(emu); return 0; } @@ -900,9 +851,10 @@ int __devinit snd_emu10k1_create(struct snd_card *card, struct snd_emu10k1 ** remu) { struct snd_emu10k1 *emu; - int err; + int idx, err; int is_audigy; unsigned char revision; + unsigned int silent_page; const struct snd_emu_chip_details *c; static struct snd_device_ops ops = { .dev_free = snd_emu10k1_dev_free, @@ -1012,34 +964,34 @@ int __devinit snd_emu10k1_create(struct snd_card *card, emu->port = pci_resource_start(pci, 0); if (request_irq(pci->irq, snd_emu10k1_interrupt, SA_INTERRUPT|SA_SHIRQ, "EMU10K1", (void *)emu)) { - snd_emu10k1_free(emu); - return -EBUSY; + err = -EBUSY; + goto error; } emu->irq = pci->irq; emu->max_cache_pages = max_cache_bytes >> PAGE_SHIFT; if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), 32 * 1024, &emu->ptb_pages) < 0) { - snd_emu10k1_free(emu); - return -ENOMEM; + err = -ENOMEM; + goto error; } emu->page_ptr_table = (void **)vmalloc(emu->max_cache_pages * sizeof(void*)); emu->page_addr_table = (unsigned long*)vmalloc(emu->max_cache_pages * sizeof(unsigned long)); if (emu->page_ptr_table == NULL || emu->page_addr_table == NULL) { - snd_emu10k1_free(emu); - return -ENOMEM; + err = -ENOMEM; + goto error; } if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), EMUPAGESIZE, &emu->silent_page) < 0) { - snd_emu10k1_free(emu); - return -ENOMEM; + err = -ENOMEM; + goto error; } emu->memhdr = snd_util_memhdr_new(emu->max_cache_pages * PAGE_SIZE); if (emu->memhdr == NULL) { - snd_emu10k1_free(emu); - return -ENOMEM; + err = -ENOMEM; + goto error; } emu->memhdr->block_extra_size = sizeof(struct snd_emu10k1_memblk) - sizeof(struct snd_util_memblk); @@ -1053,40 +1005,184 @@ int __devinit snd_emu10k1_create(struct snd_card *card, extout_mask = 0x7fff; emu->fx8010.extin_mask = extin_mask; emu->fx8010.extout_mask = extout_mask; + emu->enable_ir = enable_ir; if (emu->card_capabilities->ecard) { - if ((err = snd_emu10k1_ecard_init(emu)) < 0) { - snd_emu10k1_free(emu); - return err; - } + if ((err = snd_emu10k1_ecard_init(emu)) < 0) + goto error; } else if (emu->card_capabilities->ca_cardbus_chip) { - if ((err = snd_emu10k1_cardbus_init(emu)) < 0) { - snd_emu10k1_free(emu); - return err; - } + if ((err = snd_emu10k1_cardbus_init(emu)) < 0) + goto error; } else { /* 5.1: Enable the additional AC97 Slots. If the emu10k1 version does not support this, it shouldn't do any harm */ snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE); } - if ((err = snd_emu10k1_init(emu, enable_ir)) < 0) { - snd_emu10k1_free(emu); - return err; - } + /* initialize TRAM setup */ + emu->fx8010.itram_size = (16 * 1024)/2; + emu->fx8010.etram_pages.area = NULL; + emu->fx8010.etram_pages.bytes = 0; - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, emu, &ops)) < 0) { - snd_emu10k1_free(emu); - return err; + /* + * Init to 0x02109204 : + * Clock accuracy = 0 (1000ppm) + * Sample Rate = 2 (48kHz) + * Audio Channel = 1 (Left of 2) + * Source Number = 0 (Unspecified) + * Generation Status = 1 (Original for Cat Code 12) + * Cat Code = 12 (Digital Signal Mixer) + * Mode = 0 (Mode 0) + * Emphasis = 0 (None) + * CP = 1 (Copyright unasserted) + * AN = 0 (Audio data) + * P = 0 (Consumer) + */ + emu->spdif_bits[0] = emu->spdif_bits[1] = + emu->spdif_bits[2] = SPCS_CLKACCY_1000PPM | SPCS_SAMPLERATE_48 | + SPCS_CHANNELNUM_LEFT | SPCS_SOURCENUM_UNSPEC | + SPCS_GENERATIONSTATUS | 0x00001200 | + 0x00000000 | SPCS_EMPHASIS_NONE | SPCS_COPYRIGHT; + + emu->reserved_page = (struct snd_emu10k1_memblk *) + snd_emu10k1_synth_alloc(emu, 4096); + if (emu->reserved_page) + emu->reserved_page->map_locked = 1; + + /* Clear silent pages and set up pointers */ + memset(emu->silent_page.area, 0, PAGE_SIZE); + silent_page = emu->silent_page.addr << 1; + for (idx = 0; idx < MAXPAGES; idx++) + ((u32 *)emu->ptb_pages.area)[idx] = cpu_to_le32(silent_page | idx); + + /* set up voice indices */ + for (idx = 0; idx < NUM_G; idx++) { + emu->voices[idx].emu = emu; + emu->voices[idx].number = idx; } + if ((err = snd_emu10k1_init(emu, enable_ir, 0)) < 0) + goto error; +#ifdef CONFIG_PM + if ((err = alloc_pm_buffer(emu)) < 0) + goto error; +#endif + + /* Initialize the effect engine */ + if ((err = snd_emu10k1_init_efx(emu)) < 0) + goto error; + snd_emu10k1_audio_enable(emu); + + if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, emu, &ops)) < 0) + goto error; + snd_emu10k1_proc_init(emu); snd_card_set_dev(card, &pci->dev); *remu = emu; return 0; + + error: + snd_emu10k1_free(emu); + return err; } +#ifdef CONFIG_PM +static unsigned char saved_regs[] = { + CPF, PTRX, CVCF, VTFT, Z1, Z2, PSST, DSL, CCCA, CCR, CLP, + FXRT, MAPA, MAPB, ENVVOL, ATKHLDV, DCYSUSV, LFOVAL1, ENVVAL, + ATKHLDM, DCYSUSM, LFOVAL2, IP, IFATN, PEFE, FMMOD, TREMFRQ, FM2FRQ2, + TEMPENV, ADCCR, FXWC, MICBA, ADCBA, FXBA, + MICBS, ADCBS, FXBS, CDCS, GPSCS, SPCS0, SPCS1, SPCS2, + SPBYPASS, AC97SLOT, CDSRCS, GPSRCS, ZVSRCS, MICIDX, ADCIDX, FXIDX, + 0xff /* end */ +}; +static unsigned char saved_regs_audigy[] = { + A_ADCIDX, A_MICIDX, A_FXWC1, A_FXWC2, A_SAMPLE_RATE, + A_FXRT2, A_SENDAMOUNTS, A_FXRT1, + 0xff /* end */ +}; + +static int __devinit alloc_pm_buffer(struct snd_emu10k1 *emu) +{ + int size; + + size = ARRAY_SIZE(saved_regs); + if (emu->audigy) + size += ARRAY_SIZE(saved_regs_audigy); + emu->saved_ptr = vmalloc(4 * NUM_G * size); + if (! emu->saved_ptr) + return -ENOMEM; + if (snd_emu10k1_efx_alloc_pm_buffer(emu) < 0) + return -ENOMEM; + if (emu->card_capabilities->ca0151_chip && + snd_p16v_alloc_pm_buffer(emu) < 0) + return -ENOMEM; + return 0; +} + +static void free_pm_buffer(struct snd_emu10k1 *emu) +{ + vfree(emu->saved_ptr); + snd_emu10k1_efx_free_pm_buffer(emu); + if (emu->card_capabilities->ca0151_chip) + snd_p16v_free_pm_buffer(emu); +} + +void snd_emu10k1_suspend_regs(struct snd_emu10k1 *emu) +{ + int i; + unsigned char *reg; + unsigned int *val; + + val = emu->saved_ptr; + for (reg = saved_regs; *reg != 0xff; reg++) + for (i = 0; i < NUM_G; i++, val++) + *val = snd_emu10k1_ptr_read(emu, *reg, i); + if (emu->audigy) { + for (reg = saved_regs_audigy; *reg != 0xff; reg++) + for (i = 0; i < NUM_G; i++, val++) + *val = snd_emu10k1_ptr_read(emu, *reg, i); + } + if (emu->audigy) + emu->saved_a_iocfg = inl(emu->port + A_IOCFG); + emu->saved_hcfg = inl(emu->port + HCFG); +} + +void snd_emu10k1_resume_init(struct snd_emu10k1 *emu) +{ + if (emu->card_capabilities->ecard) + snd_emu10k1_ecard_init(emu); + else + snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE); + snd_emu10k1_init(emu, emu->enable_ir, 1); +} + +void snd_emu10k1_resume_regs(struct snd_emu10k1 *emu) +{ + int i; + unsigned char *reg; + unsigned int *val; + + snd_emu10k1_audio_enable(emu); + + /* resore for spdif */ + if (emu->audigy) + outl(emu->port + A_IOCFG, emu->saved_a_iocfg); + outl(emu->port + HCFG, emu->saved_hcfg); + + val = emu->saved_ptr; + for (reg = saved_regs; *reg != 0xff; reg++) + for (i = 0; i < NUM_G; i++, val++) + snd_emu10k1_ptr_write(emu, *reg, i, *val); + if (emu->audigy) { + for (reg = saved_regs_audigy; *reg != 0xff; reg++) + for (i = 0; i < NUM_G; i++, val++) + snd_emu10k1_ptr_write(emu, *reg, i, *val); + } +} +#endif + /* memory.c */ EXPORT_SYMBOL(snd_emu10k1_synth_alloc); EXPORT_SYMBOL(snd_emu10k1_synth_free); diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c index f4452c5cb4c..a44e4fdfc02 100644 --- a/sound/pci/emu10k1/emufx.c +++ b/sound/pci/emu10k1/emufx.c @@ -1071,9 +1071,6 @@ static int __devinit _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu) u32 *gpr_map; mm_segment_t seg; - spin_lock_init(&emu->fx8010.irq_lock); - INIT_LIST_HEAD(&emu->fx8010.gpr_ctl); - if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL || (icode->gpr_map = (u_int32_t __user *) kcalloc(512 + 256 + 256 + 2 * 1024, sizeof(u_int32_t), @@ -1541,9 +1538,6 @@ static int __devinit _snd_emu10k1_init_efx(struct snd_emu10k1 *emu) u32 *gpr_map; mm_segment_t seg; - spin_lock_init(&emu->fx8010.irq_lock); - INIT_LIST_HEAD(&emu->fx8010.gpr_ctl); - if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL) return -ENOMEM; if ((icode->gpr_map = (u_int32_t __user *) @@ -2102,6 +2096,8 @@ static int __devinit _snd_emu10k1_init_efx(struct snd_emu10k1 *emu) int __devinit snd_emu10k1_init_efx(struct snd_emu10k1 *emu) { + spin_lock_init(&emu->fx8010.irq_lock); + INIT_LIST_HEAD(&emu->fx8010.gpr_ctl); if (emu->audigy) return _snd_emu10k1_audigy_init_efx(emu); else @@ -2171,7 +2167,7 @@ int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size) snd_emu10k1_ptr_write(emu, TCBS, 0, size_reg); spin_lock_irq(&emu->emu_lock); outl(inl(emu->port + HCFG) & ~HCFG_LOCKTANKCACHE_MASK, emu->port + HCFG); - spin_unlock_irq(&emu->emu_lock); + spin_unlock_irq(&emu->emu_lock); } return 0; @@ -2387,3 +2383,114 @@ int __devinit snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct *rhwdep = hw; return 0; } + +#ifdef CONFIG_PM +int __devinit snd_emu10k1_efx_alloc_pm_buffer(struct snd_emu10k1 *emu) +{ + int len; + + len = emu->audigy ? 0x200 : 0x100; + emu->saved_gpr = kmalloc(len * 4, GFP_KERNEL); + if (! emu->saved_gpr) + return -ENOMEM; + len = emu->audigy ? 0x100 : 0xa0; + emu->tram_val_saved = kmalloc(len * 4, GFP_KERNEL); + emu->tram_addr_saved = kmalloc(len * 4, GFP_KERNEL); + if (! emu->tram_val_saved || ! emu->tram_addr_saved) + return -ENOMEM; + len = emu->audigy ? 2 * 1024 : 2 * 512; + emu->saved_icode = vmalloc(len * 4); + if (! emu->saved_icode) + return -ENOMEM; + return 0; +} + +void snd_emu10k1_efx_free_pm_buffer(struct snd_emu10k1 *emu) +{ + kfree(emu->saved_gpr); + kfree(emu->tram_val_saved); + kfree(emu->tram_addr_saved); + vfree(emu->saved_icode); +} + +/* + * save/restore GPR, TRAM and codes + */ +void snd_emu10k1_efx_suspend(struct snd_emu10k1 *emu) +{ + int i, len; + + len = emu->audigy ? 0x200 : 0x100; + for (i = 0; i < len; i++) + emu->saved_gpr[i] = snd_emu10k1_ptr_read(emu, emu->gpr_base + i, 0); + + len = emu->audigy ? 0x100 : 0xa0; + for (i = 0; i < len; i++) { + emu->tram_val_saved[i] = snd_emu10k1_ptr_read(emu, TANKMEMDATAREGBASE + i, 0); + emu->tram_addr_saved[i] = snd_emu10k1_ptr_read(emu, TANKMEMADDRREGBASE + i, 0); + if (emu->audigy) { + emu->tram_addr_saved[i] >>= 12; + emu->tram_addr_saved[i] |= + snd_emu10k1_ptr_read(emu, A_TANKMEMCTLREGBASE + i, 0) << 20; + } + } + + len = emu->audigy ? 2 * 1024 : 2 * 512; + for (i = 0; i < len; i++) + emu->saved_icode[i] = snd_emu10k1_efx_read(emu, i); +} + +void snd_emu10k1_efx_resume(struct snd_emu10k1 *emu) +{ + int i, len; + + /* set up TRAM */ + if (emu->fx8010.etram_pages.bytes > 0) { + unsigned size, size_reg = 0; + size = emu->fx8010.etram_pages.bytes / 2; + size = (size - 1) >> 13; + while (size) { + size >>= 1; + size_reg++; + } + outl(HCFG_LOCKTANKCACHE_MASK | inl(emu->port + HCFG), emu->port + HCFG); + snd_emu10k1_ptr_write(emu, TCB, 0, emu->fx8010.etram_pages.addr); + snd_emu10k1_ptr_write(emu, TCBS, 0, size_reg); + outl(inl(emu->port + HCFG) & ~HCFG_LOCKTANKCACHE_MASK, emu->port + HCFG); + } + + if (emu->audigy) + snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg | A_DBG_SINGLE_STEP); + else + snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg | EMU10K1_DBG_SINGLE_STEP); + + len = emu->audigy ? 0x200 : 0x100; + for (i = 0; i < len; i++) + snd_emu10k1_ptr_write(emu, emu->gpr_base + i, 0, emu->saved_gpr[i]); + + len = emu->audigy ? 0x100 : 0xa0; + for (i = 0; i < len; i++) { + snd_emu10k1_ptr_write(emu, TANKMEMDATAREGBASE + i, 0, + emu->tram_val_saved[i]); + if (! emu->audigy) + snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + i, 0, + emu->tram_addr_saved[i]); + else { + snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + i, 0, + emu->tram_addr_saved[i] << 12); + snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + i, 0, + emu->tram_addr_saved[i] >> 20); + } + } + + len = emu->audigy ? 2 * 1024 : 2 * 512; + for (i = 0; i < len; i++) + snd_emu10k1_efx_write(emu, i, emu->saved_icode[i]); + + /* start FX processor when the DSP code is updated */ + if (emu->audigy) + snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg); + else + snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg); +} +#endif diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c index 8e6caf581c0..717e92ec9e0 100644 --- a/sound/pci/emu10k1/emupcm.c +++ b/sound/pci/emu10k1/emupcm.c @@ -551,6 +551,7 @@ static struct snd_pcm_hardware snd_emu10k1_efx_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_NONINTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE), .formats = SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_48000, @@ -739,6 +740,7 @@ static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream, snd_emu10k1_playback_invalidate_cache(emu, 0, epcm->voices[0]); /* follow thru */ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: mix = &emu->pcm_mixer[substream->number]; snd_emu10k1_playback_prepare_voice(emu, epcm->voices[0], 1, 0, mix); snd_emu10k1_playback_prepare_voice(emu, epcm->voices[1], 0, 0, mix); @@ -750,6 +752,7 @@ static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream, break; case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_SUSPEND: epcm->running = 0; snd_emu10k1_playback_stop_voice(emu, epcm->voices[0]); snd_emu10k1_playback_stop_voice(emu, epcm->voices[1]); @@ -774,6 +777,7 @@ static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream, spin_lock(&emu->reg_lock); switch (cmd) { case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: // hmm this should cause full and half full interrupt to be raised? outl(epcm->capture_ipr, emu->port + IPR); snd_emu10k1_intr_enable(emu, epcm->capture_inte); @@ -797,6 +801,7 @@ static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream, epcm->first_ptr = 1; break; case SNDRV_PCM_TRIGGER_STOP: + case SNDRV_PCM_TRIGGER_SUSPEND: epcm->running = 0; snd_emu10k1_intr_disable(emu, epcm->capture_inte); outl(epcm->capture_ipr, emu->port + IPR); @@ -871,6 +876,7 @@ static int snd_emu10k1_efx_playback_trigger(struct snd_pcm_substream *substream, /* follow thru */ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: snd_emu10k1_playback_prepare_voice(emu, epcm->extra, 1, 1, NULL); snd_emu10k1_playback_prepare_voice(emu, epcm->voices[0], 0, 0, &emu->efx_pcm_mixer[0]); @@ -883,6 +889,7 @@ static int snd_emu10k1_efx_playback_trigger(struct snd_pcm_substream *substream, snd_emu10k1_playback_trigger_voice(emu, epcm->voices[i], 0, 0); epcm->running = 1; break; + case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: epcm->running = 0; @@ -925,6 +932,7 @@ static struct snd_pcm_hardware snd_emu10k1_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE), .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_96000, @@ -948,6 +956,7 @@ static struct snd_pcm_hardware snd_emu10k1_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_8000_48000, @@ -1309,7 +1318,7 @@ int __devinit snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct pcm->info_flags = 0; pcm->dev_subclass = SNDRV_PCM_SUBCLASS_GENERIC_MIX; strcpy(pcm->name, "Multichannel Playback"); - emu->pcm = pcm; + emu->pcm_multi = pcm; for (substream = pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream; substream; substream = substream->next) if ((err = snd_pcm_lib_preallocate_pages(substream, SNDRV_DMA_TYPE_DEV_SG, snd_dma_pci_data(emu->pci), 64*1024, 64*1024)) < 0) @@ -1556,6 +1565,7 @@ static int snd_emu10k1_fx8010_playback_trigger(struct snd_pcm_substream *substre case SNDRV_PCM_TRIGGER_START: /* follow thru */ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: #ifdef EMU10K1_SET_AC3_IEC958 { int i; @@ -1576,6 +1586,7 @@ static int snd_emu10k1_fx8010_playback_trigger(struct snd_pcm_substream *substre break; case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_SUSPEND: snd_emu10k1_fx8010_unregister_irq_handler(emu, pcm->irq); pcm->irq = NULL; snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 0); pcm->tram_pos = INITIAL_TRAM_POS(pcm->buffer_size); @@ -1605,6 +1616,7 @@ static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(struct snd_pcm_subs static struct snd_pcm_hardware snd_emu10k1_fx8010_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_RESUME | /* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE), .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_48000, diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c index 90470de8bb8..adce6af98d0 100644 --- a/sound/pci/emu10k1/p16v.c +++ b/sound/pci/emu10k1/p16v.c @@ -125,6 +125,7 @@ static struct snd_pcm_hardware snd_p16v_playback_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S32_LE, /* Only supports 24-bit samples padded to 32 bits. */ .rates = SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_44100, @@ -144,6 +145,7 @@ static struct snd_pcm_hardware snd_p16v_capture_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S32_LE, .rates = SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_44100, @@ -611,7 +613,7 @@ int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm) pcm->info_flags = 0; pcm->dev_subclass = SNDRV_PCM_SUBCLASS_GENERIC_MIX; strcpy(pcm->name, "p16v"); - emu->pcm = pcm; + emu->pcm_p16v = pcm; for(substream = pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream; substream; @@ -1030,3 +1032,42 @@ int snd_p16v_mixer(struct snd_emu10k1 *emu) return 0; } +#ifdef CONFIG_PM + +#define NUM_CHS 1 /* up to 4, but only first channel is used */ + +int __devinit snd_p16v_alloc_pm_buffer(struct snd_emu10k1 *emu) +{ + emu->p16v_saved = vmalloc(NUM_CHS * 4 * 0x80); + if (! emu->p16v_saved) + return -ENOMEM; + return 0; +} + +void snd_p16v_free_pm_buffer(struct snd_emu10k1 *emu) +{ + vfree(emu->p16v_saved); +} + +void snd_p16v_suspend(struct snd_emu10k1 *emu) +{ + int i, ch; + unsigned int *val; + + val = emu->p16v_saved; + for (ch = 0; ch < NUM_CHS; ch++) + for (i = 0; i < 0x80; i++, val++) + *val = snd_emu10k1_ptr20_read(emu, i, ch); +} + +void snd_p16v_resume(struct snd_emu10k1 *emu) +{ + int i, ch; + unsigned int *val; + + val = emu->p16v_saved; + for (ch = 0; ch < NUM_CHS; ch++) + for (i = 0; i < 0x80; i++, val++) + snd_emu10k1_ptr20_write(emu, i, ch, *val); +} +#endif -- cgit v1.2.3-70-g09d2 From b1e9ed26a9e472548a63a59014708fdae013b7a3 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:14:33 +0100 Subject: [ALSA] fm801 - Add PM support Modules: FM801 driver Add PM support to fm801 driver. Signed-off-by: Takashi Iwai --- sound/pci/fm801.c | 245 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 158 insertions(+), 87 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index a57aca72e91..6ab4aefbccf 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c @@ -103,7 +103,11 @@ MODULE_PARM_DESC(tea575x_tuner, "Enable TEA575x tuner."); #define FM801_OPL3_DATA1 0x6b /* OPL3 Bank 1 Write */ #define FM801_POWERDOWN 0x70 /* Blocks Power Down Control */ -#define FM801_AC97_ADDR_SHIFT 10 +/* codec access */ +#define FM801_AC97_READ (1<<7) /* read=1, write=0 */ +#define FM801_AC97_VALID (1<<8) /* port valid=1 */ +#define FM801_AC97_BUSY (1<<9) /* busy=1 */ +#define FM801_AC97_ADDR_SHIFT 10 /* codec id (2bit) */ /* playback and record control register bits */ #define FM801_BUF1_LAST (1<<1) @@ -189,6 +193,10 @@ struct fm801 { #ifdef TEA575X_RADIO struct snd_tea575x tea; #endif + +#ifdef CONFIG_PM + u16 saved_regs[0x20]; +#endif }; static struct pci_device_id snd_fm801_ids[] = { @@ -231,7 +239,7 @@ static void snd_fm801_codec_write(struct snd_ac97 *ac97, * Wait until the codec interface is not ready.. */ for (idx = 0; idx < 100; idx++) { - if (!(inw(FM801_REG(chip, AC97_CMD)) & (1<<9))) + if (!(inw(FM801_REG(chip, AC97_CMD)) & FM801_AC97_BUSY)) goto ok1; udelay(10); } @@ -246,7 +254,7 @@ static void snd_fm801_codec_write(struct snd_ac97 *ac97, * Wait until the write command is not completed.. */ for (idx = 0; idx < 1000; idx++) { - if (!(inw(FM801_REG(chip, AC97_CMD)) & (1<<9))) + if (!(inw(FM801_REG(chip, AC97_CMD)) & FM801_AC97_BUSY)) return; udelay(10); } @@ -262,7 +270,7 @@ static unsigned short snd_fm801_codec_read(struct snd_ac97 *ac97, unsigned short * Wait until the codec interface is not ready.. */ for (idx = 0; idx < 100; idx++) { - if (!(inw(FM801_REG(chip, AC97_CMD)) & (1<<9))) + if (!(inw(FM801_REG(chip, AC97_CMD)) & FM801_AC97_BUSY)) goto ok1; udelay(10); } @@ -271,9 +279,10 @@ static unsigned short snd_fm801_codec_read(struct snd_ac97 *ac97, unsigned short ok1: /* read command */ - outw(reg | (ac97->addr << FM801_AC97_ADDR_SHIFT) | (1<<7), FM801_REG(chip, AC97_CMD)); + outw(reg | (ac97->addr << FM801_AC97_ADDR_SHIFT) | FM801_AC97_READ, + FM801_REG(chip, AC97_CMD)); for (idx = 0; idx < 100; idx++) { - if (!(inw(FM801_REG(chip, AC97_CMD)) & (1<<9))) + if (!(inw(FM801_REG(chip, AC97_CMD)) & FM801_AC97_BUSY)) goto ok2; udelay(10); } @@ -282,7 +291,7 @@ static unsigned short snd_fm801_codec_read(struct snd_ac97 *ac97, unsigned short ok2: for (idx = 0; idx < 1000; idx++) { - if (inw(FM801_REG(chip, AC97_CMD)) & (1<<8)) + if (inw(FM801_REG(chip, AC97_CMD)) & FM801_AC97_VALID) goto ok3; udelay(10); } @@ -354,9 +363,11 @@ static int snd_fm801_playback_trigger(struct snd_pcm_substream *substream, chip->ply_ctrl &= ~(FM801_START | FM801_PAUSE); break; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_SUSPEND: chip->ply_ctrl |= FM801_PAUSE; break; case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: chip->ply_ctrl &= ~FM801_PAUSE; break; default: @@ -387,9 +398,11 @@ static int snd_fm801_capture_trigger(struct snd_pcm_substream *substream, chip->cap_ctrl &= ~(FM801_START | FM801_PAUSE); break; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_SUSPEND: chip->cap_ctrl |= FM801_PAUSE; break; case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: chip->cap_ctrl &= ~FM801_PAUSE; break; default: @@ -557,7 +570,7 @@ static struct snd_pcm_hardware snd_fm801_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | - SNDRV_PCM_INFO_PAUSE | + SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000, @@ -577,7 +590,7 @@ static struct snd_pcm_hardware snd_fm801_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | - SNDRV_PCM_INFO_PAUSE | + SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000, @@ -1218,6 +1231,85 @@ static int __devinit snd_fm801_mixer(struct fm801 *chip) * initialization routines */ +static int wait_for_codec(struct fm801 *chip, unsigned int codec_id, + unsigned short reg, unsigned long waits) +{ + unsigned long timeout = jiffies + waits; + + outw(FM801_AC97_READ | (codec_id << FM801_AC97_ADDR_SHIFT) | reg, + FM801_REG(chip, AC97_CMD)); + udelay(5); + do { + if ((inw(FM801_REG(chip, AC97_CMD)) & (FM801_AC97_VALID|FM801_AC97_BUSY)) + == FM801_AC97_VALID) + return 0; + schedule_timeout_uninterruptible(1); + } while (time_after(timeout, jiffies)); + return -EIO; +} + +static int snd_fm801_chip_init(struct fm801 *chip, int resume) +{ + int id; + unsigned short cmdw; + + /* codec cold reset + AC'97 warm reset */ + outw((1<<5) | (1<<6), FM801_REG(chip, CODEC_CTRL)); + inw(FM801_REG(chip, CODEC_CTRL)); /* flush posting data */ + udelay(100); + outw(0, FM801_REG(chip, CODEC_CTRL)); + + if (wait_for_codec(chip, 0, AC97_RESET, msecs_to_jiffies(750)) < 0) { + snd_printk(KERN_ERR "Primary AC'97 codec not found\n"); + if (! resume) + return -EIO; + } + + if (chip->multichannel) { + if (chip->secondary_addr) { + wait_for_codec(chip, chip->secondary_addr, + AC97_VENDOR_ID1, msecs_to_jiffies(50)); + } else { + /* my card has the secondary codec */ + /* at address #3, so the loop is inverted */ + for (id = 3; id > 0; id--) { + if (! wait_for_codec(chip, id, AC97_VENDOR_ID1, + msecs_to_jiffies(50))) { + cmdw = inw(FM801_REG(chip, AC97_DATA)); + if (cmdw != 0xffff && cmdw != 0) { + chip->secondary = 1; + chip->secondary_addr = id; + break; + } + } + } + } + + /* the recovery phase, it seems that probing for non-existing codec might */ + /* cause timeout problems */ + wait_for_codec(chip, 0, AC97_VENDOR_ID1, msecs_to_jiffies(750)); + } + + /* init volume */ + outw(0x0808, FM801_REG(chip, PCM_VOL)); + outw(0x9f1f, FM801_REG(chip, FM_VOL)); + outw(0x8808, FM801_REG(chip, I2S_VOL)); + + /* I2S control - I2S mode */ + outw(0x0003, FM801_REG(chip, I2S_MODE)); + + /* interrupt setup - unmask MPU, PLAYBACK & CAPTURE */ + cmdw = inw(FM801_REG(chip, IRQ_MASK)); + cmdw &= ~0x0083; + outw(cmdw, FM801_REG(chip, IRQ_MASK)); + + /* interrupt clear */ + outw(FM801_IRQ_PLAYBACK|FM801_IRQ_CAPTURE|FM801_IRQ_MPU, FM801_REG(chip, IRQ_STATUS)); + + return 0; +} + + static int snd_fm801_free(struct fm801 *chip) { unsigned short cmdw; @@ -1255,9 +1347,7 @@ static int __devinit snd_fm801_create(struct snd_card *card, struct fm801 ** rchip) { struct fm801 *chip; - unsigned char rev, id; - unsigned short cmdw; - unsigned long timeout; + unsigned char rev; int err; static struct snd_device_ops ops = { .dev_free = snd_fm801_dev_free, @@ -1294,81 +1384,7 @@ static int __devinit snd_fm801_create(struct snd_card *card, if (rev >= 0xb1) /* FM801-AU */ chip->multichannel = 1; - /* codec cold reset + AC'97 warm reset */ - outw((1<<5)|(1<<6), FM801_REG(chip, CODEC_CTRL)); - inw(FM801_REG(chip, CODEC_CTRL)); /* flush posting data */ - udelay(100); - outw(0, FM801_REG(chip, CODEC_CTRL)); - - timeout = (jiffies + (3 * HZ) / 4) + 1; /* min 750ms */ - - outw((1<<7) | (0 << FM801_AC97_ADDR_SHIFT), FM801_REG(chip, AC97_CMD)); - udelay(5); - do { - if ((inw(FM801_REG(chip, AC97_CMD)) & (3<<8)) == (1<<8)) - goto __ac97_secondary; - schedule_timeout_uninterruptible(1); - } while (time_after(timeout, jiffies)); - snd_printk(KERN_ERR "Primary AC'97 codec not found\n"); - snd_fm801_free(chip); - return -EIO; - - __ac97_secondary: - if (!chip->multichannel) /* lookup is not required */ - goto __ac97_ok; - for (id = 3; id > 0; id--) { /* my card has the secondary codec */ - /* at address #3, so the loop is inverted */ - - timeout = jiffies + HZ / 20; - - outw((1<<7) | (id << FM801_AC97_ADDR_SHIFT) | AC97_VENDOR_ID1, - FM801_REG(chip, AC97_CMD)); - udelay(5); - do { - if ((inw(FM801_REG(chip, AC97_CMD)) & (3<<8)) == (1<<8)) { - cmdw = inw(FM801_REG(chip, AC97_DATA)); - if (cmdw != 0xffff && cmdw != 0) { - chip->secondary = 1; - chip->secondary_addr = id; - goto __ac97_ok; - } - } - schedule_timeout_uninterruptible(1); - } while (time_after(timeout, jiffies)); - } - - /* the recovery phase, it seems that probing for non-existing codec might */ - /* cause timeout problems */ - timeout = (jiffies + (3 * HZ) / 4) + 1; /* min 750ms */ - - outw((1<<7) | (0 << FM801_AC97_ADDR_SHIFT), FM801_REG(chip, AC97_CMD)); - udelay(5); - do { - if ((inw(FM801_REG(chip, AC97_CMD)) & (3<<8)) == (1<<8)) - goto __ac97_ok; - schedule_timeout_uninterruptible(1); - } while (time_after(timeout, jiffies)); - snd_printk(KERN_ERR "Primary AC'97 codec not responding\n"); - snd_fm801_free(chip); - return -EIO; - - __ac97_ok: - - /* init volume */ - outw(0x0808, FM801_REG(chip, PCM_VOL)); - outw(0x9f1f, FM801_REG(chip, FM_VOL)); - outw(0x8808, FM801_REG(chip, I2S_VOL)); - - /* I2S control - I2S mode */ - outw(0x0003, FM801_REG(chip, I2S_MODE)); - - /* interrupt setup - unmask MPU, PLAYBACK & CAPTURE */ - cmdw = inw(FM801_REG(chip, IRQ_MASK)); - cmdw &= ~0x0083; - outw(cmdw, FM801_REG(chip, IRQ_MASK)); - - /* interrupt clear */ - outw(FM801_IRQ_PLAYBACK|FM801_IRQ_CAPTURE|FM801_IRQ_MPU, FM801_REG(chip, IRQ_STATUS)); + snd_fm801_chip_init(chip, 0); if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { snd_fm801_free(chip); @@ -1415,6 +1431,7 @@ static int __devinit snd_card_fm801_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = chip; strcpy(card->driver, "FM801"); strcpy(card->shortname, "ForteMedia FM801-"); @@ -1462,11 +1479,65 @@ static void __devexit snd_card_fm801_remove(struct pci_dev *pci) pci_set_drvdata(pci, NULL); } +#ifdef CONFIG_PM +static unsigned char saved_regs[] = { + FM801_PCM_VOL, FM801_I2S_VOL, FM801_FM_VOL, FM801_REC_SRC, + FM801_PLY_CTRL, FM801_PLY_COUNT, FM801_PLY_BUF1, FM801_PLY_BUF2, + FM801_CAP_CTRL, FM801_CAP_COUNT, FM801_CAP_BUF1, FM801_CAP_BUF2, + FM801_CODEC_CTRL, FM801_I2S_MODE, FM801_VOLUME, FM801_GEN_CTRL, +}; + +static int snd_fm801_suspend(struct pci_dev *pci, pm_message_t state) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct fm801 *chip = card->private_data; + int i; + + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); + snd_pcm_suspend_all(chip->pcm); + snd_ac97_suspend(chip->ac97); + snd_ac97_suspend(chip->ac97_sec); + for (i = 0; i < ARRAY_SIZE(saved_regs); i++) + chip->saved_regs[i] = inw(chip->port + saved_regs[i]); + /* FIXME: tea575x suspend */ + + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); + return 0; +} + +static int snd_fm801_resume(struct pci_dev *pci) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct fm801 *chip = card->private_data; + int i; + + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); + + snd_fm801_chip_init(chip, 1); + snd_ac97_resume(chip->ac97); + snd_ac97_resume(chip->ac97_sec); + for (i = 0; i < ARRAY_SIZE(saved_regs); i++) + outw(chip->saved_regs[i], chip->port + saved_regs[i]); + + snd_power_change_state(card, SNDRV_CTL_POWER_D0); + return 0; +} +#endif + static struct pci_driver driver = { .name = "FM801", .id_table = snd_fm801_ids, .probe = snd_card_fm801_probe, .remove = __devexit_p(snd_card_fm801_remove), +#ifdef CONFIG_PM + .suspend = snd_fm801_suspend, + .resume = snd_fm801_resume, +#endif }; static int __init alsa_card_fm801_init(void) -- cgit v1.2.3-70-g09d2 From cb60e5f5b2b19284479825cdaa6dd6b7078cf5d2 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:14:49 +0100 Subject: [ALSA] cmipci - Add PM support Modules: CMIPCI driver Add PM support to CMIPCI driver. Signed-off-by: Takashi Iwai --- sound/pci/cmipci.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 98 insertions(+), 6 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index ce156ca5bc6..c03b0a0a3b2 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c @@ -269,6 +269,7 @@ MODULE_PARM_DESC(joystick_port, "Joystick port address."); #define CM_MICGAINZ 0x01 /* mic boost */ #define CM_MICGAINZ_SHIFT 0 +#define CM_REG_MIXER3 0x24 #define CM_REG_AUX_VOL 0x26 #define CM_VAUXL_MASK 0xf0 #define CM_VAUXR_MASK 0x0f @@ -324,6 +325,7 @@ MODULE_PARM_DESC(joystick_port, "Joystick port address."); #define CM_REG_CH0_FRAME2 0x84 #define CM_REG_CH1_FRAME1 0x88 /* 0-15: count of samples at bus master; buffer size */ #define CM_REG_CH1_FRAME2 0x8C /* 16-31: count of samples at codec; fragment size */ +#define CM_REG_EXT_MISC 0x90 #define CM_REG_MISC_CTRL_8768 0x92 /* reg. name the same as 0x18 */ #define CM_CHB3D8C 0x20 /* 7.1 channels support */ #define CM_SPD32FMT 0x10 /* SPDIF/IN 32k */ @@ -453,6 +455,11 @@ struct cmipci { #endif spinlock_t reg_lock; + +#ifdef CONFIG_PM + unsigned int saved_regs[0x20]; + unsigned char saved_mixers[0x20]; +#endif }; @@ -849,10 +856,12 @@ static int snd_cmipci_pcm_trigger(struct cmipci *cm, struct cmipci_pcm *rec, snd_cmipci_write(cm, CM_REG_FUNCTRL0, cm->ctrl & ~reset); break; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_SUSPEND: cm->ctrl |= pause; snd_cmipci_write(cm, CM_REG_FUNCTRL0, cm->ctrl); break; case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: cm->ctrl &= ~pause; snd_cmipci_write(cm, CM_REG_FUNCTRL0, cm->ctrl); break; @@ -1325,7 +1334,7 @@ static struct snd_pcm_hardware snd_cmipci_playback = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | - SNDRV_PCM_INFO_MMAP_VALID), + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000, .rate_min = 5512, @@ -1345,7 +1354,7 @@ static struct snd_pcm_hardware snd_cmipci_capture = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | - SNDRV_PCM_INFO_MMAP_VALID), + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000, .rate_min = 5512, @@ -1365,7 +1374,7 @@ static struct snd_pcm_hardware snd_cmipci_playback2 = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | - SNDRV_PCM_INFO_MMAP_VALID), + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000, .rate_min = 5512, @@ -1385,7 +1394,7 @@ static struct snd_pcm_hardware snd_cmipci_playback_spdif = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | - SNDRV_PCM_INFO_MMAP_VALID), + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000, .rate_min = 44100, @@ -1405,7 +1414,7 @@ static struct snd_pcm_hardware snd_cmipci_playback_iec958_subframe = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | - SNDRV_PCM_INFO_MMAP_VALID), + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, .rates = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000, .rate_min = 44100, @@ -1425,7 +1434,7 @@ static struct snd_pcm_hardware snd_cmipci_capture_spdif = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE | - SNDRV_PCM_INFO_MMAP_VALID), + SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID), .formats = SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000, .rate_min = 44100, @@ -3038,6 +3047,7 @@ static int __devinit snd_cmipci_probe(struct pci_dev *pci, snd_card_free(card); return err; } + card->private_data = cm; sprintf(card->shortname, "C-Media PCI %s", card->driver); sprintf(card->longname, "%s (model %d) at 0x%lx, irq %i", @@ -3065,11 +3075,93 @@ static void __devexit snd_cmipci_remove(struct pci_dev *pci) } +#ifdef CONFIG_PM +/* + * power management + */ +static unsigned char saved_regs[] = { + CM_REG_FUNCTRL1, CM_REG_CHFORMAT, CM_REG_LEGACY_CTRL, CM_REG_MISC_CTRL, + CM_REG_MIXER0, CM_REG_MIXER1, CM_REG_MIXER2, CM_REG_MIXER3, CM_REG_PLL, + CM_REG_CH0_FRAME1, CM_REG_CH0_FRAME2, + CM_REG_CH1_FRAME1, CM_REG_CH1_FRAME2, CM_REG_EXT_MISC, + CM_REG_INT_STATUS, CM_REG_INT_HLDCLR, CM_REG_FUNCTRL0, +}; + +static unsigned char saved_mixers[] = { + SB_DSP4_MASTER_DEV, SB_DSP4_MASTER_DEV + 1, + SB_DSP4_PCM_DEV, SB_DSP4_PCM_DEV + 1, + SB_DSP4_SYNTH_DEV, SB_DSP4_SYNTH_DEV + 1, + SB_DSP4_CD_DEV, SB_DSP4_CD_DEV + 1, + SB_DSP4_LINE_DEV, SB_DSP4_LINE_DEV + 1, + SB_DSP4_MIC_DEV, SB_DSP4_SPEAKER_DEV, + CM_REG_EXTENT_IND, SB_DSP4_OUTPUT_SW, + SB_DSP4_INPUT_LEFT, SB_DSP4_INPUT_RIGHT, +}; + +static int snd_cmipci_suspend(struct pci_dev *pci, pm_message_t state) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct cmipci *cm = card->private_data; + int i; + + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); + + snd_pcm_suspend_all(cm->pcm); + snd_pcm_suspend_all(cm->pcm2); + snd_pcm_suspend_all(cm->pcm_spdif); + + /* save registers */ + for (i = 0; i < ARRAY_SIZE(saved_regs); i++) + cm->saved_regs[i] = snd_cmipci_read(cm, saved_regs[i]); + for (i = 0; i < ARRAY_SIZE(saved_mixers); i++) + cm->saved_mixers[i] = snd_cmipci_mixer_read(cm, saved_mixers[i]); + + /* disable ints */ + snd_cmipci_write(cm, CM_REG_INT_HLDCLR, 0); + + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); + return 0; +} + +static int snd_cmipci_resume(struct pci_dev *pci) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct cmipci *cm = card->private_data; + int i; + + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); + + /* reset / initialize to a sane state */ + snd_cmipci_write(cm, CM_REG_INT_HLDCLR, 0); + snd_cmipci_ch_reset(cm, CM_CH_PLAY); + snd_cmipci_ch_reset(cm, CM_CH_CAPT); + snd_cmipci_mixer_write(cm, 0, 0); + + /* restore registers */ + for (i = 0; i < ARRAY_SIZE(saved_regs); i++) + snd_cmipci_write(cm, saved_regs[i], cm->saved_regs[i]); + for (i = 0; i < ARRAY_SIZE(saved_mixers); i++) + snd_cmipci_mixer_write(cm, saved_mixers[i], cm->saved_mixers[i]); + + snd_power_change_state(card, SNDRV_CTL_POWER_D0); + return 0; +} +#endif /* CONFIG_PM */ + static struct pci_driver driver = { .name = "C-Media PCI", .id_table = snd_cmipci_ids, .probe = snd_cmipci_probe, .remove = __devexit_p(snd_cmipci_remove), +#ifdef CONFIG_PM + .suspend = snd_cmipci_suspend, + .resume = snd_cmipci_resume, +#endif }; static int __init alsa_card_cmipci_init(void) -- cgit v1.2.3-70-g09d2 From 703529140cfb774366b839f38f027f283cb948b4 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 16:16:36 +0100 Subject: [ALSA] als4000 - Add PM support Modules: ALS4000 driver Add PM support to PCI ALS4000 driver. Signed-off-by: Takashi Iwai --- sound/pci/als4000.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 69 insertions(+), 7 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c index 8d0d9c0222c..7b2ff5f4672 100644 --- a/sound/pci/als4000.c +++ b/sound/pci/als4000.c @@ -109,6 +109,7 @@ struct snd_card_als4000 { /* most frequent access first */ unsigned long gcr; struct pci_dev *pci; + struct snd_sb *chip; #ifdef SUPPORT_JOYSTICK struct gameport *gameport; #endif @@ -305,14 +306,20 @@ static int snd_als4000_capture_trigger(struct snd_pcm_substream *substream, int int result = 0; spin_lock(&chip->mixer_lock); - if (cmd == SNDRV_PCM_TRIGGER_START) { + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: chip->mode |= SB_RATE_LOCK_CAPTURE; snd_sbmixer_write(chip, 0xde, capture_cmd(chip)); - } else if (cmd == SNDRV_PCM_TRIGGER_STOP) { + break; + case SNDRV_PCM_TRIGGER_STOP: + case SNDRV_PCM_TRIGGER_SUSPEND: chip->mode &= ~SB_RATE_LOCK_CAPTURE; snd_sbmixer_write(chip, 0xde, 0); - } else { + break; + default: result = -EINVAL; + break; } spin_unlock(&chip->mixer_lock); return result; @@ -324,14 +331,20 @@ static int snd_als4000_playback_trigger(struct snd_pcm_substream *substream, int int result = 0; spin_lock(&chip->reg_lock); - if (cmd == SNDRV_PCM_TRIGGER_START) { + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: chip->mode |= SB_RATE_LOCK_PLAYBACK; snd_sbdsp_command(chip, playback_cmd(chip).dma_on); - } else if (cmd == SNDRV_PCM_TRIGGER_STOP) { + break; + case SNDRV_PCM_TRIGGER_STOP: + case SNDRV_PCM_TRIGGER_SUSPEND: snd_sbdsp_command(chip, playback_cmd(chip).dma_off); chip->mode &= ~SB_RATE_LOCK_PLAYBACK; - } else { + break; + default: result = -EINVAL; + break; } spin_unlock(&chip->reg_lock); return result; @@ -551,7 +564,7 @@ static void snd_als4000_set_addr(unsigned long gcr, snd_als4000_gcr_write_addr(gcr, 0xa9, confB); } -static void __devinit snd_als4000_configure(struct snd_sb *chip) +static void snd_als4000_configure(struct snd_sb *chip) { unsigned tmp; int i; @@ -718,6 +731,7 @@ static int __devinit snd_card_als4000_probe(struct pci_dev *pci, &chip)) < 0) { goto out_err; } + acard->chip = chip; chip->pci = pci; chip->alt_port = gcr; @@ -777,11 +791,59 @@ static void __devexit snd_card_als4000_remove(struct pci_dev *pci) pci_set_drvdata(pci, NULL); } +#ifdef CONFIG_PM +static int snd_als4000_suspend(struct pci_dev *pci, pm_message_t state) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct snd_card_als4000 *acard = card->private_data; + struct snd_sb *chip = acard->chip; + + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); + + snd_pcm_suspend_all(chip->pcm); + snd_sbmixer_suspend(chip); + + pci_set_power_state(pci, PCI_D3hot); + pci_disable_device(pci); + pci_save_state(pci); + return 0; +} + +static int snd_als4000_resume(struct pci_dev *pci) +{ + struct snd_card *card = pci_get_drvdata(pci); + struct snd_card_als4000 *acard = card->private_data; + struct snd_sb *chip = acard->chip; + + pci_restore_state(pci); + pci_enable_device(pci); + pci_set_power_state(pci, PCI_D0); + pci_set_master(pci); + + snd_als4000_configure(chip); + snd_sbdsp_reset(chip); + snd_sbmixer_resume(chip); + +#ifdef SUPPORT_JOYSTICK + if (acard->gameport) + snd_als4000_set_addr(acard->gcr, 0, 0, 0, 1); +#endif + + snd_power_change_state(card, SNDRV_CTL_POWER_D0); + return 0; +} +#endif + + static struct pci_driver driver = { .name = "ALS4000", .id_table = snd_als4000_ids, .probe = snd_card_als4000_probe, .remove = __devexit_p(snd_card_als4000_remove), +#ifdef CONFIG_PM + .suspend = snd_als4000_suspend, + .resume = snd_als4000_resume, +#endif }; static int __init alsa_card_als4000_init(void) -- cgit v1.2.3-70-g09d2 From 2eb061f41cf74f829bfe90a9c79c765172be9f0b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 18 Nov 2005 07:44:13 +0100 Subject: [ALSA] intel8x0 - Added swap_hp quirk for Fujitsu-Siemens Celsius H320 [0x10cf:0x12f2] Modules: Intel8x0 driver Signed-off-by: Jaroslav Kysela --- sound/pci/intel8x0.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index c5c4ec64a15..5bbc8a04753 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -1911,6 +1911,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { .name = "Fujitsu-Siemens 4010", .type = AC97_TUNE_HP_ONLY }, + { + .subvendor = 0x10cf, + .subdevice = 0x12f2, + .name = "Fujitsu-Siemens Celsius H320", + .type = AC97_TUNE_SWAP_HP + }, { .subvendor = 0x10f1, .subdevice = 0x2665, -- cgit v1.2.3-70-g09d2 From b32425ac93370e1ba5556110e662f896b2e143b3 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 18 Nov 2005 18:52:14 +0100 Subject: [ALSA] Fix possible races in timer callbacks Fix possible races in timer callbacks. Signed-off-by: Takashi Iwai --- sound/core/timer.c | 5 +++-- sound/drivers/dummy.c | 10 +++++----- sound/drivers/mpu401/mpu401_uart.c | 5 +++-- sound/drivers/opl3/opl3_midi.c | 5 +++-- sound/pci/korg1212/korg1212.c | 5 +++-- sound/synth/emux/emux_synth.c | 5 +++-- 6 files changed, 20 insertions(+), 15 deletions(-) (limited to 'sound/pci') diff --git a/sound/core/timer.c b/sound/core/timer.c index 74637cef6d2..6aad411dd7b 100644 --- a/sound/core/timer.c +++ b/sound/core/timer.c @@ -662,12 +662,13 @@ void snd_timer_interrupt(struct snd_timer * timer, unsigned long ticks_left) struct snd_timer_instance *ti, *ts; unsigned long resolution, ticks; struct list_head *p, *q, *n, *ack_list_head; + unsigned long flags; int use_tasklet = 0; if (timer == NULL) return; - spin_lock(&timer->lock); + spin_lock_irqsave(&timer->lock, flags); /* remember the current resolution */ if (timer->hw.c_resolution) @@ -752,7 +753,7 @@ void snd_timer_interrupt(struct snd_timer * timer, unsigned long ticks_left) /* do we have any slow callbacks? */ use_tasklet = !list_empty(&timer->sack_list_head); - spin_unlock(&timer->lock); + spin_unlock_irqrestore(&timer->lock, flags); if (use_tasklet) tasklet_hi_schedule(&timer->task_queue); diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c index a276f7c8036..18611757174 100644 --- a/sound/drivers/dummy.c +++ b/sound/drivers/dummy.c @@ -231,8 +231,9 @@ static int snd_card_dummy_pcm_prepare(struct snd_pcm_substream *substream) static void snd_card_dummy_pcm_timer_function(unsigned long data) { struct snd_dummy_pcm *dpcm = (struct snd_dummy_pcm *)data; + unsigned long flags; - spin_lock(&dpcm->lock); + spin_lock_irqsave(&dpcm->lock, flags); dpcm->timer.expires = 1 + jiffies; add_timer(&dpcm->timer); dpcm->pcm_irq_pos += dpcm->pcm_jiffie; @@ -240,11 +241,10 @@ static void snd_card_dummy_pcm_timer_function(unsigned long data) dpcm->pcm_buf_pos %= dpcm->pcm_size; if (dpcm->pcm_irq_pos >= dpcm->pcm_count) { dpcm->pcm_irq_pos %= dpcm->pcm_count; - spin_unlock(&dpcm->lock); + spin_unlock_irqrestore(&dpcm->lock, flags); snd_pcm_period_elapsed(dpcm->substream); - spin_lock(&dpcm->lock); - } - spin_unlock(&dpcm->lock); + } else + spin_unlock_irqrestore(&dpcm->lock, flags); } static snd_pcm_uframes_t snd_card_dummy_pcm_pointer(struct snd_pcm_substream *substream) diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c index ee67b522d25..8687ae3c66b 100644 --- a/sound/drivers/mpu401/mpu401_uart.c +++ b/sound/drivers/mpu401/mpu401_uart.c @@ -133,12 +133,13 @@ irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id, struct pt_regs *reg static void snd_mpu401_uart_timer(unsigned long data) { struct snd_mpu401 *mpu = (struct snd_mpu401 *)data; + unsigned long flags; - spin_lock(&mpu->timer_lock); + spin_lock_irqsave(&mpu->timer_lock, flags); /*mpu->mode |= MPU401_MODE_TIMER;*/ mpu->timer.expires = 1 + jiffies; add_timer(&mpu->timer); - spin_unlock(&mpu->timer_lock); + spin_unlock_irqrestore(&mpu->timer_lock, flags); if (mpu->rmidi) _snd_mpu401_uart_interrupt(mpu); } diff --git a/sound/drivers/opl3/opl3_midi.c b/sound/drivers/opl3/opl3_midi.c index 48c480e050c..1b6f227af37 100644 --- a/sound/drivers/opl3/opl3_midi.c +++ b/sound/drivers/opl3/opl3_midi.c @@ -238,10 +238,11 @@ void snd_opl3_timer_func(unsigned long data) { struct snd_opl3 *opl3 = (struct snd_opl3 *)data; + unsigned long flags; int again = 0; int i; - spin_lock(&opl3->sys_timer_lock); + spin_lock_irqsave(&opl3->sys_timer_lock, flags); for (i = 0; i < opl3->max_voices; i++) { struct snd_opl3_voice *vp = &opl3->voices[i]; if (vp->state > 0 && vp->note_off_check) { @@ -257,7 +258,7 @@ void snd_opl3_timer_func(unsigned long data) } else { opl3->sys_timer_status = 0; } - spin_unlock(&opl3->sys_timer_lock); + spin_unlock_irqrestore(&opl3->sys_timer_lock, flags); } /* diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c index a8a6a5c41a7..4eddb512c12 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c @@ -609,8 +609,9 @@ static void snd_korg1212_SendStopAndWait(struct snd_korg1212 *korg1212) static void snd_korg1212_timer_func(unsigned long data) { struct snd_korg1212 *korg1212 = (struct snd_korg1212 *) data; + unsigned long flags; - spin_lock(&korg1212->lock); + spin_lock_irqsave(&korg1212->lock, flags); if (korg1212->sharedBufferPtr->cardCommand == 0) { /* ack'ed */ korg1212->stop_pending_cnt = 0; @@ -632,7 +633,7 @@ static void snd_korg1212_timer_func(unsigned long data) stateName[korg1212->cardState]); } } - spin_unlock(&korg1212->lock); + spin_unlock_irqrestore(&korg1212->lock, flags); } static int snd_korg1212_TurnOnIdleMonitor(struct snd_korg1212 *korg1212) diff --git a/sound/synth/emux/emux_synth.c b/sound/synth/emux/emux_synth.c index c387a83a655..24705d15ebd 100644 --- a/sound/synth/emux/emux_synth.c +++ b/sound/synth/emux/emux_synth.c @@ -205,9 +205,10 @@ void snd_emux_timer_callback(unsigned long data) { struct snd_emux *emu = (struct snd_emux *) data; struct snd_emux_voice *vp; + unsigned long flags; int ch, do_again = 0; - spin_lock(&emu->voice_lock); + spin_lock_irqsave(&emu->voice_lock, flags); for (ch = 0; ch < emu->max_voices; ch++) { vp = &emu->voices[ch]; if (vp->state == SNDRV_EMUX_ST_PENDING) { @@ -225,7 +226,7 @@ void snd_emux_timer_callback(unsigned long data) emu->timer_active = 1; } else emu->timer_active = 0; - spin_unlock(&emu->voice_lock); + spin_unlock_irqrestore(&emu->voice_lock, flags); } /* -- cgit v1.2.3-70-g09d2 From ac09a9251d3b7678150ee512de8de1bd98628d11 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Sun, 20 Nov 2005 13:58:28 +0100 Subject: [ALSA] cs5535audio: move sound/driver.h to the top Modules: CS5535 driver Move the #include of to the top which is required for compilation on earlier kernels. Signed-off-by: Clemens Ladisch --- sound/pci/cs5535audio/cs5535audio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c index 189935659a9..202c7cf3e32 100644 --- a/sound/pci/cs5535audio/cs5535audio.c +++ b/sound/pci/cs5535audio/cs5535audio.c @@ -21,6 +21,7 @@ * */ +#include #include #include #include @@ -28,7 +29,6 @@ #include #include #include -#include #include #include #include -- cgit v1.2.3-70-g09d2 From 54d174031576a2855c49611d83d4946bde81b504 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 21 Nov 2005 16:33:22 +0100 Subject: [ALSA] hda-codec - Fix connection list parsing Modules: HDA Codec driver,HDA generic driver - Fix connection list parsing (with ranged flag). - Increase the max number of connections - Introduce widget capabilities cache - Power up/down widgets at init, suspend and resume Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 155 ++++++++++++++++++++++++++++++----------- sound/pci/hda/hda_codec.h | 13 +++- sound/pci/hda/hda_local.h | 14 +++- sound/pci/hda/patch_realtek.c | 3 +- sound/pci/hda/patch_sigmatel.c | 25 +------ 5 files changed, 140 insertions(+), 70 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 7f4e19951ba..402ce00c6a1 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -155,8 +155,9 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid, hda_nid_t *conn_list, int max_conns) { unsigned int parm; - int i, j, conn_len, num_tupples, conns; + int i, conn_len, conns; unsigned int shift, num_elems, mask; + hda_nid_t prev_nid; snd_assert(conn_list && max_conns > 0, return -EINVAL); @@ -171,7 +172,6 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid, num_elems = 4; } conn_len = parm & AC_CLIST_LENGTH; - num_tupples = num_elems / 2; mask = (1 << (shift-1)) - 1; if (! conn_len) @@ -186,40 +186,38 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid, /* multi connection */ conns = 0; - for (i = 0; i < conn_len; i += num_elems) { - parm = snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_CONNECT_LIST, i); - for (j = 0; j < num_tupples; j++) { - int range_val; - hda_nid_t val1, val2, n; - range_val = parm & (1 << (shift-1)); /* ranges */ - val1 = parm & mask; - parm >>= shift; - val2 = parm & mask; - parm >>= shift; - if (range_val) { - /* ranges between val1 and val2 */ - if (val1 > val2) { - snd_printk(KERN_WARNING "hda_codec: invalid dep_range_val %x:%x\n", val1, val2); - continue; - } - for (n = val1; n <= val2; n++) { - if (conns >= max_conns) - return -EINVAL; - conn_list[conns++] = n; - } - } else { - if (! val1) - break; - if (conns >= max_conns) - return -EINVAL; - conn_list[conns++] = val1; - if (! val2) - break; - if (conns >= max_conns) + prev_nid = 0; + for (i = 0; i < conn_len; i++) { + int range_val; + hda_nid_t val, n; + + if (i % num_elems == 0) + parm = snd_hda_codec_read(codec, nid, 0, + AC_VERB_GET_CONNECT_LIST, i); + range_val = !! (parm & (1 << (shift-1))); /* ranges */ + val = parm & mask; + parm >>= shift; + if (range_val) { + /* ranges between the previous and this one */ + if (! prev_nid || prev_nid >= val) { + snd_printk(KERN_WARNING "hda_codec: invalid dep_range_val %x:%x\n", prev_nid, val); + continue; + } + for (n = prev_nid + 1; n <= val; n++) { + if (conns >= max_conns) { + snd_printk(KERN_ERR "Too many connections\n"); return -EINVAL; - conn_list[conns++] = val2; + } + conn_list[conns++] = n; } + } else { + if (conns >= max_conns) { + snd_printk(KERN_ERR "Too many connections\n"); + return -EINVAL; + } + conn_list[conns++] = val; } + prev_nid = val; } return conns; } @@ -455,6 +453,27 @@ static void setup_fg_nodes(struct hda_codec *codec) } } +/* + * read widget caps for each widget and store in cache + */ +static int read_widget_caps(struct hda_codec *codec, hda_nid_t fg_node) +{ + int i; + hda_nid_t nid; + + codec->num_nodes = snd_hda_get_sub_nodes(codec, fg_node, + &codec->start_nid); + codec->wcaps = kmalloc(codec->num_nodes * 4, GFP_KERNEL); + if (! codec->wcaps) + return -ENOMEM; + nid = codec->start_nid; + for (i = 0; i < codec->num_nodes; i++, nid++) + codec->wcaps[i] = snd_hda_param_read(codec, nid, + AC_PAR_AUDIO_WIDGET_CAP); + return 0; +} + + /* * codec destructor */ @@ -467,6 +486,7 @@ static void snd_hda_codec_free(struct hda_codec *codec) if (codec->patch_ops.free) codec->patch_ops.free(codec); kfree(codec->amp_info); + kfree(codec->wcaps); kfree(codec); } @@ -520,6 +540,12 @@ int snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr, return -ENODEV; } + if (read_widget_caps(codec, codec->afg ? codec->afg : codec->mfg) < 0) { + snd_printk(KERN_ERR "hda_codec: cannot malloc\n"); + snd_hda_codec_free(codec); + return -ENOMEM; + } + if (! codec->subsystem_id) { hda_nid_t nid = codec->afg ? codec->afg : codec->mfg; codec->subsystem_id = snd_hda_codec_read(codec, nid, 0, @@ -647,7 +673,7 @@ static u32 query_amp_caps(struct hda_codec *codec, hda_nid_t nid, int direction) if (! info) return 0; if (! (info->status & INFO_AMP_CAPS)) { - if (!(snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP) & AC_WCAP_AMP_OVRD)) + if (! (get_wcaps(codec, nid) & AC_WCAP_AMP_OVRD)) nid = codec->afg; info->amp_caps = snd_hda_param_read(codec, nid, direction == HDA_OUTPUT ? AC_PAR_AMP_OUT_CAP : AC_PAR_AMP_IN_CAP); @@ -1195,6 +1221,31 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid) } +/* + * set power state of the codec + */ +static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg, + unsigned int power_state) +{ + hda_nid_t nid, nid_start; + int nodes; + + snd_hda_codec_write(codec, fg, 0, AC_VERB_SET_POWER_STATE, + power_state); + + nodes = snd_hda_get_sub_nodes(codec, fg, &nid_start); + for (nid = nid_start; nid < nodes + nid_start; nid++) { + if (get_wcaps(codec, nid) & AC_WCAP_POWER) + snd_hda_codec_write(codec, nid, 0, + AC_VERB_SET_POWER_STATE, + power_state); + } + + if (power_state == AC_PWRST_D0) + msleep(10); +} + + /** * snd_hda_build_controls - build mixer controls * @bus: the BUS @@ -1222,6 +1273,9 @@ int snd_hda_build_controls(struct hda_bus *bus) list_for_each(p, &bus->codec_list) { struct hda_codec *codec = list_entry(p, struct hda_codec, list); int err; + hda_set_power_state(codec, + codec->afg ? codec->afg : codec->mfg, + AC_PWRST_D0); if (! codec->patch_ops.init) continue; err = codec->patch_ops.init(codec); @@ -1340,7 +1394,7 @@ int snd_hda_query_supported_pcm(struct hda_codec *codec, hda_nid_t nid, val = 0; if (nid != codec->afg && - snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP) & AC_WCAP_FORMAT_OVRD) { + (get_wcaps(codec, nid) & AC_WCAP_FORMAT_OVRD)) { val = snd_hda_param_read(codec, nid, AC_PAR_PCM); if (val == -1) return -EIO; @@ -1362,7 +1416,7 @@ int snd_hda_query_supported_pcm(struct hda_codec *codec, hda_nid_t nid, unsigned int bps; unsigned int wcaps; - wcaps = snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP); + wcaps = get_wcaps(codec, nid); streams = snd_hda_param_read(codec, nid, AC_PAR_STREAM); if (streams == -1) return -EIO; @@ -1432,7 +1486,7 @@ int snd_hda_is_supported_format(struct hda_codec *codec, hda_nid_t nid, unsigned int val = 0, rate, stream; if (nid != codec->afg && - snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP) & AC_WCAP_FORMAT_OVRD) { + (get_wcaps(codec, nid) & AC_WCAP_FORMAT_OVRD)) { val = snd_hda_param_read(codec, nid, AC_PAR_PCM); if (val == -1) return 0; @@ -1658,9 +1712,21 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew) int err; for (; knew->name; knew++) { - err = snd_ctl_add(codec->bus->card, snd_ctl_new1(knew, codec)); - if (err < 0) - return err; + struct snd_kcontrol *kctl; + kctl = snd_ctl_new1(knew, codec); + if (! kctl) + return -ENOMEM; + err = snd_ctl_add(codec->bus->card, kctl); + if (err < 0) { + if (! codec->addr) + return err; + kctl = snd_ctl_new1(knew, codec); + if (! kctl) + return -ENOMEM; + kctl->id.device = codec->addr; + if ((err = snd_ctl_add(codec->bus->card, kctl)) < 0) + return err; + } } return 0; } @@ -1874,8 +1940,7 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *c nodes = snd_hda_get_sub_nodes(codec, codec->afg, &nid_start); for (nid = nid_start; nid < nodes + nid_start; nid++) { - unsigned int wid_caps = snd_hda_param_read(codec, nid, - AC_PAR_AUDIO_WIDGET_CAP); + unsigned int wid_caps = get_wcaps(codec, nid); unsigned int wid_type = (wid_caps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; unsigned int def_conf; short assoc, loc; @@ -1993,6 +2058,9 @@ int snd_hda_suspend(struct hda_bus *bus, pm_message_t state) struct hda_codec *codec = list_entry(p, struct hda_codec, list); if (codec->patch_ops.suspend) codec->patch_ops.suspend(codec, state); + hda_set_power_state(codec, + codec->afg ? codec->afg : codec->mfg, + AC_PWRST_D3); } return 0; } @@ -2010,6 +2078,9 @@ int snd_hda_resume(struct hda_bus *bus) list_for_each(p, &bus->codec_list) { struct hda_codec *codec = list_entry(p, struct hda_codec, list); + hda_set_power_state(codec, + codec->afg ? codec->afg : codec->mfg, + AC_PWRST_D0); if (codec->patch_ops.resume) codec->patch_ops.resume(codec); } diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index 0b5c3678889..63e26c7a2b7 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h @@ -214,6 +214,12 @@ enum { #define AC_PWRST_D2SUP (1<<2) #define AC_PWRST_D3SUP (1<<3) +/* Power state values */ +#define AC_PWRST_D0 0x00 +#define AC_PWRST_D1 0x01 +#define AC_PWRST_D2 0x02 +#define AC_PWRST_D3 0x03 + /* Processing capabilies */ #define AC_PCAP_BENIGN (1<<0) #define AC_PCAP_NUM_COEF (0xff<<8) @@ -376,7 +382,7 @@ enum { }; /* max. connections to a widget */ -#define HDA_MAX_CONNECTIONS 16 +#define HDA_MAX_CONNECTIONS 32 /* max. codec address */ #define HDA_MAX_CODEC_ADDRESS 0x0f @@ -542,6 +548,11 @@ struct hda_codec { /* codec specific info */ void *spec; + /* widget capabilities cache */ + unsigned int num_nodes; + hda_nid_t start_nid; + u32 *wcaps; + /* hash for amp access */ u16 amp_hash[32]; int num_amp_entries; diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index 502290424c6..ded32359b65 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -87,7 +87,7 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid); /* * input MUX helper */ -#define HDA_MAX_NUM_INPUTS 8 +#define HDA_MAX_NUM_INPUTS 16 struct hda_input_mux_item { const char *label; unsigned int index; @@ -243,4 +243,16 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *c #define PIN_HP 0xc0 #define PIN_HP_AMP 0x80 +/* + * get widget capabilities + */ +static inline u32 get_wcaps(struct hda_codec *codec, hda_nid_t nid) +{ + if (nid < codec->start_nid || + nid >= codec->start_nid + codec->num_nodes) + return snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP); + return codec->wcaps[nid - codec->start_nid]; +} + + #endif /* __SOUND_HDA_LOCAL_H */ diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 62e6993056e..77c5f95ea55 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2091,8 +2091,7 @@ static int patch_alc880(struct hda_codec *codec) if (! spec->adc_nids && spec->input_mux) { /* check whether NID 0x07 is valid */ - unsigned int wcap = snd_hda_param_read(codec, alc880_adc_nids[0], - AC_PAR_AUDIO_WIDGET_CAP); + unsigned int wcap = get_wcaps(codec, alc880_adc_nids[0]); wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ if (wcap != AC_WID_AUD_IN) { spec->adc_nids = alc880_adc_nids_alt; diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index d8d68f5b613..c8c539cb4a8 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -624,7 +624,7 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec, struct auto_pin if (! pin) return 0; - wid_caps = snd_hda_param_read(codec, pin, AC_PAR_AUDIO_WIDGET_CAP); + wid_caps = get_wcaps(codec, pin); if (wid_caps & AC_WCAP_UNSOL_CAP) /* Enable unsolicited responses on the HP widget */ snd_hda_codec_write(codec, pin, 0, @@ -786,33 +786,10 @@ static int stac9200_parse_auto_config(struct hda_codec *codec) return 1; } -static int stac92xx_init_pstate(struct hda_codec *codec) -{ - hda_nid_t nid, nid_start; - int nodes; - - snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_POWER_STATE, 0x00); - - nodes = snd_hda_get_sub_nodes(codec, codec->afg, &nid_start); - for (nid = nid_start; nid < nodes + nid_start; nid++) { - unsigned int wid_caps = snd_hda_param_read(codec, nid, - AC_PAR_AUDIO_WIDGET_CAP); - if (wid_caps & AC_WCAP_POWER) - snd_hda_codec_write(codec, nid, 0, - AC_VERB_SET_POWER_STATE, 0x00); - } - - mdelay(100); - - return 0; -} - static int stac92xx_init(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; - stac92xx_init_pstate(codec); - snd_hda_sequence_write(codec, spec->init); stac92xx_auto_init_multi_out(codec); -- cgit v1.2.3-70-g09d2 From d25695056ff2e1e048cfc8d7dbafaf80c3c46d5d Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 21 Nov 2005 16:33:51 +0100 Subject: [ALSA] hda-codec - Allocate connection lists dynamically in generic parser Modules: HDA generic driver Allocate connection lists dynamically in generic parser. Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_generic.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index 863e8c6d29a..39edfcfd3ab 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -32,7 +32,8 @@ struct hda_gnode { hda_nid_t nid; /* NID of this widget */ unsigned short nconns; /* number of input connections */ - hda_nid_t conn_list[HDA_MAX_CONNECTIONS]; /* input connections */ + hda_nid_t *conn_list; + hda_nid_t slist[2]; /* temporay list */ unsigned int wid_caps; /* widget capabilities */ unsigned char type; /* widget type */ unsigned char pin_ctl; /* pin controls */ @@ -84,6 +85,8 @@ static void snd_hda_generic_free(struct hda_codec *codec) /* free all widgets */ list_for_each_safe(p, n, &spec->nid_list) { struct hda_gnode *node = list_entry(p, struct hda_gnode, list); + if (node->conn_list != node->slist) + kfree(node->conn_list); kfree(node); } kfree(spec); @@ -97,18 +100,32 @@ static int add_new_node(struct hda_codec *codec, struct hda_gspec *spec, hda_nid { struct hda_gnode *node; int nconns; + hda_nid_t conn_list[HDA_MAX_CONNECTIONS]; node = kzalloc(sizeof(*node), GFP_KERNEL); if (node == NULL) return -ENOMEM; node->nid = nid; - nconns = snd_hda_get_connections(codec, nid, node->conn_list, HDA_MAX_CONNECTIONS); + nconns = snd_hda_get_connections(codec, nid, conn_list, + HDA_MAX_CONNECTIONS); if (nconns < 0) { kfree(node); return nconns; } + if (nconns <= ARRAY_SIZE(node->slist)) + node->conn_list = node->slist; + else { + node->conn_list = kmalloc(sizeof(hda_nid_t) * nconns, + GFP_KERNEL); + if (! node->conn_list) { + snd_printk(KERN_ERR "hda-generic: cannot malloc\n"); + kfree(node); + return -ENOMEM; + } + } + memcpy(node->conn_list, conn_list, nconns); node->nconns = nconns; - node->wid_caps = snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP); + node->wid_caps = get_wcaps(codec, nid); node->type = (node->wid_caps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; if (node->type == AC_WID_PIN) { -- cgit v1.2.3-70-g09d2 From 2e5b9567f7444673a93cbacdcbeb3feacdb4914f Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 21 Nov 2005 16:36:15 +0100 Subject: [ALSA] hda-codec - Fix AD1988 support Modules: HDA Codec driver Fix AD1988 support. As default, 6stack model is used. Still no auto-BIOS setup is implemented. Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_analog.c | 52 +++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 20 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 25116a883ca..3799d8a1afa 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -50,6 +50,7 @@ struct ad198x_spec { /* capture source */ const struct hda_input_mux *input_mux; + hda_nid_t *capsrc_nids; unsigned int cur_mux[3]; /* channel model */ @@ -91,7 +92,8 @@ static int ad198x_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ele unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); return snd_hda_input_mux_put(codec, spec->input_mux, ucontrol, - spec->adc_nids[adc_idx], &spec->cur_mux[adc_idx]); + spec->capsrc_nids[adc_idx], + &spec->cur_mux[adc_idx]); } /* @@ -536,6 +538,7 @@ static int patch_ad1986a(struct hda_codec *codec) spec->multiout.dig_out_nid = AD1986A_SPDIF_OUT; spec->num_adc_nids = 1; spec->adc_nids = ad1986a_adc_nids; + spec->capsrc_nids = ad1986a_adc_nids; spec->input_mux = &ad1986a_capture_source; spec->num_mixers = 1; spec->mixers[0] = ad1986a_mixers; @@ -699,6 +702,7 @@ static int patch_ad1983(struct hda_codec *codec) spec->multiout.dig_out_nid = AD1983_SPDIF_OUT; spec->num_adc_nids = 1; spec->adc_nids = ad1983_adc_nids; + spec->capsrc_nids = ad1983_adc_nids; spec->input_mux = &ad1983_capture_source; spec->num_mixers = 1; spec->mixers[0] = ad1983_mixers; @@ -844,6 +848,7 @@ static int patch_ad1981(struct hda_codec *codec) spec->multiout.dig_out_nid = AD1981_SPDIF_OUT; spec->num_adc_nids = 1; spec->adc_nids = ad1981_adc_nids; + spec->capsrc_nids = ad1981_adc_nids; spec->input_mux = &ad1981_capture_source; spec->num_mixers = 1; spec->mixers[0] = ad1981_mixers; @@ -968,6 +973,10 @@ static hda_nid_t ad1988_adc_nids[3] = { 0x08, 0x09, 0x0f }; +static hda_nid_t ad1988_capsrc_nids[3] = { + 0x0c, 0x0d, 0x0e +}; + #define AD1988_SPDIF_OUT 0x02 #define AD1988_SPDIF_IN 0x07 @@ -1086,7 +1095,7 @@ static struct snd_kcontrol_new ad1988_6stack_mixers[] = { HDA_CODEC_VOLUME("Beep Playback Volume", 0x10, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Beep Playback Switch", 0x10, 0x0, HDA_OUTPUT), - HDA_CODEC_VOLUME("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Analog Mix Playback Volume", 0x21, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Front Mic Boost", 0x39, 0x0, HDA_OUTPUT), @@ -1121,7 +1130,7 @@ static struct snd_kcontrol_new ad1988_3stack_mixers[] = { HDA_CODEC_VOLUME("Beep Playback Volume", 0x10, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Beep Playback Switch", 0x10, 0x0, HDA_OUTPUT), - HDA_CODEC_VOLUME("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Analog Mix Playback Volume", 0x21, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Front Mic Boost", 0x39, 0x0, HDA_OUTPUT), @@ -1153,7 +1162,7 @@ static struct snd_kcontrol_new ad1988_laptop_mixers[] = { HDA_CODEC_VOLUME("Beep Playback Volume", 0x10, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Beep Playback Switch", 0x10, 0x0, HDA_OUTPUT), - HDA_CODEC_VOLUME("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Analog Mix Playback Volume", 0x21, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Analog Mix Playback Switch", 0x21, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Mic Boost", 0x39, 0x0, HDA_OUTPUT), @@ -1277,11 +1286,11 @@ static struct snd_kcontrol_new ad1988_spdif_in_mixers[] = { * for 6-stack (+dig) */ static struct hda_verb ad1988_6stack_init_verbs[] = { - /* Front, Surround, CLFE, side DAC; mute as default */ - {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + /* Front, Surround, CLFE, side DAC; unmute as default */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Port-A front headphon path */ {0x37, AC_VERB_SET_CONNECT_SEL, 0x01}, /* DAC1:04h */ {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, @@ -1396,11 +1405,11 @@ static struct hda_channel_mode ad1988_3stack_modes[2] = { }; static struct hda_verb ad1988_3stack_init_verbs[] = { - /* Front, Surround, CLFE, side DAC; mute as default */ - {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + /* Front, Surround, CLFE, side DAC; unmute as default */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Port-A front headphon path */ {0x37, AC_VERB_SET_CONNECT_SEL, 0x01}, /* DAC1:04h */ {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, @@ -1471,11 +1480,11 @@ static struct hda_verb ad1988_laptop_hp_off[] = { #define AD1988_HP_EVENT 0x01 static struct hda_verb ad1988_laptop_init_verbs[] = { - /* Front, Surround, CLFE, side DAC; mute as default */ - {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + /* Front, Surround, CLFE, side DAC; unmute as default */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Port-A front headphon path */ {0x37, AC_VERB_SET_CONNECT_SEL, 0x01}, /* DAC1:04h */ {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, @@ -1563,7 +1572,7 @@ static int patch_ad1988(struct hda_codec *codec) board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl); if (board_config < 0 || board_config >= AD1988_MODEL_LAST) { - printk(KERN_INFO "hda_codec: Unknown model for ALC880, trying auto-probe from BIOS...\n"); + printk(KERN_INFO "hda_codec: Unknown model for AD1988, using 6stack model...\n"); board_config = AD1988_6STACK; } @@ -1575,6 +1584,7 @@ static int patch_ad1988(struct hda_codec *codec) spec->multiout.dac_nids = ad1988_dac_nids; spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); spec->adc_nids = ad1988_adc_nids; + spec->capsrc_nids = ad1988_capsrc_nids; spec->input_mux = &ad1988_6stack_capture_source; spec->num_mixers = 1; spec->mixers[0] = ad1988_6stack_mixers; @@ -1592,6 +1602,7 @@ static int patch_ad1988(struct hda_codec *codec) spec->multiout.dac_nids = ad1988_dac_nids; spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); spec->adc_nids = ad1988_adc_nids; + spec->capsrc_nids = ad1988_capsrc_nids; spec->input_mux = &ad1988_6stack_capture_source; spec->channel_mode = ad1988_3stack_modes; spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes); @@ -1609,6 +1620,7 @@ static int patch_ad1988(struct hda_codec *codec) spec->multiout.dac_nids = ad1988_dac_nids; spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); spec->adc_nids = ad1988_adc_nids; + spec->capsrc_nids = ad1988_capsrc_nids; spec->input_mux = &ad1988_laptop_capture_source; spec->num_mixers = 1; spec->mixers[0] = ad1988_laptop_mixers; -- cgit v1.2.3-70-g09d2 From 6a81dbf23df5400e4f8182e9f2eb52fabcf42015 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 22 Nov 2005 14:33:27 +0100 Subject: [ALSA] ice1712 - Fix Front Digital Input of Terratec DMX 6Fire Modules: ICE1712 driver Fix the inverted switch of 'Front Digital Input' of Terratec DMX 6Fire. Signed-off-by: Takashi Iwai --- sound/pci/ice1712/ews.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/ice1712/ews.c b/sound/pci/ice1712/ews.c index 2127d57da19..2c529e74138 100644 --- a/sound/pci/ice1712/ews.c +++ b/sound/pci/ice1712/ews.c @@ -917,7 +917,7 @@ static struct snd_kcontrol_new snd_ice1712_6fire_controls[] __devinitdata = { .get = snd_ice1712_6fire_select_input_get, .put = snd_ice1712_6fire_select_input_put, }, - DMX6FIRE_CONTROL("Front Digital Input Switch", 2, 0), + DMX6FIRE_CONTROL("Front Digital Input Switch", 2, 1), // DMX6FIRE_CONTROL("Master Clock Select", 3, 0), DMX6FIRE_CONTROL("Optical Digital Input Switch", 4, 0), DMX6FIRE_CONTROL("Phono Analog Input Switch", 5, 0), -- cgit v1.2.3-70-g09d2 From 18612048b3e951f7e0ae9be65efe9e8cfde868a6 Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Wed, 23 Nov 2005 13:14:50 +0100 Subject: [ALSA] sound/: possible cleanups Modules: RawMidi Midlevel,HDA generic driver This patch contains the following possible cleanups: - pci/hda/hda_proc.c should #include 'hda_local.h' for including the prototype of it's global function snd_hda_codec_proc_new() - core/rawmidi.c: make the needlessly global and EXPORT_SYMBOL'ed function snd_rawmidi_info() static Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai --- sound/core/rawmidi.c | 5 ++--- sound/pci/hda/hda_proc.c | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'sound/pci') diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c index 587ea1eb319..d4d124e2192 100644 --- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -534,8 +534,8 @@ static int snd_rawmidi_release(struct inode *inode, struct file *file) return err; } -int snd_rawmidi_info(struct snd_rawmidi_substream *substream, - struct snd_rawmidi_info *info) +static int snd_rawmidi_info(struct snd_rawmidi_substream *substream, + struct snd_rawmidi_info *info) { struct snd_rawmidi *rmidi; @@ -1694,7 +1694,6 @@ EXPORT_SYMBOL(snd_rawmidi_transmit_ack); EXPORT_SYMBOL(snd_rawmidi_transmit); EXPORT_SYMBOL(snd_rawmidi_new); EXPORT_SYMBOL(snd_rawmidi_set_ops); -EXPORT_SYMBOL(snd_rawmidi_info); EXPORT_SYMBOL(snd_rawmidi_info_select); EXPORT_SYMBOL(snd_rawmidi_kernel_open); EXPORT_SYMBOL(snd_rawmidi_kernel_release); diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c index 8cc5773958f..ca514a6a587 100644 --- a/sound/pci/hda/hda_proc.c +++ b/sound/pci/hda/hda_proc.c @@ -26,6 +26,7 @@ #include #include #include "hda_codec.h" +#include "hda_local.h" static const char *get_wid_type_name(unsigned int wid_value) { -- cgit v1.2.3-70-g09d2 From 5014f193166d14e47525a34d65a1c7d77b0f6f38 Mon Sep 17 00:00:00 2001 From: Libin Yang Date: Wed, 23 Nov 2005 15:48:36 +0100 Subject: [ALSA] hda-codec - Fix auto-probe of ALC880 Modules: HDA Codec driver This patch is to fix the problem of calculating the nid incorrectly when auto-probe for ALC880. The problem to be fixed often behaves with such words when using dmesg, 'num_steps = 0 for NID=0x8' when auto-probe for ALC880. The patch contains: - alsa-kernel/pci/hda/patch_realtek.c: replace 'alc880_dac_to_idx' with 'alc880_idx_to_dac' in function 'alc880_auto_fill_dac_nids()' Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_realtek.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 77c5f95ea55..c5fb141f622 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1760,7 +1760,7 @@ static int alc880_auto_fill_dac_nids(struct alc_spec *spec, const struct auto_pi nid = cfg->line_out_pins[i]; if (alc880_is_fixed_pin(nid)) { int idx = alc880_fixed_pin_idx(nid); - spec->multiout.dac_nids[i] = alc880_dac_to_idx(idx); + spec->multiout.dac_nids[i] = alc880_idx_to_dac(idx); assigned[idx] = 1; } } -- cgit v1.2.3-70-g09d2 From 606ad75fb5372c0edb5ee6276c8e29fcb525f3e1 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 24 Nov 2005 16:03:40 +0100 Subject: [ALSA] hda-intel - Use position buffer as default Modules: HDA Intel driver - Use the position buffer for obtaining the current DMA position as default. This seems more stable than others. - Add probe_mask module option (mainly for test boards with multiple codecs). Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_intel.c | 37 ++++++++----------------------------- 1 file changed, 8 insertions(+), 29 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 3945c44440c..8a0a0a7d5d4 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -52,6 +52,7 @@ static int index = SNDRV_DEFAULT_IDX1; static char *id = SNDRV_DEFAULT_STR1; static char *model; static int position_fix; +static int probe_mask; module_param(index, int, 0444); MODULE_PARM_DESC(index, "Index value for Intel HD audio interface."); @@ -61,6 +62,9 @@ module_param(model, charp, 0444); MODULE_PARM_DESC(model, "Use the given board model."); module_param(position_fix, int, 0444); MODULE_PARM_DESC(position_fix, "Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)."); +module_param(probe_mask, int, 0444); +MODULE_PARM_DESC(probe_mask, "Bitmask to probe codecs (default = -1)."); + /* just for backward compatibility */ static int enable; @@ -916,7 +920,7 @@ static int __devinit azx_codec_create(struct azx *chip, const char *model) codecs = 0; for (c = 0; c < AZX_MAX_CODECS; c++) { - if (chip->codec_mask & (1 << c)) { + if ((chip->codec_mask & (1 << c)) & probe_mask) { err = snd_hda_codec_new(chip->bus, c, NULL); if (err < 0) continue; @@ -1150,31 +1154,6 @@ static snd_pcm_uframes_t azx_pcm_pointer(struct snd_pcm_substream *substream) pos = azx_sd_readl(azx_dev, SD_LPIB); if (chip->position_fix == POS_FIX_FIFO) pos += azx_dev->fifo_size; -#if 0 /* disabled temprarily, auto-correction doesn't work well... */ - else if (chip->position_fix == POS_FIX_AUTO && azx_dev->period_updating) { - /* check the validity of DMA position */ - unsigned int diff = 0; - azx_dev->last_pos += azx_dev->fragsize; - if (azx_dev->last_pos > pos) - diff = azx_dev->last_pos - pos; - if (azx_dev->last_pos >= azx_dev->bufsize) { - if (pos < azx_dev->fragsize) - diff = 0; - azx_dev->last_pos = 0; - } - if (diff > 0 && diff <= azx_dev->fifo_size) - pos += azx_dev->fifo_size; - else { - snd_printdd(KERN_INFO "hda_intel: DMA position fix %d, switching to posbuf\n", diff); - chip->position_fix = POS_FIX_POSBUF; - pos = *azx_dev->posbuf; - } - azx_dev->period_updating = 0; - } -#else - else if (chip->position_fix == POS_FIX_AUTO) - pos += azx_dev->fifo_size; -#endif } if (pos >= azx_dev->bufsize) pos = 0; @@ -1412,7 +1391,7 @@ static int azx_dev_free(struct snd_device *device) * constructor */ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci, - int posfix, int driver_type, + int driver_type, struct azx **rchip) { struct azx *chip; @@ -1441,7 +1420,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci, chip->irq = -1; chip->driver_type = driver_type; - chip->position_fix = posfix; + chip->position_fix = position_fix ? position_fix : POS_FIX_POSBUF; #if BITS_PER_LONG != 64 /* Fix up base address on ULI M5461 */ @@ -1559,7 +1538,7 @@ static int __devinit azx_probe(struct pci_dev *pci, const struct pci_device_id * return -ENOMEM; } - if ((err = azx_create(card, pci, position_fix, pci_id->driver_data, + if ((err = azx_create(card, pci, pci_id->driver_data, &chip)) < 0) { snd_card_free(card); return err; -- cgit v1.2.3-70-g09d2 From b2ec642362eef10f660e2b857dda12e2d61e0198 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 24 Nov 2005 16:05:04 +0100 Subject: [ALSA] hda-codec - Fix channel mode helper Modules: HDA Codec driver Fix the channel mode helper (for put callback). Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 402ce00c6a1..5ead2a3d05a 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -1771,7 +1771,7 @@ int snd_hda_ch_mode_put(struct hda_codec *codec, struct snd_ctl_elem_value *ucon mode = ucontrol->value.enumerated.item[0]; snd_assert(mode < num_chmodes, return -EINVAL); - if (*max_channelsp && ! codec->in_resume) + if (*max_channelsp == chmode[mode].channels && ! codec->in_resume) return 0; /* change the current channel setting */ *max_channelsp = chmode[mode].channels; -- cgit v1.2.3-70-g09d2 From d32410b1095cf93e8e31f8919de46f496d7b3ce0 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 24 Nov 2005 16:06:23 +0100 Subject: [ALSA] hda-codec - Fix/enhance AD1988 support Modules: HDA Codec driver Fix/enhance AD1988 support code. - Fix for h/w bug of AD1988A rev 2 - The BIOS auto-configuration is added and used as fallback Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_analog.c | 572 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 531 insertions(+), 41 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 3799d8a1afa..fabcbcf77a1 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -1,5 +1,5 @@ /* - * HD audio interface patch for AD1981HD, AD1983, AD1986A + * HD audio interface patch for AD1981HD, AD1983, AD1986A, AD1988 * * Copyright (c) 2005 Takashi Iwai * @@ -31,7 +31,7 @@ struct ad198x_spec { struct snd_kcontrol_new *mixers[5]; int num_mixers; - const struct hda_verb *init_verbs[3]; /* initialization verbs + const struct hda_verb *init_verbs[5]; /* initialization verbs * don't forget NULL termination! */ unsigned int num_init_verbs; @@ -62,6 +62,13 @@ struct ad198x_spec { struct semaphore amp_mutex; /* PCM volume/mute control mutex */ unsigned int spdif_route; + + /* dynamic controls, init_verbs and input_mux */ + struct auto_pin_cfg autocfg; + unsigned int num_kctl_alloc, num_kctl_used; + struct snd_kcontrol_new *kctl_alloc; + struct hda_input_mux private_imux; + hda_nid_t private_dac_nids[4]; }; /* @@ -284,6 +291,14 @@ static int ad198x_build_pcms(struct hda_codec *codec) static void ad198x_free(struct hda_codec *codec) { + struct ad198x_spec *spec = codec->spec; + unsigned int i; + + if (spec->kctl_alloc) { + for (i = 0; i < spec->num_kctl_used; i++) + kfree(spec->kctl_alloc[i].name); + kfree(spec->kctl_alloc); + } kfree(codec->spec); } @@ -867,7 +882,7 @@ static int patch_ad1981(struct hda_codec *codec) * * Output pins and routes * - * Pin Mix Sel DAC + * Pin Mix Sel DAC (*) * port-A 0x11 (mute/hp) <- 0x22 <- 0x37 <- 03/04/06 * port-B 0x14 (mute/hp) <- 0x2b <- 0x30 <- 03/04/06 * port-C 0x15 (mute) <- 0x2c <- 0x31 <- 05/0a @@ -878,6 +893,8 @@ static int patch_ad1981(struct hda_codec *codec) * port-H 0x25 (mute) <- 0x28 <- 0a * mono 0x13 (mute/amp)<- 0x1e <- 0x36 <- 03/04/06 * + * DAC0 = 03h, DAC1 = 04h, DAC2 = 05h, DAC3 = 06h, DAC4 = 0ah + * (*) DAC2/3/4 are swapped to DAC3/4/2 on AD198A rev.2 due to a h/w bug. * * Input pins and routes * @@ -893,11 +910,8 @@ static int patch_ad1981(struct hda_codec *codec) * * * DAC assignment - * front DAC - 04 - * surr DAC - 06 - * CLFE DAC - 05 - * side DAC - 0a - * opt DAC - 03 + * 6stack - front/surr/CLFE/side/opt DACs - 04/06/05/0a/03 + * 3stack - front/surr/CLFE/opt DACs - 04/0a/05/03 * * Inputs of Analog Mix (0x20) * 0:Port-B (front mic) @@ -957,18 +971,35 @@ enum { AD1988_3STACK_DIG, AD1988_LAPTOP, AD1988_LAPTOP_DIG, + AD1988_AUTO, AD1988_MODEL_LAST, }; +/* reivision id to check workarounds */ +#define AD1988A_REV2 0x100200 + /* * mixers */ -static hda_nid_t ad1988_dac_nids[4] = { +static hda_nid_t ad1988_6stack_dac_nids[4] = { 0x04, 0x06, 0x05, 0x0a }; +static hda_nid_t ad1988_3stack_dac_nids[3] = { + 0x04, 0x0a, 0x05 +}; + +/* for AD1988A revision-2, DAC2-4 are swapped */ +static hda_nid_t ad1988_6stack_dac_nids_rev2[4] = { + 0x04, 0x05, 0x0a, 0x06 +}; + +static hda_nid_t ad1988_3stack_dac_nids_rev2[3] = { + 0x04, 0x06, 0x0a +}; + static hda_nid_t ad1988_adc_nids[3] = { 0x08, 0x09, 0x0f }; @@ -1068,13 +1099,23 @@ static int ad1988_eapd_put(struct snd_kcontrol *kcontrol, } /* 6-stack mode */ -static struct snd_kcontrol_new ad1988_6stack_mixers[] = { +static struct snd_kcontrol_new ad1988_6stack_mixers1[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x04, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Surround Playback Volume", 0x06, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Side Playback Volume", 0x0a, 0x0, HDA_OUTPUT), +}; + +static struct snd_kcontrol_new ad1988_6stack_mixers1_rev2[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x04, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x05, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0a, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Side Playback Volume", 0x06, 0x0, HDA_OUTPUT), +}; +static struct snd_kcontrol_new ad1988_6stack_mixers2[] = { HDA_BIND_MUTE("Front Playback Switch", 0x29, 2, HDA_INPUT), HDA_BIND_MUTE("Surround Playback Switch", 0x2a, 2, HDA_INPUT), HDA_BIND_MUTE_MONO("Center Playback Switch", 0x27, 1, 2, HDA_INPUT), @@ -1105,16 +1146,25 @@ static struct snd_kcontrol_new ad1988_6stack_mixers[] = { }; /* 3-stack mode */ -static struct snd_kcontrol_new ad1988_3stack_mixers[] = { +static struct snd_kcontrol_new ad1988_3stack_mixers1[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x04, 0x0, HDA_OUTPUT), - HDA_CODEC_VOLUME("Surround Playback Volume", 0x06, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), +}; + +static struct snd_kcontrol_new ad1988_3stack_mixers1_rev2[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x04, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x06, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0a, 2, 0x0, HDA_OUTPUT), +}; +static struct snd_kcontrol_new ad1988_3stack_mixers2[] = { HDA_BIND_MUTE("Front Playback Switch", 0x29, 2, HDA_INPUT), - HDA_BIND_MUTE("Surround Playback Switch", 0x2a, 2, HDA_INPUT), - HDA_BIND_MUTE_MONO("Center Playback Switch", 0x27, 1, 2, HDA_INPUT), - HDA_BIND_MUTE_MONO("LFE Playback Switch", 0x27, 2, 2, HDA_INPUT), + HDA_BIND_MUTE("Surround Playback Switch", 0x2c, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("Center Playback Switch", 0x26, 1, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("LFE Playback Switch", 0x26, 2, 2, HDA_INPUT), HDA_BIND_MUTE("Headphone Playback Switch", 0x22, 2, HDA_INPUT), HDA_BIND_MUTE("Mono Playback Switch", 0x1e, 2, HDA_INPUT), @@ -1391,11 +1441,11 @@ static struct hda_verb ad1988_3stack_ch2_init[] = { static struct hda_verb ad1988_3stack_ch6_init[] = { /* set port-C to surround out */ - { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, /* set port-E to CLFE out */ - { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, { } /* end */ }; @@ -1431,15 +1481,17 @@ static struct hda_verb ad1988_3stack_init_verbs[] = { {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, {0x39, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, - /* Port-C line-in/surround path */ - {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + /* Port-C line-in/surround path - 6ch mode as default */ + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, {0x3a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x31, AC_VERB_SET_CONNECT_SEL, 0x0}, /* output sel: DAC 0x05 */ {0x33, AC_VERB_SET_CONNECT_SEL, 0x0}, - /* Port-E mic-in/CLFE path */ - {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + /* Port-E mic-in/CLFE path - 6ch mode as default */ + {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, {0x3c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x32, AC_VERB_SET_CONNECT_SEL, 0x1}, /* output sel: DAC 0x06 */ {0x34, AC_VERB_SET_CONNECT_SEL, 0x0}, /* mute analog mix */ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, @@ -1545,6 +1597,420 @@ static void ad1988_laptop_unsol_event(struct hda_codec *codec, unsigned int res) } +/* + * Automatic parse of I/O pins from the BIOS configuration + */ + +#define NUM_CONTROL_ALLOC 32 +#define NUM_VERB_ALLOC 32 + +enum { + AD_CTL_WIDGET_VOL, + AD_CTL_WIDGET_MUTE, + AD_CTL_BIND_MUTE, +}; +static struct snd_kcontrol_new ad1988_control_templates[] = { + HDA_CODEC_VOLUME(NULL, 0, 0, 0), + HDA_CODEC_MUTE(NULL, 0, 0, 0), + HDA_BIND_MUTE(NULL, 0, 0, 0), +}; + +/* add dynamic controls */ +static int add_control(struct ad198x_spec *spec, int type, const char *name, + unsigned long val) +{ + struct snd_kcontrol_new *knew; + + if (spec->num_kctl_used >= spec->num_kctl_alloc) { + int num = spec->num_kctl_alloc + NUM_CONTROL_ALLOC; + + knew = kcalloc(num + 1, sizeof(*knew), GFP_KERNEL); /* array + terminator */ + if (! knew) + return -ENOMEM; + if (spec->kctl_alloc) { + memcpy(knew, spec->kctl_alloc, sizeof(*knew) * spec->num_kctl_alloc); + kfree(spec->kctl_alloc); + } + spec->kctl_alloc = knew; + spec->num_kctl_alloc = num; + } + + knew = &spec->kctl_alloc[spec->num_kctl_used]; + *knew = ad1988_control_templates[type]; + knew->name = kstrdup(name, GFP_KERNEL); + if (! knew->name) + return -ENOMEM; + knew->private_value = val; + spec->num_kctl_used++; + return 0; +} + +#define AD1988_PIN_CD_NID 0x18 +#define AD1988_PIN_BEEP_NID 0x10 + +static hda_nid_t ad1988_mixer_nids[8] = { + /* A B C D E F G H */ + 0x22, 0x2b, 0x2c, 0x29, 0x26, 0x2a, 0x27, 0x28 +}; + +static inline hda_nid_t ad1988_idx_to_dac(struct hda_codec *codec, int idx) +{ + static hda_nid_t idx_to_dac[8] = { + /* A B C D E F G H */ + 0x04, 0x06, 0x0a, 0x04, 0x05, 0x06, 0x05, 0x0a + }; + static hda_nid_t idx_to_dac_rev2[8] = { + /* A B C D E F G H */ + 0x04, 0x05, 0x06, 0x04, 0x0a, 0x05, 0x0a, 0x06 + }; + if (codec->revision_id == AD1988A_REV2) + return idx_to_dac_rev2[idx]; + else + return idx_to_dac[idx]; +} + +static hda_nid_t ad1988_boost_nids[8] = { + 0x38, 0x39, 0x3a, 0x3d, 0x3c, 0x3b, 0, 0 +}; + +static int ad1988_pin_idx(hda_nid_t nid) +{ + static hda_nid_t ad1988_io_pins[8] = { + 0x11, 0x14, 0x15, 0x12, 0x17, 0x16, 0x24, 0x25 + }; + int i; + for (i = 0; i < ARRAY_SIZE(ad1988_io_pins); i++) + if (ad1988_io_pins[i] == nid) + return i; + return 0; /* should be -1 */ +} + +static int ad1988_pin_to_loopback_idx(hda_nid_t nid) +{ + static int loopback_idx[8] = { + 2, 0, 1, 3, 4, 5, 1, 4 + }; + switch (nid) { + case AD1988_PIN_CD_NID: + return 6; + default: + return loopback_idx[ad1988_pin_idx(nid)]; + } +} + +static int ad1988_pin_to_adc_idx(hda_nid_t nid) +{ + static int adc_idx[8] = { + 0, 1, 2, 8, 4, 3, 6, 7 + }; + switch (nid) { + case AD1988_PIN_CD_NID: + return 5; + default: + return adc_idx[ad1988_pin_idx(nid)]; + } +} + +/* fill in the dac_nids table from the parsed pin configuration */ +static int ad1988_auto_fill_dac_nids(struct hda_codec *codec, + const struct auto_pin_cfg *cfg) +{ + struct ad198x_spec *spec = codec->spec; + int i, idx; + + spec->multiout.dac_nids = spec->private_dac_nids; + + /* check the pins hardwired to audio widget */ + for (i = 0; i < cfg->line_outs; i++) { + idx = ad1988_pin_idx(cfg->line_out_pins[i]); + spec->multiout.dac_nids[i] = ad1988_idx_to_dac(codec, idx); + } + spec->multiout.num_dacs = cfg->line_outs; + return 0; +} + +/* add playback controls from the parsed DAC table */ +static int ad1988_auto_create_multi_out_ctls(struct ad198x_spec *spec, + const struct auto_pin_cfg *cfg) +{ + char name[32]; + static const char *chname[4] = { "Front", "Surround", NULL /*CLFE*/, "Side" }; + hda_nid_t nid; + int i, err; + + for (i = 0; i < cfg->line_outs; i++) { + hda_nid_t dac = spec->multiout.dac_nids[i]; + if (! dac) + continue; + nid = ad1988_mixer_nids[ad1988_pin_idx(cfg->line_out_pins[i])]; + if (i == 2) { + /* Center/LFE */ + err = add_control(spec, AD_CTL_WIDGET_VOL, + "Center Playback Volume", + HDA_COMPOSE_AMP_VAL(dac, 1, 0, HDA_OUTPUT)); + if (err < 0) + return err; + err = add_control(spec, AD_CTL_WIDGET_VOL, + "LFE Playback Volume", + HDA_COMPOSE_AMP_VAL(dac, 2, 0, HDA_OUTPUT)); + if (err < 0) + return err; + err = add_control(spec, AD_CTL_BIND_MUTE, + "Center Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 1, 2, HDA_INPUT)); + if (err < 0) + return err; + err = add_control(spec, AD_CTL_BIND_MUTE, + "LFE Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 2, 2, HDA_INPUT)); + if (err < 0) + return err; + } else { + sprintf(name, "%s Playback Volume", chname[i]); + err = add_control(spec, AD_CTL_WIDGET_VOL, name, + HDA_COMPOSE_AMP_VAL(dac, 3, 0, HDA_OUTPUT)); + if (err < 0) + return err; + sprintf(name, "%s Playback Switch", chname[i]); + err = add_control(spec, AD_CTL_BIND_MUTE, name, + HDA_COMPOSE_AMP_VAL(nid, 3, 2, HDA_INPUT)); + if (err < 0) + return err; + } + } + return 0; +} + +/* add playback controls for speaker and HP outputs */ +static int ad1988_auto_create_extra_out(struct hda_codec *codec, hda_nid_t pin, + const char *pfx) +{ + struct ad198x_spec *spec = codec->spec; + hda_nid_t nid; + int idx, err; + char name[32]; + + if (! pin) + return 0; + + idx = ad1988_pin_idx(pin); + nid = ad1988_idx_to_dac(codec, idx); + if (! spec->multiout.dac_nids[0]) { + /* use this as the primary output */ + spec->multiout.dac_nids[0] = nid; + if (! spec->multiout.num_dacs) + spec->multiout.num_dacs = 1; + } else + /* specify the DAC as the extra output */ + spec->multiout.hp_nid = nid; + /* control HP volume/switch on the output mixer amp */ + sprintf(name, "%s Playback Volume", pfx); + if ((err = add_control(spec, AD_CTL_WIDGET_VOL, name, + HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) + return err; + nid = ad1988_mixer_nids[idx]; + sprintf(name, "%s Playback Switch", pfx); + if ((err = add_control(spec, AD_CTL_BIND_MUTE, name, + HDA_COMPOSE_AMP_VAL(nid, 3, 2, HDA_INPUT))) < 0) + return err; + return 0; +} + +/* create input playback/capture controls for the given pin */ +static int new_analog_input(struct ad198x_spec *spec, hda_nid_t pin, + const char *ctlname, int boost) +{ + char name[32]; + int err, idx; + + sprintf(name, "%s Playback Volume", ctlname); + idx = ad1988_pin_to_loopback_idx(pin); + if ((err = add_control(spec, AD_CTL_WIDGET_VOL, name, + HDA_COMPOSE_AMP_VAL(0x20, 3, idx, HDA_INPUT))) < 0) + return err; + sprintf(name, "%s Playback Switch", ctlname); + if ((err = add_control(spec, AD_CTL_WIDGET_MUTE, name, + HDA_COMPOSE_AMP_VAL(0x20, 3, idx, HDA_INPUT))) < 0) + return err; + if (boost) { + hda_nid_t bnid; + idx = ad1988_pin_idx(pin); + bnid = ad1988_boost_nids[idx]; + if (bnid) { + sprintf(name, "%s Boost", ctlname); + return add_control(spec, AD_CTL_WIDGET_VOL, name, + HDA_COMPOSE_AMP_VAL(bnid, 3, idx, HDA_OUTPUT)); + + } + } + return 0; +} + +/* create playback/capture controls for input pins */ +static int ad1988_auto_create_analog_input_ctls(struct ad198x_spec *spec, + const struct auto_pin_cfg *cfg) +{ + static char *labels[AUTO_PIN_LAST] = { + "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" + }; + struct hda_input_mux *imux = &spec->private_imux; + int i, err; + + for (i = 0; i < AUTO_PIN_LAST; i++) { + err = new_analog_input(spec, cfg->input_pins[i], labels[i], + i <= AUTO_PIN_FRONT_MIC); + if (err < 0) + return err; + imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].index = ad1988_pin_to_adc_idx(cfg->input_pins[i]); + imux->num_items++; + } + imux->items[imux->num_items].label = "Mix"; + imux->items[imux->num_items].index = 9; + imux->num_items++; + + if ((err = add_control(spec, AD_CTL_WIDGET_VOL, + "Analog Mix Playback Volume", + HDA_COMPOSE_AMP_VAL(0x21, 3, 0x0, HDA_OUTPUT))) < 0) + return err; + if ((err = add_control(spec, AD_CTL_WIDGET_MUTE, + "Analog Mix Playback Switch", + HDA_COMPOSE_AMP_VAL(0x21, 3, 0x0, HDA_OUTPUT))) < 0) + return err; + + return 0; +} + +static void ad1988_auto_set_output_and_unmute(struct hda_codec *codec, + hda_nid_t nid, int pin_type, + int dac_idx) +{ + /* set as output */ + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); + switch (nid) { + case 0x11: /* port-A - DAC 04 */ + snd_hda_codec_write(codec, 0x37, 0, AC_VERB_SET_CONNECT_SEL, 0x01); + break; + case 0x14: /* port-B - DAC 06 */ + snd_hda_codec_write(codec, 0x30, 0, AC_VERB_SET_CONNECT_SEL, 0x02); + break; + case 0x15: /* port-C - DAC 05 */ + snd_hda_codec_write(codec, 0x31, 0, AC_VERB_SET_CONNECT_SEL, 0x00); + break; + case 0x17: /* port-E - DAC 06 */ + snd_hda_codec_write(codec, 0x32, 0, AC_VERB_SET_CONNECT_SEL, 0x01); + break; + case 0x13: /* mono - DAC 04 */ + snd_hda_codec_write(codec, 0x36, 0, AC_VERB_SET_CONNECT_SEL, 0x01); + break; + } +} + +static void ad1988_auto_init_multi_out(struct hda_codec *codec) +{ + struct ad198x_spec *spec = codec->spec; + int i; + + for (i = 0; i < spec->autocfg.line_outs; i++) { + hda_nid_t nid = spec->autocfg.line_out_pins[i]; + ad1988_auto_set_output_and_unmute(codec, nid, PIN_OUT, i); + } +} + +static void ad1988_auto_init_extra_out(struct hda_codec *codec) +{ + struct ad198x_spec *spec = codec->spec; + hda_nid_t pin; + + pin = spec->autocfg.speaker_pin; + if (pin) /* connect to front */ + ad1988_auto_set_output_and_unmute(codec, pin, PIN_OUT, 0); + pin = spec->autocfg.hp_pin; + if (pin) /* connect to front */ + ad1988_auto_set_output_and_unmute(codec, pin, PIN_HP, 0); +} + +static void ad1988_auto_init_analog_input(struct hda_codec *codec) +{ + struct ad198x_spec *spec = codec->spec; + int i, idx; + + for (i = 0; i < AUTO_PIN_LAST; i++) { + hda_nid_t nid = spec->autocfg.input_pins[i]; + if (! nid) + continue; + switch (nid) { + case 0x15: /* port-C */ + snd_hda_codec_write(codec, 0x33, 0, AC_VERB_SET_CONNECT_SEL, 0x0); + break; + case 0x17: /* port-E */ + snd_hda_codec_write(codec, 0x34, 0, AC_VERB_SET_CONNECT_SEL, 0x0); + break; + } + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, + i <= AUTO_PIN_FRONT_MIC ? PIN_VREF80 : PIN_IN); + if (nid != AD1988_PIN_CD_NID) + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, + AMP_OUT_MUTE); + idx = ad1988_pin_idx(nid); + if (ad1988_boost_nids[idx]) + snd_hda_codec_write(codec, ad1988_boost_nids[idx], 0, + AC_VERB_SET_AMP_GAIN_MUTE, + AMP_OUT_ZERO); + } +} + +/* parse the BIOS configuration and set up the alc_spec */ +/* return 1 if successful, 0 if the proper config is not found, or a negative error code */ +static int ad1988_parse_auto_config(struct hda_codec *codec) +{ + struct ad198x_spec *spec = codec->spec; + int err; + + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg)) < 0) + return err; + if ((err = ad1988_auto_fill_dac_nids(codec, &spec->autocfg)) < 0) + return err; + if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && + ! spec->autocfg.hp_pin) + return 0; /* can't find valid BIOS pin config */ + if ((err = ad1988_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || + (err = ad1988_auto_create_extra_out(codec, spec->autocfg.speaker_pin, + "Speaker")) < 0 || + (err = ad1988_auto_create_extra_out(codec, spec->autocfg.speaker_pin, + "Headphone")) < 0 || + (err = ad1988_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) + return err; + + spec->multiout.max_channels = spec->multiout.num_dacs * 2; + + if (spec->autocfg.dig_out_pin) + spec->multiout.dig_out_nid = AD1988_SPDIF_OUT; + if (spec->autocfg.dig_in_pin) + spec->dig_in_nid = AD1988_SPDIF_IN; + + if (spec->kctl_alloc) + spec->mixers[spec->num_mixers++] = spec->kctl_alloc; + + spec->init_verbs[spec->num_init_verbs++] = ad1988_6stack_init_verbs; + + spec->input_mux = &spec->private_imux; + + return 1; +} + +/* init callback for auto-configuration model -- overriding the default init */ +static int ad1988_auto_init(struct hda_codec *codec) +{ + ad198x_init(codec); + ad1988_auto_init_multi_out(codec); + ad1988_auto_init_extra_out(codec); + ad1988_auto_init_analog_input(codec); + return 0; +} + + /* */ @@ -1555,6 +2021,7 @@ static struct hda_board_config ad1988_cfg_tbl[] = { { .modelname = "3stack-dig", .config = AD1988_3STACK_DIG }, { .modelname = "laptop", .config = AD1988_LAPTOP }, { .modelname = "laptop-dig", .config = AD1988_LAPTOP_DIG }, + { .modelname = "auto", .config = AD1988_AUTO }, {} }; @@ -1572,8 +2039,20 @@ static int patch_ad1988(struct hda_codec *codec) board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl); if (board_config < 0 || board_config >= AD1988_MODEL_LAST) { - printk(KERN_INFO "hda_codec: Unknown model for AD1988, using 6stack model...\n"); - board_config = AD1988_6STACK; + printk(KERN_INFO "hda_codec: Unknown model for AD1988, trying auto-probe from BIOS...\n"); + board_config = AD1988_AUTO; + } + + if (board_config == AD1988_AUTO) { + /* automatic parse from the BIOS config */ + int err = ad1988_parse_auto_config(codec); + if (err < 0) { + ad198x_free(codec); + return err; + } else if (! err) { + printk(KERN_INFO "hda_codec: Cannot set up configuration from BIOS. Using 6-stack mode...\n"); + board_config = AD1988_6STACK; + } } switch (board_config) { @@ -1581,13 +2060,17 @@ static int patch_ad1988(struct hda_codec *codec) case AD1988_6STACK_DIG: spec->multiout.max_channels = 8; spec->multiout.num_dacs = 4; - spec->multiout.dac_nids = ad1988_dac_nids; - spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); - spec->adc_nids = ad1988_adc_nids; - spec->capsrc_nids = ad1988_capsrc_nids; + if (codec->revision_id == AD1988A_REV2) + spec->multiout.dac_nids = ad1988_6stack_dac_nids_rev2; + else + spec->multiout.dac_nids = ad1988_6stack_dac_nids; spec->input_mux = &ad1988_6stack_capture_source; - spec->num_mixers = 1; - spec->mixers[0] = ad1988_6stack_mixers; + spec->num_mixers = 2; + if (codec->revision_id == AD1988A_REV2) + spec->mixers[0] = ad1988_6stack_mixers1_rev2; + else + spec->mixers[0] = ad1988_6stack_mixers1; + spec->mixers[1] = ad1988_6stack_mixers2; spec->num_init_verbs = 1; spec->init_verbs[0] = ad1988_6stack_init_verbs; if (board_config == AD1988_6STACK_DIG) { @@ -1599,15 +2082,19 @@ static int patch_ad1988(struct hda_codec *codec) case AD1988_3STACK_DIG: spec->multiout.max_channels = 6; spec->multiout.num_dacs = 3; - spec->multiout.dac_nids = ad1988_dac_nids; - spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); - spec->adc_nids = ad1988_adc_nids; - spec->capsrc_nids = ad1988_capsrc_nids; + if (codec->revision_id == AD1988A_REV2) + spec->multiout.dac_nids = ad1988_3stack_dac_nids_rev2; + else + spec->multiout.dac_nids = ad1988_3stack_dac_nids; spec->input_mux = &ad1988_6stack_capture_source; spec->channel_mode = ad1988_3stack_modes; spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes); - spec->num_mixers = 1; - spec->mixers[0] = ad1988_3stack_mixers; + spec->num_mixers = 2; + if (codec->revision_id == AD1988A_REV2) + spec->mixers[0] = ad1988_3stack_mixers1_rev2; + else + spec->mixers[0] = ad1988_3stack_mixers1; + spec->mixers[1] = ad1988_3stack_mixers2; spec->num_init_verbs = 1; spec->init_verbs[0] = ad1988_3stack_init_verbs; if (board_config == AD1988_3STACK_DIG) @@ -1617,10 +2104,7 @@ static int patch_ad1988(struct hda_codec *codec) case AD1988_LAPTOP_DIG: spec->multiout.max_channels = 2; spec->multiout.num_dacs = 1; - spec->multiout.dac_nids = ad1988_dac_nids; - spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); - spec->adc_nids = ad1988_adc_nids; - spec->capsrc_nids = ad1988_capsrc_nids; + spec->multiout.dac_nids = ad1988_3stack_dac_nids; spec->input_mux = &ad1988_laptop_capture_source; spec->num_mixers = 1; spec->mixers[0] = ad1988_laptop_mixers; @@ -1631,6 +2115,9 @@ static int patch_ad1988(struct hda_codec *codec) break; } + spec->num_adc_nids = ARRAY_SIZE(ad1988_adc_nids); + spec->adc_nids = ad1988_adc_nids; + spec->capsrc_nids = ad1988_capsrc_nids; spec->mixers[spec->num_mixers++] = ad1988_capture_mixers; spec->init_verbs[spec->num_init_verbs++] = ad1988_capture_init_verbs; if (spec->multiout.dig_out_nid) { @@ -1642,6 +2129,9 @@ static int patch_ad1988(struct hda_codec *codec) codec->patch_ops = ad198x_patch_ops; switch (board_config) { + case AD1988_AUTO: + codec->patch_ops.init = ad1988_auto_init; + break; case AD1988_LAPTOP: case AD1988_LAPTOP_DIG: codec->patch_ops.unsol_event = ad1988_laptop_unsol_event; -- cgit v1.2.3-70-g09d2 From f8c7c7b8dd2828b42c1230c6b0235e7d1dcf57e5 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 24 Nov 2005 16:17:20 +0100 Subject: [ALSA] hda-codec - Fix surrounds on 3stack mode of AD1988 Modules: HDA Codec driver Fixed the swapped surround/CLFE on 3stack mode of AD1988. Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_analog.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index fabcbcf77a1..fc144155f7a 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -911,7 +911,7 @@ static int patch_ad1981(struct hda_codec *codec) * * DAC assignment * 6stack - front/surr/CLFE/side/opt DACs - 04/06/05/0a/03 - * 3stack - front/surr/CLFE/opt DACs - 04/0a/05/03 + * 3stack - front/surr/CLFE/opt DACs - 04/05/0a/03 * * Inputs of Analog Mix (0x20) * 0:Port-B (front mic) @@ -988,7 +988,7 @@ static hda_nid_t ad1988_6stack_dac_nids[4] = { }; static hda_nid_t ad1988_3stack_dac_nids[3] = { - 0x04, 0x0a, 0x05 + 0x04, 0x05, 0x0a }; /* for AD1988A revision-2, DAC2-4 are swapped */ @@ -997,7 +997,7 @@ static hda_nid_t ad1988_6stack_dac_nids_rev2[4] = { }; static hda_nid_t ad1988_3stack_dac_nids_rev2[3] = { - 0x04, 0x06, 0x0a + 0x04, 0x0a, 0x06 }; static hda_nid_t ad1988_adc_nids[3] = { @@ -1155,9 +1155,9 @@ static struct snd_kcontrol_new ad1988_3stack_mixers1[] = { static struct snd_kcontrol_new ad1988_3stack_mixers1_rev2[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x04, 0x0, HDA_OUTPUT), - HDA_CODEC_VOLUME("Surround Playback Volume", 0x06, 0x0, HDA_OUTPUT), - HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), - HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0a, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x06, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x06, 2, 0x0, HDA_OUTPUT), }; static struct snd_kcontrol_new ad1988_3stack_mixers2[] = { @@ -1491,7 +1491,7 @@ static struct hda_verb ad1988_3stack_init_verbs[] = { {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, {0x3c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, - {0x32, AC_VERB_SET_CONNECT_SEL, 0x1}, /* output sel: DAC 0x06 */ + {0x32, AC_VERB_SET_CONNECT_SEL, 0x1}, /* output sel: DAC 0x0a */ {0x34, AC_VERB_SET_CONNECT_SEL, 0x0}, /* mute analog mix */ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, @@ -1657,11 +1657,11 @@ static inline hda_nid_t ad1988_idx_to_dac(struct hda_codec *codec, int idx) { static hda_nid_t idx_to_dac[8] = { /* A B C D E F G H */ - 0x04, 0x06, 0x0a, 0x04, 0x05, 0x06, 0x05, 0x0a + 0x04, 0x06, 0x05, 0x04, 0x0a, 0x06, 0x05, 0x0a }; static hda_nid_t idx_to_dac_rev2[8] = { /* A B C D E F G H */ - 0x04, 0x05, 0x06, 0x04, 0x0a, 0x05, 0x0a, 0x06 + 0x04, 0x05, 0x0a, 0x04, 0x06, 0x05, 0x0a, 0x06 }; if (codec->revision_id == AD1988A_REV2) return idx_to_dac_rev2[idx]; @@ -1898,7 +1898,7 @@ static void ad1988_auto_set_output_and_unmute(struct hda_codec *codec, case 0x15: /* port-C - DAC 05 */ snd_hda_codec_write(codec, 0x31, 0, AC_VERB_SET_CONNECT_SEL, 0x00); break; - case 0x17: /* port-E - DAC 06 */ + case 0x17: /* port-E - DAC 0a */ snd_hda_codec_write(codec, 0x32, 0, AC_VERB_SET_CONNECT_SEL, 0x01); break; case 0x13: /* mono - DAC 04 */ @@ -2037,6 +2037,9 @@ static int patch_ad1988(struct hda_codec *codec) init_MUTEX(&spec->amp_mutex); codec->spec = spec; + if (codec->revision_id == AD1988A_REV2) + snd_printk(KERN_INFO "patch_analog: AD1988A rev.2 is detected, enable workarounds\n"); + board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl); if (board_config < 0 || board_config >= AD1988_MODEL_LAST) { printk(KERN_INFO "hda_codec: Unknown model for AD1988, trying auto-probe from BIOS...\n"); -- cgit v1.2.3-70-g09d2 From 16f47bb66000a917a33a0da67ef2823b239c36f6 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Fri, 25 Nov 2005 12:03:20 +0100 Subject: [ALSA] ac97 - Add extra IDs for headphone autosense Modules: AC97 Codec The following patch adds some extra IDs for the list of hardware which should have headphone line sense enabled by default. Signed-off-by: Matthew Garrett Signed-off-by: Takashi Iwai --- sound/pci/ac97/ac97_patch.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index c68ee0f3e72..1b72bc2b7e2 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c @@ -1639,8 +1639,12 @@ static void check_ad1981_hp_jack_sense(struct snd_ac97 *ac97) { u32 subid = ((u32)ac97->subsystem_vendor << 16) | ac97->subsystem_device; switch (subid) { + case 0x0e11005a: /* HP nc4000/4010 */ case 0x103c0890: /* HP nc6000 */ + case 0x103c0938: /* HP nc4220 */ case 0x103c099c: /* HP nx6110 */ + case 0x103c0944: /* HP nc6220 */ + case 0x103c0934: /* HP nc8220 */ case 0x103c006d: /* HP nx9105 */ case 0x17340088: /* FSC Scenic-W */ /* enable headphone jack sense */ -- cgit v1.2.3-70-g09d2 From 015b6a198f51d660797b78c6c7ee60d0252ebf40 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 28 Nov 2005 10:50:59 +0100 Subject: [ALSA] ens1371: added spdif and lineio module options Modules: ENS1370/1+ driver - spdif module option: some hardware revisions are without spdif output - lineio module option: force shared line in / rear out jack settings Signed-off-by: Jaroslav Kysela --- sound/pci/ens1370.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index ff86fabc98c..856f7c63d32 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -86,6 +86,8 @@ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable switches */ #ifdef SUPPORT_JOYSTICK #ifdef CHIP1371 static int joystick_port[SNDRV_CARDS]; +static int spdif[SNDRV_CARDS]; +static int lineio[SNDRV_CARDS]; #else static int joystick[SNDRV_CARDS]; #endif @@ -101,6 +103,10 @@ MODULE_PARM_DESC(enable, "Enable Ensoniq AudioPCI soundcard."); #ifdef CHIP1371 module_param_array(joystick_port, int, NULL, 0444); MODULE_PARM_DESC(joystick_port, "Joystick port address."); +module_param_array(spdif, int, NULL, 0444); +MODULE_PARM_DESC(spdif, "S/PDIF output (-1 = none, 0 = auto, 1 = force)."); +module_param_array(lineio, int, NULL, 0444); +MODULE_PARM_DESC(lineio, "Line In to Rear Out (0 = auto, 1 = force)."); #else module_param_array(joystick, bool, NULL, 0444); MODULE_PARM_DESC(joystick, "Enable joystick."); @@ -1608,7 +1614,7 @@ static struct { { .vid = PCI_ANY_ID, .did = PCI_ANY_ID } }; -static int snd_ensoniq_1371_mixer(struct ensoniq * ensoniq) +static int snd_ensoniq_1371_mixer(struct ensoniq * ensoniq, int has_spdif, int has_line) { struct snd_card *card = ensoniq->card; struct snd_ac97_bus *pbus; @@ -1630,12 +1636,15 @@ static int snd_ensoniq_1371_mixer(struct ensoniq * ensoniq) if ((err = snd_ac97_mixer(pbus, &ac97, &ensoniq->u.es1371.ac97)) < 0) return err; for (idx = 0; es1371_spdif_present[idx].vid != (unsigned short)PCI_ANY_ID; idx++) - if (ensoniq->pci->vendor == es1371_spdif_present[idx].vid && - ensoniq->pci->device == es1371_spdif_present[idx].did && - ensoniq->rev == es1371_spdif_present[idx].rev) { + if ((ensoniq->pci->vendor == es1371_spdif_present[idx].vid && + ensoniq->pci->device == es1371_spdif_present[idx].did && + ensoniq->rev == es1371_spdif_present[idx].rev) || has_spdif > 0) { struct snd_kcontrol *kctl; int i, index = 0; + if (has_spdif < 0) + break; + ensoniq->spdif_default = ensoniq->spdif_stream = SNDRV_PCM_DEFAULT_CON_SPDIF; outl(ensoniq->spdif_default, ES_REG(ensoniq, CHANNEL_STATUS)); @@ -1664,7 +1673,8 @@ static int snd_ensoniq_1371_mixer(struct ensoniq * ensoniq) if (((ensoniq->subsystem_vendor_id == 0x1274) && (ensoniq->subsystem_device_id == 0x2000)) || /* GA-7DXR */ ((ensoniq->subsystem_vendor_id == 0x1458) && - (ensoniq->subsystem_device_id == 0xa000))) { /* GA-8IEXP */ + (ensoniq->subsystem_device_id == 0xa000)) || /* GA-8IEXP */ + has_line > 0) { err = snd_ctl_add(card, snd_ctl_new1(&snd_ens1373_line, ensoniq)); if (err < 0) return err; @@ -2449,7 +2459,7 @@ static int __devinit snd_audiopci_probe(struct pci_dev *pci, } #endif #ifdef CHIP1371 - if ((err = snd_ensoniq_1371_mixer(ensoniq)) < 0) { + if ((err = snd_ensoniq_1371_mixer(ensoniq, spdif[dev], lineio[dev])) < 0) { snd_card_free(card); return err; } -- cgit v1.2.3-70-g09d2 From 954fa19ab7a14c3f54044780a90cd6a95149f90b Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Tue, 29 Nov 2005 14:46:01 +0100 Subject: [ALSA] hda-intel - Fix HDA probe_mask default Modules: HDA Intel driver The probe_mask module parameter comment notes that the intended default is -1. Fix it to be so, otherwise all codecs are skipped and init fails. Signed-off-by: Matt Porter Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 8a0a0a7d5d4..a983deba402 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -52,7 +52,7 @@ static int index = SNDRV_DEFAULT_IDX1; static char *id = SNDRV_DEFAULT_STR1; static char *model; static int position_fix; -static int probe_mask; +static int probe_mask = -1; module_param(index, int, 0444); MODULE_PARM_DESC(index, "Index value for Intel HD audio interface."); -- cgit v1.2.3-70-g09d2 From 403d19446bd0cabee70110415d2f3bc466f46448 Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Tue, 29 Nov 2005 15:00:51 +0100 Subject: [ALSA] hda-codec - update sigmatel support and bug fixes Modules: HDA Codec driver - Explictly set pin control as input for all input pins - Fix bug in 922x mixer (no mute on adc0vol) - Remove broken ch_mode control - Add support for jack retasking mixer controls to use rear line and mic as surround outputs - Add board tables to support autodetect and pin config defaults for systems with broken bioses - Add support for several Intel mobos - Add support for DFI mobo with reference boards attached (gets rid of compile time switch to use reference boards) Signed-off-by: Matt Porter Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_sigmatel.c | 356 +++++++++++++++++++++++------------------ 1 file changed, 200 insertions(+), 156 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index c8c539cb4a8..78662d3539e 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4,7 +4,7 @@ * HD audio interface patch for SigmaTel STAC92xx * * Copyright (c) 2005 Embedded Alley Solutions, Inc. - * + * Matt Porter * * Based on patch_cmedia.c and patch_realtek.c * Copyright (c) 2004 Takashi Iwai @@ -34,17 +34,22 @@ #include "hda_codec.h" #include "hda_local.h" -#undef STAC_TEST - #define NUM_CONTROL_ALLOC 32 #define STAC_HP_EVENT 0x37 #define STAC_UNSOL_ENABLE (AC_USRSP_EN | STAC_HP_EVENT) +#define STAC_REF 0 +#define STAC_D945GTP3 1 +#define STAC_D945GTP5 2 + struct sigmatel_spec { struct snd_kcontrol_new *mixers[4]; unsigned int num_mixers; + int board_config; unsigned int surr_switch: 1; + unsigned int line_switch: 1; + unsigned int mic_switch: 1; /* playback */ struct hda_multi_out multiout; @@ -57,12 +62,10 @@ struct sigmatel_spec { unsigned int num_muxes; hda_nid_t dig_in_nid; -#ifdef STAC_TEST /* pin widgets */ hda_nid_t *pin_nids; unsigned int num_pins; unsigned int *pin_configs; -#endif /* codec specific stuff */ struct hda_verb *init; @@ -72,9 +75,8 @@ struct sigmatel_spec { struct hda_input_mux *input_mux; unsigned int cur_mux[2]; - /* channel mode */ - unsigned int num_ch_modes; - unsigned int cur_ch_mode; + /* i/o switches */ + unsigned int io_switch[2]; struct hda_pcm pcm_rec[2]; /* PCM information */ @@ -105,7 +107,6 @@ static hda_nid_t stac922x_mux_nids[2] = { 0x12, 0x13, }; -#ifdef STAC_TEST static hda_nid_t stac9200_pin_nids[8] = { 0x08, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, }; @@ -114,7 +115,6 @@ static hda_nid_t stac922x_pin_nids[10] = { 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x15, 0x1b, }; -#endif static int stac92xx_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { @@ -155,49 +155,6 @@ static struct hda_verb stac922x_core_init[] = { {} }; -static int stac922x_channel_modes[3] = {2, 6, 8}; - -static int stac922x_ch_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) -{ - struct hda_codec *codec = snd_kcontrol_chip(kcontrol); - struct sigmatel_spec *spec = codec->spec; - - uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; - uinfo->count = 1; - uinfo->value.enumerated.items = spec->num_ch_modes; - if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items) - uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1; - sprintf(uinfo->value.enumerated.name, "%dch", - stac922x_channel_modes[uinfo->value.enumerated.item]); - return 0; -} - -static int stac922x_ch_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) -{ - struct hda_codec *codec = snd_kcontrol_chip(kcontrol); - struct sigmatel_spec *spec = codec->spec; - - ucontrol->value.enumerated.item[0] = spec->cur_ch_mode; - return 0; -} - -static int stac922x_ch_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) -{ - struct hda_codec *codec = snd_kcontrol_chip(kcontrol); - struct sigmatel_spec *spec = codec->spec; - - if (ucontrol->value.enumerated.item[0] >= spec->num_ch_modes) - ucontrol->value.enumerated.item[0] = spec->num_ch_modes; - if (ucontrol->value.enumerated.item[0] == spec->cur_ch_mode && - ! codec->in_resume) - return 0; - - spec->cur_ch_mode = ucontrol->value.enumerated.item[0]; - spec->multiout.max_channels = stac922x_channel_modes[spec->cur_ch_mode]; - - return 1; -} - static struct snd_kcontrol_new stac9200_mixer[] = { HDA_CODEC_VOLUME("Master Playback Volume", 0xb, 0, HDA_OUTPUT), HDA_CODEC_MUTE("Master Playback Switch", 0xb, 0, HDA_OUTPUT), @@ -226,22 +183,10 @@ static struct snd_kcontrol_new stac922x_mixer[] = { .put = stac92xx_mux_enum_put, }, HDA_CODEC_VOLUME("Capture Volume", 0x17, 0x0, HDA_INPUT), - HDA_CODEC_MUTE("Capture Switch", 0x17, 0x0, HDA_INPUT), HDA_CODEC_VOLUME("Mux Capture Volume", 0x12, 0x0, HDA_OUTPUT), { } /* end */ }; -static struct snd_kcontrol_new stac922x_ch_mode_mixer[] = { - { - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Channel Mode", - .info = stac922x_ch_mode_info, - .get = stac922x_ch_mode_get, - .put = stac922x_ch_mode_put, - }, - { } /* end */ -}; - static int stac92xx_build_controls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -258,11 +203,6 @@ static int stac92xx_build_controls(struct hda_codec *codec) return err; } - if (spec->surr_switch) { - err = snd_hda_add_new_ctls(codec, stac922x_ch_mode_mixer); - if (err < 0) - return err; - } if (spec->multiout.dig_out_nid) { err = snd_hda_create_spdif_out_ctls(codec, spec->multiout.dig_out_nid); if (err < 0) @@ -276,18 +216,67 @@ static int stac92xx_build_controls(struct hda_codec *codec) return 0; } -#ifdef STAC_TEST -static unsigned int stac9200_pin_configs[8] = { +static unsigned int ref9200_pin_configs[8] = { 0x01c47010, 0x01447010, 0x0221401f, 0x01114010, 0x02a19020, 0x01a19021, 0x90100140, 0x01813122, }; -static unsigned int stac922x_pin_configs[10] = { - 0x01014010, 0x01014011, 0x01014012, 0x0221401f, - 0x01813122, 0x01014014, 0x01441030, 0x01c41030, +static unsigned int *stac9200_brd_tbl[] = { + ref9200_pin_configs, +}; + +static struct hda_board_config stac9200_cfg_tbl[] = { + { .modelname = "ref", + .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2668, /* DFI LanParty */ + .config = STAC_REF }, + {} /* terminator */ +}; + +static unsigned int ref922x_pin_configs[10] = { + 0x01014010, 0x01016011, 0x01012012, 0x0221401f, + 0x01813122, 0x01011014, 0x01441030, 0x01c41030, 0x40000100, 0x40000100, }; +static unsigned int d945gtp3_pin_configs[10] = { + 0x0221401f, 0x01a19022, 0x01813021, 0x01114010, + 0x40000100, 0x40000100, 0x40000100, 0x40000100, + 0x02a19120, 0x40000100, +}; + +static unsigned int d945gtp5_pin_configs[10] = { + 0x0221401f, 0x01111012, 0x01813024, 0x01114010, + 0x01a19021, 0x01116011, 0x01452130, 0x40000100, + 0x02a19320, 0x40000100, +}; + +static unsigned int *stac922x_brd_tbl[] = { + ref922x_pin_configs, + d945gtp3_pin_configs, + d945gtp5_pin_configs, +}; + +static struct hda_board_config stac922x_cfg_tbl[] = { + { .modelname = "ref", + .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2668, /* DFI LanParty */ + .config = STAC_REF }, /* SigmaTel reference board */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0101, + .config = STAC_D945GTP3 }, /* Intel D945GTP - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0404, + .config = STAC_D945GTP5 }, /* Intel D945GTP - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0303, + .config = STAC_D945GTP5 }, /* Intel D945GNT - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0013, + .config = STAC_D945GTP5 }, /* Intel D955XBK - 5 Stack */ + {} /* terminator */ +}; + static void stac92xx_set_config_regs(struct hda_codec *codec) { int i; @@ -310,10 +299,9 @@ static void stac92xx_set_config_regs(struct hda_codec *codec) pin_cfg = snd_hda_codec_read(codec, spec->pin_nids[i], 0, AC_VERB_GET_CONFIG_DEFAULT, 0x00); - printk("pin nid %2.2x pin config %8.8x\n", spec->pin_nids[i], pin_cfg); + snd_printdd(KERN_INFO "hda_codec: pin nid %2.2x pin config %8.8x\n", spec->pin_nids[i], pin_cfg); } } -#endif /* * Analog playback callbacks @@ -326,56 +314,6 @@ static int stac92xx_playback_pcm_open(struct hda_pcm_stream *hinfo, return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); } -/* - * set up the i/o for analog out - * when the digital out is available, copy the front out to digital out, too. - */ -static int stac92xx_multi_out_analog_prepare(struct hda_codec *codec, struct hda_multi_out *mout, - unsigned int stream_tag, - unsigned int format, - struct snd_pcm_substream *substream) -{ - hda_nid_t *nids = mout->dac_nids; - int chs = substream->runtime->channels; - int i; - - down(&codec->spdif_mutex); - if (mout->dig_out_nid && mout->dig_out_used != HDA_DIG_EXCLUSIVE) { - if (chs == 2 && - snd_hda_is_supported_format(codec, mout->dig_out_nid, format) && - ! (codec->spdif_status & IEC958_AES0_NONAUDIO)) { - mout->dig_out_used = HDA_DIG_ANALOG_DUP; - /* setup digital receiver */ - snd_hda_codec_setup_stream(codec, mout->dig_out_nid, - stream_tag, 0, format); - } else { - mout->dig_out_used = 0; - snd_hda_codec_setup_stream(codec, mout->dig_out_nid, 0, 0, 0); - } - } - up(&codec->spdif_mutex); - - /* front */ - snd_hda_codec_setup_stream(codec, nids[HDA_FRONT], stream_tag, 0, format); - if (mout->hp_nid) - /* headphone out will just decode front left/right (stereo) */ - snd_hda_codec_setup_stream(codec, mout->hp_nid, stream_tag, 0, format); - /* surrounds */ - if (mout->max_channels > 2) - for (i = 1; i < mout->num_dacs; i++) { - if ((mout->max_channels == 6) && (i == 3)) - break; - if (chs >= (i + 1) * 2) /* independent out */ - snd_hda_codec_setup_stream(codec, nids[i], stream_tag, i * 2, - format); - else /* copy front */ - snd_hda_codec_setup_stream(codec, nids[i], stream_tag, 0, - format); - } - return 0; -} - - static int stac92xx_playback_pcm_prepare(struct hda_pcm_stream *hinfo, struct hda_codec *codec, unsigned int stream_tag, @@ -383,8 +321,7 @@ static int stac92xx_playback_pcm_prepare(struct hda_pcm_stream *hinfo, struct snd_pcm_substream *substream) { struct sigmatel_spec *spec = codec->spec; - return stac92xx_multi_out_analog_prepare(codec, &spec->multiout, stream_tag, - format, substream); + return snd_hda_multi_out_analog_prepare(codec, &spec->multiout, stream_tag, format, substream); } static int stac92xx_playback_pcm_cleanup(struct hda_pcm_stream *hinfo, @@ -511,14 +448,70 @@ static int stac92xx_build_pcms(struct hda_codec *codec) return 0; } +static void stac92xx_auto_set_pinctl(struct hda_codec *codec, hda_nid_t nid, int pin_type) + +{ + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); +} + +static int stac92xx_io_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; + uinfo->count = 1; + uinfo->value.integer.min = 0; + uinfo->value.integer.max = 1; + return 0; +} + +static int stac92xx_io_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct sigmatel_spec *spec = codec->spec; + int io_idx = kcontrol-> private_value & 0xff; + + ucontrol->value.integer.value[0] = spec->io_switch[io_idx]; + return 0; +} + +static int stac92xx_io_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + struct sigmatel_spec *spec = codec->spec; + hda_nid_t nid = kcontrol->private_value >> 8; + int io_idx = kcontrol-> private_value & 0xff; + unsigned short val = ucontrol->value.integer.value[0]; + + spec->io_switch[io_idx] = val; + + if (val) + stac92xx_auto_set_pinctl(codec, nid, AC_PINCTL_OUT_EN); + else + stac92xx_auto_set_pinctl(codec, nid, AC_PINCTL_IN_EN); + + return 1; +} + +#define STAC_CODEC_IO_SWITCH(xname, xpval) \ + { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ + .name = xname, \ + .index = 0, \ + .info = stac92xx_io_switch_info, \ + .get = stac92xx_io_switch_get, \ + .put = stac92xx_io_switch_put, \ + .private_value = xpval, \ + } + + enum { STAC_CTL_WIDGET_VOL, STAC_CTL_WIDGET_MUTE, + STAC_CTL_WIDGET_IO_SWITCH, }; static struct snd_kcontrol_new stac92xx_control_templates[] = { HDA_CODEC_VOLUME(NULL, 0, 0, 0), HDA_CODEC_MUTE(NULL, 0, 0, 0), + STAC_CODEC_IO_SWITCH(NULL, 0), }; /* add dynamic controls */ @@ -550,6 +543,51 @@ static int stac92xx_add_control(struct sigmatel_spec *spec, int type, const char return 0; } +/* flag inputs as additional dynamic lineouts */ +static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cfg *cfg) +{ + struct sigmatel_spec *spec = codec->spec; + + switch (cfg->line_outs) { + case 3: + /* add line-in as side */ + if (cfg->input_pins[AUTO_PIN_LINE]) { + cfg->line_out_pins[3] = cfg->input_pins[AUTO_PIN_LINE]; + spec->line_switch = 1; + cfg->line_outs++; + } + break; + case 2: + /* add line-in as clfe and mic as side */ + if (cfg->input_pins[AUTO_PIN_LINE]) { + cfg->line_out_pins[2] = cfg->input_pins[AUTO_PIN_LINE]; + spec->line_switch = 1; + cfg->line_outs++; + } + if (cfg->input_pins[AUTO_PIN_MIC]) { + cfg->line_out_pins[3] = cfg->input_pins[AUTO_PIN_MIC]; + spec->mic_switch = 1; + cfg->line_outs++; + } + break; + case 1: + /* add line-in as surr and mic as clfe */ + if (cfg->input_pins[AUTO_PIN_LINE]) { + cfg->line_out_pins[1] = cfg->input_pins[AUTO_PIN_LINE]; + spec->line_switch = 1; + cfg->line_outs++; + } + if (cfg->input_pins[AUTO_PIN_MIC]) { + cfg->line_out_pins[2] = cfg->input_pins[AUTO_PIN_MIC]; + spec->mic_switch = 1; + cfg->line_outs++; + } + break; + } + + return 0; +} + /* fill in the dac_nids table from the parsed pin configuration */ static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec, const struct auto_pin_cfg *cfg) { @@ -578,7 +616,7 @@ static int stac92xx_auto_create_multi_out_ctls(struct sigmatel_spec *spec, const int i, err; for (i = 0; i < cfg->line_outs; i++) { - if (! spec->multiout.dac_nids[i]) + if (!spec->multiout.dac_nids[i]) continue; nid = spec->multiout.dac_nids[i]; @@ -609,6 +647,14 @@ static int stac92xx_auto_create_multi_out_ctls(struct sigmatel_spec *spec, const } } + if (spec->line_switch) + if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_IO_SWITCH, "Line In as Output Switch", cfg->input_pins[AUTO_PIN_LINE] << 8)) < 0) + return err; + + if (spec->mic_switch) + if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_IO_SWITCH, "Mic as Output Switch", (cfg->input_pins[AUTO_PIN_MIC] << 8) | 1)) < 0) + return err; + return 0; } @@ -666,6 +712,9 @@ static int stac92xx_auto_create_analog_input_ctls(struct hda_codec *codec, const for (i = 0; i < AUTO_PIN_LAST; i++) { int index = -1; if (cfg->input_pins[i]) { + /* Enable active pin widget as an input */ + stac92xx_auto_set_pinctl(codec, cfg->input_pins[i], AC_PINCTL_IN_EN); + imux->items[imux->num_items].label = labels[i]; for (j=0; jnum_muxes; j++) { @@ -686,12 +735,6 @@ static int stac92xx_auto_create_analog_input_ctls(struct hda_codec *codec, const return 0; } -static void stac92xx_auto_set_pinctl(struct hda_codec *codec, hda_nid_t nid, int pin_type) - -{ - snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); -} - static void stac92xx_auto_init_multi_out(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -720,6 +763,8 @@ static int stac922x_parse_auto_config(struct hda_codec *codec) if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg)) < 0) return err; + if ((err = stac92xx_add_dyn_out_pins(codec, &spec->autocfg)) < 0) + return err; if ((err = stac92xx_auto_fill_dac_nids(codec, &spec->autocfg)) < 0) return err; if (! spec->autocfg.line_outs && ! spec->autocfg.hp_pin) @@ -731,15 +776,8 @@ static int stac922x_parse_auto_config(struct hda_codec *codec) return err; spec->multiout.max_channels = spec->multiout.num_dacs * 2; - if (spec->multiout.max_channels > 2) { + if (spec->multiout.max_channels > 2) spec->surr_switch = 1; - spec->cur_ch_mode = 1; - spec->num_ch_modes = 2; - if (spec->multiout.max_channels == 8) { - spec->cur_ch_mode++; - spec->num_ch_modes++; - } - } if (spec->autocfg.dig_out_pin) { spec->multiout.dig_out_nid = 0x08; @@ -901,13 +939,16 @@ static int patch_stac9200(struct hda_codec *codec) return -ENOMEM; codec->spec = spec; + spec->board_config = snd_hda_check_board_config(codec, stac9200_cfg_tbl); + if (spec->board_config < 0) + snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC9200, using BIOS defaults\n"); + else { + spec->num_pins = 8; + spec->pin_nids = stac9200_pin_nids; + spec->pin_configs = stac9200_brd_tbl[spec->board_config]; + stac92xx_set_config_regs(codec); + } -#ifdef STAC_TEST - spec->pin_nids = stac9200_pin_nids; - spec->num_pins = 8; - spec->pin_configs = stac9200_pin_configs; - stac92xx_set_config_regs(codec); -#endif spec->multiout.max_channels = 2; spec->multiout.num_dacs = 1; spec->multiout.dac_nids = stac9200_dac_nids; @@ -939,13 +980,16 @@ static int patch_stac922x(struct hda_codec *codec) return -ENOMEM; codec->spec = spec; + spec->board_config = snd_hda_check_board_config(codec, stac922x_cfg_tbl); + if (spec->board_config < 0) + snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, using BIOS defaults\n"); + else { + spec->num_pins = 10; + spec->pin_nids = stac922x_pin_nids; + spec->pin_configs = stac922x_brd_tbl[spec->board_config]; + stac92xx_set_config_regs(codec); + } -#ifdef STAC_TEST - spec->num_pins = 10; - spec->pin_nids = stac922x_pin_nids; - spec->pin_configs = stac922x_pin_configs; - stac92xx_set_config_regs(codec); -#endif spec->adc_nids = stac922x_adc_nids; spec->mux_nids = stac922x_mux_nids; spec->num_muxes = 2; -- cgit v1.2.3-70-g09d2 From adf1b3d25e50dbab48fdd21006bea2dd5a4cb3a8 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 1 Dec 2005 10:49:58 +0100 Subject: [ALSA] Optimize for config without PROC_FS (pci drivers) Optimize the code when compiled without CONFIG_PROC_FS for some pci drivers. Signed-off-by: Takashi Iwai --- sound/pci/ac97/ac97_codec.c | 38 ++----------------------------------- sound/pci/ac97/ac97_local.h | 1 - sound/pci/ac97/ac97_proc.c | 36 +++++++++++++++++++++++++++++++++++ sound/pci/ac97/ak4531_codec.c | 8 +++++++- sound/pci/atiixp.c | 5 ++++- sound/pci/atiixp_modem.c | 5 ++++- sound/pci/ca0106/ca0106_main.c | 2 ++ sound/pci/ca0106/ca0106_proc.c | 3 +++ sound/pci/cs46xx/cs46xx_lib.c | 5 +++++ sound/pci/cs46xx/cs46xx_lib.h | 10 ++++++++++ sound/pci/cs46xx/dsp_spos.c | 2 ++ sound/pci/cs46xx/dsp_spos_scb_lib.c | 4 ++++ sound/pci/emu10k1/emu10k1_main.c | 2 ++ sound/pci/emu10k1/emuproc.c | 2 ++ sound/pci/intel8x0.c | 4 ++++ sound/pci/intel8x0m.c | 5 +++++ 16 files changed, 92 insertions(+), 40 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index abc83fa85bc..17c3ddac35c 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -184,42 +184,6 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = { { 0, 0, NULL, NULL, NULL } }; -const char *snd_ac97_stereo_enhancements[] = -{ - /* 0 */ "No 3D Stereo Enhancement", - /* 1 */ "Analog Devices Phat Stereo", - /* 2 */ "Creative Stereo Enhancement", - /* 3 */ "National Semi 3D Stereo Enhancement", - /* 4 */ "YAMAHA Ymersion", - /* 5 */ "BBE 3D Stereo Enhancement", - /* 6 */ "Crystal Semi 3D Stereo Enhancement", - /* 7 */ "Qsound QXpander", - /* 8 */ "Spatializer 3D Stereo Enhancement", - /* 9 */ "SRS 3D Stereo Enhancement", - /* 10 */ "Platform Tech 3D Stereo Enhancement", - /* 11 */ "AKM 3D Audio", - /* 12 */ "Aureal Stereo Enhancement", - /* 13 */ "Aztech 3D Enhancement", - /* 14 */ "Binaura 3D Audio Enhancement", - /* 15 */ "ESS Technology Stereo Enhancement", - /* 16 */ "Harman International VMAx", - /* 17 */ "Nvidea/IC Ensemble/KS Waves 3D Stereo Enhancement", - /* 18 */ "Philips Incredible Sound", - /* 19 */ "Texas Instruments 3D Stereo Enhancement", - /* 20 */ "VLSI Technology 3D Stereo Enhancement", - /* 21 */ "TriTech 3D Stereo Enhancement", - /* 22 */ "Realtek 3D Stereo Enhancement", - /* 23 */ "Samsung 3D Stereo Enhancement", - /* 24 */ "Wolfson Microelectronics 3D Enhancement", - /* 25 */ "Delta Integration 3D Enhancement", - /* 26 */ "SigmaTel 3D Enhancement", - /* 27 */ "IC Ensemble/KS Waves", - /* 28 */ "Rockwell 3D Stereo Enhancement", - /* 29 */ "Reserved 29", - /* 30 */ "Reserved 30", - /* 31 */ "Reserved 31" -}; - /* * I/O routines @@ -1895,10 +1859,12 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, init_MUTEX(&ac97->reg_mutex); init_MUTEX(&ac97->page_mutex); +#ifdef CONFIG_PCI if (ac97->pci) { pci_read_config_word(ac97->pci, PCI_SUBSYSTEM_VENDOR_ID, &ac97->subsystem_vendor); pci_read_config_word(ac97->pci, PCI_SUBSYSTEM_ID, &ac97->subsystem_device); } +#endif if (bus->ops->reset) { bus->ops->reset(ac97); goto __access_ok; diff --git a/sound/pci/ac97/ac97_local.h b/sound/pci/ac97/ac97_local.h index e98587e027d..a6244c720a1 100644 --- a/sound/pci/ac97/ac97_local.h +++ b/sound/pci/ac97/ac97_local.h @@ -57,7 +57,6 @@ struct ac97_enum { .private_value = (unsigned long)&xenum } /* ac97_codec.c */ -extern const char *snd_ac97_stereo_enhancements[]; extern const struct snd_kcontrol_new snd_ac97_controls_3d[]; extern const struct snd_kcontrol_new snd_ac97_controls_spdif[]; struct snd_kcontrol *snd_ac97_cnew(const struct snd_kcontrol_new *_template, struct snd_ac97 * ac97); diff --git a/sound/pci/ac97/ac97_proc.c b/sound/pci/ac97/ac97_proc.c index 26607320129..7134b3f55fb 100644 --- a/sound/pci/ac97/ac97_proc.c +++ b/sound/pci/ac97/ac97_proc.c @@ -68,6 +68,42 @@ static void snd_ac97_proc_read_functions(struct snd_ac97 *ac97, struct snd_info_ } } +static const char *snd_ac97_stereo_enhancements[] = +{ + /* 0 */ "No 3D Stereo Enhancement", + /* 1 */ "Analog Devices Phat Stereo", + /* 2 */ "Creative Stereo Enhancement", + /* 3 */ "National Semi 3D Stereo Enhancement", + /* 4 */ "YAMAHA Ymersion", + /* 5 */ "BBE 3D Stereo Enhancement", + /* 6 */ "Crystal Semi 3D Stereo Enhancement", + /* 7 */ "Qsound QXpander", + /* 8 */ "Spatializer 3D Stereo Enhancement", + /* 9 */ "SRS 3D Stereo Enhancement", + /* 10 */ "Platform Tech 3D Stereo Enhancement", + /* 11 */ "AKM 3D Audio", + /* 12 */ "Aureal Stereo Enhancement", + /* 13 */ "Aztech 3D Enhancement", + /* 14 */ "Binaura 3D Audio Enhancement", + /* 15 */ "ESS Technology Stereo Enhancement", + /* 16 */ "Harman International VMAx", + /* 17 */ "Nvidea/IC Ensemble/KS Waves 3D Stereo Enhancement", + /* 18 */ "Philips Incredible Sound", + /* 19 */ "Texas Instruments 3D Stereo Enhancement", + /* 20 */ "VLSI Technology 3D Stereo Enhancement", + /* 21 */ "TriTech 3D Stereo Enhancement", + /* 22 */ "Realtek 3D Stereo Enhancement", + /* 23 */ "Samsung 3D Stereo Enhancement", + /* 24 */ "Wolfson Microelectronics 3D Enhancement", + /* 25 */ "Delta Integration 3D Enhancement", + /* 26 */ "SigmaTel 3D Enhancement", + /* 27 */ "IC Ensemble/KS Waves", + /* 28 */ "Rockwell 3D Stereo Enhancement", + /* 29 */ "Reserved 29", + /* 30 */ "Reserved 30", + /* 31 */ "Reserved 31" +}; + static void snd_ac97_proc_read_main(struct snd_ac97 *ac97, struct snd_info_buffer *buffer, int subidx) { char name[64]; diff --git a/sound/pci/ac97/ak4531_codec.c b/sound/pci/ac97/ak4531_codec.c index 3eb885584e9..dcfb5036ff8 100644 --- a/sound/pci/ac97/ak4531_codec.c +++ b/sound/pci/ac97/ak4531_codec.c @@ -30,7 +30,11 @@ MODULE_AUTHOR("Jaroslav Kysela "); MODULE_DESCRIPTION("Universal routines for AK4531 codec"); MODULE_LICENSE("GPL"); +#ifdef CONFIG_PROC_FS static void snd_ak4531_proc_init(struct snd_card *card, struct snd_ak4531 *ak4531); +#else +#define snd_ak4531_proc_init(card,ak) +#endif /* * @@ -425,8 +429,9 @@ void snd_ak4531_resume(struct snd_ak4531 *ak4531) } #endif +#ifdef CONFIG_PROC_FS /* - + * /proc interface */ static void snd_ak4531_proc_read(struct snd_info_entry *entry, @@ -448,6 +453,7 @@ static void snd_ak4531_proc_init(struct snd_card *card, struct snd_ak4531 *ak453 if (! snd_card_proc_new(card, "ak4531", &entry)) snd_info_set_text_ops(entry, ak4531, 1024, snd_ak4531_proc_read); } +#endif EXPORT_SYMBOL(snd_ak4531_mixer); #ifdef CONFIG_PM diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index a039284c7c5..33e0664a192 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -1477,6 +1477,7 @@ static int snd_atiixp_resume(struct pci_dev *pci) #endif /* CONFIG_PM */ +#ifdef CONFIG_PROC_FS /* * proc interface for register dump */ @@ -1498,7 +1499,9 @@ static void __devinit snd_atiixp_proc_init(struct atiixp *chip) if (! snd_card_proc_new(chip->card, "atiixp", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_atiixp_proc_read); } - +#else /* !CONFIG_PROC_FS */ +#define snd_atiixp_proc_init(chip) +#endif /* diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index 73f1f2b1a35..8d8fd5a4ed3 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c @@ -1156,6 +1156,7 @@ static int snd_atiixp_resume(struct pci_dev *pci) #endif /* CONFIG_PM */ +#ifdef CONFIG_PROC_FS /* * proc interface for register dump */ @@ -1177,7 +1178,9 @@ static void __devinit snd_atiixp_proc_init(struct atiixp_modem *chip) if (! snd_card_proc_new(chip->card, "atiixp-modem", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_atiixp_proc_read); } - +#else +#define snd_atiixp_proc_init(chip) +#endif /* diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 744f9718372..5964cdc93f7 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -1456,7 +1456,9 @@ static int __devinit snd_ca0106_probe(struct pci_dev *pci, } snd_printdd(" done.\n"); +#ifdef CONFIG_PROC_FS snd_ca0106_proc_init(chip); +#endif if ((err = snd_card_register(card)) < 0) { snd_card_free(card); diff --git a/sound/pci/ca0106/ca0106_proc.c b/sound/pci/ca0106/ca0106_proc.c index 94b62259938..63757273bfb 100644 --- a/sound/pci/ca0106/ca0106_proc.c +++ b/sound/pci/ca0106/ca0106_proc.c @@ -77,6 +77,8 @@ #include "ca0106.h" +#ifdef CONFIG_PROC_FS + struct snd_ca0106_category_str { int val; const char *name; @@ -459,3 +461,4 @@ int __devinit snd_ca0106_proc_init(struct snd_ca0106 * emu) return 0; } +#endif /* CONFIG_PROC_FS */ diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index 0ec0592a6e6..8fb275d6eb7 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c @@ -2747,6 +2747,7 @@ int __devinit snd_cs46xx_gameport(struct snd_cs46xx *chip) { return -ENOSYS; } static inline void snd_cs46xx_remove_gameport(struct snd_cs46xx *chip) { } #endif /* CONFIG_GAMEPORT */ +#ifdef CONFIG_PROC_FS /* * proc interface */ @@ -2800,6 +2801,10 @@ static int snd_cs46xx_proc_done(struct snd_cs46xx *chip) #endif return 0; } +#else /* !CONFIG_PROC_FS */ +#define snd_cs46xx_proc_init(card, chip) +#define snd_cs46xx_proc_done(chip) +#endif /* * stop the h/w diff --git a/sound/pci/cs46xx/cs46xx_lib.h b/sound/pci/cs46xx/cs46xx_lib.h index 8b4a4aeaf85..f75750c2bd2 100644 --- a/sound/pci/cs46xx/cs46xx_lib.h +++ b/sound/pci/cs46xx/cs46xx_lib.h @@ -88,8 +88,13 @@ void cs46xx_dsp_spos_destroy (struct snd_cs46xx * chip); int cs46xx_dsp_load_module (struct snd_cs46xx * chip, struct dsp_module_desc * module); struct dsp_symbol_entry *cs46xx_dsp_lookup_symbol (struct snd_cs46xx * chip, char * symbol_name, int symbol_type); +#ifdef CONFIG_PROC_FS int cs46xx_dsp_proc_init (struct snd_card *card, struct snd_cs46xx *chip); int cs46xx_dsp_proc_done (struct snd_cs46xx *chip); +#else +#define cs46xx_dsp_proc_init(card, chip) +#define cs46xx_dsp_proc_done(chip) +#endif int cs46xx_dsp_scb_and_task_init (struct snd_cs46xx *chip); int snd_cs46xx_download (struct snd_cs46xx *chip, u32 *src, unsigned long offset, unsigned long len); @@ -106,9 +111,14 @@ int cs46xx_dsp_disable_adc_capture (struct snd_cs46xx *chip); int cs46xx_poke_via_dsp (struct snd_cs46xx *chip, u32 address, u32 data); struct dsp_scb_descriptor * cs46xx_dsp_create_scb (struct snd_cs46xx *chip, char * name, u32 * scb_data, u32 dest); +#ifdef CONFIG_PROC_FS void cs46xx_dsp_proc_free_scb_desc (struct dsp_scb_descriptor * scb); void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip, struct dsp_scb_descriptor * scb); +#else +#define cs46xx_dsp_proc_free_scb_desc(scb) +#define cs46xx_dsp_proc_register_scb_desc(chip, scb) +#endif struct dsp_scb_descriptor * cs46xx_dsp_create_timing_master_scb (struct snd_cs46xx *chip); struct dsp_scb_descriptor * cs46xx_dsp_create_codec_out_scb(struct snd_cs46xx * chip, diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c index ac98917a147..445a448949e 100644 --- a/sound/pci/cs46xx/dsp_spos.c +++ b/sound/pci/cs46xx/dsp_spos.c @@ -439,6 +439,7 @@ cs46xx_dsp_lookup_symbol (struct snd_cs46xx * chip, char * symbol_name, int symb } +#ifdef CONFIG_PROC_FS static struct dsp_symbol_entry * cs46xx_dsp_lookup_symbol_addr (struct snd_cs46xx * chip, u32 address, int symbol_type) { @@ -912,6 +913,7 @@ int cs46xx_dsp_proc_done (struct snd_cs46xx *chip) return 0; } +#endif /* CONFIG_PROC_FS */ static int debug_tree; static void _dsp_create_task_tree (struct snd_cs46xx *chip, u32 * task_data, diff --git a/sound/pci/cs46xx/dsp_spos_scb_lib.c b/sound/pci/cs46xx/dsp_spos_scb_lib.c index 6e865005b26..509aa2b6333 100644 --- a/sound/pci/cs46xx/dsp_spos_scb_lib.c +++ b/sound/pci/cs46xx/dsp_spos_scb_lib.c @@ -64,6 +64,7 @@ static void remove_symbol (struct snd_cs46xx * chip, struct dsp_symbol_entry * s } +#ifdef CONFIG_PROC_FS static void cs46xx_dsp_proc_scb_info_read (struct snd_info_entry *entry, struct snd_info_buffer *buffer) { @@ -106,6 +107,7 @@ static void cs46xx_dsp_proc_scb_info_read (struct snd_info_entry *entry, snd_iprintf(buffer,"index [%d] ref_count [%d]\n",scb->index,scb->ref_count); up(&chip->spos_mutex); } +#endif static void _dsp_unlink_scb (struct snd_cs46xx *chip, struct dsp_scb_descriptor * scb) { @@ -220,6 +222,7 @@ void cs46xx_dsp_remove_scb (struct snd_cs46xx *chip, struct dsp_scb_descriptor * } +#ifdef CONFIG_PROC_FS void cs46xx_dsp_proc_free_scb_desc (struct dsp_scb_descriptor * scb) { if (scb->proc_info) { @@ -275,6 +278,7 @@ out: scb->proc_info = entry; } } +#endif /* CONFIG_PROC_FS */ static struct dsp_scb_descriptor * _dsp_create_generic_scb (struct snd_cs46xx *chip, char * name, u32 * scb_data, u32 dest, diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index cc36b748d9a..175f8aac8de 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -1076,7 +1076,9 @@ int __devinit snd_emu10k1_create(struct snd_card *card, if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, emu, &ops)) < 0) goto error; +#ifdef CONFIG_PROC_FS snd_emu10k1_proc_init(emu); +#endif snd_card_set_dev(card, &pci->dev); *remu = emu; diff --git a/sound/pci/emu10k1/emuproc.c b/sound/pci/emu10k1/emuproc.c index b88137f9165..90f1c52703a 100644 --- a/sound/pci/emu10k1/emuproc.c +++ b/sound/pci/emu10k1/emuproc.c @@ -32,6 +32,7 @@ #include #include "p16v.h" +#ifdef CONFIG_PROC_FS static void snd_emu10k1_proc_spdif_status(struct snd_emu10k1 * emu, struct snd_info_buffer *buffer, char *title, @@ -620,3 +621,4 @@ int __devinit snd_emu10k1_proc_init(struct snd_emu10k1 * emu) } return 0; } +#endif /* CONFIG_PROC_FS */ diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 5bbc8a04753..d3a4e5e8e04 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -2579,6 +2579,7 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip) printk(KERN_INFO "intel8x0: clocking to %d\n", chip->ac97_bus->clock); } +#ifdef CONFIG_PROC_FS static void snd_intel8x0_proc_read(struct snd_info_entry * entry, struct snd_info_buffer *buffer) { @@ -2612,6 +2613,9 @@ static void __devinit snd_intel8x0_proc_init(struct intel8x0 * chip) if (! snd_card_proc_new(chip->card, "intel8x0", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_intel8x0_proc_read); } +#else +#define snd_intel8x0_proc_init(x) +#endif static int snd_intel8x0_dev_free(struct snd_device *device) { diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c index 466170e1216..47e26aaa9ad 100644 --- a/sound/pci/intel8x0m.c +++ b/sound/pci/intel8x0m.c @@ -1066,6 +1066,7 @@ static int intel8x0m_resume(struct pci_dev *pci) } #endif /* CONFIG_PM */ +#ifdef CONFIG_PROC_FS static void snd_intel8x0m_proc_read(struct snd_info_entry * entry, struct snd_info_buffer *buffer) { @@ -1093,6 +1094,10 @@ static void __devinit snd_intel8x0m_proc_init(struct intel8x0m * chip) if (! snd_card_proc_new(chip->card, "intel8x0m", &entry)) snd_info_set_text_ops(entry, chip, 1024, snd_intel8x0m_proc_read); } +#else /* !CONFIG_PROC_FS */ +#define snd_intel8x0m_proc_init(chip) +#endif /* CONFIG_PROC_FS */ + static int snd_intel8x0_dev_free(struct snd_device *device) { -- cgit v1.2.3-70-g09d2 From 58da3a23fe12b1c4730cb85af203950c7707220c Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Thu, 1 Dec 2005 11:14:00 +0100 Subject: [ALSA] au88x0: Remove unneeded call to pci_dma_supported() Modules: au88x0 driver pci_dma_supported() is called right before pci_set_dma_mask() which already calls pci_dma_supported(). The attached patch removes the unneeded call to pci_dma_supported() Additionally the custom VORTEX_DMA_MASK macro is replaced by DMA_32BIT_MASK from linux/dma-mapping.h Signed-off-by: Tobias Klauser Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai --- sound/pci/au88x0/au88x0.c | 4 ++-- sound/pci/au88x0/au88x0.h | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c index 7c547859ae0..7d9184f7367 100644 --- a/sound/pci/au88x0/au88x0.c +++ b/sound/pci/au88x0/au88x0.c @@ -20,6 +20,7 @@ #include #include #include +#include #include // module parameters (see "Module Parameters") @@ -150,11 +151,10 @@ snd_vortex_create(struct snd_card *card, struct pci_dev *pci, vortex_t ** rchip) // check PCI availability (DMA). if ((err = pci_enable_device(pci)) < 0) return err; - if (!pci_dma_supported(pci, VORTEX_DMA_MASK)) { + if (pci_set_dma_mask(pci, DMA_32BIT_MASK)) { printk(KERN_ERR "error to set DMA mask\n"); return -ENXIO; } - pci_set_dma_mask(pci, VORTEX_DMA_MASK); chip = kzalloc(sizeof(*chip), GFP_KERNEL); if (chip == NULL) diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h index 745f995a20d..c2ad2674bea 100644 --- a/sound/pci/au88x0/au88x0.h +++ b/sound/pci/au88x0/au88x0.h @@ -39,8 +39,6 @@ #include "au88x0_wt.h" #endif -#define VORTEX_DMA_MASK 0xffffffff - #define hwread(x,y) readl((x)+((y)>>2)) #define hwwrite(x,y,z) writel((z),(x)+((y)>>2)) -- cgit v1.2.3-70-g09d2 From 19b99fbaed2e2971b756311435c67e84431d8515 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Sun, 4 Dec 2005 18:03:03 +0100 Subject: [ALSA] emu10k1: Partial support for Creative emu1212m Modules: EMU10K1/EMU10K2 driver Distorted sound now comes from the Audio Out socket. Still more work to do. Signed-off-by: James Courtier-Dutton --- include/sound/emu10k1.h | 1 + sound/pci/emu10k1/emu10k1_main.c | 150 +++++++++++++++++++++++++++++++++++++-- sound/pci/emu10k1/emufx.c | 9 +++ sound/pci/emu10k1/emumixer.c | 4 +- 4 files changed, 159 insertions(+), 5 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index 3d0496cc109..0d6e68c43e6 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h @@ -1061,6 +1061,7 @@ struct snd_emu_chip_details { unsigned char spdif_bug; /* Has Spdif phasing bug */ unsigned char ac97_chip; /* Has an AC97 chip: 1 = mandatory, 2 = optional */ unsigned char ecard; /* APS EEPROM */ + unsigned char emu1212m; /* EMU 1212m card */ const char *driver; const char *name; const char *id; /* for backward compatibility - can be NULL if not needed */ diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 175f8aac8de..f6cf589593b 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -42,6 +42,7 @@ #include "p16v.h" #include "tina2.h" + /************************************************************************* * EMU10K1 init / done *************************************************************************/ @@ -217,7 +218,9 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) outl(HCFG_LOCKTANKCACHE_MASK | HCFG_AUTOMUTE | HCFG_JOYENABLE, emu->port + HCFG); if (enable_ir) { /* enable IR for SB Live */ - if (emu->audigy) { + if ( emu->card_capabilities->emu1212m) { + ; /* Disable all access to A_IOCFG for the emu1212m */ + } else if (emu->audigy) { unsigned int reg = inl(emu->port + A_IOCFG); outl(reg | A_IOCFG_GPOUT2, emu->port + A_IOCFG); udelay(500); @@ -234,7 +237,9 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) } } - if (emu->audigy) { /* enable analog output */ + if ( emu->card_capabilities->emu1212m) { + ; /* Disable all access to A_IOCFG for the emu1212m */ + } else if (emu->audigy) { /* enable analog output */ unsigned int reg = inl(emu->port + A_IOCFG); outl(reg | A_IOCFG_GPOUT0, emu->port + A_IOCFG); } @@ -250,7 +255,9 @@ static void snd_emu10k1_audio_enable(struct snd_emu10k1 *emu) outl(inl(emu->port + HCFG) | HCFG_AUDIOENABLE, emu->port + HCFG); /* Enable analog/digital outs on audigy */ - if (emu->audigy) { + if ( emu->card_capabilities->emu1212m) { + ; /* Disable all access to A_IOCFG for the emu1212m */ + } else if (emu->audigy) { outl(inl(emu->port + A_IOCFG) & ~0x44, emu->port + A_IOCFG); if (emu->card_capabilities->ca0151_chip) { /* audigy2 */ @@ -542,6 +549,136 @@ static int __devinit snd_emu10k1_cardbus_init(struct snd_emu10k1 * emu) return 0; } +static int snd_emu1212m_fpga_write(struct snd_emu10k1 * emu, int reg, int value) +{ + if (reg<0 || reg>0x3f) + return 1; + reg+=0x40; /* 0x40 upwards are registers. */ + if (value<0 || value>0x3f) /* 0 to 0x3f are values */ + return 1; + outl(reg, emu->port + A_IOCFG); + outl(reg | 0x80, emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */ + outl(value, emu->port + A_IOCFG); + outl(value | 0x80 , emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */ + + return 0; +} + +static int snd_emu1212m_fpga_read(struct snd_emu10k1 * emu, int reg, int *value) +{ + if (reg<0 || reg>0x3f) + return 1; + reg+=0x40; /* 0x40 upwards are registers. */ + outl(reg, emu->port + A_IOCFG); + outl(reg | 0x80, emu->port + A_IOCFG); /* High bit clocks the value into the fpga. */ + *value = inl(emu->port + A_IOCFG); + + return 0; +} + +static int snd_emu1212m_fpga_netlist_write(struct snd_emu10k1 * emu, int reg, int value) +{ + snd_emu1212m_fpga_write(emu, 0x00, ((reg >> 8) & 0x3f) ); + snd_emu1212m_fpga_write(emu, 0x01, (reg & 0x3f) ); + snd_emu1212m_fpga_write(emu, 0x02, ((value >> 8) & 0x3f) ); + snd_emu1212m_fpga_write(emu, 0x03, (value & 0x3f) ); + + return 0; +} + +static int __devinit snd_emu10k1_emu1212m_init(struct snd_emu10k1 * emu) +{ + unsigned int i; + int tmp; + + snd_printk(KERN_ERR "emu1212m: Special config.\n"); + outl(0x0005a00c, emu->port + HCFG); + outl(0x0005a004, emu->port + HCFG); + outl(0x0005a000, emu->port + HCFG); + outl(0x0005a000, emu->port + HCFG); + + snd_emu1212m_fpga_read(emu, 0x22, &tmp ); + snd_emu1212m_fpga_read(emu, 0x23, &tmp ); + snd_emu1212m_fpga_read(emu, 0x24, &tmp ); + snd_emu1212m_fpga_write(emu, 0x04, 0x01 ); + snd_emu1212m_fpga_read(emu, 0x0b, &tmp ); + snd_emu1212m_fpga_write(emu, 0x0b, 0x01 ); + snd_emu1212m_fpga_read(emu, 0x10, &tmp ); + snd_emu1212m_fpga_write(emu, 0x10, 0x00 ); + snd_emu1212m_fpga_read(emu, 0x11, &tmp ); + snd_emu1212m_fpga_write(emu, 0x11, 0x30 ); + snd_emu1212m_fpga_read(emu, 0x13, &tmp ); + snd_emu1212m_fpga_write(emu, 0x13, 0x0f ); + snd_emu1212m_fpga_read(emu, 0x11, &tmp ); + snd_emu1212m_fpga_write(emu, 0x11, 0x30 ); + snd_emu1212m_fpga_read(emu, 0x0a, &tmp ); + snd_emu1212m_fpga_write(emu, 0x0a, 0x10 ); + snd_emu1212m_fpga_write(emu, 0x0c, 0x19 ); + snd_emu1212m_fpga_write(emu, 0x12, 0x0c ); + snd_emu1212m_fpga_write(emu, 0x09, 0x0f ); + snd_emu1212m_fpga_write(emu, 0x06, 0x00 ); + snd_emu1212m_fpga_write(emu, 0x05, 0x00 ); + snd_emu1212m_fpga_write(emu, 0x0e, 0x12 ); + snd_emu1212m_fpga_netlist_write(emu, 0x0000, 0x0200); + snd_emu1212m_fpga_netlist_write(emu, 0x0001, 0x0201); + snd_emu1212m_fpga_netlist_write(emu, 0x0002, 0x0500); + snd_emu1212m_fpga_netlist_write(emu, 0x0003, 0x0501); + snd_emu1212m_fpga_netlist_write(emu, 0x0004, 0x0400); + snd_emu1212m_fpga_netlist_write(emu, 0x0005, 0x0401); + snd_emu1212m_fpga_netlist_write(emu, 0x0006, 0x0402); + snd_emu1212m_fpga_netlist_write(emu, 0x0007, 0x0403); + snd_emu1212m_fpga_netlist_write(emu, 0x0008, 0x0404); + snd_emu1212m_fpga_netlist_write(emu, 0x0009, 0x0405); + snd_emu1212m_fpga_netlist_write(emu, 0x000a, 0x0406); + snd_emu1212m_fpga_netlist_write(emu, 0x000b, 0x0407); + snd_emu1212m_fpga_netlist_write(emu, 0x000c, 0x0100); + snd_emu1212m_fpga_netlist_write(emu, 0x000d, 0x0104); + snd_emu1212m_fpga_netlist_write(emu, 0x000e, 0x0200); + snd_emu1212m_fpga_netlist_write(emu, 0x000f, 0x0201); + for (i=0;i < 0x20;i++) { + snd_emu1212m_fpga_netlist_write(emu, 0x0100+i, 0x0000); + } + for (i=0;i < 4;i++) { + snd_emu1212m_fpga_netlist_write(emu, 0x0200+i, 0x0000); + } + for (i=0;i < 7;i++) { + snd_emu1212m_fpga_netlist_write(emu, 0x0300+i, 0x0000); + } + for (i=0;i < 7;i++) { + snd_emu1212m_fpga_netlist_write(emu, 0x0400+i, 0x0000); + } + snd_emu1212m_fpga_netlist_write(emu, 0x0500, 0x0108); + snd_emu1212m_fpga_netlist_write(emu, 0x0501, 0x010c); + snd_emu1212m_fpga_netlist_write(emu, 0x0600, 0x0110); + snd_emu1212m_fpga_netlist_write(emu, 0x0601, 0x0114); + snd_emu1212m_fpga_netlist_write(emu, 0x0700, 0x0118); + snd_emu1212m_fpga_netlist_write(emu, 0x0701, 0x011c); + snd_emu1212m_fpga_write(emu, 0x07, 0x01 ); + + snd_emu1212m_fpga_read(emu, 0x21, &tmp ); + + outl(0x0000a000, emu->port + HCFG); + outl(0x0000a001, emu->port + HCFG); + /* Initial boot complete. Now patches */ + + snd_emu1212m_fpga_read(emu, 0x21, &tmp ); + snd_emu1212m_fpga_write(emu, 0x0c, 0x19 ); + snd_emu1212m_fpga_write(emu, 0x12, 0x0c ); + snd_emu1212m_fpga_write(emu, 0x0c, 0x19 ); + snd_emu1212m_fpga_write(emu, 0x12, 0x0c ); + snd_emu1212m_fpga_read(emu, 0x0a, &tmp ); + snd_emu1212m_fpga_write(emu, 0x0a, 0x10 ); + + snd_emu1212m_fpga_read(emu, 0x20, &tmp ); + snd_emu1212m_fpga_read(emu, 0x21, &tmp ); + + snd_emu1212m_fpga_netlist_write(emu, 0x0300, 0x0312); + snd_emu1212m_fpga_netlist_write(emu, 0x0301, 0x0313); + snd_emu1212m_fpga_netlist_write(emu, 0x0200, 0x0302); + snd_emu1212m_fpga_netlist_write(emu, 0x0201, 0x0303); + + return 0; +} /* * Create the EMU10K1 instance */ @@ -623,7 +760,7 @@ static struct snd_emu_chip_details emu_chip_details[] = { .id = "EMU1212m", .emu10k2_chip = 1, .ca0102_chip = 1, - .ecard = 1} , + .emu1212m = 1} , /* Tested by James@superbug.co.uk 3rd July 2005 */ {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20071102, .driver = "Audigy2", .name = "Audigy 4 PRO [SB0380]", @@ -1013,6 +1150,11 @@ int __devinit snd_emu10k1_create(struct snd_card *card, } else if (emu->card_capabilities->ca_cardbus_chip) { if ((err = snd_emu10k1_cardbus_init(emu)) < 0) goto error; + } else if (emu->card_capabilities->emu1212m) { + if ((err = snd_emu10k1_emu1212m_init(emu)) < 0) { + snd_emu10k1_free(emu); + return err; + } } else { /* 5.1: Enable the additional AC97 Slots. If the emu10k1 version does not support this, it shouldn't do any harm */ diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c index a44e4fdfc02..cd356b04078 100644 --- a/sound/pci/emu10k1/emufx.c +++ b/sound/pci/emu10k1/emufx.c @@ -1102,6 +1102,14 @@ static int __devinit _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu) /* stop FX processor */ snd_emu10k1_ptr_write(emu, A_DBG, 0, (emu->fx8010.dbg = 0) | A_DBG_SINGLE_STEP); +#if 0 + /* FIX: jcd test */ + for (z = 0; z < 80; z=z+2) { + A_OP(icode, &ptr, iACC3, A_EXTOUT(z), A_FXBUS(FXBUS_PCM_LEFT_FRONT), A_C_00000000, A_C_00000000); /* left */ + A_OP(icode, &ptr, iACC3, A_EXTOUT(z+1), A_FXBUS(FXBUS_PCM_RIGHT_FRONT), A_C_00000000, A_C_00000000); /* right */ + } +#endif /* jcd test */ +#if 1 /* PCM front Playback Volume (independent from stereo mix) */ A_OP(icode, &ptr, iMAC0, A_GPR(playback), A_C_00000000, A_GPR(gpr), A_FXBUS(FXBUS_PCM_LEFT_FRONT)); A_OP(icode, &ptr, iMAC0, A_GPR(playback+1), A_C_00000000, A_GPR(gpr+1), A_FXBUS(FXBUS_PCM_RIGHT_FRONT)); @@ -1447,6 +1455,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input)) A_OP(icode, &ptr, iACC3, A_FXBUS2(z), A_C_00000000, A_C_00000000, A_EXTIN(z)); } +#endif /* JCD test */ /* * ok, set up done.. */ diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c index 98fb8139427..306fe4aa4aa 100644 --- a/sound/pci/emu10k1/emumixer.c +++ b/sound/pci/emu10k1/emumixer.c @@ -959,7 +959,9 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, return err; } - if (emu->audigy) { + if ( emu->card_capabilities->emu1212m) { + ; /* Disable the snd_audigy_spdif_shared_spdif */ + } else if (emu->audigy) { if ((kctl = snd_ctl_new1(&snd_audigy_shared_spdif, emu)) == NULL) return -ENOMEM; if ((err = snd_ctl_add(card, kctl))) -- cgit v1.2.3-70-g09d2 From bd01e7bc9e975d7d3d6fe4eb2f2cf7ae83041c49 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 5 Dec 2005 15:12:20 +0100 Subject: [ALSA] emu10k1 - Fix missing declarations Modules: EMU10K1/EMU10K2 driver sound/pci/emu10k1/emufx.c: In function 'snd_emu10k1_efx_alloc_pm_buffer': sound/pci/emu10k1/emufx.c:2402: error: implicit declaration of function 'vmalloc' sound/pci/emu10k1/emufx.c:2402: warning: assignment makes pointer from integer without a cast sound/pci/emu10k1/emufx.c: In function 'snd_emu10k1_efx_free_pm_buffer': sound/pci/emu10k1/emufx.c:2413: error: implicit declaration of function 'vfree' Signed-off-by: Andreas Schwab Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/emufx.c | 1 + sound/pci/emu10k1/p16v.c | 1 + 2 files changed, 2 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c index cd356b04078..1a903390ad6 100644 --- a/sound/pci/emu10k1/emufx.c +++ b/sound/pci/emu10k1/emufx.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c index adce6af98d0..76d86ed46df 100644 --- a/sound/pci/emu10k1/p16v.c +++ b/sound/pci/emu10k1/p16v.c @@ -93,6 +93,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3-70-g09d2 From 59acf76e0268e3f0156ef5113e89d838a8c02bb6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 5 Dec 2005 19:22:34 +0100 Subject: [ALSA] ice1724 - Add support of M-Audio Revolution 5.1 Modules: ICE1724 driver Added the basic support of M-Audio Revolution 5.1. Signed-off-by: Takashi Iwai --- sound/pci/ice1712/revo.c | 45 ++++++++++++++++++++++++++++++++++++++++++--- sound/pci/ice1712/revo.h | 4 +++- 2 files changed, 45 insertions(+), 4 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ice1712/revo.c b/sound/pci/ice1712/revo.c index 664b738bb64..b5754b32b80 100644 --- a/sound/pci/ice1712/revo.c +++ b/sound/pci/ice1712/revo.c @@ -61,7 +61,7 @@ static void revo_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate) else dfs = 0; - if (ak->type == SND_AK4355) { + if (ak->type == SND_AK4355 || ak->type == SND_AK4358) { reg = 2; shift = 4; } else { @@ -128,6 +128,26 @@ static struct snd_ak4xxx_private akm_revo_surround_priv __devinitdata = { .mask_flags = 0, }; +static struct snd_akm4xxx akm_revo51 __devinitdata = { + .type = SND_AK4358, + .num_dacs = 6, + .ops = { + .set_rate_val = revo_set_rate_val + } +}; + +static struct snd_ak4xxx_private akm_revo51_priv __devinitdata = { + .caddr = 2, + .cif = 0, + .data_mask = VT1724_REVO_CDOUT, + .clk_mask = VT1724_REVO_CCLK, + .cs_mask = VT1724_REVO_CS0 | VT1724_REVO_CS1 | VT1724_REVO_CS2, + .cs_addr = 0, + .cs_none = VT1724_REVO_CS0 | VT1724_REVO_CS1 | VT1724_REVO_CS2, + .add_flags = VT1724_REVO_CCLK, /* high at init */ + .mask_flags = 0, +}; + static int __devinit revo_init(struct snd_ice1712 *ice) { struct snd_akm4xxx *ak; @@ -138,14 +158,17 @@ static int __devinit revo_init(struct snd_ice1712 *ice) case VT1724_SUBDEVICE_REVOLUTION71: ice->num_total_dacs = 8; ice->num_total_adcs = 2; + ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed; + break; + case VT1724_SUBDEVICE_REVOLUTION51: + ice->num_total_dacs = 6; + ice->num_total_adcs = 2; break; default: snd_BUG(); return -EINVAL; } - ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed; - /* second stage of initialization, analog parts and others */ ak = ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL); if (! ak) @@ -153,6 +176,7 @@ static int __devinit revo_init(struct snd_ice1712 *ice) ice->akm_codecs = 2; switch (ice->eeprom.subvendor) { case VT1724_SUBDEVICE_REVOLUTION71: + ice->akm_codecs = 2; if ((err = snd_ice1712_akm4xxx_init(ak, &akm_revo_front, &akm_revo_front_priv, ice)) < 0) return err; if ((err = snd_ice1712_akm4xxx_init(ak + 1, &akm_revo_surround, &akm_revo_surround_priv, ice)) < 0) @@ -160,6 +184,13 @@ static int __devinit revo_init(struct snd_ice1712 *ice) /* unmute all codecs */ snd_ice1712_gpio_write_bits(ice, VT1724_REVO_MUTE, VT1724_REVO_MUTE); break; + case VT1724_SUBDEVICE_REVOLUTION51: + ice->akm_codecs = 1; + if ((err = snd_ice1712_akm4xxx_init(ak, &akm_revo51, &akm_revo51_priv, ice)) < 0) + return err; + /* unmute all codecs - needed! */ + snd_ice1712_gpio_write_bits(ice, VT1724_REVO_MUTE, VT1724_REVO_MUTE); + break; } return 0; @@ -172,6 +203,7 @@ static int __devinit revo_add_controls(struct snd_ice1712 *ice) switch (ice->eeprom.subvendor) { case VT1724_SUBDEVICE_REVOLUTION71: + case VT1724_SUBDEVICE_REVOLUTION51: err = snd_ice1712_akm4xxx_build_controls(ice); if (err < 0) return err; @@ -188,5 +220,12 @@ struct snd_ice1712_card_info snd_vt1724_revo_cards[] __devinitdata = { .chip_init = revo_init, .build_controls = revo_add_controls, }, + { + .subvendor = VT1724_SUBDEVICE_REVOLUTION51, + .name = "M Audio Revolution-5.1", + .model = "revo51", + .chip_init = revo_init, + .build_controls = revo_add_controls, + }, { } /* terminator */ }; diff --git a/sound/pci/ice1712/revo.h b/sound/pci/ice1712/revo.h index ca4420b5e3e..dea52ea219d 100644 --- a/sound/pci/ice1712/revo.h +++ b/sound/pci/ice1712/revo.h @@ -25,9 +25,11 @@ */ #define REVO_DEVICE_DESC \ - "{MidiMan M Audio,Revolution 7.1}," + "{MidiMan M Audio,Revolution 7.1},"\ + "{MidiMan M Audio,Revolution 5.1}," #define VT1724_SUBDEVICE_REVOLUTION71 0x12143036 +#define VT1724_SUBDEVICE_REVOLUTION51 0x12143136 /* entry point */ extern struct snd_ice1712_card_info snd_vt1724_revo_cards[]; -- cgit v1.2.3-70-g09d2 From df694daa3c0135202e4702cb2d11e68a43f6c51e Mon Sep 17 00:00:00 2001 From: Kailang Yang Date: Mon, 5 Dec 2005 19:42:22 +0100 Subject: [ALSA] hda-codec - Add the support of ALC262,ALC883,ALC885,ALC861 Modules: HDA Codec driver,HDA generic driver This patch adds the support of ALC262,ALC883,ALC885,ALC861 to driver More models and improvements for ALC880, ALC260 and ALC882 codecs, too. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 16 +- sound/pci/hda/hda_local.h | 5 +- sound/pci/hda/patch_analog.c | 2 +- sound/pci/hda/patch_cmedia.c | 2 +- sound/pci/hda/patch_realtek.c | 2399 ++++++++++++++++++++++++++++++++++++---- sound/pci/hda/patch_sigmatel.c | 4 +- 6 files changed, 2215 insertions(+), 213 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 5ead2a3d05a..bd375f895ec 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -1926,8 +1926,18 @@ int snd_hda_multi_out_analog_cleanup(struct hda_codec *codec, struct hda_multi_o /* * Helper for automatic ping configuration */ + +static int is_in_nid_list(hda_nid_t nid, hda_nid_t *list) +{ + for (; *list; list++) + if (*list == nid) + return 1; + return 0; +} + /* parse all pin widgets and store the useful pin nids to cfg */ -int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *cfg) +int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *cfg, + hda_nid_t *ignore_nids) { hda_nid_t nid, nid_start; int i, j, nodes; @@ -1948,6 +1958,10 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *c /* read all default configuration for pin complex */ if (wid_type != AC_WID_PIN) continue; + /* ignore the given nids (e.g. pc-beep returns error) */ + if (ignore_nids && is_in_nid_list(nid, ignore_nids)) + continue; + def_conf = snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_CONFIG_DEFAULT, 0); if (get_defcfg_connect(def_conf) == AC_JACK_PORT_NONE) continue; diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index ded32359b65..a9863eb20c7 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -213,7 +213,7 @@ enum { struct auto_pin_cfg { int line_outs; - hda_nid_t line_out_pins[4]; /* sorted in the order of Front/Surr/CLFE/Side */ + hda_nid_t line_out_pins[5]; /* sorted in the order of Front/Surr/CLFE/Side */ hda_nid_t speaker_pin; hda_nid_t hp_pin; hda_nid_t input_pins[AUTO_PIN_LAST]; @@ -227,7 +227,8 @@ struct auto_pin_cfg { #define get_defcfg_sequence(cfg) (cfg & AC_DEFCFG_SEQUENCE) #define get_defcfg_device(cfg) ((cfg & AC_DEFCFG_DEVICE) >> AC_DEFCFG_DEVICE_SHIFT) -int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *cfg); +int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *cfg, + hda_nid_t *ignore_nids); /* amp values */ #define AMP_IN_MUTE(idx) (0x7080 | ((idx)<<8)) diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index fc144155f7a..d1e1ded2753 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -1968,7 +1968,7 @@ static int ad1988_parse_auto_config(struct hda_codec *codec) struct ad198x_spec *spec = codec->spec; int err; - if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg)) < 0) + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL)) < 0) return err; if ((err = ad1988_auto_fill_dac_nids(codec, &spec->autocfg)) < 0) return err; diff --git a/sound/pci/hda/patch_cmedia.c b/sound/pci/hda/patch_cmedia.c index 9a698116298..d38ce22507a 100644 --- a/sound/pci/hda/patch_cmedia.c +++ b/sound/pci/hda/patch_cmedia.c @@ -711,7 +711,7 @@ static int patch_cmi9880(struct hda_codec *codec) spec->dig_in_nid = CMI_DIG_IN_NID; spec->multiout.max_channels = 8; } - snd_hda_parse_pin_def_config(codec, &cfg); + snd_hda_parse_pin_def_config(codec, &cfg, NULL); if (cfg.line_outs) { spec->multiout.max_channels = cfg.line_outs * 2; cmi9880_fill_multi_dac_nids(codec, &cfg); diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index c5fb141f622..a98c0e4da0a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3,7 +3,8 @@ * * HD audio interface patch for ALC 260/880/882 codecs * - * Copyright (c) 2004 PeiSen Hou + * Copyright (c) 2004 Kailang Yang + * PeiSen Hou * Takashi Iwai * * This driver is free software; you can redistribute it and/or modify @@ -39,17 +40,20 @@ enum { ALC880_5ST_DIG, ALC880_W810, ALC880_Z71V, - ALC880_AUTO, ALC880_6ST, ALC880_6ST_DIG, ALC880_F1734, ALC880_ASUS, ALC880_ASUS_DIG, ALC880_ASUS_W1V, + ALC880_ASUS_DIG2, ALC880_UNIWILL_DIG, + ALC880_CLEVO, + ALC880_TCL_S700, #ifdef CONFIG_SND_DEBUG ALC880_TEST, #endif + ALC880_AUTO, ALC880_MODEL_LAST /* last tag */ }; @@ -57,16 +61,45 @@ enum { enum { ALC260_BASIC, ALC260_HP, - ALC260_FUJITSU_S702x, + ALC260_HP_3013, + ALC260_FUJITSU_S702X, + ALC260_AUTO, ALC260_MODEL_LAST /* last tag */ }; +/* ALC262 models */ +enum { + ALC262_BASIC, + ALC262_AUTO, + ALC262_MODEL_LAST /* last tag */ +}; + +/* ALC861 models */ +enum { + ALC861_3ST, + ALC861_3ST_DIG, + ALC861_6ST_DIG, + ALC861_AUTO, + ALC861_MODEL_LAST, +}; + +/* ALC882 models */ +enum { + ALC882_3ST_DIG, + ALC882_6ST_DIG, + ALC882_AUTO, + ALC882_MODEL_LAST, +}; + +/* for GPIO Poll */ +#define GPIO_MASK 0x03 + struct alc_spec { /* codec parameterization */ - struct snd_kcontrol_new *mixers[3]; /* mixer arrays */ + struct snd_kcontrol_new *mixers[5]; /* mixer arrays */ unsigned int num_mixers; - const struct hda_verb *init_verbs[3]; /* initialization verbs + const struct hda_verb *init_verbs[5]; /* initialization verbs * don't forget NULL termination! */ unsigned int num_init_verbs; @@ -106,7 +139,25 @@ struct alc_spec { unsigned int num_kctl_alloc, num_kctl_used; struct snd_kcontrol_new *kctl_alloc; struct hda_input_mux private_imux; - hda_nid_t private_dac_nids[4]; + hda_nid_t private_dac_nids[5]; +}; + +/* + * configuration template - to be copied to the spec instance + */ +struct alc_config_preset { + struct snd_kcontrol_new *mixers[5]; /* should be identical size with spec */ + const struct hda_verb *init_verbs[5]; + unsigned int num_dacs; + hda_nid_t *dac_nids; + hda_nid_t dig_out_nid; /* optional */ + hda_nid_t hp_nid; /* optional */ + unsigned int num_adc_nids; + hda_nid_t *adc_nids; + hda_nid_t dig_in_nid; + unsigned int num_channel_mode; + const struct hda_channel_mode *channel_mode; + const struct hda_input_mux *input_mux; }; @@ -143,7 +194,7 @@ static int alc_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_v /* * channel mode setting */ -static int alc880_ch_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +static int alc_ch_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -151,7 +202,7 @@ static int alc880_ch_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_ele spec->num_channel_mode); } -static int alc880_ch_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +static int alc_ch_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -159,7 +210,7 @@ static int alc880_ch_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem spec->num_channel_mode, spec->multiout.max_channels); } -static int alc880_ch_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +static int alc_ch_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct alc_spec *spec = codec->spec; @@ -217,6 +268,36 @@ static int alc_pinctl_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_e .put = alc_pinctl_switch_put, \ .private_value = (nid) | (mask<<16) } + +/* + * set up from the preset table + */ +static void setup_preset(struct alc_spec *spec, const struct alc_config_preset *preset) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(preset->mixers) && preset->mixers[i]; i++) + spec->mixers[spec->num_mixers++] = preset->mixers[i]; + for (i = 0; i < ARRAY_SIZE(preset->init_verbs) && preset->init_verbs[i]; i++) + spec->init_verbs[spec->num_init_verbs++] = preset->init_verbs[i]; + + spec->channel_mode = preset->channel_mode; + spec->num_channel_mode = preset->num_channel_mode; + + spec->multiout.max_channels = spec->channel_mode[0].channels; + + spec->multiout.num_dacs = preset->num_dacs; + spec->multiout.dac_nids = preset->dac_nids; + spec->multiout.dig_out_nid = preset->dig_out_nid; + spec->multiout.hp_nid = preset->hp_nid; + + spec->input_mux = preset->input_mux; + + spec->num_adc_nids = preset->num_adc_nids; + spec->adc_nids = preset->adc_nids; + spec->dig_in_nid = preset->dig_in_nid; +} + /* * ALC880 3-stack model * @@ -237,6 +318,7 @@ static hda_nid_t alc880_adc_nids[3] = { /* The datasheet says the node 0x07 is connected from inputs, * but it shows zero connection in the real implementation on some devices. + * Note: this is a 915GAV bug, fixed on 915GLV */ static hda_nid_t alc880_adc_nids_alt[2] = { /* ADC1-2 */ @@ -307,9 +389,9 @@ static struct snd_kcontrol_new alc880_three_stack_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Channel Mode", - .info = alc880_ch_mode_info, - .get = alc880_ch_mode_get, - .put = alc880_ch_mode_put, + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, }, { } /* end */ }; @@ -452,9 +534,9 @@ static struct snd_kcontrol_new alc880_six_stack_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Channel Mode", - .info = alc880_ch_mode_info, - .get = alc880_ch_mode_get, - .put = alc880_ch_mode_put, + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, }, { } /* end */ }; @@ -596,9 +678,9 @@ static struct snd_kcontrol_new alc880_asus_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Channel Mode", - .info = alc880_ch_mode_info, - .get = alc880_ch_mode_get, - .put = alc880_ch_mode_put, + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, }, { } /* end */ }; @@ -626,6 +708,33 @@ static struct snd_kcontrol_new alc880_pcbeep_mixer[] = { { } /* end */ }; +/* TCL S700 */ +static struct snd_kcontrol_new alc880_tcl_s700_mixer[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x1b, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x0B, 0x04, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x0B, 0x04, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0B, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0B, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* The multiple "Capture Source" controls confuse alsamixer + * So call somewhat different.. + * FIXME: the controls appear in the "playback" view! + */ + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 1, + .info = alc_mux_enum_info, + .get = alc_mux_enum_get, + .put = alc_mux_enum_put, + }, + { } /* end */ +}; + /* * build control elements */ @@ -925,6 +1034,8 @@ static struct hda_verb alc880_gpio1_init_verbs[] = { {0x01, AC_VERB_SET_GPIO_MASK, 0x01}, {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x01}, {0x01, AC_VERB_SET_GPIO_DATA, 0x01}, + + { } }; /* Enable GPIO mask and set output */ @@ -932,8 +1043,59 @@ static struct hda_verb alc880_gpio2_init_verbs[] = { {0x01, AC_VERB_SET_GPIO_MASK, 0x02}, {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02}, {0x01, AC_VERB_SET_GPIO_DATA, 0x02}, + + { } +}; + +/* Clevo m520g init */ +static struct hda_verb alc880_pin_clevo_init_verbs[] = { + /* headphone output */ + {0x11, AC_VERB_SET_CONNECT_SEL, 0x01}, + /* line-out */ + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* Line-in */ + {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* CD */ + {0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + {0x1c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* Mic1 (rear panel) */ + {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* Mic2 (front panel) */ + {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* headphone */ + {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* change to EAPD mode */ + {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, + {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, + + { } }; +static struct hda_verb alc880_pin_tcl_S700_init_verbs[] = { + /* Headphone output */ + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + /* Front output*/ + {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00}, + + /* Line In pin widget for input */ + {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + /* CD pin widget for input */ + {0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + /* Mic1 (rear panel) pin widget for input and vref at 80% */ + {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + + /* change to EAPD mode */ + {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, + {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, + + { } +}; /* */ @@ -1344,9 +1506,9 @@ static struct snd_kcontrol_new alc880_test_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = "Channel Mode", - .info = alc880_ch_mode_info, - .get = alc880_ch_mode_get, - .put = alc880_ch_mode_put, + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, }, { } /* end */ }; @@ -1442,6 +1604,8 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .pci_subvendor = 0x107b, .pci_subdevice = 0x4038, .config = ALC880_3ST }, { .pci_subvendor = 0x107b, .pci_subdevice = 0x4040, .config = ALC880_3ST }, { .pci_subvendor = 0x107b, .pci_subdevice = 0x4041, .config = ALC880_3ST }, + /* TCL S700 */ + { .pci_subvendor = 0x19db, .pci_subdevice = 0x4188, .config = ALC880_TCL_S700 }, /* Back 3 jack, front 2 jack (Internal add Aux-In) */ { .pci_subvendor = 0x1025, .pci_subdevice = 0xe310, .config = ALC880_3ST }, @@ -1452,6 +1616,8 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .modelname = "3stack-digout", .config = ALC880_3ST_DIG }, { .pci_subvendor = 0x8086, .pci_subdevice = 0xe308, .config = ALC880_3ST_DIG }, { .pci_subvendor = 0x1025, .pci_subdevice = 0x0070, .config = ALC880_3ST_DIG }, + /* Clevo m520G NB */ + { .pci_subvendor = 0x1558, .pci_subdevice = 0x0520, .config = ALC880_CLEVO }, /* Back 3 jack plus 1 SPDIF out jack, front 2 jack (Internal add Aux-In)*/ { .pci_subvendor = 0x8086, .pci_subdevice = 0xe305, .config = ALC880_3ST_DIG }, @@ -1489,6 +1655,7 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_Z71V }, { .modelname = "6stack", .config = ALC880_6ST }, + { .pci_subvendor = 0x1043, .pci_subdevice = 0x81b4, .config = ALC880_6ST }, { .pci_subvendor = 0x1019, .pci_subdevice = 0xa884, .config = ALC880_6ST }, /* Acer APFV */ { .modelname = "6stack-digout", .config = ALC880_6ST_DIG }, @@ -1496,6 +1663,10 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .pci_subvendor = 0x8086, .pci_subdevice = 0x2668, .config = ALC880_6ST_DIG }, { .pci_subvendor = 0x1462, .pci_subdevice = 0x1150, .config = ALC880_6ST_DIG }, { .pci_subvendor = 0xe803, .pci_subdevice = 0x1019, .config = ALC880_6ST_DIG }, + { .pci_subvendor = 0x1039, .pci_subdevice = 0x1234, .config = ALC880_6ST_DIG }, + { .pci_subvendor = 0x1025, .pci_subdevice = 0x0077, .config = ALC880_6ST_DIG }, + { .pci_subvendor = 0x1025, .pci_subdevice = 0x0078, .config = ALC880_6ST_DIG }, + { .pci_subvendor = 0x1025, .pci_subdevice = 0x0087, .config = ALC880_6ST_DIG }, { .modelname = "asus", .config = ALC880_ASUS }, { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_ASUS_DIG }, @@ -1509,37 +1680,26 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .pci_subvendor = 0x1043, .pci_subdevice = 0x1123, .config = ALC880_ASUS_DIG }, { .pci_subvendor = 0x1043, .pci_subdevice = 0x1143, .config = ALC880_ASUS }, { .pci_subvendor = 0x1043, .pci_subdevice = 0x10b3, .config = ALC880_ASUS_W1V }, + { .pci_subvendor = 0x1558, .pci_subdevice = 0x5401, .config = ALC880_ASUS_DIG2 }, { .modelname = "uniwill", .config = ALC880_UNIWILL_DIG }, { .pci_subvendor = 0x1584, .pci_subdevice = 0x9050, .config = ALC880_UNIWILL_DIG }, { .modelname = "F1734", .config = ALC880_F1734 }, { .pci_subvendor = 0x1734, .pci_subdevice = 0x107c, .config = ALC880_F1734 }, + { .pci_subvendor = 0x1584, .pci_subdevice = 0x9054, .config = ALC880_F1734 }, #ifdef CONFIG_SND_DEBUG { .modelname = "test", .config = ALC880_TEST }, #endif + { .modelname = "auto", .config = ALC880_AUTO }, {} }; /* - * configuration template - to be copied to the spec instance + * ALC880 codec presets */ -struct alc_config_preset { - struct snd_kcontrol_new *mixers[4]; - const struct hda_verb *init_verbs[4]; - unsigned int num_dacs; - hda_nid_t *dac_nids; - hda_nid_t dig_out_nid; /* optional */ - hda_nid_t hp_nid; /* optional */ - unsigned int num_adc_nids; - hda_nid_t *adc_nids; - unsigned int num_channel_mode; - const struct hda_channel_mode *channel_mode; - const struct hda_input_mux *input_mux; -}; - static struct alc_config_preset alc880_presets[] = { [ALC880_3ST] = { .mixers = { alc880_three_stack_mixer }, @@ -1560,6 +1720,18 @@ static struct alc_config_preset alc880_presets[] = { .channel_mode = alc880_threestack_modes, .input_mux = &alc880_capture_source, }, + [ALC880_TCL_S700] = { + .mixers = { alc880_tcl_s700_mixer }, + .init_verbs = { alc880_volume_init_verbs, + alc880_pin_tcl_S700_init_verbs, + alc880_gpio2_init_verbs }, + .num_dacs = ARRAY_SIZE(alc880_dac_nids), + .dac_nids = alc880_dac_nids, + .hp_nid = 0x03, + .num_channel_mode = ARRAY_SIZE(alc880_2_jack_modes), + .channel_mode = alc880_2_jack_modes, + .input_mux = &alc880_capture_source, + }, [ALC880_5ST] = { .mixers = { alc880_three_stack_mixer, alc880_five_stack_mixer}, .init_verbs = { alc880_volume_init_verbs, alc880_pin_5stack_init_verbs }, @@ -1651,6 +1823,17 @@ static struct alc_config_preset alc880_presets[] = { .channel_mode = alc880_asus_modes, .input_mux = &alc880_capture_source, }, + [ALC880_ASUS_DIG2] = { + .mixers = { alc880_asus_mixer }, + .init_verbs = { alc880_volume_init_verbs, alc880_pin_asus_init_verbs, + alc880_gpio2_init_verbs }, /* use GPIO2 */ + .num_dacs = ARRAY_SIZE(alc880_asus_dac_nids), + .dac_nids = alc880_asus_dac_nids, + .dig_out_nid = ALC880_DIGOUT_NID, + .num_channel_mode = ARRAY_SIZE(alc880_asus_modes), + .channel_mode = alc880_asus_modes, + .input_mux = &alc880_capture_source, + }, [ALC880_ASUS_W1V] = { .mixers = { alc880_asus_mixer, alc880_asus_w1v_mixer }, .init_verbs = { alc880_volume_init_verbs, alc880_pin_asus_init_verbs, @@ -1672,6 +1855,17 @@ static struct alc_config_preset alc880_presets[] = { .channel_mode = alc880_asus_modes, .input_mux = &alc880_capture_source, }, + [ALC880_CLEVO] = { + .mixers = { alc880_three_stack_mixer }, + .init_verbs = { alc880_volume_init_verbs, + alc880_pin_clevo_init_verbs }, + .num_dacs = ARRAY_SIZE(alc880_dac_nids), + .dac_nids = alc880_dac_nids, + .hp_nid = 0x03, + .num_channel_mode = ARRAY_SIZE(alc880_threestack_modes), + .channel_mode = alc880_threestack_modes, + .input_mux = &alc880_capture_source, + }, #ifdef CONFIG_SND_DEBUG [ALC880_TEST] = { .mixers = { alc880_test_mixer }, @@ -1783,7 +1977,8 @@ static int alc880_auto_fill_dac_nids(struct alc_spec *spec, const struct auto_pi } /* add playback controls from the parsed DAC table */ -static int alc880_auto_create_multi_out_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) +static int alc880_auto_create_multi_out_ctls(struct alc_spec *spec, + const struct auto_pin_cfg *cfg) { char name[32]; static const char *chname[4] = { "Front", "Surround", NULL /*CLFE*/, "Side" }; @@ -1871,35 +2066,38 @@ static int alc880_auto_create_extra_out(struct alc_spec *spec, hda_nid_t pin, } /* create input playback/capture controls for the given pin */ -static int new_analog_input(struct alc_spec *spec, hda_nid_t pin, const char *ctlname) +static int new_analog_input(struct alc_spec *spec, hda_nid_t pin, const char *ctlname, + int idx, hda_nid_t mix_nid) { char name[32]; - int err, idx; + int err; sprintf(name, "%s Playback Volume", ctlname); - idx = alc880_input_pin_idx(pin); if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, name, - HDA_COMPOSE_AMP_VAL(0x0b, 3, idx, HDA_INPUT))) < 0) + HDA_COMPOSE_AMP_VAL(mix_nid, 3, idx, HDA_INPUT))) < 0) return err; sprintf(name, "%s Playback Switch", ctlname); if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, name, - HDA_COMPOSE_AMP_VAL(0x0b, 3, idx, HDA_INPUT))) < 0) + HDA_COMPOSE_AMP_VAL(mix_nid, 3, idx, HDA_INPUT))) < 0) return err; return 0; } /* create playback/capture controls for input pins */ -static int alc880_auto_create_analog_input_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) +static int alc880_auto_create_analog_input_ctls(struct alc_spec *spec, + const struct auto_pin_cfg *cfg) { static char *labels[AUTO_PIN_LAST] = { "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" }; struct hda_input_mux *imux = &spec->private_imux; - int i, err; + int i, err, idx; for (i = 0; i < AUTO_PIN_LAST; i++) { if (alc880_is_input_pin(cfg->input_pins[i])) { - err = new_analog_input(spec, cfg->input_pins[i], labels[i]); + idx = alc880_input_pin_idx(cfg->input_pins[i]); + err = new_analog_input(spec, cfg->input_pins[i], labels[i], + idx, 0x0b); if (err < 0) return err; imux->items[imux->num_items].label = labels[i]; @@ -1910,7 +2108,8 @@ static int alc880_auto_create_analog_input_ctls(struct alc_spec *spec, const str return 0; } -static void alc880_auto_set_output_and_unmute(struct hda_codec *codec, hda_nid_t nid, int pin_type, +static void alc880_auto_set_output_and_unmute(struct hda_codec *codec, + hda_nid_t nid, int pin_type, int dac_idx) { /* set as output */ @@ -1973,15 +2172,17 @@ static int alc880_parse_auto_config(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; int err; + static hda_nid_t alc880_ignore[] = { 0x1d, 0 }; - if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg)) < 0) - return err; - if ((err = alc880_auto_fill_dac_nids(spec, &spec->autocfg)) < 0) + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, + alc880_ignore)) < 0) return err; if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && ! spec->autocfg.hp_pin) return 0; /* can't find valid BIOS pin config */ - if ((err = alc880_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || + + if ((err = alc880_auto_fill_dac_nids(spec, &spec->autocfg)) < 0 || + (err = alc880_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || (err = alc880_auto_create_extra_out(spec, spec->autocfg.speaker_pin, "Speaker")) < 0 || (err = alc880_auto_create_extra_out(spec, spec->autocfg.speaker_pin, @@ -2024,7 +2225,7 @@ static int patch_alc880(struct hda_codec *codec) { struct alc_spec *spec; int board_config; - int i, err; + int err; spec = kzalloc(sizeof(*spec), GFP_KERNEL); if (spec == NULL) @@ -2050,36 +2251,8 @@ static int patch_alc880(struct hda_codec *codec) } } - if (board_config != ALC880_AUTO) { - /* set up from the preset table */ - const struct alc_config_preset *preset; - - preset = &alc880_presets[board_config]; - - for (i = 0; preset->mixers[i]; i++) { - snd_assert(spec->num_mixers < ARRAY_SIZE(spec->mixers), break); - spec->mixers[spec->num_mixers++] = preset->mixers[i]; - } - for (i = 0; preset->init_verbs[i]; i++) { - snd_assert(spec->num_init_verbs < ARRAY_SIZE(spec->init_verbs), break); - spec->init_verbs[spec->num_init_verbs++] = preset->init_verbs[i]; - } - - spec->channel_mode = preset->channel_mode; - spec->num_channel_mode = preset->num_channel_mode; - - spec->multiout.max_channels = spec->channel_mode[0].channels; - - spec->multiout.num_dacs = preset->num_dacs; - spec->multiout.dac_nids = preset->dac_nids; - spec->multiout.dig_out_nid = preset->dig_out_nid; - spec->multiout.hp_nid = preset->hp_nid; - - spec->input_mux = preset->input_mux; - - spec->num_adc_nids = preset->num_adc_nids; - spec->adc_nids = preset->adc_nids; - } + if (board_config != ALC880_AUTO) + setup_preset(spec, &alc880_presets[board_config]); spec->stream_name_analog = "ALC880 Analog"; spec->stream_analog_playback = &alc880_pcm_analog_playback; @@ -2128,11 +2301,16 @@ static hda_nid_t alc260_adc_nids[1] = { 0x04, }; -static hda_nid_t alc260_hp_adc_nids[1] = { +static hda_nid_t alc260_adc_nids_alt[1] = { /* ADC1 */ 0x05, }; +static hda_nid_t alc260_hp_adc_nids[2] = { + /* ADC1, 0 */ + 0x05, 0x04 +}; + #define ALC260_DIGOUT_NID 0x03 #define ALC260_DIGIN_NID 0x06 @@ -2167,38 +2345,26 @@ static struct hda_channel_mode alc260_modes[1] = { { 2, NULL }, }; -static struct snd_kcontrol_new alc260_base_mixer[] = { + +/* Mixer combinations + * + * basic: base_output + input + pc_beep + capture + * HP: base_output + input + capture_alt + * HP_3013: hp_3013 + input + capture + * fujitsu: fujitsu + capture + */ + +static struct snd_kcontrol_new alc260_base_output_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x08, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Front Playback Switch", 0x08, 2, HDA_INPUT), - HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT), - HDA_CODEC_MUTE("CD Playback Switch", 0x07, 0x04, HDA_INPUT), - HDA_CODEC_VOLUME("Line Playback Volume", 0x07, 0x02, HDA_INPUT), - HDA_CODEC_MUTE("Line Playback Switch", 0x07, 0x02, HDA_INPUT), - HDA_CODEC_VOLUME("Mic Playback Volume", 0x07, 0x0, HDA_INPUT), - HDA_CODEC_MUTE("Mic Playback Switch", 0x07, 0x0, HDA_INPUT), - HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x07, 0x01, HDA_INPUT), - HDA_CODEC_MUTE("Front Mic Playback Switch", 0x07, 0x01, HDA_INPUT), - HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x07, 0x05, HDA_INPUT), - HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x07, 0x05, HDA_INPUT), HDA_CODEC_VOLUME("Headphone Playback Volume", 0x09, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Headphone Playback Switch", 0x09, 2, HDA_INPUT), HDA_CODEC_VOLUME_MONO("Mono Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), HDA_BIND_MUTE_MONO("Mono Playback Switch", 0x0a, 1, 2, HDA_INPUT), - HDA_CODEC_VOLUME("Capture Volume", 0x04, 0x0, HDA_INPUT), - HDA_CODEC_MUTE("Capture Switch", 0x04, 0x0, HDA_INPUT), - { - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Capture Source", - .info = alc_mux_enum_info, - .get = alc_mux_enum_get, - .put = alc_mux_enum_put, - }, { } /* end */ -}; +}; -static struct snd_kcontrol_new alc260_hp_mixer[] = { - HDA_CODEC_VOLUME("Front Playback Volume", 0x08, 0x0, HDA_OUTPUT), - HDA_BIND_MUTE("Front Playback Switch", 0x08, 2, HDA_INPUT), +static struct snd_kcontrol_new alc260_input_mixer[] = { HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT), HDA_CODEC_MUTE("CD Playback Switch", 0x07, 0x04, HDA_INPUT), HDA_CODEC_VOLUME("Line Playback Volume", 0x07, 0x02, HDA_INPUT), @@ -2207,19 +2373,24 @@ static struct snd_kcontrol_new alc260_hp_mixer[] = { HDA_CODEC_MUTE("Mic Playback Switch", 0x07, 0x0, HDA_INPUT), HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x07, 0x01, HDA_INPUT), HDA_CODEC_MUTE("Front Mic Playback Switch", 0x07, 0x01, HDA_INPUT), - HDA_CODEC_VOLUME("Headphone Playback Volume", 0x09, 0x0, HDA_OUTPUT), - HDA_BIND_MUTE("Headphone Playback Switch", 0x09, 2, HDA_INPUT), - HDA_CODEC_VOLUME_MONO("Mono Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), - HDA_BIND_MUTE_MONO("Mono Playback Switch", 0x0a, 1, 2, HDA_INPUT), - HDA_CODEC_VOLUME("Capture Volume", 0x05, 0x0, HDA_INPUT), - HDA_CODEC_MUTE("Capture Switch", 0x05, 0x0, HDA_INPUT), - { - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Capture Source", - .info = alc_mux_enum_info, - .get = alc_mux_enum_get, - .put = alc_mux_enum_put, - }, + { } /* end */ +}; + +static struct snd_kcontrol_new alc260_pc_beep_mixer[] = { + HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x07, 0x05, HDA_INPUT), + HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x07, 0x05, HDA_INPUT), + { } /* end */ +}; + +static struct snd_kcontrol_new alc260_hp_3013_mixer[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x09, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x10, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Aux-In Playback Volume", 0x07, 0x06, HDA_INPUT), + HDA_CODEC_MUTE("Aux-In Playback Switch", 0x07, 0x06, HDA_INPUT), + HDA_CODEC_VOLUME("Headphone Playback Volume", 0x08, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("iSpeaker Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("iSpeaker Playback Switch", 0x11, 1, 0x0, HDA_OUTPUT), { } /* end */ }; @@ -2235,11 +2406,43 @@ static struct snd_kcontrol_new alc260_fujitsu_mixer[] = { HDA_CODEC_MUTE("Beep Playback Switch", 0x07, 0x05, HDA_INPUT), HDA_CODEC_VOLUME("Internal Speaker Playback Volume", 0x09, 0x0, HDA_OUTPUT), HDA_BIND_MUTE("Internal Speaker Playback Switch", 0x09, 2, HDA_INPUT), + { } /* end */ +}; + +/* capture mixer elements */ +static struct snd_kcontrol_new alc260_capture_mixer[] = { HDA_CODEC_VOLUME("Capture Volume", 0x04, 0x0, HDA_INPUT), HDA_CODEC_MUTE("Capture Switch", 0x04, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x05, 0x0, HDA_INPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x05, 0x0, HDA_INPUT), { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Capture Source", + /* The multiple "Capture Source" controls confuse alsamixer + * So call somewhat different.. + * FIXME: the controls appear in the "playback" view! + */ + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 2, + .info = alc_mux_enum_info, + .get = alc_mux_enum_get, + .put = alc_mux_enum_put, + }, + { } /* end */ +}; + +static struct snd_kcontrol_new alc260_capture_alt_mixer[] = { + HDA_CODEC_VOLUME("Capture Volume", 0x05, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x05, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* The multiple "Capture Source" controls confuse alsamixer + * So call somewhat different.. + * FIXME: the controls appear in the "playback" view! + */ + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 1, .info = alc_mux_enum_info, .get = alc_mux_enum_get, .put = alc_mux_enum_put, @@ -2247,6 +2450,9 @@ static struct snd_kcontrol_new alc260_fujitsu_mixer[] = { { } /* end */ }; +/* + * initialization verbs + */ static struct hda_verb alc260_init_verbs[] = { /* Line In pin widget for input */ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, @@ -2308,6 +2514,100 @@ static struct hda_verb alc260_init_verbs[] = { { } }; +static struct hda_verb alc260_hp_init_verbs[] = { + /* Headphone and output */ + {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, + /* mono output */ + {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, + /* Mic1 (rear panel) pin widget for input and vref at 80% */ + {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, + /* Mic2 (front panel) pin widget for input and vref at 80% */ + {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, + /* Line In pin widget for input */ + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20}, + /* Line-2 pin widget for output */ + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, + /* CD pin widget for input */ + {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20}, + /* unmute amp left and right */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000}, + /* set connection select to line in (default select for this ADC) */ + {0x04, AC_VERB_SET_CONNECT_SEL, 0x02}, + /* unmute Line-Out mixer amp left and right (volume = 0) */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000}, + /* mute pin widget amp left and right (no gain on this amp) */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + /* unmute HP mixer amp left and right (volume = 0) */ + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000}, + /* mute pin widget amp left and right (no gain on this amp) */ + {0x10, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + /* Amp Indexes: CD = 0x04, Line In 1 = 0x02, Mic 1 = 0x00 & Line In 2 = 0x03 */ + /* unmute CD */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x04 << 8))}, + /* unmute Line In */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x02 << 8))}, + /* unmute Mic */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + /* Amp Indexes: DAC = 0x01 & mixer = 0x00 */ + /* Unmute Front out path */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + /* Unmute Headphone out path */ + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + /* Unmute Mono out path */ + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + { } +}; + +static struct hda_verb alc260_hp_3013_init_verbs[] = { + /* Line out and output */ + {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, + /* mono output */ + {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, + /* Mic1 (rear panel) pin widget for input and vref at 80% */ + {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, + /* Mic2 (front panel) pin widget for input and vref at 80% */ + {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, + /* Line In pin widget for input */ + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20}, + /* Headphone pin widget for output */ + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, + /* CD pin widget for input */ + {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20}, + /* unmute amp left and right */ + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000}, + /* set connection select to line in (default select for this ADC) */ + {0x04, AC_VERB_SET_CONNECT_SEL, 0x02}, + /* unmute Line-Out mixer amp left and right (volume = 0) */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000}, + /* mute pin widget amp left and right (no gain on this amp) */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + /* unmute HP mixer amp left and right (volume = 0) */ + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000}, + /* mute pin widget amp left and right (no gain on this amp) */ + {0x10, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + /* Amp Indexes: CD = 0x04, Line In 1 = 0x02, Mic 1 = 0x00 & Line In 2 = 0x03 */ + /* unmute CD */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x04 << 8))}, + /* unmute Line In */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x02 << 8))}, + /* unmute Mic */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + /* Amp Indexes: DAC = 0x01 & mixer = 0x00 */ + /* Unmute Front out path */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + /* Unmute Headphone out path */ + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + /* Unmute Mono out path */ + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + { } +}; + /* Initialisation sequence for ALC260 as configured in Fujitsu S702x * laptops. */ @@ -2374,18 +2674,337 @@ static struct hda_pcm_stream alc260_pcm_analog_capture = { .channels_max = 2, }; -static struct hda_board_config alc260_cfg_tbl[] = { - { .modelname = "hp", .config = ALC260_HP }, - { .pci_subvendor = 0x103c, .config = ALC260_HP }, - { .modelname = "fujitsu", .config = ALC260_FUJITSU_S702x }, - { .pci_subvendor = 0x10cf, .pci_subdevice = 0x1326, .config = ALC260_FUJITSU_S702x }, - {} -}; +/* + * for BIOS auto-configuration + */ -static int patch_alc260(struct hda_codec *codec) +static int alc260_add_playback_controls(struct alc_spec *spec, hda_nid_t nid, + const char *pfx) +{ + hda_nid_t nid_vol; + unsigned long vol_val, sw_val; + char name[32]; + int err; + + if (nid >= 0x0f && nid < 0x11) { + nid_vol = nid - 0x7; + vol_val = HDA_COMPOSE_AMP_VAL(nid_vol, 3, 0, HDA_OUTPUT); + sw_val = HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT); + } else if (nid == 0x11) { + nid_vol = nid - 0x7; + vol_val = HDA_COMPOSE_AMP_VAL(nid_vol, 2, 0, HDA_OUTPUT); + sw_val = HDA_COMPOSE_AMP_VAL(nid, 2, 0, HDA_OUTPUT); + } else if (nid >= 0x12 && nid <= 0x15) { + nid_vol = 0x08; + vol_val = HDA_COMPOSE_AMP_VAL(nid_vol, 3, 0, HDA_OUTPUT); + sw_val = HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT); + } else + return 0; /* N/A */ + + snprintf(name, sizeof(name), "%s Playback Volume", pfx); + if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, name, vol_val)) < 0) + return err; + snprintf(name, sizeof(name), "%s Playback Switch", pfx); + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, name, sw_val)) < 0) + return err; + return 1; +} + +/* add playback controls from the parsed DAC table */ +static int alc260_auto_create_multi_out_ctls(struct alc_spec *spec, + const struct auto_pin_cfg *cfg) +{ + hda_nid_t nid; + int err; + + spec->multiout.num_dacs = 1; + spec->multiout.dac_nids = spec->private_dac_nids; + spec->multiout.dac_nids[0] = 0x02; + + nid = cfg->line_out_pins[0]; + if (nid) { + err = alc260_add_playback_controls(spec, nid, "Front"); + if (err < 0) + return err; + } + + nid = cfg->speaker_pin; + if (nid) { + err = alc260_add_playback_controls(spec, nid, "Speaker"); + if (err < 0) + return err; + } + + nid = cfg->hp_pin; + if (nid) { + err = alc260_add_playback_controls(spec, nid, "Headphone"); + if (err < 0) + return err; + } + return 0; +} + +/* create playback/capture controls for input pins */ +static int alc260_auto_create_analog_input_ctls(struct alc_spec *spec, + const struct auto_pin_cfg *cfg) +{ + static char *labels[AUTO_PIN_LAST] = { + "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" + }; + struct hda_input_mux *imux = &spec->private_imux; + int i, err, idx; + + for (i = 0; i < AUTO_PIN_LAST; i++) { + if (cfg->input_pins[i] >= 0x12) { + idx = cfg->input_pins[i] - 0x12; + err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x07); + if (err < 0) + return err; + imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].index = idx; + imux->num_items++; + } + if ((cfg->input_pins[i] >= 0x0f) && (cfg->input_pins[i] <= 0x10)){ + idx = cfg->input_pins[i] - 0x09; + err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x07); + if (err < 0) + return err; + imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].index = idx; + imux->num_items++; + } + } + return 0; +} + +static void alc260_auto_set_output_and_unmute(struct hda_codec *codec, + hda_nid_t nid, int pin_type, + int sel_idx) +{ + /* set as output */ + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); + /* need the manual connection? */ + if (nid >= 0x12) { + int idx = nid - 0x12; + snd_hda_codec_write(codec, idx + 0x0b, 0, + AC_VERB_SET_CONNECT_SEL, sel_idx); + + } +} + +static void alc260_auto_init_multi_out(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + hda_nid_t nid; + + nid = spec->autocfg.line_out_pins[0]; + if (nid) + alc260_auto_set_output_and_unmute(codec, nid, PIN_OUT, 0); + + nid = spec->autocfg.speaker_pin; + if (nid) + alc260_auto_set_output_and_unmute(codec, nid, PIN_OUT, 0); + + nid = spec->autocfg.hp_pin; + if (nid) + alc260_auto_set_output_and_unmute(codec, nid, PIN_OUT, 0); +} + +#define ALC260_PIN_CD_NID 0x16 +static void alc260_auto_init_analog_input(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int i; + + for (i = 0; i < AUTO_PIN_LAST; i++) { + hda_nid_t nid = spec->autocfg.input_pins[i]; + if (nid >= 0x12) { + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, + i <= AUTO_PIN_FRONT_MIC ? PIN_VREF80 : PIN_IN); + if (nid != ALC260_PIN_CD_NID) + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, + AMP_OUT_MUTE); + } + } +} + +/* + * generic initialization of ADC, input mixers and output mixers + */ +static struct hda_verb alc260_volume_init_verbs[] = { + /* + * Unmute ADC0-1 and set the default input to mic-in + */ + {0x04, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x05, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + + /* Unmute input amps (CD, Line In, Mic 1 & Mic 2) of the analog-loopback + * mixer widget + * Note: PASD motherboards uses the Line In 2 as the input for front panel + * mic (mic 2) + */ + /* Amp Indices: Mic1 = 0, Mic2 = 1, Line1 = 2, Line2 = 3, CD = 4 */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(4)}, + + /* + * Set up output mixers (0x08 - 0x0a) + */ + /* set vol=0 to output mixers */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + /* set up input amps for analog loopback */ + /* Amp Indices: DAC = 0, mixer = 1 */ + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + { } +}; + +static int alc260_parse_auto_config(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + unsigned int wcap; + int err; + static hda_nid_t alc260_ignore[] = { 0x17, 0 }; + + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, + alc260_ignore)) < 0) + return err; + if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && + ! spec->autocfg.hp_pin) + return 0; /* can't find valid BIOS pin config */ + if ((err = alc260_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || + (err = alc260_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) + return err; + + spec->multiout.max_channels = 2; + + if (spec->autocfg.dig_out_pin) + spec->multiout.dig_out_nid = ALC260_DIGOUT_NID; + if (spec->kctl_alloc) + spec->mixers[spec->num_mixers++] = spec->kctl_alloc; + + spec->init_verbs[spec->num_init_verbs++] = alc260_volume_init_verbs; + + spec->input_mux = &spec->private_imux; + + /* check whether NID 0x04 is valid */ + wcap = snd_hda_param_read(codec, alc260_adc_nids[0], AC_PAR_AUDIO_WIDGET_CAP); + wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ + if (wcap != AC_WID_AUD_IN) { + spec->adc_nids = alc260_adc_nids_alt; + spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids_alt); + spec->mixers[spec->num_mixers] = alc260_capture_alt_mixer; + spec->num_mixers++; + } else { + spec->adc_nids = alc260_adc_nids; + spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids); + spec->mixers[spec->num_mixers] = alc260_capture_mixer; + spec->num_mixers++; + } + + return 1; +} + +/* init callback for auto-configuration model -- overriding the default init */ +static int alc260_auto_init(struct hda_codec *codec) +{ + alc_init(codec); + alc260_auto_init_multi_out(codec); + alc260_auto_init_analog_input(codec); + return 0; +} + +/* + * ALC260 configurations + */ +static struct hda_board_config alc260_cfg_tbl[] = { + { .modelname = "basic", .config = ALC260_BASIC }, + { .modelname = "hp", .config = ALC260_HP }, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x3010, .config = ALC260_HP }, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x3011, .config = ALC260_HP }, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x3012, .config = ALC260_HP }, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x3013, .config = ALC260_HP_3013 }, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x3014, .config = ALC260_HP }, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x3015, .config = ALC260_HP }, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x3016, .config = ALC260_HP }, + { .modelname = "fujitsu", .config = ALC260_FUJITSU_S702X }, + { .pci_subvendor = 0x10cf, .pci_subdevice = 0x1326, .config = ALC260_FUJITSU_S702X }, + { .modelname = "auto", .config = ALC260_AUTO }, + {} +}; + +static struct alc_config_preset alc260_presets[] = { + [ALC260_BASIC] = { + .mixers = { alc260_base_output_mixer, + alc260_input_mixer, + alc260_pc_beep_mixer, + alc260_capture_mixer }, + .init_verbs = { alc260_init_verbs }, + .num_dacs = ARRAY_SIZE(alc260_dac_nids), + .dac_nids = alc260_dac_nids, + .num_adc_nids = ARRAY_SIZE(alc260_adc_nids), + .adc_nids = alc260_adc_nids, + .num_channel_mode = ARRAY_SIZE(alc260_modes), + .channel_mode = alc260_modes, + .input_mux = &alc260_capture_source, + }, + [ALC260_HP] = { + .mixers = { alc260_base_output_mixer, + alc260_input_mixer, + alc260_capture_alt_mixer }, + .init_verbs = { alc260_hp_init_verbs }, + .num_dacs = ARRAY_SIZE(alc260_dac_nids), + .dac_nids = alc260_dac_nids, + .num_adc_nids = ARRAY_SIZE(alc260_hp_adc_nids), + .adc_nids = alc260_hp_adc_nids, + .num_channel_mode = ARRAY_SIZE(alc260_modes), + .channel_mode = alc260_modes, + .input_mux = &alc260_capture_source, + }, + [ALC260_HP_3013] = { + .mixers = { alc260_hp_3013_mixer, + alc260_input_mixer, + alc260_capture_alt_mixer }, + .init_verbs = { alc260_hp_3013_init_verbs }, + .num_dacs = ARRAY_SIZE(alc260_dac_nids), + .dac_nids = alc260_dac_nids, + .num_adc_nids = ARRAY_SIZE(alc260_hp_adc_nids), + .adc_nids = alc260_hp_adc_nids, + .num_channel_mode = ARRAY_SIZE(alc260_modes), + .channel_mode = alc260_modes, + .input_mux = &alc260_capture_source, + }, + [ALC260_FUJITSU_S702X] = { + .mixers = { alc260_fujitsu_mixer, + alc260_capture_mixer }, + .init_verbs = { alc260_fujitsu_init_verbs }, + .num_dacs = ARRAY_SIZE(alc260_dac_nids), + .dac_nids = alc260_dac_nids, + .num_adc_nids = ARRAY_SIZE(alc260_adc_nids), + .adc_nids = alc260_adc_nids, + .num_channel_mode = ARRAY_SIZE(alc260_modes), + .channel_mode = alc260_modes, + .input_mux = &alc260_fujitsu_capture_source, + }, +}; + +static int patch_alc260(struct hda_codec *codec) { struct alc_spec *spec; - int board_config; + int err, board_config; spec = kzalloc(sizeof(*spec), GFP_KERNEL); if (spec == NULL) @@ -2396,60 +3015,31 @@ static int patch_alc260(struct hda_codec *codec) board_config = snd_hda_check_board_config(codec, alc260_cfg_tbl); if (board_config < 0 || board_config >= ALC260_MODEL_LAST) { snd_printd(KERN_INFO "hda_codec: Unknown model for ALC260\n"); - board_config = ALC260_BASIC; - } - - switch (board_config) { - case ALC260_HP: - spec->mixers[spec->num_mixers] = alc260_hp_mixer; - spec->num_mixers++; - break; - case ALC260_FUJITSU_S702x: - spec->mixers[spec->num_mixers] = alc260_fujitsu_mixer; - spec->num_mixers++; - break; - default: - spec->mixers[spec->num_mixers] = alc260_base_mixer; - spec->num_mixers++; - break; + board_config = ALC260_AUTO; } - if (board_config != ALC260_FUJITSU_S702x) { - spec->init_verbs[0] = alc260_init_verbs; - spec->num_init_verbs = 1; - } else { - spec->init_verbs[0] = alc260_fujitsu_init_verbs; - spec->num_init_verbs = 1; + if (board_config == ALC260_AUTO) { + /* automatic parse from the BIOS config */ + err = alc260_parse_auto_config(codec); + if (err < 0) { + alc_free(codec); + return err; + } else if (! err) { + printk(KERN_INFO "hda_codec: Cannot set up configuration from BIOS. Using base mode...\n"); + board_config = ALC260_BASIC; + } } - spec->channel_mode = alc260_modes; - spec->num_channel_mode = ARRAY_SIZE(alc260_modes); + if (board_config != ALC260_AUTO) + setup_preset(spec, &alc260_presets[board_config]); spec->stream_name_analog = "ALC260 Analog"; spec->stream_analog_playback = &alc260_pcm_analog_playback; spec->stream_analog_capture = &alc260_pcm_analog_capture; - spec->multiout.max_channels = spec->channel_mode[0].channels; - spec->multiout.num_dacs = ARRAY_SIZE(alc260_dac_nids); - spec->multiout.dac_nids = alc260_dac_nids; - - if (board_config != ALC260_FUJITSU_S702x) { - spec->input_mux = &alc260_capture_source; - } else { - spec->input_mux = &alc260_fujitsu_capture_source; - } - switch (board_config) { - case ALC260_HP: - spec->num_adc_nids = ARRAY_SIZE(alc260_hp_adc_nids); - spec->adc_nids = alc260_hp_adc_nids; - break; - default: - spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids); - spec->adc_nids = alc260_adc_nids; - break; - } - codec->patch_ops = alc_patch_ops; + if (board_config == ALC260_AUTO) + codec->patch_ops.init = alc260_auto_init; return 0; } @@ -2466,6 +3056,8 @@ static int patch_alc260(struct hda_codec *codec) * In addition, an independent DAC for the multi-playback (not used in this * driver yet). */ +#define ALC882_DIGOUT_NID 0x06 +#define ALC882_DIGIN_NID 0x0a static struct hda_channel_mode alc882_ch_modes[1] = { { 8, NULL } @@ -2476,10 +3068,9 @@ static hda_nid_t alc882_dac_nids[4] = { 0x02, 0x03, 0x04, 0x05 }; -static hda_nid_t alc882_adc_nids[3] = { - /* ADC0-2 */ - 0x07, 0x08, 0x09, -}; +/* identical with ALC880 */ +#define alc882_adc_nids alc880_adc_nids +#define alc882_adc_nids_alt alc880_adc_nids_alt /* input MUX */ /* FIXME: should be a matrix-type input source selection */ @@ -2522,6 +3113,33 @@ static int alc882_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ele return 1; } +/* + * 6ch mode + */ +static struct hda_verb alc882_sixstack_ch6_init[] = { + { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, + { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { } /* end */ +}; + +/* + * 8ch mode + */ +static struct hda_verb alc882_sixstack_ch8_init[] = { + { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, + { } /* end */ +}; + +static struct hda_channel_mode alc882_sixstack_modes[2] = { + { 6, alc882_sixstack_ch6_init }, + { 8, alc882_sixstack_ch8_init }, +}; + /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b */ @@ -2565,6 +3183,17 @@ static struct snd_kcontrol_new alc882_base_mixer[] = { { } /* end */ }; +static struct snd_kcontrol_new alc882_chmode_mixer[] = { + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Channel Mode", + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, + }, + { } /* end */ +}; + static struct hda_verb alc882_init_verbs[] = { /* Front mixer: unmute input/output amp left and right (volume = 0) */ {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, @@ -2645,45 +3274,1399 @@ static struct hda_verb alc882_init_verbs[] = { { } }; -static int patch_alc882(struct hda_codec *codec) -{ - struct alc_spec *spec; - - spec = kzalloc(sizeof(*spec), GFP_KERNEL); - if (spec == NULL) - return -ENOMEM; - - codec->spec = spec; - - spec->mixers[spec->num_mixers] = alc882_base_mixer; - spec->num_mixers++; +/* + * generic initialization of ADC, input mixers and output mixers + */ +static struct hda_verb alc882_auto_init_verbs[] = { + /* + * Unmute ADC0-2 and set the default input to mic-in + */ + {0x07, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x09, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, - spec->multiout.dig_out_nid = ALC880_DIGOUT_NID; - spec->dig_in_nid = ALC880_DIGIN_NID; - spec->init_verbs[0] = alc882_init_verbs; - spec->num_init_verbs = 1; + /* Unmute input amps (CD, Line In, Mic 1 & Mic 2) of the analog-loopback + * mixer widget + * Note: PASD motherboards uses the Line In 2 as the input for front panel + * mic (mic 2) + */ + /* Amp Indices: Mic1 = 0, Mic2 = 1, Line1 = 2, Line2 = 3, CD = 4 */ + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(4)}, - spec->channel_mode = alc882_ch_modes; - spec->num_channel_mode = ARRAY_SIZE(alc882_ch_modes); + /* + * Set up output mixers (0x0c - 0x0f) + */ + /* set vol=0 to output mixers */ + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + /* set up input amps for analog loopback */ + /* Amp Indices: DAC = 0, mixer = 1 */ + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x26, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x26, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + /* FIXME: use matrix-type input source selection */ + /* Mixer elements: 0x18, 19, 1a, 1b, 1c, 1d, 14, 15, 16, 17, 0b */ + /* Input mixer1: unmute Mic, F-Mic, Line, CD inputs */ + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + /* Input mixer2 */ + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + /* Input mixer3 */ + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + + { } +}; + +/* capture mixer elements */ +static struct snd_kcontrol_new alc882_capture_alt_mixer[] = { + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x09, 0x0, HDA_INPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x09, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* The multiple "Capture Source" controls confuse alsamixer + * So call somewhat different.. + * FIXME: the controls appear in the "playback" view! + */ + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 2, + .info = alc882_mux_enum_info, + .get = alc882_mux_enum_get, + .put = alc882_mux_enum_put, + }, + { } /* end */ +}; + +static struct snd_kcontrol_new alc882_capture_mixer[] = { + HDA_CODEC_VOLUME("Capture Volume", 0x07, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x07, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x08, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 2, 0x09, 0x0, HDA_INPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 2, 0x09, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* The multiple "Capture Source" controls confuse alsamixer + * So call somewhat different.. + * FIXME: the controls appear in the "playback" view! + */ + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 3, + .info = alc882_mux_enum_info, + .get = alc882_mux_enum_get, + .put = alc882_mux_enum_put, + }, + { } /* end */ +}; + +/* pcm configuration: identiacal with ALC880 */ +#define alc882_pcm_analog_playback alc880_pcm_analog_playback +#define alc882_pcm_analog_capture alc880_pcm_analog_capture +#define alc882_pcm_digital_playback alc880_pcm_digital_playback +#define alc882_pcm_digital_capture alc880_pcm_digital_capture + +/* + * configuration and preset + */ +static struct hda_board_config alc882_cfg_tbl[] = { + { .modelname = "3stack-dig", .config = ALC861_3ST_DIG }, + { .modelname = "6stack-dig", .config = ALC861_6ST_DIG }, + { .pci_subvendor = 0x1462, .pci_subdevice = 0x6668, .config = ALC882_6ST_DIG }, /* MSI */ + { .pci_subvendor = 0x105b, .pci_subdevice = 0x6668, .config = ALC882_6ST_DIG }, /* Foxconn */ + { .pci_subvendor = 0x1019, .pci_subdevice = 0x6668, .config = ALC882_6ST_DIG }, /* ECS */ + { .modelname = "auto", .config = ALC861_AUTO }, + {} +}; + +static struct alc_config_preset alc882_presets[] = { + [ALC882_3ST_DIG] = { + .mixers = { alc882_base_mixer }, + .init_verbs = { alc882_init_verbs }, + .num_dacs = ARRAY_SIZE(alc882_dac_nids), + .dac_nids = alc882_dac_nids, + .dig_out_nid = ALC882_DIGOUT_NID, + .num_adc_nids = ARRAY_SIZE(alc882_adc_nids), + .adc_nids = alc882_adc_nids, + .dig_in_nid = ALC882_DIGIN_NID, + .num_channel_mode = ARRAY_SIZE(alc882_ch_modes), + .channel_mode = alc882_ch_modes, + .input_mux = &alc882_capture_source, + }, + [ALC882_6ST_DIG] = { + .mixers = { alc882_base_mixer, alc882_chmode_mixer }, + .init_verbs = { alc882_init_verbs }, + .num_dacs = ARRAY_SIZE(alc882_dac_nids), + .dac_nids = alc882_dac_nids, + .dig_out_nid = ALC882_DIGOUT_NID, + .num_adc_nids = ARRAY_SIZE(alc882_adc_nids), + .adc_nids = alc882_adc_nids, + .dig_in_nid = ALC882_DIGIN_NID, + .num_channel_mode = ARRAY_SIZE(alc882_sixstack_modes), + .channel_mode = alc882_sixstack_modes, + .input_mux = &alc882_capture_source, + }, +}; + + +/* + * BIOS auto configuration + */ +static void alc882_auto_set_output_and_unmute(struct hda_codec *codec, + hda_nid_t nid, int pin_type, + int dac_idx) +{ + /* set as output */ + struct alc_spec *spec = codec->spec; + int idx; + + if (spec->multiout.dac_nids[dac_idx] == 0x25) + idx = 4; + else + idx = spec->multiout.dac_nids[dac_idx] - 2; + + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CONNECT_SEL, idx); + +} + +static void alc882_auto_init_multi_out(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int i; + + for (i = 0; i <= HDA_SIDE; i++) { + hda_nid_t nid = spec->autocfg.line_out_pins[i]; + if (nid) + alc882_auto_set_output_and_unmute(codec, nid, PIN_OUT, i); + } +} + +static void alc882_auto_init_hp_out(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + hda_nid_t pin; + + pin = spec->autocfg.hp_pin; + if (pin) /* connect to front */ + alc882_auto_set_output_and_unmute(codec, pin, PIN_HP, 0); /* use dac 0 */ +} + +#define alc882_is_input_pin(nid) alc880_is_input_pin(nid) +#define ALC882_PIN_CD_NID ALC880_PIN_CD_NID + +static void alc882_auto_init_analog_input(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int i; + + for (i = 0; i < AUTO_PIN_LAST; i++) { + hda_nid_t nid = spec->autocfg.input_pins[i]; + if (alc882_is_input_pin(nid)) { + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, + i <= AUTO_PIN_FRONT_MIC ? PIN_VREF80 : PIN_IN); + if (nid != ALC882_PIN_CD_NID) + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, + AMP_OUT_MUTE); + } + } +} + +/* almost identical with ALC880 parser... */ +static int alc882_parse_auto_config(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int err = alc880_parse_auto_config(codec); + + if (err < 0) + return err; + /* hack - override the init verbs */ + spec->init_verbs[0] = alc882_auto_init_verbs; + return 0; +} + +/* init callback for auto-configuration model -- overriding the default init */ +static int alc882_auto_init(struct hda_codec *codec) +{ + alc_init(codec); + alc882_auto_init_multi_out(codec); + alc882_auto_init_hp_out(codec); + alc882_auto_init_analog_input(codec); + return 0; +} + +/* + * ALC882 Headphone poll in 3.5.1a or 3.5.2 + */ + +static int patch_alc882(struct hda_codec *codec) +{ + struct alc_spec *spec; + int err, board_config; + + spec = kzalloc(sizeof(*spec), GFP_KERNEL); + if (spec == NULL) + return -ENOMEM; + + codec->spec = spec; + + board_config = snd_hda_check_board_config(codec, alc882_cfg_tbl); + + if (board_config < 0 || board_config >= ALC882_MODEL_LAST) { + printk(KERN_INFO "hda_codec: Unknown model for ALC882, trying auto-probe from BIOS...\n"); + board_config = ALC882_AUTO; + } + + if (board_config == ALC882_AUTO) { + /* automatic parse from the BIOS config */ + err = alc882_parse_auto_config(codec); + if (err < 0) { + alc_free(codec); + return err; + } else if (! err) { + printk(KERN_INFO "hda_codec: Cannot set up configuration from BIOS. Using base mode...\n"); + board_config = ALC882_3ST_DIG; + } + } + + if (board_config != ALC882_AUTO) + setup_preset(spec, &alc882_presets[board_config]); spec->stream_name_analog = "ALC882 Analog"; - spec->stream_analog_playback = &alc880_pcm_analog_playback; - spec->stream_analog_capture = &alc880_pcm_analog_capture; + spec->stream_analog_playback = &alc882_pcm_analog_playback; + spec->stream_analog_capture = &alc882_pcm_analog_capture; spec->stream_name_digital = "ALC882 Digital"; - spec->stream_digital_playback = &alc880_pcm_digital_playback; - spec->stream_digital_capture = &alc880_pcm_digital_capture; + spec->stream_digital_playback = &alc882_pcm_digital_playback; + spec->stream_digital_capture = &alc882_pcm_digital_capture; - spec->multiout.max_channels = spec->channel_mode[0].channels; - spec->multiout.num_dacs = ARRAY_SIZE(alc882_dac_nids); - spec->multiout.dac_nids = alc882_dac_nids; - - spec->input_mux = &alc882_capture_source; - spec->num_adc_nids = ARRAY_SIZE(alc882_adc_nids); - spec->adc_nids = alc882_adc_nids; + if (! spec->adc_nids && spec->input_mux) { + /* check whether NID 0x07 is valid */ + unsigned int wcap = snd_hda_param_read(codec, 0x07, + AC_PAR_AUDIO_WIDGET_CAP); + wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ + if (wcap != AC_WID_AUD_IN) { + spec->adc_nids = alc882_adc_nids_alt; + spec->num_adc_nids = ARRAY_SIZE(alc882_adc_nids_alt); + spec->mixers[spec->num_mixers] = alc882_capture_alt_mixer; + spec->num_mixers++; + } else { + spec->adc_nids = alc882_adc_nids; + spec->num_adc_nids = ARRAY_SIZE(alc882_adc_nids); + spec->mixers[spec->num_mixers] = alc882_capture_mixer; + spec->num_mixers++; + } + } codec->patch_ops = alc_patch_ops; + if (board_config == ALC882_AUTO) + codec->patch_ops.init = alc882_auto_init; + + return 0; +} + +/* + * ALC262 support + */ + +#define ALC262_DIGOUT_NID ALC880_DIGOUT_NID +#define ALC262_DIGIN_NID ALC880_DIGIN_NID + +#define alc262_dac_nids alc260_dac_nids +#define alc262_adc_nids alc882_adc_nids +#define alc262_adc_nids_alt alc882_adc_nids_alt + +#define alc262_modes alc260_modes + +static struct snd_kcontrol_new alc262_base_mixer[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), + /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), + HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ + HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("Mono Playback Volume", 0x0e, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("Mono Playback Switch", 0x16, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .count = 1, + .info = alc882_mux_enum_info, + .get = alc882_mux_enum_get, + .put = alc882_mux_enum_put, + }, + { } /* end */ +}; + +#define alc262_capture_mixer alc882_capture_mixer +#define alc262_capture_alt_mixer alc882_capture_alt_mixer + +/* + * generic initialization of ADC, input mixers and output mixers + */ +static struct hda_verb alc262_init_verbs[] = { + /* + * Unmute ADC0-2 and set the default input to mic-in + */ + {0x07, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x09, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + + /* Unmute input amps (CD, Line In, Mic 1 & Mic 2) of the analog-loopback + * mixer widget + * Note: PASD motherboards uses the Line In 2 as the input for front panel + * mic (mic 2) + */ + /* Amp Indices: Mic1 = 0, Mic2 = 1, Line1 = 2, Line2 = 3, CD = 4 */ + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(4)}, + + /* + * Set up output mixers (0x0c - 0x0e) + */ + /* set vol=0 to output mixers */ + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + /* set up input amps for analog loopback */ + /* Amp Indices: DAC = 0, mixer = 1 */ + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, + {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, + {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, + {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20}, + {0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20}, + + {0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + + {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, + + /* FIXME: use matrix-type input source selection */ + /* Mixer elements: 0x18, 19, 1a, 1b, 1c, 1d, 14, 15, 16, 17, 0b */ + /* Input mixer1: unmute Mic, F-Mic, Line, CD inputs */ + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + /* Input mixer2 */ + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + /* Input mixer3 */ + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + + { } +}; +/* add playback controls from the parsed DAC table */ +static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) +{ + hda_nid_t nid; + int err; + + spec->multiout.num_dacs = 1; /* only use one dac */ + spec->multiout.dac_nids = spec->private_dac_nids; + spec->multiout.dac_nids[0] = 2; + + nid = cfg->line_out_pins[0]; + if (nid) { + if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, "Front Playback Volume", + HDA_COMPOSE_AMP_VAL(0x0c, 3, 0, HDA_OUTPUT))) < 0) + return err; + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, "Front Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) + return err; + } + + nid = cfg->speaker_pin; + if (nid) { + if (nid == 0x16) { + if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, "Speaker Playback Volume", + HDA_COMPOSE_AMP_VAL(0x0e, 2, 0, HDA_OUTPUT))) < 0) + return err; + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, "Speaker Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 2, 0, HDA_OUTPUT))) < 0) + return err; + } else { + if (! cfg->line_out_pins[0]) + if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, "Speaker Playback Volume", + HDA_COMPOSE_AMP_VAL(0x0c, 3, 0, HDA_OUTPUT))) < 0) + return err; + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, "Speaker Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) + return err; + } + } + nid = cfg->hp_pin; + if (nid) { + /* spec->multiout.hp_nid = 2; */ + if (nid == 0x16) { + if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, "Headphone Playback Volume", + HDA_COMPOSE_AMP_VAL(0x0e, 2, 0, HDA_OUTPUT))) < 0) + return err; + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, "Headphone Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 2, 0, HDA_OUTPUT))) < 0) + return err; + } else { + if (! cfg->line_out_pins[0]) + if ((err = add_control(spec, ALC_CTL_WIDGET_VOL, "Headphone Playback Volume", + HDA_COMPOSE_AMP_VAL(0x0c, 3, 0, HDA_OUTPUT))) < 0) + return err; + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, "Headphone Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) + return err; + } + } + return 0; +} + +/* identical with ALC880 */ +#define alc262_auto_create_analog_input_ctls alc880_auto_create_analog_input_ctls + +/* + * generic initialization of ADC, input mixers and output mixers + */ +static struct hda_verb alc262_volume_init_verbs[] = { + /* + * Unmute ADC0-2 and set the default input to mic-in + */ + {0x07, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x09, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + + /* Unmute input amps (CD, Line In, Mic 1 & Mic 2) of the analog-loopback + * mixer widget + * Note: PASD motherboards uses the Line In 2 as the input for front panel + * mic (mic 2) + */ + /* Amp Indices: Mic1 = 0, Mic2 = 1, Line1 = 2, Line2 = 3, CD = 4 */ + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, + {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(4)}, + + /* + * Set up output mixers (0x0c - 0x0f) + */ + /* set vol=0 to output mixers */ + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + + /* set up input amps for analog loopback */ + /* Amp Indices: DAC = 0, mixer = 1 */ + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + /* FIXME: use matrix-type input source selection */ + /* Mixer elements: 0x18, 19, 1a, 1b, 1c, 1d, 14, 15, 16, 17, 0b */ + /* Input mixer1: unmute Mic, F-Mic, Line, CD inputs */ + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x24, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + /* Input mixer2 */ + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x23, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + /* Input mixer3 */ + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x03 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8))}, + {0x22, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x04 << 8))}, + + { } +}; + +/* pcm configuration: identiacal with ALC880 */ +#define alc262_pcm_analog_playback alc880_pcm_analog_playback +#define alc262_pcm_analog_capture alc880_pcm_analog_capture +#define alc262_pcm_digital_playback alc880_pcm_digital_playback +#define alc262_pcm_digital_capture alc880_pcm_digital_capture + +/* + * BIOS auto configuration + */ +static int alc262_parse_auto_config(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int err; + static hda_nid_t alc262_ignore[] = { 0x1d, 0 }; + + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, + alc262_ignore)) < 0) + return err; + if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && + ! spec->autocfg.hp_pin) + return 0; /* can't find valid BIOS pin config */ + if ((err = alc262_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || + (err = alc262_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) + return err; + + spec->multiout.max_channels = spec->multiout.num_dacs * 2; + + if (spec->autocfg.dig_out_pin) + spec->multiout.dig_out_nid = ALC262_DIGOUT_NID; + if (spec->autocfg.dig_in_pin) + spec->dig_in_nid = ALC262_DIGIN_NID; + + if (spec->kctl_alloc) + spec->mixers[spec->num_mixers++] = spec->kctl_alloc; + + spec->init_verbs[spec->num_init_verbs++] = alc262_volume_init_verbs; + spec->input_mux = &spec->private_imux; + + return 1; +} + +#define alc262_auto_init_multi_out alc882_auto_init_multi_out +#define alc262_auto_init_hp_out alc882_auto_init_hp_out +#define alc262_auto_init_analog_input alc882_auto_init_analog_input + + +/* init callback for auto-configuration model -- overriding the default init */ +static int alc262_auto_init(struct hda_codec *codec) +{ + alc_init(codec); + alc262_auto_init_multi_out(codec); + alc262_auto_init_hp_out(codec); + alc262_auto_init_analog_input(codec); + return 0; +} + +/* + * configuration and preset + */ +static struct hda_board_config alc262_cfg_tbl[] = { + { .modelname = "basic", .config = ALC262_BASIC }, + { .modelname = "auto", .config = ALC262_AUTO }, + {} +}; + +static struct alc_config_preset alc262_presets[] = { + [ALC262_BASIC] = { + .mixers = { alc262_base_mixer }, + .init_verbs = { alc262_init_verbs }, + .num_dacs = ARRAY_SIZE(alc262_dac_nids), + .dac_nids = alc262_dac_nids, + .hp_nid = 0x03, + .num_channel_mode = ARRAY_SIZE(alc262_modes), + .channel_mode = alc262_modes, + }, +}; + +static int patch_alc262(struct hda_codec *codec) +{ + struct alc_spec *spec; + int board_config; + int err; + + spec = kcalloc(1, sizeof(*spec), GFP_KERNEL); + if (spec == NULL) + return -ENOMEM; + + codec->spec = spec; +#if 0 + /* pshou 07/11/05 set a zero PCM sample to DAC when FIFO is under-run */ + { + int tmp; + snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_COEF_INDEX, 7); + tmp = snd_hda_codec_read(codec, 0x20, 0, AC_VERB_GET_PROC_COEF, 0); + snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_COEF_INDEX, 7); + snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_PROC_COEF, tmp | 0x80); + } +#endif + + board_config = snd_hda_check_board_config(codec, alc262_cfg_tbl); + if (board_config < 0 || board_config >= ALC262_MODEL_LAST) { + printk(KERN_INFO "hda_codec: Unknown model for ALC262, trying auto-probe from BIOS...\n"); + board_config = ALC262_AUTO; + } + + if (board_config == ALC262_AUTO) { + /* automatic parse from the BIOS config */ + err = alc262_parse_auto_config(codec); + if (err < 0) { + alc_free(codec); + return err; + } else if (! err) { + printk(KERN_INFO "hda_codec: Cannot set up configuration from BIOS. Using base mode...\n"); + board_config = ALC262_BASIC; + } + } + + if (board_config != ALC262_AUTO) + setup_preset(spec, &alc262_presets[board_config]); + + spec->stream_name_analog = "ALC262 Analog"; + spec->stream_analog_playback = &alc262_pcm_analog_playback; + spec->stream_analog_capture = &alc262_pcm_analog_capture; + + spec->stream_name_digital = "ALC262 Digital"; + spec->stream_digital_playback = &alc262_pcm_digital_playback; + spec->stream_digital_capture = &alc262_pcm_digital_capture; + + if (! spec->adc_nids && spec->input_mux) { + /* check whether NID 0x07 is valid */ + unsigned int wcap = snd_hda_param_read(codec, 0x07, + AC_PAR_AUDIO_WIDGET_CAP); + wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ + if (wcap != AC_WID_AUD_IN) { + spec->adc_nids = alc262_adc_nids_alt; + spec->num_adc_nids = ARRAY_SIZE(alc262_adc_nids_alt); + spec->mixers[spec->num_mixers] = alc262_capture_alt_mixer; + spec->num_mixers++; + } else { + spec->adc_nids = alc262_adc_nids; + spec->num_adc_nids = ARRAY_SIZE(alc262_adc_nids); + spec->mixers[spec->num_mixers] = alc262_capture_mixer; + spec->num_mixers++; + } + } + + codec->patch_ops = alc_patch_ops; + if (board_config == ALC262_AUTO) + codec->patch_ops.init = alc262_auto_init; + + return 0; +} + + +/* + * ALC861 channel source setting (2/6 channel selection for 3-stack) + */ + +/* + * set the path ways for 2 channel output + * need to set the codec line out and mic 1 pin widgets to inputs + */ +static struct hda_verb alc861_threestack_ch2_init[] = { + /* set pin widget 1Ah (line in) for input */ + { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* set pin widget 18h (mic1/2) for input, for mic also enable the vref */ + { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb00c }, + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8)) }, //mic + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x02 << 8)) }, //line in + { } /* end */ +}; +/* + * 6ch mode + * need to set the codec line out and mic 1 pin widgets to outputs + */ +static struct hda_verb alc861_threestack_ch6_init[] = { + /* set pin widget 1Ah (line in) for output (Back Surround)*/ + { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + /* set pin widget 18h (mic1) for output (CLFE)*/ + { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + + { 0x0c, AC_VERB_SET_CONNECT_SEL, 0x00 }, + { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00 }, + + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080 }, + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x01 << 8)) }, //mic + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8)) }, //line in + { } /* end */ +}; + +static struct hda_channel_mode alc861_threestack_modes[2] = { + { 2, alc861_threestack_ch2_init }, + { 6, alc861_threestack_ch6_init }, +}; + +/* patch-ALC861 */ + +static struct snd_kcontrol_new alc861_base_mixer[] = { + /* output mixer control */ + HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("Center Playback Switch", 0x05, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("LFE Playback Switch", 0x05, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Side Playback Switch", 0x04, 0x0, HDA_OUTPUT), + + /*Input mixer control */ + /* HDA_CODEC_VOLUME("Input Playback Volume", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Input Playback Switch", 0x15, 0x0, HDA_OUTPUT), */ + HDA_CODEC_VOLUME("CD Playback Volume", 0x15, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x15, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x15, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x15, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x15, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x15, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x10, 0x01, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x1a, 0x03, HDA_INPUT), + + /* Capture mixer control */ + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .count = 1, + .info = alc_mux_enum_info, + .get = alc_mux_enum_get, + .put = alc_mux_enum_put, + }, + { } /* end */ +}; + +static struct snd_kcontrol_new alc861_3ST_mixer[] = { + /* output mixer control */ + HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("Center Playback Switch", 0x05, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("LFE Playback Switch", 0x05, 2, 0x0, HDA_OUTPUT), + /*HDA_CODEC_MUTE("Side Playback Switch", 0x04, 0x0, HDA_OUTPUT), */ + + /* Input mixer control */ + /* HDA_CODEC_VOLUME("Input Playback Volume", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Input Playback Switch", 0x15, 0x0, HDA_OUTPUT), */ + HDA_CODEC_VOLUME("CD Playback Volume", 0x15, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x15, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x15, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x15, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x15, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x15, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x10, 0x01, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x1a, 0x03, HDA_INPUT), + + /* Capture mixer control */ + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .count = 1, + .info = alc_mux_enum_info, + .get = alc_mux_enum_get, + .put = alc_mux_enum_put, + }, + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Channel Mode", + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, + .private_value = ARRAY_SIZE(alc861_threestack_modes), + }, + { } /* end */ +}; + +/* + * generic initialization of ADC, input mixers and output mixers + */ +static struct hda_verb alc861_base_init_verbs[] = { + /* + * Unmute ADC0 and set the default input to mic-in + */ + /* port-A for surround (rear panel) */ + { 0x0e, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + { 0x0e, AC_VERB_SET_CONNECT_SEL, 0x00 }, + /* port-B for mic-in (rear panel) with vref */ + { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + /* port-C for line-in (rear panel) */ + { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* port-D for Front */ + { 0x0b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + { 0x0b, AC_VERB_SET_CONNECT_SEL, 0x00 }, + /* port-E for HP out (front panel) */ + { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0 }, + /* route front PCM to HP */ + { 0x0f, AC_VERB_SET_CONNECT_SEL, 0x01 }, + /* port-F for mic-in (front panel) with vref */ + { 0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + /* port-G for CLFE (rear panel) */ + { 0x1f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + { 0x1f, AC_VERB_SET_CONNECT_SEL, 0x00 }, + /* port-H for side (rear panel) */ + { 0x20, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + { 0x20, AC_VERB_SET_CONNECT_SEL, 0x00 }, + /* CD-in */ + { 0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* route front mic to ADC1*/ + {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + + /* Unmute DAC0~3 & spdif out*/ + {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + + /* Unmute Mixer 14 (mic) 1c (Line in)*/ + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + /* Unmute Stereo Mixer 15 */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb00c }, //Output 0~12 step + + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, // hp used DAC 3 (Front) + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + + { } +}; + +static struct hda_verb alc861_threestack_init_verbs[] = { + /* + * Unmute ADC0 and set the default input to mic-in + */ + /* port-A for surround (rear panel) */ + { 0x0e, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, + /* port-B for mic-in (rear panel) with vref */ + { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + /* port-C for line-in (rear panel) */ + { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* port-D for Front */ + { 0x0b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + { 0x0b, AC_VERB_SET_CONNECT_SEL, 0x00 }, + /* port-E for HP out (front panel) */ + { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0 }, + /* route front PCM to HP */ + { 0x0f, AC_VERB_SET_CONNECT_SEL, 0x01 }, + /* port-F for mic-in (front panel) with vref */ + { 0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + /* port-G for CLFE (rear panel) */ + { 0x1f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, + /* port-H for side (rear panel) */ + { 0x20, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, + /* CD-in */ + { 0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* route front mic to ADC1*/ + {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + /* Unmute DAC0~3 & spdif out*/ + {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + + /* Unmute Mixer 14 (mic) 1c (Line in)*/ + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + /* Unmute Stereo Mixer 15 */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb00c }, //Output 0~12 step + + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, // hp used DAC 3 (Front) + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + { } +}; +/* + * generic initialization of ADC, input mixers and output mixers + */ +static struct hda_verb alc861_auto_init_verbs[] = { + /* + * Unmute ADC0 and set the default input to mic-in + */ +// {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + + /* Unmute DAC0~3 & spdif out*/ + {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + + /* Unmute Mixer 14 (mic) 1c (Line in)*/ + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + /* Unmute Stereo Mixer 15 */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb00c}, + + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, + + {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, // set Mic 1 + + { } +}; + +/* pcm configuration: identiacal with ALC880 */ +#define alc861_pcm_analog_playback alc880_pcm_analog_playback +#define alc861_pcm_analog_capture alc880_pcm_analog_capture +#define alc861_pcm_digital_playback alc880_pcm_digital_playback +#define alc861_pcm_digital_capture alc880_pcm_digital_capture + + +#define ALC861_DIGOUT_NID 0x07 + +static struct hda_channel_mode alc861_8ch_modes[1] = { + { 8, NULL } +}; + +static hda_nid_t alc861_dac_nids[4] = { + /* front, surround, clfe, side */ + 0x03, 0x06, 0x05, 0x04 +}; + +static hda_nid_t alc861_adc_nids[1] = { + /* ADC0-2 */ + 0x08, +}; + +static struct hda_input_mux alc861_capture_source = { + .num_items = 5, + .items = { + { "Mic", 0x0 }, + { "Front Mic", 0x3 }, + { "Line", 0x1 }, + { "CD", 0x4 }, + { "Mixer", 0x5 }, + }, +}; + +/* fill in the dac_nids table from the parsed pin configuration */ +static int alc861_auto_fill_dac_nids(struct alc_spec *spec, const struct auto_pin_cfg *cfg) +{ + int i; + hda_nid_t nid; + + spec->multiout.dac_nids = spec->private_dac_nids; + for (i = 0; i < cfg->line_outs; i++) { + nid = cfg->line_out_pins[i]; + if (nid) { + if (i >= ARRAY_SIZE(alc861_dac_nids)) + continue; + spec->multiout.dac_nids[i] = alc861_dac_nids[i]; + } + } + spec->multiout.num_dacs = cfg->line_outs; + return 0; +} + +/* add playback controls from the parsed DAC table */ +static int alc861_auto_create_multi_out_ctls(struct alc_spec *spec, + const struct auto_pin_cfg *cfg) +{ + char name[32]; + static const char *chname[4] = { "Front", "Surround", NULL /*CLFE*/, "Side" }; + hda_nid_t nid; + int i, idx, err; + + for (i = 0; i < cfg->line_outs; i++) { + nid = spec->multiout.dac_nids[i]; + if (! nid) + continue; + if (nid == 0x05) { + /* Center/LFE */ + if ((err = add_control(spec, ALC_CTL_BIND_MUTE, "Center Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 1, 0, HDA_OUTPUT))) < 0) + return err; + if ((err = add_control(spec, ALC_CTL_BIND_MUTE, "LFE Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 2, 0, HDA_OUTPUT))) < 0) + return err; + } else { + for (idx = 0; idx < ARRAY_SIZE(alc861_dac_nids) - 1; idx++) + if (nid == alc861_dac_nids[idx]) + break; + sprintf(name, "%s Playback Switch", chname[idx]); + if ((err = add_control(spec, ALC_CTL_BIND_MUTE, name, + HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) + return err; + } + } + return 0; +} + +static int alc861_auto_create_hp_ctls(struct alc_spec *spec, hda_nid_t pin) +{ + int err; + hda_nid_t nid; + + if (! pin) + return 0; + + if ((pin >= 0x0b && pin <= 0x10) || pin == 0x1f || pin == 0x20) { + nid = 0x03; + if ((err = add_control(spec, ALC_CTL_WIDGET_MUTE, "Headphone Playback Switch", + HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) + return err; + spec->multiout.hp_nid = nid; + } + return 0; +} + +/* create playback/capture controls for input pins */ +static int alc861_auto_create_analog_input_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) +{ + static char *labels[AUTO_PIN_LAST] = { + "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" + }; + struct hda_input_mux *imux = &spec->private_imux; + int i, err, idx, idx1; + + for (i = 0; i < AUTO_PIN_LAST; i++) { + switch(cfg->input_pins[i]) { + case 0x0c: + idx1 = 1; + idx = 2; // Line In + break; + case 0x0f: + idx1 = 2; + idx = 2; // Line In + break; + case 0x0d: + idx1 = 0; + idx = 1; // Mic In + break; + case 0x10: + idx1 = 3; + idx = 1; // Mic In + break; + case 0x11: + idx1 = 4; + idx = 0; // CD + break; + default: + continue; + } + + err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x15); + if (err < 0) + return err; + + imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].index = idx1; + imux->num_items++; + } + return 0; +} + +static struct snd_kcontrol_new alc861_capture_mixer[] = { + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* The multiple "Capture Source" controls confuse alsamixer + * So call somewhat different.. + *FIXME: the controls appear in the "playback" view! + */ + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 1, + .info = alc_mux_enum_info, + .get = alc_mux_enum_get, + .put = alc_mux_enum_put, + }, + { } /* end */ +}; + +static void alc861_auto_set_output_and_unmute(struct hda_codec *codec, hda_nid_t nid, + int pin_type, int dac_idx) +{ + /* set as output */ + + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_type); + snd_hda_codec_write(codec, dac_idx, 0, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); + +} + +static void alc861_auto_init_multi_out(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int i; + + for (i = 0; i < spec->autocfg.line_outs; i++) { + hda_nid_t nid = spec->autocfg.line_out_pins[i]; + if (nid) + alc861_auto_set_output_and_unmute(codec, nid, PIN_OUT, spec->multiout.dac_nids[i]); + } +} + +static void alc861_auto_init_hp_out(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + hda_nid_t pin; + + pin = spec->autocfg.hp_pin; + if (pin) /* connect to front */ + alc861_auto_set_output_and_unmute(codec, pin, PIN_HP, spec->multiout.dac_nids[0]); +} + +static void alc861_auto_init_analog_input(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int i; + + for (i = 0; i < AUTO_PIN_LAST; i++) { + hda_nid_t nid = spec->autocfg.input_pins[i]; + if ((nid>=0x0c) && (nid <=0x11)) { + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, + i <= AUTO_PIN_FRONT_MIC ? PIN_VREF80 : PIN_IN); + } + } +} + +/* parse the BIOS configuration and set up the alc_spec */ +/* return 1 if successful, 0 if the proper config is not found, or a negative error code */ +static int alc861_parse_auto_config(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int err; + static hda_nid_t alc861_ignore[] = { 0x1d, 0 }; + + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, + alc861_ignore)) < 0) + return err; + if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && + ! spec->autocfg.hp_pin) + return 0; /* can't find valid BIOS pin config */ + + if ((err = alc861_auto_fill_dac_nids(spec, &spec->autocfg)) < 0 || + (err = alc861_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || + (err = alc861_auto_create_hp_ctls(spec, spec->autocfg.hp_pin)) < 0 || + (err = alc861_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) + return err; + + spec->multiout.max_channels = spec->multiout.num_dacs * 2; + + if (spec->autocfg.dig_out_pin) + spec->multiout.dig_out_nid = ALC861_DIGOUT_NID; + + if (spec->kctl_alloc) + spec->mixers[spec->num_mixers++] = spec->kctl_alloc; + + spec->init_verbs[spec->num_init_verbs++] = alc861_auto_init_verbs; + + spec->input_mux = &spec->private_imux; + + spec->adc_nids = alc861_adc_nids; + spec->num_adc_nids = ARRAY_SIZE(alc861_adc_nids); + spec->mixers[spec->num_mixers] = alc861_capture_mixer; + spec->num_mixers++; + + return 1; +} + +/* init callback for auto-configuration model -- overriding the default init */ +static int alc861_auto_init(struct hda_codec *codec) +{ + alc_init(codec); + alc861_auto_init_multi_out(codec); + alc861_auto_init_hp_out(codec); + alc861_auto_init_analog_input(codec); + + return 0; +} + + +/* + * configuration and preset + */ +static struct hda_board_config alc861_cfg_tbl[] = { + { .modelname = "3stack", .config = ALC861_3ST }, + { .pci_subvendor = 0x8086, .pci_subdevice = 0xd600, .config = ALC861_3ST }, + { .modelname = "3stack-dig", .config = ALC861_3ST_DIG }, + { .modelname = "6stack-dig", .config = ALC861_6ST_DIG }, + { .modelname = "auto", .config = ALC861_AUTO }, + {} +}; + +static struct alc_config_preset alc861_presets[] = { + [ALC861_3ST] = { + .mixers = { alc861_3ST_mixer }, + .init_verbs = { alc861_threestack_init_verbs }, + .num_dacs = ARRAY_SIZE(alc861_dac_nids), + .dac_nids = alc861_dac_nids, + .num_channel_mode = ARRAY_SIZE(alc861_threestack_modes), + .channel_mode = alc861_threestack_modes, + .num_adc_nids = ARRAY_SIZE(alc861_adc_nids), + .adc_nids = alc861_adc_nids, + .input_mux = &alc861_capture_source, + }, + [ALC861_3ST_DIG] = { + .mixers = { alc861_base_mixer }, + .init_verbs = { alc861_threestack_init_verbs }, + .num_dacs = ARRAY_SIZE(alc861_dac_nids), + .dac_nids = alc861_dac_nids, + .dig_out_nid = ALC861_DIGOUT_NID, + .num_channel_mode = ARRAY_SIZE(alc861_threestack_modes), + .channel_mode = alc861_threestack_modes, + .num_adc_nids = ARRAY_SIZE(alc861_adc_nids), + .adc_nids = alc861_adc_nids, + .input_mux = &alc861_capture_source, + }, + [ALC861_6ST_DIG] = { + .mixers = { alc861_base_mixer }, + .init_verbs = { alc861_base_init_verbs }, + .num_dacs = ARRAY_SIZE(alc861_dac_nids), + .dac_nids = alc861_dac_nids, + .dig_out_nid = ALC861_DIGOUT_NID, + .num_channel_mode = ARRAY_SIZE(alc861_8ch_modes), + .channel_mode = alc861_8ch_modes, + .num_adc_nids = ARRAY_SIZE(alc861_adc_nids), + .adc_nids = alc861_adc_nids, + .input_mux = &alc861_capture_source, + }, +}; + + +static int patch_alc861(struct hda_codec *codec) +{ + struct alc_spec *spec; + int board_config; + int err; + + spec = kcalloc(1, sizeof(*spec), GFP_KERNEL); + if (spec == NULL) + return -ENOMEM; + + codec->spec = spec; + + board_config = snd_hda_check_board_config(codec, alc861_cfg_tbl); + if (board_config < 0 || board_config >= ALC861_MODEL_LAST) { + printk(KERN_INFO "hda_codec: Unknown model for ALC861, trying auto-probe from BIOS...\n"); + board_config = ALC861_AUTO; + } + + if (board_config == ALC861_AUTO) { + /* automatic parse from the BIOS config */ + err = alc861_parse_auto_config(codec); + if (err < 0) { + alc_free(codec); + return err; + } else if (! err) { + printk(KERN_INFO "hda_codec: Cannot set up configuration from BIOS. Using base mode...\n"); + board_config = ALC861_3ST_DIG; + } + } + + if (board_config != ALC861_AUTO) + setup_preset(spec, &alc861_presets[board_config]); + + spec->stream_name_analog = "ALC861 Analog"; + spec->stream_analog_playback = &alc861_pcm_analog_playback; + spec->stream_analog_capture = &alc861_pcm_analog_capture; + + spec->stream_name_digital = "ALC861 Digital"; + spec->stream_digital_playback = &alc861_pcm_digital_playback; + spec->stream_digital_capture = &alc861_pcm_digital_capture; + + codec->patch_ops = alc_patch_ops; + if (board_config == ALC861_AUTO) + codec->patch_ops.init = alc861_auto_init; + return 0; } @@ -2692,7 +4675,11 @@ static int patch_alc882(struct hda_codec *codec) */ struct hda_codec_preset snd_hda_preset_realtek[] = { { .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 }, + { .id = 0x10ec0262, .name = "ALC262", .patch = patch_alc262 }, { .id = 0x10ec0880, .name = "ALC880", .patch = patch_alc880 }, { .id = 0x10ec0882, .name = "ALC882", .patch = patch_alc882 }, + { .id = 0x10ec0883, .name = "ALC883", .patch = patch_alc882 }, + { .id = 0x10ec0885, .name = "ALC885", .patch = patch_alc882 }, + { .id = 0x10ec0861, .name = "ALC861", .patch = patch_alc861 }, {} /* terminator */ }; diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 78662d3539e..8311c9fa052 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -761,7 +761,7 @@ static int stac922x_parse_auto_config(struct hda_codec *codec) struct sigmatel_spec *spec = codec->spec; int err; - if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg)) < 0) + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL)) < 0) return err; if ((err = stac92xx_add_dyn_out_pins(codec, &spec->autocfg)) < 0) return err; @@ -801,7 +801,7 @@ static int stac9200_parse_auto_config(struct hda_codec *codec) struct sigmatel_spec *spec = codec->spec; int err; - if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg)) < 0) + if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL)) < 0) return err; if ((err = stac92xx_auto_create_analog_input_ctls(codec, &spec->autocfg)) < 0) -- cgit v1.2.3-70-g09d2 From 031c95d4338127a9599fcb7d449f4aa6f086786b Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 5 Dec 2005 20:51:43 +0100 Subject: [ALSA] ac97 - Small fix for ALC65x codec Modules: AC97 Codec Small fix for ALC65x codec, sync with Realtek's driver codes: - Rename 'IEC958 Playback Route' to 'IEC958 Playback Source' so that mixer can handle it properly Signed-off-by: Takashi Iwai --- sound/pci/ac97/ac97_codec.c | 2 ++ sound/pci/ac97/ac97_patch.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 17c3ddac35c..33d7a1fc2f9 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -2411,6 +2411,8 @@ static int tune_alc_jack(struct snd_ac97 *ac97) } snd_ac97_update_bits(ac97, 0x7a, 0x20, 0x20); /* select jack detect function */ snd_ac97_update_bits(ac97, 0x7a, 0x01, 0x01); /* Line-out auto mute */ + if (ac97->id == AC97_ID_ALC658D) + snd_ac97_update_bits(ac97, 0x74, 0x0800, 0x0800); return snd_ctl_add(ac97->bus->card, snd_ac97_cnew(&snd_ac97_alc_jack_detect, ac97)); } diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index 1b72bc2b7e2..4aa5fdc5688 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c @@ -2116,7 +2116,7 @@ static const struct snd_kcontrol_new snd_ac97_spdif_controls_alc655[] = { /* AC97_PAGE_SINGLE("IEC958 Input Monitor", AC97_ALC650_MULTICH, 14, 1, 0, 0), */ { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Route", + .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Source", .info = alc655_iec958_route_info, .get = alc655_iec958_route_get, .put = alc655_iec958_route_put, -- cgit v1.2.3-70-g09d2 From 46a1736d7c07687e7456f72b238a68034fd5a624 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 5 Dec 2005 21:16:37 +0100 Subject: [ALSA] via82xx - Add dxs entry for ASRock mobo Modules: VIA82xx driver Added dxs_support entry for ASRock mobo. Signed-off-by: Takashi Iwai --- sound/pci/via82xx.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sound/pci') diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index ce4985f8078..6e6eff3e803 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2366,6 +2366,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) { .subvendor = 0x1631, .subdevice = 0xe004, .action = VIA_DXS_ENABLE }, /* Easy Note 3174, Packard Bell */ { .subvendor = 0x1695, .subdevice = 0x3005, .action = VIA_DXS_ENABLE }, /* EPoX EP-8K9A */ { .subvendor = 0x1849, .subdevice = 0x3059, .action = VIA_DXS_NO_VRA }, /* ASRock K7VM2 */ + { .subvendor = 0x1849, .subdevice = 0x9761, .action = VIA_DXS_SRC }, /* ASRock mobo(?) */ { .subvendor = 0x1919, .subdevice = 0x200a, .action = VIA_DXS_NO_VRA }, /* Soltek SL-K8Tpro-939 */ { .subvendor = 0x4005, .subdevice = 0x4710, .action = VIA_DXS_SRC }, /* MSI K7T266 Pro2 (MS-6380 V2.0) BIOS 3.7 */ { } /* terminator */ -- cgit v1.2.3-70-g09d2 From e12229b4d2b7863b1baaeca759aa87703bf9fdf8 Mon Sep 17 00:00:00 2001 From: Markus Bollinger Date: Tue, 6 Dec 2005 13:55:26 +0100 Subject: [ALSA] Add PCXHR driver Modules: Documentation,PCI drivers,Digigram PCXHR driver Add Digigram PCXHR driver. Signed-off-by: Takashi Iwai --- Documentation/sound/alsa/ALSA-Configuration.txt | 7 + sound/pci/Kconfig | 11 + sound/pci/Makefile | 1 + sound/pci/pcxhr/Makefile | 2 + sound/pci/pcxhr/pcxhr.c | 1367 +++++++++++++++++++++++ sound/pci/pcxhr/pcxhr.h | 188 ++++ sound/pci/pcxhr/pcxhr_core.c | 1214 ++++++++++++++++++++ sound/pci/pcxhr/pcxhr_core.h | 200 ++++ sound/pci/pcxhr/pcxhr_hwdep.c | 438 ++++++++ sound/pci/pcxhr/pcxhr_hwdep.h | 40 + sound/pci/pcxhr/pcxhr_mixer.c | 1020 +++++++++++++++++ sound/pci/pcxhr/pcxhr_mixer.h | 29 + 12 files changed, 4517 insertions(+) create mode 100644 sound/pci/pcxhr/Makefile create mode 100644 sound/pci/pcxhr/pcxhr.c create mode 100644 sound/pci/pcxhr/pcxhr.h create mode 100644 sound/pci/pcxhr/pcxhr_core.c create mode 100644 sound/pci/pcxhr/pcxhr_core.h create mode 100644 sound/pci/pcxhr/pcxhr_hwdep.c create mode 100644 sound/pci/pcxhr/pcxhr_hwdep.h create mode 100644 sound/pci/pcxhr/pcxhr_mixer.c create mode 100644 sound/pci/pcxhr/pcxhr_mixer.h (limited to 'sound/pci') diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index c30fd30a19e..d2578013e82 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt @@ -1103,6 +1103,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. This module supports only one card, autoprobe and PnP. + Module snd-pcxhr + ---------------- + + Module for Digigram PCXHR boards + + This module supports multiple cards. + Module snd-powermac (on ppc only) --------------------------------- diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig index ef7bdc5a965..1e2e19305e3 100644 --- a/sound/pci/Kconfig +++ b/sound/pci/Kconfig @@ -455,6 +455,17 @@ config SND_NM256 To compile this driver as a module, choose M here: the module will be called snd-nm256. +config SND_PCXHR + tristate "Digigram PCXHR" + depends on SND + select SND_PCM + select SND_HWDEP + help + Say Y here to include support for Digigram PCXHR boards. + + To compile this driver as a module, choose M here: the module + will be called snd-pcxhr. + config SND_RME32 tristate "RME Digi32, 32/8, 32 PRO" depends on SND diff --git a/sound/pci/Makefile b/sound/pci/Makefile index 82a9c734f84..a6c3cd58fe9 100644 --- a/sound/pci/Makefile +++ b/sound/pci/Makefile @@ -61,6 +61,7 @@ obj-$(CONFIG_SND) += \ korg1212/ \ mixart/ \ nm256/ \ + pcxhr/ \ rme9652/ \ trident/ \ ymfpci/ \ diff --git a/sound/pci/pcxhr/Makefile b/sound/pci/pcxhr/Makefile new file mode 100644 index 00000000000..10473c05918 --- /dev/null +++ b/sound/pci/pcxhr/Makefile @@ -0,0 +1,2 @@ +snd-pcxhr-objs := pcxhr.o pcxhr_hwdep.o pcxhr_mixer.o pcxhr_core.o +obj-$(CONFIG_SND_PCXHR) += snd-pcxhr.o diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c new file mode 100644 index 00000000000..b8c0853a827 --- /dev/null +++ b/sound/pci/pcxhr/pcxhr.c @@ -0,0 +1,1367 @@ +/* + * Driver for Digigram pcxhr compatible soundcards + * + * main file with alsa callbacks + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "pcxhr.h" +#include "pcxhr_mixer.h" +#include "pcxhr_hwdep.h" +#include "pcxhr_core.h" + +#define DRIVER_NAME "pcxhr" + +MODULE_AUTHOR("Markus Bollinger "); +MODULE_DESCRIPTION("Digigram " DRIVER_NAME " " PCXHR_DRIVER_VERSION_STRING); +MODULE_LICENSE("GPL"); +MODULE_SUPPORTED_DEVICE("{{Digigram," DRIVER_NAME "}}"); + +static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ +static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ +static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable this card */ +static int mono[SNDRV_CARDS]; /* capture in mono only */ + +module_param_array(index, int, NULL, 0444); +MODULE_PARM_DESC(index, "Index value for Digigram " DRIVER_NAME " soundcard"); +module_param_array(id, charp, NULL, 0444); +MODULE_PARM_DESC(id, "ID string for Digigram " DRIVER_NAME " soundcard"); +module_param_array(enable, bool, NULL, 0444); +MODULE_PARM_DESC(enable, "Enable Digigram " DRIVER_NAME " soundcard"); +module_param_array(mono, bool, NULL, 0444); +MODULE_PARM_DESC(mono, "Mono capture mode (default is stereo)"); + +enum { + PCI_ID_VX882HR, + PCI_ID_PCX882HR, + PCI_ID_VX881HR, + PCI_ID_PCX881HR, + PCI_ID_PCX1222HR, + PCI_ID_PCX1221HR, + PCI_ID_LAST +}; + +static struct pci_device_id pcxhr_ids[] = { + { 0x10b5, 0x9656, 0x1369, 0xb001, 0, 0, PCI_ID_VX882HR, }, /* VX882HR */ + { 0x10b5, 0x9656, 0x1369, 0xb101, 0, 0, PCI_ID_PCX882HR, }, /* PCX882HR */ + { 0x10b5, 0x9656, 0x1369, 0xb201, 0, 0, PCI_ID_VX881HR, }, /* VX881HR */ + { 0x10b5, 0x9656, 0x1369, 0xb301, 0, 0, PCI_ID_PCX881HR, }, /* PCX881HR */ + { 0x10b5, 0x9656, 0x1369, 0xb501, 0, 0, PCI_ID_PCX1222HR, }, /* PCX1222HR */ + { 0x10b5, 0x9656, 0x1369, 0xb701, 0, 0, PCI_ID_PCX1221HR, }, /* PCX1221HR */ + { 0, } +}; + +MODULE_DEVICE_TABLE(pci, pcxhr_ids); + +struct board_parameters { + char* board_name; + short playback_chips; + short capture_chips; + short firmware_num; +}; +static struct board_parameters pcxhr_board_params[] = { +[PCI_ID_VX882HR] = { "VX882HR", 4, 4, 41, }, +[PCI_ID_PCX882HR] = { "PCX882HR", 4, 4, 41, }, +[PCI_ID_VX881HR] = { "VX881HR", 4, 4, 41, }, +[PCI_ID_PCX881HR] = { "PCX881HR", 4, 4, 41, }, +[PCI_ID_PCX1222HR] = { "PCX1222HR", 6, 1, 42, }, +[PCI_ID_PCX1221HR] = { "PCX1221HR", 6, 1, 42, }, +}; + + +static int pcxhr_pll_freq_register(unsigned int freq, unsigned int* pllreg, + unsigned int* realfreq) +{ + unsigned int reg; + + if (freq < 6900 || freq > 110250) + return -EINVAL; + reg = (28224000 * 10) / freq; + reg = (reg + 5) / 10; + if (reg < 0x200) + *pllreg = reg + 0x800; + else if (reg < 0x400) + *pllreg = reg & 0x1ff; + else if (reg < 0x800) { + *pllreg = ((reg >> 1) & 0x1ff) + 0x200; + reg &= ~1; + } else { + *pllreg = ((reg >> 2) & 0x1ff) + 0x400; + reg &= ~3; + } + if (realfreq) + *realfreq = ((28224000 * 10) / reg + 5) / 10; + return 0; +} + + +#define PCXHR_FREQ_REG_MASK 0x1f +#define PCXHR_FREQ_QUARTZ_48000 0x00 +#define PCXHR_FREQ_QUARTZ_24000 0x01 +#define PCXHR_FREQ_QUARTZ_12000 0x09 +#define PCXHR_FREQ_QUARTZ_32000 0x08 +#define PCXHR_FREQ_QUARTZ_16000 0x04 +#define PCXHR_FREQ_QUARTZ_8000 0x0c +#define PCXHR_FREQ_QUARTZ_44100 0x02 +#define PCXHR_FREQ_QUARTZ_22050 0x0a +#define PCXHR_FREQ_QUARTZ_11025 0x06 +#define PCXHR_FREQ_PLL 0x05 +#define PCXHR_FREQ_QUARTZ_192000 0x10 +#define PCXHR_FREQ_QUARTZ_96000 0x18 +#define PCXHR_FREQ_QUARTZ_176400 0x14 +#define PCXHR_FREQ_QUARTZ_88200 0x1c +#define PCXHR_FREQ_QUARTZ_128000 0x12 +#define PCXHR_FREQ_QUARTZ_64000 0x1a + +#define PCXHR_FREQ_WORD_CLOCK 0x0f +#define PCXHR_FREQ_SYNC_AES 0x0e +#define PCXHR_FREQ_AES_1 0x07 +#define PCXHR_FREQ_AES_2 0x0b +#define PCXHR_FREQ_AES_3 0x03 +#define PCXHR_FREQ_AES_4 0x0d + +#define PCXHR_MODIFY_CLOCK_S_BIT 0x04 + +#define PCXHR_IRQ_TIMER_FREQ 92000 +#define PCXHR_IRQ_TIMER_PERIOD 48 + +static int pcxhr_get_clock_reg(struct pcxhr_mgr *mgr, unsigned int rate, + unsigned int *reg, unsigned int *freq) +{ + unsigned int val, realfreq, pllreg; + struct pcxhr_rmh rmh; + int err; + + realfreq = rate; + switch (mgr->use_clock_type) { + case PCXHR_CLOCK_TYPE_INTERNAL : /* clock by quartz or pll */ + switch (rate) { + case 48000 : val = PCXHR_FREQ_QUARTZ_48000; break; + case 24000 : val = PCXHR_FREQ_QUARTZ_24000; break; + case 12000 : val = PCXHR_FREQ_QUARTZ_12000; break; + case 32000 : val = PCXHR_FREQ_QUARTZ_32000; break; + case 16000 : val = PCXHR_FREQ_QUARTZ_16000; break; + case 8000 : val = PCXHR_FREQ_QUARTZ_8000; break; + case 44100 : val = PCXHR_FREQ_QUARTZ_44100; break; + case 22050 : val = PCXHR_FREQ_QUARTZ_22050; break; + case 11025 : val = PCXHR_FREQ_QUARTZ_11025; break; + case 192000 : val = PCXHR_FREQ_QUARTZ_192000; break; + case 96000 : val = PCXHR_FREQ_QUARTZ_96000; break; + case 176400 : val = PCXHR_FREQ_QUARTZ_176400; break; + case 88200 : val = PCXHR_FREQ_QUARTZ_88200; break; + case 128000 : val = PCXHR_FREQ_QUARTZ_128000; break; + case 64000 : val = PCXHR_FREQ_QUARTZ_64000; break; + default : + val = PCXHR_FREQ_PLL; + /* get the value for the pll register */ + err = pcxhr_pll_freq_register(rate, &pllreg, &realfreq); + if (err) + return err; + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); + rmh.cmd[0] |= IO_NUM_REG_GENCLK; + rmh.cmd[1] = pllreg & MASK_DSP_WORD; + rmh.cmd[2] = pllreg >> 24; + rmh.cmd_len = 3; + err = pcxhr_send_msg(mgr, &rmh); + if (err < 0) { + snd_printk(KERN_ERR + "error CMD_ACCESS_IO_WRITE for PLL register : %x!\n", + err ); + return err; + } + } + break; + case PCXHR_CLOCK_TYPE_WORD_CLOCK : val = PCXHR_FREQ_WORD_CLOCK; break; + case PCXHR_CLOCK_TYPE_AES_SYNC : val = PCXHR_FREQ_SYNC_AES; break; + case PCXHR_CLOCK_TYPE_AES_1 : val = PCXHR_FREQ_AES_1; break; + case PCXHR_CLOCK_TYPE_AES_2 : val = PCXHR_FREQ_AES_2; break; + case PCXHR_CLOCK_TYPE_AES_3 : val = PCXHR_FREQ_AES_3; break; + case PCXHR_CLOCK_TYPE_AES_4 : val = PCXHR_FREQ_AES_4; break; + default : return -EINVAL; + } + *reg = val; + *freq = realfreq; + return 0; +} + + +int pcxhr_set_clock(struct pcxhr_mgr *mgr, unsigned int rate) +{ + unsigned int val, realfreq, speed; + struct pcxhr_rmh rmh; + int err, changed; + + if (rate == 0) + return 0; /* nothing to do */ + + err = pcxhr_get_clock_reg(mgr, rate, &val, &realfreq); + if (err) + return err; + + /* codec speed modes */ + if (rate < 55000) + speed = 0; /* single speed */ + else if (rate < 100000) + speed = 1; /* dual speed */ + else + speed = 2; /* quad speed */ + if (mgr->codec_speed != speed) { + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); /* mute outputs */ + rmh.cmd[0] |= IO_NUM_REG_MUTE_OUT; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); /* set speed ratio */ + rmh.cmd[0] |= IO_NUM_SPEED_RATIO; + rmh.cmd[1] = speed; + rmh.cmd_len = 2; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + } + /* set the new frequency */ + snd_printdd("clock register : set %x\n", val); + err = pcxhr_write_io_num_reg_cont(mgr, PCXHR_FREQ_REG_MASK, val, &changed); + if (err) + return err; + mgr->sample_rate_real = realfreq; + mgr->cur_clock_type = mgr->use_clock_type; + + /* unmute after codec speed modes */ + if (mgr->codec_speed != speed) { + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_READ); /* unmute outputs */ + rmh.cmd[0] |= IO_NUM_REG_MUTE_OUT; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + mgr->codec_speed = speed; /* save new codec speed */ + } + + if (changed) { + pcxhr_init_rmh(&rmh, CMD_MODIFY_CLOCK); + rmh.cmd[0] |= PCXHR_MODIFY_CLOCK_S_BIT; /* resync fifos */ + if (rate < PCXHR_IRQ_TIMER_FREQ) + rmh.cmd[1] = PCXHR_IRQ_TIMER_PERIOD; + else + rmh.cmd[1] = PCXHR_IRQ_TIMER_PERIOD * 2; + rmh.cmd[2] = rate; + rmh.cmd_len = 3; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + } + snd_printdd("pcxhr_set_clock to %dHz (realfreq=%d)\n", rate, realfreq); + return 0; +} + + +int pcxhr_get_external_clock(struct pcxhr_mgr *mgr, enum pcxhr_clock_type clock_type, + int *sample_rate) +{ + struct pcxhr_rmh rmh; + unsigned char reg; + int err, rate; + + switch (clock_type) { + case PCXHR_CLOCK_TYPE_WORD_CLOCK : reg = REG_STATUS_WORD_CLOCK; break; + case PCXHR_CLOCK_TYPE_AES_SYNC : reg = REG_STATUS_AES_SYNC; break; + case PCXHR_CLOCK_TYPE_AES_1 : reg = REG_STATUS_AES_1; break; + case PCXHR_CLOCK_TYPE_AES_2 : reg = REG_STATUS_AES_2; break; + case PCXHR_CLOCK_TYPE_AES_3 : reg = REG_STATUS_AES_3; break; + case PCXHR_CLOCK_TYPE_AES_4 : reg = REG_STATUS_AES_4; break; + default : return -EINVAL; + } + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_READ); + rmh.cmd_len = 2; + rmh.cmd[0] |= IO_NUM_REG_STATUS; + if (mgr->last_reg_stat != reg) { + rmh.cmd[1] = reg; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + udelay(100); /* wait minimum 2 sample_frames at 32kHz ! */ + mgr->last_reg_stat = reg; + } + rmh.cmd[1] = REG_STATUS_CURRENT; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + switch (rmh.stat[1] & 0x0f) { + case REG_STATUS_SYNC_32000 : rate = 32000; break; + case REG_STATUS_SYNC_44100 : rate = 44100; break; + case REG_STATUS_SYNC_48000 : rate = 48000; break; + case REG_STATUS_SYNC_64000 : rate = 64000; break; + case REG_STATUS_SYNC_88200 : rate = 88200; break; + case REG_STATUS_SYNC_96000 : rate = 96000; break; + case REG_STATUS_SYNC_128000 : rate = 128000; break; + case REG_STATUS_SYNC_176400 : rate = 176400; break; + case REG_STATUS_SYNC_192000 : rate = 192000; break; + default: rate = 0; + } + snd_printdd("External clock is at %d Hz\n", rate); + *sample_rate = rate; + return 0; +} + + +/* + * start or stop playback/capture substream + */ +static int pcxhr_set_stream_state(struct pcxhr_stream *stream) +{ + int err; + struct snd_pcxhr *chip; + struct pcxhr_rmh rmh; + int stream_mask, start; + + if (stream->status == PCXHR_STREAM_STATUS_SCHEDULE_RUN) + start = 1; + else { + if (stream->status != PCXHR_STREAM_STATUS_SCHEDULE_STOP) { + snd_printk(KERN_ERR "ERROR pcxhr_set_stream_state CANNOT be stopped\n"); + return -EINVAL; + } + start = 0; + } + if (!stream->substream) + return -EINVAL; + + stream->timer_abs_periods = 0; + stream->timer_period_frag = 0; /* reset theoretical stream pos */ + stream->timer_buf_periods = 0; + stream->timer_is_synced = 0; + + stream_mask = stream->pipe->is_capture ? 1 : 1<substream->number; + + pcxhr_init_rmh(&rmh, start ? CMD_START_STREAM : CMD_STOP_STREAM); + pcxhr_set_pipe_cmd_params(&rmh, stream->pipe->is_capture, + stream->pipe->first_audio, 0, stream_mask); + + chip = snd_pcm_substream_chip(stream->substream); + + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err) + snd_printk(KERN_ERR "ERROR pcxhr_set_stream_state err=%x;\n", err); + stream->status = start ? PCXHR_STREAM_STATUS_STARTED : PCXHR_STREAM_STATUS_STOPPED; + return err; +} + +#define HEADER_FMT_BASE_LIN 0xfed00000 +#define HEADER_FMT_BASE_FLOAT 0xfad00000 +#define HEADER_FMT_INTEL 0x00008000 +#define HEADER_FMT_24BITS 0x00004000 +#define HEADER_FMT_16BITS 0x00002000 +#define HEADER_FMT_UPTO11 0x00000200 +#define HEADER_FMT_UPTO32 0x00000100 +#define HEADER_FMT_MONO 0x00000080 + +static int pcxhr_set_format(struct pcxhr_stream *stream) +{ + int err, is_capture, sample_rate, stream_num; + struct snd_pcxhr *chip; + struct pcxhr_rmh rmh; + unsigned int header; + + switch (stream->format) { + case SNDRV_PCM_FORMAT_U8: + header = HEADER_FMT_BASE_LIN; + break; + case SNDRV_PCM_FORMAT_S16_LE: + header = HEADER_FMT_BASE_LIN | HEADER_FMT_16BITS | HEADER_FMT_INTEL; + break; + case SNDRV_PCM_FORMAT_S16_BE: + header = HEADER_FMT_BASE_LIN | HEADER_FMT_16BITS; + break; + case SNDRV_PCM_FORMAT_S24_3LE: + header = HEADER_FMT_BASE_LIN | HEADER_FMT_24BITS | HEADER_FMT_INTEL; + break; + case SNDRV_PCM_FORMAT_S24_3BE: + header = HEADER_FMT_BASE_LIN | HEADER_FMT_24BITS; + break; + case SNDRV_PCM_FORMAT_FLOAT_LE: + header = HEADER_FMT_BASE_FLOAT | HEADER_FMT_INTEL; + break; + default: + snd_printk(KERN_ERR "error pcxhr_set_format() : unknown format\n"); + return -EINVAL; + } + chip = snd_pcm_substream_chip(stream->substream); + + sample_rate = chip->mgr->sample_rate; + if (sample_rate <= 32000 && sample_rate !=0) { + if (sample_rate <= 11025) + header |= HEADER_FMT_UPTO11; + else + header |= HEADER_FMT_UPTO32; + } + if (stream->channels == 1) + header |= HEADER_FMT_MONO; + + is_capture = stream->pipe->is_capture; + stream_num = is_capture ? 0 : stream->substream->number; + + pcxhr_init_rmh(&rmh, is_capture ? CMD_FORMAT_STREAM_IN : CMD_FORMAT_STREAM_OUT); + pcxhr_set_pipe_cmd_params(&rmh, is_capture, stream->pipe->first_audio, stream_num, 0); + if (is_capture) + rmh.cmd[0] |= 1<<12; + rmh.cmd[1] = 0; + rmh.cmd[2] = header >> 8; + rmh.cmd[3] = (header & 0xff) << 16; + rmh.cmd_len = 4; + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err) + snd_printk(KERN_ERR "ERROR pcxhr_set_format err=%x;\n", err); + return err; +} + +static int pcxhr_update_r_buffer(struct pcxhr_stream *stream) +{ + int err, is_capture, stream_num; + struct pcxhr_rmh rmh; + struct snd_pcm_substream *subs = stream->substream; + struct snd_pcxhr *chip = snd_pcm_substream_chip(subs); + + is_capture = (subs->stream == SNDRV_PCM_STREAM_CAPTURE); + stream_num = is_capture ? 0 : subs->number; + + snd_printdd("pcxhr_update_r_buffer(pcm%c%d) : addr(%p) bytes(%x) subs(%d)\n", + is_capture ? 'c' : 'p', + chip->chip_idx, (void*)subs->runtime->dma_addr, + subs->runtime->dma_bytes, subs->number); + + pcxhr_init_rmh(&rmh, CMD_UPDATE_R_BUFFERS); + pcxhr_set_pipe_cmd_params(&rmh, is_capture, stream->pipe->first_audio, stream_num, 0); + + snd_assert(subs->runtime->dma_bytes < 0x200000); /* max buffer size is 2 MByte */ + rmh.cmd[1] = subs->runtime->dma_bytes * 8; /* size in bits */ + rmh.cmd[2] = subs->runtime->dma_addr >> 24; /* most significant byte */ + rmh.cmd[2] |= 1<<19; /* this is a circular buffer */ + rmh.cmd[3] = subs->runtime->dma_addr & MASK_DSP_WORD; /* least 3 significant bytes */ + rmh.cmd_len = 4; + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err) + snd_printk(KERN_ERR "ERROR CMD_UPDATE_R_BUFFERS err=%x;\n", err); + return err; +} + + +#if 0 +static int pcxhr_pipe_sample_count(struct pcxhr_stream *stream, snd_pcm_uframes_t *sample_count) +{ + struct pcxhr_rmh rmh; + int err; + pcxhr_t *chip = snd_pcm_substream_chip(stream->substream); + pcxhr_init_rmh(&rmh, CMD_PIPE_SAMPLE_COUNT); + pcxhr_set_pipe_cmd_params(&rmh, stream->pipe->is_capture, 0, 0, + 1<pipe->first_audio); + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err == 0) { + *sample_count = ((snd_pcm_uframes_t)rmh.stat[0]) << 24; + *sample_count += (snd_pcm_uframes_t)rmh.stat[1]; + } + snd_printdd("PIPE_SAMPLE_COUNT = %lx\n", *sample_count); + return err; +} +#endif + +static inline int pcxhr_stream_scheduled_get_pipe(struct pcxhr_stream *stream, + struct pcxhr_pipe **pipe) +{ + if (stream->status == PCXHR_STREAM_STATUS_SCHEDULE_RUN) { + *pipe = stream->pipe; + return 1; + } + return 0; +} + +static void pcxhr_trigger_tasklet(unsigned long arg) +{ + unsigned long flags; + int i, j, err; + struct pcxhr_pipe *pipe; + struct snd_pcxhr *chip; + struct pcxhr_mgr *mgr = (struct pcxhr_mgr*)(arg); + int capture_mask = 0; + int playback_mask = 0; + +#ifdef CONFIG_SND_DEBUG_DETECT + struct timeval my_tv1, my_tv2; + do_gettimeofday(&my_tv1); +#endif + down(&mgr->setup_mutex); + + /* check the pipes concerned and build pipe_array */ + for (i = 0; i < mgr->num_cards; i++) { + chip = mgr->chip[i]; + for (j = 0; j < chip->nb_streams_capt; j++) { + if (pcxhr_stream_scheduled_get_pipe(&chip->capture_stream[j], &pipe)) + capture_mask |= (1 << pipe->first_audio); + } + for (j = 0; j < chip->nb_streams_play; j++) { + if (pcxhr_stream_scheduled_get_pipe(&chip->playback_stream[j], &pipe)) { + playback_mask |= (1 << pipe->first_audio); + break; /* add only once, as all playback streams of + * one chip use the same pipe + */ + } + } + } + if (capture_mask == 0 && playback_mask == 0) { + up(&mgr->setup_mutex); + snd_printk(KERN_ERR "pcxhr_trigger_tasklet : no pipes\n"); + return; + } + + snd_printdd("pcxhr_trigger_tasklet : playback_mask=%x capture_mask=%x\n", + playback_mask, capture_mask); + + /* synchronous stop of all the pipes concerned */ + err = pcxhr_set_pipe_state(mgr, playback_mask, capture_mask, 0); + if (err) { + up(&mgr->setup_mutex); + snd_printk(KERN_ERR "pcxhr_trigger_tasklet : error stop pipes (P%x C%x)\n", + playback_mask, capture_mask); + return; + } + + /* unfortunately the dsp lost format and buffer info with the stop pipe */ + for (i = 0; i < mgr->num_cards; i++) { + struct pcxhr_stream *stream; + chip = mgr->chip[i]; + for (j = 0; j < chip->nb_streams_capt; j++) { + stream = &chip->capture_stream[j]; + if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) { + err = pcxhr_set_format(stream); + err = pcxhr_update_r_buffer(stream); + } + } + for (j = 0; j < chip->nb_streams_play; j++) { + stream = &chip->playback_stream[j]; + if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) { + err = pcxhr_set_format(stream); + err = pcxhr_update_r_buffer(stream); + } + } + } + /* start all the streams */ + for (i = 0; i < mgr->num_cards; i++) { + struct pcxhr_stream *stream; + chip = mgr->chip[i]; + for (j = 0; j < chip->nb_streams_capt; j++) { + stream = &chip->capture_stream[j]; + if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) + err = pcxhr_set_stream_state(stream); + } + for (j = 0; j < chip->nb_streams_play; j++) { + stream = &chip->playback_stream[j]; + if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) + err = pcxhr_set_stream_state(stream); + } + } + + /* synchronous start of all the pipes concerned */ + err = pcxhr_set_pipe_state(mgr, playback_mask, capture_mask, 1); + if (err) { + up(&mgr->setup_mutex); + snd_printk(KERN_ERR "pcxhr_trigger_tasklet : error start pipes (P%x C%x)\n", + playback_mask, capture_mask); + return; + } + + /* put the streams into the running state now (increment pointer by interrupt) */ + spin_lock_irqsave(&mgr->lock, flags); + for ( i =0; i < mgr->num_cards; i++) { + struct pcxhr_stream *stream; + chip = mgr->chip[i]; + for(j = 0; j < chip->nb_streams_capt; j++) { + stream = &chip->capture_stream[j]; + if(stream->status == PCXHR_STREAM_STATUS_STARTED) + stream->status = PCXHR_STREAM_STATUS_RUNNING; + } + for (j = 0; j < chip->nb_streams_play; j++) { + stream = &chip->playback_stream[j]; + if (stream->status == PCXHR_STREAM_STATUS_STARTED) { + /* playback will already have advanced ! */ + stream->timer_period_frag += PCXHR_GRANULARITY; + stream->status = PCXHR_STREAM_STATUS_RUNNING; + } + } + } + spin_unlock_irqrestore(&mgr->lock, flags); + + up(&mgr->setup_mutex); + +#ifdef CONFIG_SND_DEBUG_DETECT + do_gettimeofday(&my_tv2); + snd_printdd("***TRIGGER TASKLET*** TIME = %ld (err = %x)\n", + my_tv2.tv_usec - my_tv1.tv_usec, err); +#endif +} + + +/* + * trigger callback + */ +static int pcxhr_trigger(struct snd_pcm_substream *subs, int cmd) +{ + struct pcxhr_stream *stream; + struct list_head *pos; + struct snd_pcm_substream *s; + int i; + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + snd_printdd("SNDRV_PCM_TRIGGER_START\n"); + i = 0; + snd_pcm_group_for_each(pos, subs) { + s = snd_pcm_group_substream_entry(pos); + stream = s->runtime->private_data; + stream->status = PCXHR_STREAM_STATUS_SCHEDULE_RUN; + snd_pcm_trigger_done(s, subs); + i++; + } + if (i==1) { + snd_printdd("Only one Substream %c %d\n", + stream->pipe->is_capture ? 'C' : 'P', + stream->pipe->first_audio); + if (pcxhr_set_format(stream)) + return -EINVAL; + if (pcxhr_update_r_buffer(stream)) + return -EINVAL; + + if (pcxhr_set_stream_state(stream)) + return -EINVAL; + stream->status = PCXHR_STREAM_STATUS_RUNNING; + } else { + struct snd_pcxhr *chip = snd_pcm_substream_chip(subs); + tasklet_hi_schedule(&chip->mgr->trigger_taskq); + } + break; + case SNDRV_PCM_TRIGGER_STOP: + snd_printdd("SNDRV_PCM_TRIGGER_STOP\n"); + snd_pcm_group_for_each(pos, subs) { + s = snd_pcm_group_substream_entry(pos); + stream = s->runtime->private_data; + stream->status = PCXHR_STREAM_STATUS_SCHEDULE_STOP; + if (pcxhr_set_stream_state(stream)) + return -EINVAL; + snd_pcm_trigger_done(s, subs); + } + break; + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + /* TODO */ + default: + return -EINVAL; + } + return 0; +} + + +static int pcxhr_hardware_timer(struct pcxhr_mgr *mgr, int start) +{ + struct pcxhr_rmh rmh; + int err; + + pcxhr_init_rmh(&rmh, CMD_SET_TIMER_INTERRUPT); + if (start) { + mgr->dsp_time_last = PCXHR_DSP_TIME_INVALID; /* last dsp time invalid */ + rmh.cmd[0] |= PCXHR_GRANULARITY; + } + err = pcxhr_send_msg(mgr, &rmh); + if (err < 0) + snd_printk(KERN_ERR "error pcxhr_hardware_timer err(%x)\n", err); + return err; +} + +/* + * prepare callback for all pcms + */ +static int pcxhr_prepare(struct snd_pcm_substream *subs) +{ + struct snd_pcxhr *chip = snd_pcm_substream_chip(subs); + struct pcxhr_mgr *mgr = chip->mgr; + /* + struct pcxhr_stream *stream = (pcxhr_stream_t*)subs->runtime->private_data; + */ + int err = 0; + + snd_printdd("pcxhr_prepare : period_size(%lx) periods(%x) buffer_size(%lx)\n", + subs->runtime->period_size, subs->runtime->periods, + subs->runtime->buffer_size); + + /* + if(subs->runtime->period_size <= PCXHR_GRANULARITY) { + snd_printk(KERN_ERR "pcxhr_prepare : error period_size too small (%x)\n", + (unsigned int)subs->runtime->period_size); + return -EINVAL; + } + */ + + down(&mgr->setup_mutex); + + do { + /* if the stream was stopped before, format and buffer were reset */ + /* + if(stream->status == PCXHR_STREAM_STATUS_STOPPED) { + err = pcxhr_set_format(stream); + if(err) break; + err = pcxhr_update_r_buffer(stream); + if(err) break; + } + */ + + /* only the first stream can choose the sample rate */ + /* the further opened streams will be limited to its frequency (see open) */ + /* set the clock only once (first stream) */ + if (mgr->sample_rate == 0) { + err = pcxhr_set_clock(mgr, subs->runtime->rate); + if (err) + break; + mgr->sample_rate = subs->runtime->rate; + + err = pcxhr_hardware_timer(mgr, 1); /* start the DSP-timer */ + } + } while(0); /* do only once (so we can use break instead of goto) */ + + up(&mgr->setup_mutex); + + return err; +} + + +/* + * HW_PARAMS callback for all pcms + */ +static int pcxhr_hw_params(struct snd_pcm_substream *subs, + struct snd_pcm_hw_params *hw) +{ + struct snd_pcxhr *chip = snd_pcm_substream_chip(subs); + struct pcxhr_mgr *mgr = chip->mgr; + struct pcxhr_stream *stream = subs->runtime->private_data; + snd_pcm_format_t format; + int err; + int channels; + + /* set up channels */ + channels = params_channels(hw); + + /* set up format for the stream */ + format = params_format(hw); + + down(&mgr->setup_mutex); + + stream->channels = channels; + stream->format = format; + + /* set the format to the board */ + /* + err = pcxhr_set_format(stream); + if(err) { + up(&mgr->setup_mutex); + return err; + } + */ + /* allocate buffer */ + err = snd_pcm_lib_malloc_pages(subs, params_buffer_bytes(hw)); + + /* + if (err > 0) { + err = pcxhr_update_r_buffer(stream); + } + */ + up(&mgr->setup_mutex); + + return err; +} + +static int pcxhr_hw_free(struct snd_pcm_substream *subs) +{ + snd_pcm_lib_free_pages(subs); + return 0; +} + + +/* + * CONFIGURATION SPACE for all pcms, mono pcm must update channels_max + */ +static struct snd_pcm_hardware pcxhr_caps = +{ + .info = ( SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START | + 0 /*SNDRV_PCM_INFO_PAUSE*/), + .formats = ( SNDRV_PCM_FMTBIT_U8 | + SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE | + SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE | + SNDRV_PCM_FMTBIT_FLOAT_LE ), + .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_192000, + .rate_min = 8000, + .rate_max = 192000, + .channels_min = 1, + .channels_max = 2, + .buffer_bytes_max = (32*1024), + /* 1 byte == 1 frame U8 mono (PCXHR_GRANULARITY is frames!) */ + .period_bytes_min = (2*PCXHR_GRANULARITY), + .period_bytes_max = (16*1024), + .periods_min = 2, + .periods_max = (32*1024/PCXHR_GRANULARITY), +}; + + +static int pcxhr_open(struct snd_pcm_substream *subs) +{ + struct snd_pcxhr *chip = snd_pcm_substream_chip(subs); + struct pcxhr_mgr *mgr = chip->mgr; + struct snd_pcm_runtime *runtime = subs->runtime; + struct pcxhr_stream *stream; + int is_capture; + + down(&mgr->setup_mutex); + + /* copy the struct snd_pcm_hardware struct */ + runtime->hw = pcxhr_caps; + + if( subs->stream == SNDRV_PCM_STREAM_PLAYBACK ) { + snd_printdd("pcxhr_open playback chip%d subs%d\n", + chip->chip_idx, subs->number); + is_capture = 0; + stream = &chip->playback_stream[subs->number]; + } else { + snd_printdd("pcxhr_open capture chip%d subs%d\n", + chip->chip_idx, subs->number); + is_capture = 1; + if (mgr->mono_capture) + runtime->hw.channels_max = 1; + else + runtime->hw.channels_min = 2; + stream = &chip->capture_stream[subs->number]; + } + if (stream->status != PCXHR_STREAM_STATUS_FREE){ + /* streams in use */ + snd_printk(KERN_ERR "pcxhr_open chip%d subs%d in use\n", + chip->chip_idx, subs->number); + up(&mgr->setup_mutex); + return -EBUSY; + } + + /* if a sample rate is already used or fixed by external clock, + * the stream cannot change + */ + if (mgr->sample_rate) + runtime->hw.rate_min = runtime->hw.rate_max = mgr->sample_rate; + else { + if (mgr->use_clock_type != PCXHR_CLOCK_TYPE_INTERNAL) { + int external_rate; + if (pcxhr_get_external_clock(mgr, mgr->use_clock_type, + &external_rate) || + external_rate == 0) { + /* cannot detect the external clock rate */ + up(&mgr->setup_mutex); + return -EBUSY; + } + runtime->hw.rate_min = runtime->hw.rate_max = external_rate; + } + } + + stream->status = PCXHR_STREAM_STATUS_OPEN; + stream->substream = subs; + stream->channels = 0; /* not configured yet */ + + runtime->private_data = stream; + + snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 4); + snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 4); + + mgr->ref_count_rate++; + + up(&mgr->setup_mutex); + return 0; +} + + +static int pcxhr_close(struct snd_pcm_substream *subs) +{ + struct snd_pcxhr *chip = snd_pcm_substream_chip(subs); + struct pcxhr_mgr *mgr = chip->mgr; + struct pcxhr_stream *stream = subs->runtime->private_data; + + down(&mgr->setup_mutex); + + snd_printdd("pcxhr_close chip%d subs%d\n", chip->chip_idx, subs->number); + + /* sample rate released */ + if (--mgr->ref_count_rate == 0) { + mgr->sample_rate = 0; /* the sample rate is no more locked */ + pcxhr_hardware_timer(mgr, 0); /* stop the DSP-timer */ + } + + stream->status = PCXHR_STREAM_STATUS_FREE; + stream->substream = NULL; + + up(&mgr->setup_mutex); + + return 0; +} + + +static snd_pcm_uframes_t pcxhr_stream_pointer(struct snd_pcm_substream *subs) +{ + unsigned long flags; + u_int32_t timer_period_frag; + int timer_buf_periods; + struct snd_pcxhr *chip = snd_pcm_substream_chip(subs); + struct snd_pcm_runtime *runtime = subs->runtime; + struct pcxhr_stream *stream = runtime->private_data; + + spin_lock_irqsave(&chip->mgr->lock, flags); + + /* get the period fragment and the nb of periods in the buffer */ + timer_period_frag = stream->timer_period_frag; + timer_buf_periods = stream->timer_buf_periods; + + spin_unlock_irqrestore(&chip->mgr->lock, flags); + + return (snd_pcm_uframes_t)((timer_buf_periods * runtime->period_size) + + timer_period_frag); +} + + +static struct snd_pcm_ops pcxhr_ops = { + .open = pcxhr_open, + .close = pcxhr_close, + .ioctl = snd_pcm_lib_ioctl, + .prepare = pcxhr_prepare, + .hw_params = pcxhr_hw_params, + .hw_free = pcxhr_hw_free, + .trigger = pcxhr_trigger, + .pointer = pcxhr_stream_pointer, +}; + +/* + */ +int pcxhr_create_pcm(struct snd_pcxhr *chip) +{ + int err; + struct snd_pcm *pcm; + char name[32]; + + sprintf(name, "pcxhr %d", chip->chip_idx); + if ((err = snd_pcm_new(chip->card, name, 0, + chip->nb_streams_play, + chip->nb_streams_capt, &pcm)) < 0) { + snd_printk(KERN_ERR "cannot create pcm %s\n", name); + return err; + } + pcm->private_data = chip; + + if (chip->nb_streams_play) + snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &pcxhr_ops); + if (chip->nb_streams_capt) + snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &pcxhr_ops); + + pcm->info_flags = 0; + strcpy(pcm->name, name); + + snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, + snd_dma_pci_data(chip->mgr->pci), + 32*1024, 32*1024); + chip->pcm = pcm; + return 0; +} + +static int pcxhr_chip_free(struct snd_pcxhr *chip) +{ + kfree(chip); + return 0; +} + +static int pcxhr_chip_dev_free(struct snd_device *device) +{ + struct snd_pcxhr *chip = device->device_data; + return pcxhr_chip_free(chip); +} + + +/* + */ +static int __devinit pcxhr_create(struct pcxhr_mgr *mgr, struct snd_card *card, int idx) +{ + int err; + struct snd_pcxhr *chip; + static struct snd_device_ops ops = { + .dev_free = pcxhr_chip_dev_free, + }; + + mgr->chip[idx] = chip = kzalloc(sizeof(*chip), GFP_KERNEL); + if (! chip) { + snd_printk(KERN_ERR "cannot allocate chip\n"); + return -ENOMEM; + } + + chip->card = card; + chip->chip_idx = idx; + chip->mgr = mgr; + + if (idx < mgr->playback_chips) + /* stereo or mono streams */ + chip->nb_streams_play = PCXHR_PLAYBACK_STREAMS; + + if (idx < mgr->capture_chips) { + if (mgr->mono_capture) + chip->nb_streams_capt = 2; /* 2 mono streams (left+right) */ + else + chip->nb_streams_capt = 1; /* or 1 stereo stream */ + } + + if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { + pcxhr_chip_free(chip); + return err; + } + + snd_card_set_dev(card, &mgr->pci->dev); + + return 0; +} + +/* proc interface */ +static void pcxhr_proc_info(struct snd_info_entry *entry, struct snd_info_buffer *buffer) +{ + struct snd_pcxhr *chip = entry->private_data; + struct pcxhr_mgr *mgr = chip->mgr; + + snd_iprintf(buffer, "\n%s\n", mgr->longname); + + /* stats available when embedded DSP is running */ + if (mgr->dsp_loaded & (1 << PCXHR_FIRMWARE_DSP_MAIN_INDEX)) { + struct pcxhr_rmh rmh; + short ver_maj = (mgr->dsp_version >> 16) & 0xff; + short ver_min = (mgr->dsp_version >> 8) & 0xff; + short ver_build = mgr->dsp_version & 0xff; + snd_iprintf(buffer, "module version %s\n", PCXHR_DRIVER_VERSION_STRING); + snd_iprintf(buffer, "dsp version %d.%d.%d\n", ver_maj, ver_min, ver_build); + if (mgr->board_has_analog) + snd_iprintf(buffer, "analog io available\n"); + else + snd_iprintf(buffer, "digital only board\n"); + + /* calc cpu load of the dsp */ + pcxhr_init_rmh(&rmh, CMD_GET_DSP_RESOURCES); + if( ! pcxhr_send_msg(mgr, &rmh) ) { + int cur = rmh.stat[0]; + int ref = rmh.stat[1]; + if (ref > 0) { + if (mgr->sample_rate_real != 0 && + mgr->sample_rate_real != 48000) { + ref = (ref * 48000) / mgr->sample_rate_real; + if (mgr->sample_rate_real >= PCXHR_IRQ_TIMER_FREQ) + ref *= 2; + } + cur = 100 - (100 * cur) / ref; + snd_iprintf(buffer, "cpu load %d%%\n", cur); + snd_iprintf(buffer, "buffer pool %d/%d kWords\n", + rmh.stat[2], rmh.stat[3]); + } + } + snd_iprintf(buffer, "dma granularity : %d\n", PCXHR_GRANULARITY); + snd_iprintf(buffer, "dsp time errors : %d\n", mgr->dsp_time_err); + snd_iprintf(buffer, "dsp async pipe xrun errors : %d\n", + mgr->async_err_pipe_xrun); + snd_iprintf(buffer, "dsp async stream xrun errors : %d\n", + mgr->async_err_stream_xrun); + snd_iprintf(buffer, "dsp async last other error : %x\n", + mgr->async_err_other_last); + /* debug zone dsp */ + rmh.cmd[0] = 0x4200 + PCXHR_SIZE_MAX_STATUS; + rmh.cmd_len = 1; + rmh.stat_len = PCXHR_SIZE_MAX_STATUS; + rmh.dsp_stat = 0; + rmh.cmd_idx = CMD_LAST_INDEX; + if( ! pcxhr_send_msg(mgr, &rmh) ) { + int i; + for (i = 0; i < rmh.stat_len; i++) + snd_iprintf(buffer, "debug[%02d] = %06x\n", i, rmh.stat[i]); + } + } else + snd_iprintf(buffer, "no firmware loaded\n"); + snd_iprintf(buffer, "\n"); +} +static void pcxhr_proc_sync(struct snd_info_entry *entry, struct snd_info_buffer *buffer) +{ + struct snd_pcxhr *chip = entry->private_data; + struct pcxhr_mgr *mgr = chip->mgr; + static char *texts[7] = { + "Internal", "Word", "AES Sync", "AES 1", "AES 2", "AES 3", "AES 4" + }; + + snd_iprintf(buffer, "\n%s\n", mgr->longname); + snd_iprintf(buffer, "Current Sample Clock\t: %s\n", texts[mgr->cur_clock_type]); + snd_iprintf(buffer, "Current Sample Rate\t= %d\n", mgr->sample_rate_real); + + /* commands available when embedded DSP is running */ + if (mgr->dsp_loaded & (1 << PCXHR_FIRMWARE_DSP_MAIN_INDEX)) { + int i, err, sample_rate; + for (i = PCXHR_CLOCK_TYPE_WORD_CLOCK; i< (3 + mgr->capture_chips); i++) { + err = pcxhr_get_external_clock(mgr, i, &sample_rate); + if (err) + break; + snd_iprintf(buffer, "%s Clock\t\t= %d\n", texts[i], sample_rate); + } + } else + snd_iprintf(buffer, "no firmware loaded\n"); + snd_iprintf(buffer, "\n"); +} + +static void __devinit pcxhr_proc_init(struct snd_pcxhr *chip) +{ + struct snd_info_entry *entry; + + if (! snd_card_proc_new(chip->card, "info", &entry)) + snd_info_set_text_ops(entry, chip, 1024, pcxhr_proc_info); + if (! snd_card_proc_new(chip->card, "sync", &entry)) + snd_info_set_text_ops(entry, chip, 1024, pcxhr_proc_sync); +} +/* end of proc interface */ + +/* + * release all the cards assigned to a manager instance + */ +static int pcxhr_free(struct pcxhr_mgr *mgr) +{ + unsigned int i; + + for (i = 0; i < mgr->num_cards; i++) { + if (mgr->chip[i]) + snd_card_free(mgr->chip[i]->card); + } + + /* reset board if some firmware was loaded */ + if(mgr->dsp_loaded) { + pcxhr_reset_board(mgr); + snd_printdd("reset pcxhr !\n"); + } + + /* release irq */ + if (mgr->irq >= 0) + free_irq(mgr->irq, mgr); + + pci_release_regions(mgr->pci); + + /* free hostport purgebuffer */ + if (mgr->hostport.area) { + snd_dma_free_pages(&mgr->hostport); + mgr->hostport.area = NULL; + } + + kfree(mgr->prmh); + + pci_disable_device(mgr->pci); + kfree(mgr); + return 0; +} + +/* + * probe function - creates the card manager + */ +static int __devinit pcxhr_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) +{ + static int dev; + struct pcxhr_mgr *mgr; + unsigned int i; + int err; + size_t size; + char *card_name; + + if (dev >= SNDRV_CARDS) + return -ENODEV; + if (! enable[dev]) { + dev++; + return -ENOENT; + } + + /* enable PCI device */ + if ((err = pci_enable_device(pci)) < 0) + return err; + pci_set_master(pci); + + /* check if we can restrict PCI DMA transfers to 32 bits */ + if (pci_set_dma_mask(pci, 0xffffffff) < 0) { + snd_printk(KERN_ERR "architecture does not support 32bit PCI busmaster DMA\n"); + pci_disable_device(pci); + return -ENXIO; + } + + /* alloc card manager */ + mgr = kzalloc(sizeof(*mgr), GFP_KERNEL); + if (! mgr) { + pci_disable_device(pci); + return -ENOMEM; + } + + snd_assert(pci_id->driver_data < PCI_ID_LAST, return -ENODEV); + card_name = pcxhr_board_params[pci_id->driver_data].board_name; + mgr->playback_chips = pcxhr_board_params[pci_id->driver_data].playback_chips; + mgr->capture_chips = pcxhr_board_params[pci_id->driver_data].capture_chips; + mgr->firmware_num = pcxhr_board_params[pci_id->driver_data].firmware_num; + mgr->mono_capture = mono[dev]; + + /* resource assignment */ + if ((err = pci_request_regions(pci, card_name)) < 0) { + kfree(mgr); + pci_disable_device(pci); + return err; + } + for (i = 0; i < 3; i++) + mgr->port[i] = pci_resource_start(pci, i); + + mgr->pci = pci; + mgr->irq = -1; + + if (request_irq(pci->irq, pcxhr_interrupt, SA_INTERRUPT|SA_SHIRQ, + card_name, mgr)) { + snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); + pcxhr_free(mgr); + return -EBUSY; + } + mgr->irq = pci->irq; + + sprintf(mgr->shortname, "Digigram %s", card_name); + sprintf(mgr->longname, "%s at 0x%lx & 0x%lx, 0x%lx irq %i", mgr->shortname, + mgr->port[0], mgr->port[1], mgr->port[2], mgr->irq); + + /* ISR spinlock */ + spin_lock_init(&mgr->lock); + spin_lock_init(&mgr->msg_lock); + + /* init setup mutex*/ + init_MUTEX(&mgr->setup_mutex); + + /* init taslket */ + tasklet_init(&mgr->msg_taskq, pcxhr_msg_tasklet, (unsigned long) mgr); + tasklet_init(&mgr->trigger_taskq, pcxhr_trigger_tasklet, (unsigned long) mgr); + mgr->prmh = kmalloc(sizeof(*mgr->prmh) + + sizeof(u32) * (PCXHR_SIZE_MAX_LONG_STATUS - PCXHR_SIZE_MAX_STATUS), + GFP_KERNEL); + if (! mgr->prmh) { + pcxhr_free(mgr); + return -ENOMEM; + } + + for (i=0; i < PCXHR_MAX_CARDS; i++) { + struct snd_card *card; + char tmpid[16]; + int idx; + + if (i >= max(mgr->playback_chips, mgr->capture_chips)) + break; + mgr->num_cards++; + + if (index[dev] < 0) + idx = index[dev]; + else + idx = index[dev] + i; + + snprintf(tmpid, sizeof(tmpid), "%s-%d", id[dev] ? id[dev] : card_name, i); + card = snd_card_new(idx, tmpid, THIS_MODULE, 0); + + if (! card) { + snd_printk(KERN_ERR "cannot allocate the card %d\n", i); + pcxhr_free(mgr); + return -ENOMEM; + } + + strcpy(card->driver, DRIVER_NAME); + sprintf(card->shortname, "%s [PCM #%d]", mgr->shortname, i); + sprintf(card->longname, "%s [PCM #%d]", mgr->longname, i); + + if ((err = pcxhr_create(mgr, card, i)) < 0) { + pcxhr_free(mgr); + return err; + } + + if (i == 0) + /* init proc interface only for chip0 */ + pcxhr_proc_init(mgr->chip[i]); + + if ((err = snd_card_register(card)) < 0) { + pcxhr_free(mgr); + return err; + } + } + + /* create hostport purgebuffer */ + size = PAGE_ALIGN(sizeof(struct pcxhr_hostport)); + if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), + size, &mgr->hostport) < 0) { + pcxhr_free(mgr); + return -ENOMEM; + } + /* init purgebuffer */ + memset(mgr->hostport.area, 0, size); + + /* create a DSP loader */ + err = pcxhr_setup_firmware(mgr); + if (err < 0) { + pcxhr_free(mgr); + return err; + } + + pci_set_drvdata(pci, mgr); + dev++; + return 0; +} + +static void __devexit pcxhr_remove(struct pci_dev *pci) +{ + pcxhr_free(pci_get_drvdata(pci)); + pci_set_drvdata(pci, NULL); +} + +static struct pci_driver driver = { + .name = "Digigram pcxhr", + .id_table = pcxhr_ids, + .probe = pcxhr_probe, + .remove = __devexit_p(pcxhr_remove), +}; + +static int __init pcxhr_module_init(void) +{ + return pci_register_driver(&driver); +} + +static void __exit pcxhr_module_exit(void) +{ + pci_unregister_driver(&driver); +} + +module_init(pcxhr_module_init) +module_exit(pcxhr_module_exit) diff --git a/sound/pci/pcxhr/pcxhr.h b/sound/pci/pcxhr/pcxhr.h new file mode 100644 index 00000000000..049f2b3f286 --- /dev/null +++ b/sound/pci/pcxhr/pcxhr.h @@ -0,0 +1,188 @@ +/* + * Driver for Digigram pcxhr soundcards + * + * main header file + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __SOUND_PCXHR_H +#define __SOUND_PCXHR_H + +#include +#include + +#define PCXHR_DRIVER_VERSION 0x000804 /* 0.8.4 */ +#define PCXHR_DRIVER_VERSION_STRING "0.8.4" /* 0.8.4 */ + + +#define PCXHR_MAX_CARDS 6 +#define PCXHR_PLAYBACK_STREAMS 4 + +#define PCXHR_GRANULARITY 96 /* transfer granularity (should be min 96 and multiple of 48) */ +#define PCXHR_GRANULARITY_MIN 96 /* transfer granularity of pipes and the dsp time (MBOX4) */ + +struct snd_pcxhr; +struct pcxhr_mgr; + +struct pcxhr_stream; +struct pcxhr_pipe; + +enum pcxhr_clock_type { + PCXHR_CLOCK_TYPE_INTERNAL = 0, + PCXHR_CLOCK_TYPE_WORD_CLOCK, + PCXHR_CLOCK_TYPE_AES_SYNC, + PCXHR_CLOCK_TYPE_AES_1, + PCXHR_CLOCK_TYPE_AES_2, + PCXHR_CLOCK_TYPE_AES_3, + PCXHR_CLOCK_TYPE_AES_4, +}; + +struct pcxhr_mgr { + unsigned int num_cards; + struct snd_pcxhr *chip[PCXHR_MAX_CARDS]; + + struct pci_dev *pci; + + int irq; + + /* card access with 1 mem bar and 2 io bar's */ + unsigned long port[3]; + + /* share the name */ + char shortname[32]; /* short name of this soundcard */ + char longname[96]; /* name of this soundcard */ + + /* message tasklet */ + struct tasklet_struct msg_taskq; + struct pcxhr_rmh *prmh; + /* trigger tasklet */ + struct tasklet_struct trigger_taskq; + + spinlock_t lock; /* interrupt spinlock */ + spinlock_t msg_lock; /* message spinlock */ + + struct semaphore setup_mutex; /* mutex used in hw_params, open and close */ + struct semaphore mixer_mutex; /* mutex for mixer */ + + /* hardware interface */ + unsigned int dsp_loaded; /* bit flags of loaded dsp indices */ + unsigned int dsp_version; /* read from embedded once firmware is loaded */ + int board_has_analog; /* if 0 the board is digital only */ + int mono_capture; /* if 1 the board does mono capture */ + int playback_chips; /* 4 or 6 */ + int capture_chips; /* 4 or 1 */ + int firmware_num; /* 41 or 42 */ + + struct snd_dma_buffer hostport; + + enum pcxhr_clock_type use_clock_type; /* clock type selected by mixer */ + enum pcxhr_clock_type cur_clock_type; /* current clock type synced */ + int sample_rate; + int ref_count_rate; + int timer_toggle; /* timer interrupt toggles between the two values 0x200 and 0x300 */ + int dsp_time_last; /* the last dsp time (read by interrupt) */ + int dsp_time_err; /* dsp time errors */ + unsigned int src_it_dsp; /* dsp interrupt source */ + unsigned int io_num_reg_cont; /* backup of IO_NUM_REG_CONT */ + unsigned int codec_speed; /* speed mode of the codecs */ + unsigned int sample_rate_real; /* current real sample rate */ + int last_reg_stat; + int async_err_stream_xrun; + int async_err_pipe_xrun; + int async_err_other_last; +}; + + +enum pcxhr_stream_status { + PCXHR_STREAM_STATUS_FREE, + PCXHR_STREAM_STATUS_OPEN, + PCXHR_STREAM_STATUS_SCHEDULE_RUN, + PCXHR_STREAM_STATUS_STARTED, + PCXHR_STREAM_STATUS_RUNNING, + PCXHR_STREAM_STATUS_SCHEDULE_STOP, + PCXHR_STREAM_STATUS_STOPPED, + PCXHR_STREAM_STATUS_PAUSED +}; + +struct pcxhr_stream { + struct snd_pcm_substream *substream; + snd_pcm_format_t format; + struct pcxhr_pipe *pipe; + + enum pcxhr_stream_status status; /* free, open, running, draining, pause */ + + u_int64_t timer_abs_periods; /* timer: samples elapsed since TRIGGER_START (multiple of period_size) */ + u_int32_t timer_period_frag; /* timer: samples elapsed since last call to snd_pcm_period_elapsed (0..period_size) */ + u_int32_t timer_buf_periods; /* nb of periods in the buffer that have already elapsed */ + int timer_is_synced; /* if(0) : timer needs to be resynced with real hardware pointer */ + + int channels; +}; + + +enum pcxhr_pipe_status { + PCXHR_PIPE_UNDEFINED, + PCXHR_PIPE_DEFINED +}; + +struct pcxhr_pipe { + enum pcxhr_pipe_status status; + int is_capture; /* this is a capture pipe */ + int first_audio; /* first audio num */ +}; + + +struct snd_pcxhr { + struct snd_card *card; + struct pcxhr_mgr *mgr; + int chip_idx; /* zero based */ + + struct snd_pcm *pcm; /* PCM */ + + struct pcxhr_pipe playback_pipe; /* 1 stereo pipe only */ + struct pcxhr_pipe capture_pipe[2]; /* 1 stereo pipe or 2 mono pipes */ + + struct pcxhr_stream playback_stream[PCXHR_PLAYBACK_STREAMS]; + struct pcxhr_stream capture_stream[2]; /* 1 stereo stream or 2 mono streams */ + int nb_streams_play; + int nb_streams_capt; + + int analog_playback_active[2]; /* Mixer : Master Playback active (!mute) */ + int analog_playback_volume[2]; /* Mixer : Master Playback Volume */ + int analog_capture_volume[2]; /* Mixer : Master Capture Volume */ + int digital_playback_active[PCXHR_PLAYBACK_STREAMS][2]; /* Mixer : Digital Playback Active [streams][stereo]*/ + int digital_playback_volume[PCXHR_PLAYBACK_STREAMS][2]; /* Mixer : Digital Playback Volume [streams][stereo]*/ + int digital_capture_volume[2]; /* Mixer : Digital Capture Volume [stereo] */ + int monitoring_active[2]; /* Mixer : Monitoring Active */ + int monitoring_volume[2]; /* Mixer : Monitoring Volume */ + int audio_capture_source; /* Mixer : Audio Capture Source */ + unsigned char aes_bits[5]; /* Mixer : IEC958_AES bits */ +}; + +struct pcxhr_hostport +{ + char purgebuffer[6]; + char reserved[2]; +}; + +/* exported */ +int pcxhr_create_pcm(struct snd_pcxhr *chip); +int pcxhr_set_clock(struct pcxhr_mgr *mgr, unsigned int rate); +int pcxhr_get_external_clock(struct pcxhr_mgr *mgr, enum pcxhr_clock_type clock_type, int *sample_rate); + +#endif /* __SOUND_PCXHR_H */ diff --git a/sound/pci/pcxhr/pcxhr_core.c b/sound/pci/pcxhr/pcxhr_core.c new file mode 100644 index 00000000000..fa0d27e2c79 --- /dev/null +++ b/sound/pci/pcxhr/pcxhr_core.c @@ -0,0 +1,1214 @@ +/* + * Driver for Digigram pcxhr compatible soundcards + * + * low level interface with interrupt and message handling implementation + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include "pcxhr.h" +#include "pcxhr_mixer.h" +#include "pcxhr_hwdep.h" +#include "pcxhr_core.h" + + +/* registers used on the PLX (port 1) */ +#define PCXHR_PLX_OFFSET_MIN 0x40 +#define PCXHR_PLX_MBOX0 0x40 +#define PCXHR_PLX_MBOX1 0x44 +#define PCXHR_PLX_MBOX2 0x48 +#define PCXHR_PLX_MBOX3 0x4C +#define PCXHR_PLX_MBOX4 0x50 +#define PCXHR_PLX_MBOX5 0x54 +#define PCXHR_PLX_MBOX6 0x58 +#define PCXHR_PLX_MBOX7 0x5C +#define PCXHR_PLX_L2PCIDB 0x64 +#define PCXHR_PLX_IRQCS 0x68 +#define PCXHR_PLX_CHIPSC 0x6C + +/* registers used on the DSP (port 2) */ +#define PCXHR_DSP_ICR 0x00 +#define PCXHR_DSP_CVR 0x04 +#define PCXHR_DSP_ISR 0x08 +#define PCXHR_DSP_IVR 0x0C +#define PCXHR_DSP_RXH 0x14 +#define PCXHR_DSP_TXH 0x14 +#define PCXHR_DSP_RXM 0x18 +#define PCXHR_DSP_TXM 0x18 +#define PCXHR_DSP_RXL 0x1C +#define PCXHR_DSP_TXL 0x1C +#define PCXHR_DSP_RESET 0x20 +#define PCXHR_DSP_OFFSET_MAX 0x20 + +/* access to the card */ +#define PCXHR_PLX 1 +#define PCXHR_DSP 2 + +#if (PCXHR_DSP_OFFSET_MAX > PCXHR_PLX_OFFSET_MIN) +#undef PCXHR_REG_TO_PORT(x) +#else +#define PCXHR_REG_TO_PORT(x) ((x)>PCXHR_DSP_OFFSET_MAX ? PCXHR_PLX : PCXHR_DSP) +#endif +#define PCXHR_INPB(mgr,x) inb((mgr)->port[PCXHR_REG_TO_PORT(x)] + (x)) +#define PCXHR_INPL(mgr,x) inl((mgr)->port[PCXHR_REG_TO_PORT(x)] + (x)) +#define PCXHR_OUTPB(mgr,x,data) outb((data), (mgr)->port[PCXHR_REG_TO_PORT(x)] + (x)) +#define PCXHR_OUTPL(mgr,x,data) outl((data), (mgr)->port[PCXHR_REG_TO_PORT(x)] + (x)) +/* attention : access the PCXHR_DSP_* registers with inb and outb only ! */ + +/* params used with PCXHR_PLX_MBOX0 */ +#define PCXHR_MBOX0_HF5 (1 << 0) +#define PCXHR_MBOX0_HF4 (1 << 1) +#define PCXHR_MBOX0_BOOT_HERE (1 << 23) +/* params used with PCXHR_PLX_IRQCS */ +#define PCXHR_IRQCS_ENABLE_PCIIRQ (1 << 8) +#define PCXHR_IRQCS_ENABLE_PCIDB (1 << 9) +#define PCXHR_IRQCS_ACTIVE_PCIDB (1 << 13) +/* params used with PCXHR_PLX_CHIPSC */ +#define PCXHR_CHIPSC_INIT_VALUE 0x100D767E +#define PCXHR_CHIPSC_RESET_XILINX (1 << 16) +#define PCXHR_CHIPSC_GPI_USERI (1 << 17) +#define PCXHR_CHIPSC_DATA_CLK (1 << 24) +#define PCXHR_CHIPSC_DATA_IN (1 << 26) + +/* params used with PCXHR_DSP_ICR */ +#define PCXHR_ICR_HI08_RREQ 0x01 +#define PCXHR_ICR_HI08_TREQ 0x02 +#define PCXHR_ICR_HI08_HDRQ 0x04 +#define PCXHR_ICR_HI08_HF0 0x08 +#define PCXHR_ICR_HI08_HF1 0x10 +#define PCXHR_ICR_HI08_HLEND 0x20 +#define PCXHR_ICR_HI08_INIT 0x80 +/* params used with PCXHR_DSP_CVR */ +#define PCXHR_CVR_HI08_HC 0x80 +/* params used with PCXHR_DSP_ISR */ +#define PCXHR_ISR_HI08_RXDF 0x01 +#define PCXHR_ISR_HI08_TXDE 0x02 +#define PCXHR_ISR_HI08_TRDY 0x04 +#define PCXHR_ISR_HI08_ERR 0x08 +#define PCXHR_ISR_HI08_CHK 0x10 +#define PCXHR_ISR_HI08_HREQ 0x80 + + +/* constants used for delay in msec */ +#define PCXHR_WAIT_DEFAULT 2 +#define PCXHR_WAIT_IT 25 +#define PCXHR_WAIT_IT_EXTRA 65 + +/* + * pcxhr_check_reg_bit - wait for the specified bit is set/reset on a register + * @reg: register to check + * @mask: bit mask + * @bit: resultant bit to be checked + * @time: time-out of loop in msec + * + * returns zero if a bit matches, or a negative error code. + */ +static int pcxhr_check_reg_bit(struct pcxhr_mgr *mgr, unsigned int reg, + unsigned char mask, unsigned char bit, int time, + unsigned char* read) +{ + int i = 0; + unsigned long end_time = jiffies + (time * HZ + 999) / 1000; + do { + *read = PCXHR_INPB(mgr, reg); + if ((*read & mask) == bit) { + if (i > 100) + snd_printdd("ATTENTION! check_reg(%x) loopcount=%d\n", + reg, i); + return 0; + } + i++; + } while (time_after_eq(end_time, jiffies)); + snd_printk(KERN_ERR "pcxhr_check_reg_bit: timeout, reg=%x, mask=0x%x, val=0x%x\n", + reg, mask, *read); + return -EIO; +} + +/* constants used with pcxhr_check_reg_bit() */ +#define PCXHR_TIMEOUT_DSP 200 + + +#define PCXHR_MASK_EXTRA_INFO 0x0000FE +#define PCXHR_MASK_IT_HF0 0x000100 +#define PCXHR_MASK_IT_HF1 0x000200 +#define PCXHR_MASK_IT_NO_HF0_HF1 0x000400 +#define PCXHR_MASK_IT_MANAGE_HF5 0x000800 +#define PCXHR_MASK_IT_WAIT 0x010000 +#define PCXHR_MASK_IT_WAIT_EXTRA 0x020000 + +#define PCXHR_IT_SEND_BYTE_XILINX (0x0000003C | PCXHR_MASK_IT_HF0) +#define PCXHR_IT_TEST_XILINX (0x0000003C | PCXHR_MASK_IT_HF1 | \ + PCXHR_MASK_IT_MANAGE_HF5) +#define PCXHR_IT_DOWNLOAD_BOOT (0x0000000C | PCXHR_MASK_IT_HF1 | \ + PCXHR_MASK_IT_MANAGE_HF5 | PCXHR_MASK_IT_WAIT) +#define PCXHR_IT_RESET_BOARD_FUNC (0x0000000C | PCXHR_MASK_IT_HF0 | \ + PCXHR_MASK_IT_MANAGE_HF5 | PCXHR_MASK_IT_WAIT_EXTRA) +#define PCXHR_IT_DOWNLOAD_DSP (0x0000000C | \ + PCXHR_MASK_IT_MANAGE_HF5 | PCXHR_MASK_IT_WAIT) +#define PCXHR_IT_DEBUG (0x0000005A | PCXHR_MASK_IT_NO_HF0_HF1) +#define PCXHR_IT_RESET_SEMAPHORE (0x0000005C | PCXHR_MASK_IT_NO_HF0_HF1) +#define PCXHR_IT_MESSAGE (0x00000074 | PCXHR_MASK_IT_NO_HF0_HF1) +#define PCXHR_IT_RESET_CHK (0x00000076 | PCXHR_MASK_IT_NO_HF0_HF1) +#define PCXHR_IT_UPDATE_RBUFFER (0x00000078 | PCXHR_MASK_IT_NO_HF0_HF1) + +static int pcxhr_send_it_dsp(struct pcxhr_mgr *mgr, unsigned int itdsp, int atomic) +{ + int err; + unsigned char reg; + + if (itdsp & PCXHR_MASK_IT_MANAGE_HF5) { + /* clear hf5 bit */ + PCXHR_OUTPL(mgr, PCXHR_PLX_MBOX0, + PCXHR_INPL(mgr, PCXHR_PLX_MBOX0) & ~PCXHR_MBOX0_HF5); + } + if ((itdsp & PCXHR_MASK_IT_NO_HF0_HF1) == 0) { + reg = PCXHR_ICR_HI08_RREQ | PCXHR_ICR_HI08_TREQ | PCXHR_ICR_HI08_HDRQ; + if (itdsp & PCXHR_MASK_IT_HF0) + reg |= PCXHR_ICR_HI08_HF0; + if (itdsp & PCXHR_MASK_IT_HF1) + reg |= PCXHR_ICR_HI08_HF1; + PCXHR_OUTPB(mgr, PCXHR_DSP_ICR, reg); + } + reg = (unsigned char)(((itdsp & PCXHR_MASK_EXTRA_INFO) >> 1) | PCXHR_CVR_HI08_HC); + PCXHR_OUTPB(mgr, PCXHR_DSP_CVR, reg); + if (itdsp & PCXHR_MASK_IT_WAIT) { + if (atomic) + mdelay(PCXHR_WAIT_IT); + else + msleep(PCXHR_WAIT_IT); + } + if (itdsp & PCXHR_MASK_IT_WAIT_EXTRA) { + if (atomic) + mdelay(PCXHR_WAIT_IT_EXTRA); + else + msleep(PCXHR_WAIT_IT); + } + /* wait for CVR_HI08_HC == 0 */ + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_CVR, PCXHR_CVR_HI08_HC, 0, + PCXHR_TIMEOUT_DSP, ®); + if (err) { + snd_printk(KERN_ERR "pcxhr_send_it_dsp : TIMEOUT CVR\n"); + return err; + } + if (itdsp & PCXHR_MASK_IT_MANAGE_HF5) { + /* wait for hf5 bit */ + err = pcxhr_check_reg_bit(mgr, PCXHR_PLX_MBOX0, PCXHR_MBOX0_HF5, + PCXHR_MBOX0_HF5, PCXHR_TIMEOUT_DSP, ®); + if (err) { + snd_printk(KERN_ERR "pcxhr_send_it_dsp : TIMEOUT HF5\n"); + return err; + } + } + return 0; /* retry not handled here */ +} + +void pcxhr_reset_xilinx_com(struct pcxhr_mgr *mgr) +{ + /* reset second xilinx */ + PCXHR_OUTPL(mgr, PCXHR_PLX_CHIPSC, + PCXHR_CHIPSC_INIT_VALUE & ~PCXHR_CHIPSC_RESET_XILINX); +} + +static void pcxhr_enable_irq(struct pcxhr_mgr *mgr, int enable) +{ + unsigned int reg = PCXHR_INPL(mgr, PCXHR_PLX_IRQCS); + /* enable/disable interrupts */ + if (enable) + reg |= (PCXHR_IRQCS_ENABLE_PCIIRQ | PCXHR_IRQCS_ENABLE_PCIDB); + else + reg &= ~(PCXHR_IRQCS_ENABLE_PCIIRQ | PCXHR_IRQCS_ENABLE_PCIDB); + PCXHR_OUTPL(mgr, PCXHR_PLX_IRQCS, reg); +} + +void pcxhr_reset_dsp(struct pcxhr_mgr *mgr) +{ + /* disable interrupts */ + pcxhr_enable_irq(mgr, 0); + + /* let's reset the DSP */ + PCXHR_OUTPB(mgr, PCXHR_DSP_RESET, 0); + msleep( PCXHR_WAIT_DEFAULT ); /* wait 2 msec */ + PCXHR_OUTPB(mgr, PCXHR_DSP_RESET, 3); + msleep( PCXHR_WAIT_DEFAULT ); /* wait 2 msec */ + + /* reset mailbox */ + PCXHR_OUTPL(mgr, PCXHR_PLX_MBOX0, 0); +} + +void pcxhr_enable_dsp(struct pcxhr_mgr *mgr) +{ + /* enable interrupts */ + pcxhr_enable_irq(mgr, 1); +} + +/* + * load the xilinx image + */ +int pcxhr_load_xilinx_binary(struct pcxhr_mgr *mgr, const struct firmware *xilinx, int second) +{ + unsigned int i; + unsigned int chipsc; + unsigned char data; + unsigned char mask; + unsigned char *image; + + /* test first xilinx */ + chipsc = PCXHR_INPL(mgr, PCXHR_PLX_CHIPSC); + if (!second) { + if (chipsc & PCXHR_CHIPSC_GPI_USERI) { + snd_printdd("no need to load first xilinx\n"); + return 0; /* first xilinx is already present and cannot be reset */ + } + } else { + if ((chipsc & PCXHR_CHIPSC_GPI_USERI) == 0) { + snd_printk(KERN_ERR "error loading first xilinx\n"); + return -EINVAL; + } + /* activate second xilinx */ + chipsc |= PCXHR_CHIPSC_RESET_XILINX; + PCXHR_OUTPL(mgr, PCXHR_PLX_CHIPSC, chipsc); + msleep( PCXHR_WAIT_DEFAULT ); /* wait 2 msec */ + } + image = xilinx->data; + for (i = 0; i < xilinx->size; i++, image++) { + data = *image; + mask = 0x80; + while (mask) { + chipsc &= ~(PCXHR_CHIPSC_DATA_CLK | PCXHR_CHIPSC_DATA_IN); + if (data & mask) + chipsc |= PCXHR_CHIPSC_DATA_IN; + PCXHR_OUTPL(mgr, PCXHR_PLX_CHIPSC, chipsc); + chipsc |= PCXHR_CHIPSC_DATA_CLK; + PCXHR_OUTPL(mgr, PCXHR_PLX_CHIPSC, chipsc); + mask >>= 1; + } + /* don't take too much time in this loop... */ + cond_resched(); + } + chipsc &= ~(PCXHR_CHIPSC_DATA_CLK | PCXHR_CHIPSC_DATA_IN); + PCXHR_OUTPL(mgr, PCXHR_PLX_CHIPSC, chipsc); + /* wait 2 msec (time to boot the xilinx before any access) */ + msleep( PCXHR_WAIT_DEFAULT ); + return 0; +} + +/* + * send an executable file to the DSP + */ +static int pcxhr_download_dsp(struct pcxhr_mgr *mgr, const struct firmware *dsp) +{ + int err; + unsigned int i; + unsigned int len; + unsigned char *data; + unsigned char dummy; + /* check the length of boot image */ + snd_assert(dsp->size > 0, return -EINVAL); + snd_assert(dsp->size % 3 == 0, return -EINVAL); + snd_assert(dsp->data, return -EINVAL); + /* transfert data buffer from PC to DSP */ + for (i = 0; i < dsp->size; i += 3) { + data = dsp->data + i; + if (i == 0) { + /* test data header consistency */ + len = (unsigned int)((data[0]<<16) + (data[1]<<8) + data[2]); + snd_assert((len==0) || (dsp->size == (len+2)*3), return -EINVAL); + } + /* wait DSP ready for new transfer */ + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_TRDY, + PCXHR_ISR_HI08_TRDY, PCXHR_TIMEOUT_DSP, &dummy); + if (err) { + snd_printk(KERN_ERR "dsp loading error at position %d\n", i); + return err; + } + /* send host data */ + PCXHR_OUTPB(mgr, PCXHR_DSP_TXH, data[0]); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXM, data[1]); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXL, data[2]); + + /* don't take too much time in this loop... */ + cond_resched(); + } + /* give some time to boot the DSP */ + msleep(PCXHR_WAIT_DEFAULT); + return 0; +} + +/* + * load the eeprom image + */ +int pcxhr_load_eeprom_binary(struct pcxhr_mgr *mgr, const struct firmware *eeprom) +{ + int err; + unsigned char reg; + + /* init value of the ICR register */ + reg = PCXHR_ICR_HI08_RREQ | PCXHR_ICR_HI08_TREQ | PCXHR_ICR_HI08_HDRQ; + if (PCXHR_INPL(mgr, PCXHR_PLX_MBOX0) & PCXHR_MBOX0_BOOT_HERE) { + /* no need to load the eeprom binary, but init the HI08 interface */ + PCXHR_OUTPB(mgr, PCXHR_DSP_ICR, reg | PCXHR_ICR_HI08_INIT); + msleep(PCXHR_WAIT_DEFAULT); + PCXHR_OUTPB(mgr, PCXHR_DSP_ICR, reg); + msleep(PCXHR_WAIT_DEFAULT); + snd_printdd("no need to load eeprom boot\n"); + return 0; + } + PCXHR_OUTPB(mgr, PCXHR_DSP_ICR, reg); + + err = pcxhr_download_dsp(mgr, eeprom); + if (err) + return err; + /* wait for chk bit */ + return pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_CHK, + PCXHR_ISR_HI08_CHK, PCXHR_TIMEOUT_DSP, ®); +} + +/* + * load the boot image + */ +int pcxhr_load_boot_binary(struct pcxhr_mgr *mgr, const struct firmware *boot) +{ + int err; + unsigned int physaddr = mgr->hostport.addr; + unsigned char dummy; + + /* send the hostport address to the DSP (only the upper 24 bit !) */ + snd_assert((physaddr & 0xff) == 0, return -EINVAL); + PCXHR_OUTPL(mgr, PCXHR_PLX_MBOX1, (physaddr >> 8)); + + err = pcxhr_send_it_dsp(mgr, PCXHR_IT_DOWNLOAD_BOOT, 0); + if (err) + return err; + /* clear hf5 bit */ + PCXHR_OUTPL(mgr, PCXHR_PLX_MBOX0, + PCXHR_INPL(mgr, PCXHR_PLX_MBOX0) & ~PCXHR_MBOX0_HF5); + + err = pcxhr_download_dsp(mgr, boot); + if (err) + return err; + /* wait for hf5 bit */ + return pcxhr_check_reg_bit(mgr, PCXHR_PLX_MBOX0, PCXHR_MBOX0_HF5, + PCXHR_MBOX0_HF5, PCXHR_TIMEOUT_DSP, &dummy); +} + +/* + * load the final dsp image + */ +int pcxhr_load_dsp_binary(struct pcxhr_mgr *mgr, const struct firmware *dsp) +{ + int err; + unsigned char dummy; + err = pcxhr_send_it_dsp(mgr, PCXHR_IT_RESET_BOARD_FUNC, 0); + if (err) + return err; + err = pcxhr_send_it_dsp(mgr, PCXHR_IT_DOWNLOAD_DSP, 0); + if (err) + return err; + err = pcxhr_download_dsp(mgr, dsp); + if (err) + return err; + /* wait for chk bit */ + return pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_CHK, + PCXHR_ISR_HI08_CHK, PCXHR_TIMEOUT_DSP, &dummy); +} + + +struct pcxhr_cmd_info { + u32 opcode; /* command word */ + u16 st_length; /* status length */ + u16 st_type; /* status type (RMH_SSIZE_XXX) */ +}; + +/* RMH status type */ +enum { + RMH_SSIZE_FIXED = 0, /* status size fix (st_length = 0..x) */ + RMH_SSIZE_ARG = 1, /* status size given in the LSB byte (used with st_length = 1) */ + RMH_SSIZE_MASK = 2, /* status size given in bitmask (used with st_length = 1) */ +}; + +/* + * Array of DSP commands + */ +static struct pcxhr_cmd_info pcxhr_dsp_cmds[] = { +[CMD_VERSION] = { 0x010000, 1, RMH_SSIZE_FIXED }, +[CMD_SUPPORTED] = { 0x020000, 4, RMH_SSIZE_FIXED }, +[CMD_TEST_IT] = { 0x040000, 1, RMH_SSIZE_FIXED }, +[CMD_SEND_IRQA] = { 0x070001, 0, RMH_SSIZE_FIXED }, +[CMD_ACCESS_IO_WRITE] = { 0x090000, 1, RMH_SSIZE_ARG }, +[CMD_ACCESS_IO_READ] = { 0x094000, 1, RMH_SSIZE_ARG }, +[CMD_ASYNC] = { 0x0a0000, 1, RMH_SSIZE_ARG }, +[CMD_MODIFY_CLOCK] = { 0x0d0000, 0, RMH_SSIZE_FIXED }, +[CMD_RESYNC_AUDIO_INPUTS] = { 0x0e0000, 0, RMH_SSIZE_FIXED }, +[CMD_GET_DSP_RESOURCES] = { 0x100000, 4, RMH_SSIZE_FIXED }, +[CMD_SET_TIMER_INTERRUPT] = { 0x110000, 0, RMH_SSIZE_FIXED }, +[CMD_RES_PIPE] = { 0x400000, 0, RMH_SSIZE_FIXED }, +[CMD_FREE_PIPE] = { 0x410000, 0, RMH_SSIZE_FIXED }, +[CMD_CONF_PIPE] = { 0x422101, 0, RMH_SSIZE_FIXED }, +[CMD_STOP_PIPE] = { 0x470004, 0, RMH_SSIZE_FIXED }, +[CMD_PIPE_SAMPLE_COUNT] = { 0x49a000, 2, RMH_SSIZE_FIXED }, +[CMD_CAN_START_PIPE] = { 0x4b0000, 1, RMH_SSIZE_FIXED }, +[CMD_START_STREAM] = { 0x802000, 0, RMH_SSIZE_FIXED }, +[CMD_STREAM_OUT_LEVEL_ADJUST] = { 0x822000, 0, RMH_SSIZE_FIXED }, +[CMD_STOP_STREAM] = { 0x832000, 0, RMH_SSIZE_FIXED }, +[CMD_UPDATE_R_BUFFERS] = { 0x840000, 0, RMH_SSIZE_FIXED }, +[CMD_FORMAT_STREAM_OUT] = { 0x860000, 0, RMH_SSIZE_FIXED }, +[CMD_FORMAT_STREAM_IN] = { 0x870000, 0, RMH_SSIZE_FIXED }, +[CMD_STREAM_SAMPLE_COUNT] = { 0x902000, 2, RMH_SSIZE_FIXED }, /* stat_len = nb_streams * 2 */ +[CMD_AUDIO_LEVEL_ADJUST] = { 0xc22000, 0, RMH_SSIZE_FIXED }, +}; + +#ifdef CONFIG_SND_DEBUG_DETECT +static char* cmd_names[] = { +[CMD_VERSION] = "CMD_VERSION", +[CMD_SUPPORTED] = "CMD_SUPPORTED", +[CMD_TEST_IT] = "CMD_TEST_IT", +[CMD_SEND_IRQA] = "CMD_SEND_IRQA", +[CMD_ACCESS_IO_WRITE] = "CMD_ACCESS_IO_WRITE", +[CMD_ACCESS_IO_READ] = "CMD_ACCESS_IO_READ", +[CMD_ASYNC] = "CMD_ASYNC", +[CMD_MODIFY_CLOCK] = "CMD_MODIFY_CLOCK", +[CMD_RESYNC_AUDIO_INPUTS] = "CMD_RESYNC_AUDIO_INPUTS", +[CMD_GET_DSP_RESOURCES] = "CMD_GET_DSP_RESOURCES", +[CMD_SET_TIMER_INTERRUPT] = "CMD_SET_TIMER_INTERRUPT", +[CMD_RES_PIPE] = "CMD_RES_PIPE", +[CMD_FREE_PIPE] = "CMD_FREE_PIPE", +[CMD_CONF_PIPE] = "CMD_CONF_PIPE", +[CMD_STOP_PIPE] = "CMD_STOP_PIPE", +[CMD_PIPE_SAMPLE_COUNT] = "CMD_PIPE_SAMPLE_COUNT", +[CMD_CAN_START_PIPE] = "CMD_CAN_START_PIPE", +[CMD_START_STREAM] = "CMD_START_STREAM", +[CMD_STREAM_OUT_LEVEL_ADJUST] = "CMD_STREAM_OUT_LEVEL_ADJUST", +[CMD_STOP_STREAM] = "CMD_STOP_STREAM", +[CMD_UPDATE_R_BUFFERS] = "CMD_UPDATE_R_BUFFERS", +[CMD_FORMAT_STREAM_OUT] = "CMD_FORMAT_STREAM_OUT", +[CMD_FORMAT_STREAM_IN] = "CMD_FORMAT_STREAM_IN", +[CMD_STREAM_SAMPLE_COUNT] = "CMD_STREAM_SAMPLE_COUNT", +[CMD_AUDIO_LEVEL_ADJUST] = "CMD_AUDIO_LEVEL_ADJUST", +}; +#endif + + +static int pcxhr_read_rmh_status(struct pcxhr_mgr *mgr, struct pcxhr_rmh *rmh) +{ + int err; + int i; + u32 data; + u32 size_mask; + unsigned char reg; + int max_stat_len; + + if (rmh->stat_len < PCXHR_SIZE_MAX_STATUS) + max_stat_len = PCXHR_SIZE_MAX_STATUS; + else max_stat_len = rmh->stat_len; + + for (i = 0; i < rmh->stat_len; i++) { + /* wait for receiver full */ + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_RXDF, + PCXHR_ISR_HI08_RXDF, PCXHR_TIMEOUT_DSP, ®); + if (err) { + snd_printk(KERN_ERR "ERROR RMH stat: ISR:RXDF=1 (ISR = %x; i=%d )\n", + reg, i); + return err; + } + /* read data */ + data = PCXHR_INPB(mgr, PCXHR_DSP_TXH) << 16; + data |= PCXHR_INPB(mgr, PCXHR_DSP_TXM) << 8; + data |= PCXHR_INPB(mgr, PCXHR_DSP_TXL); + + /* need to update rmh->stat_len on the fly ?? */ + if (i==0) { + if (rmh->dsp_stat != RMH_SSIZE_FIXED) { + if (rmh->dsp_stat == RMH_SSIZE_ARG) { + rmh->stat_len = (u16)(data & 0x0000ff) + 1; + data &= 0xffff00; + } else { + /* rmh->dsp_stat == RMH_SSIZE_MASK */ + rmh->stat_len = 1; + size_mask = data; + while (size_mask) { + if (size_mask & 1) + rmh->stat_len++; + size_mask >>= 1; + } + } + } + } +#ifdef CONFIG_SND_DEBUG_DETECT + if (rmh->cmd_idx < CMD_LAST_INDEX) + snd_printdd(" stat[%d]=%x\n", i, data); +#endif + if (i < max_stat_len) + rmh->stat[i] = data; + } + if (rmh->stat_len > max_stat_len) { + snd_printdd("PCXHR : rmh->stat_len=%x too big\n", rmh->stat_len); + rmh->stat_len = max_stat_len; + } + return 0; +} + +static int pcxhr_send_msg_nolock(struct pcxhr_mgr *mgr, struct pcxhr_rmh *rmh) +{ + int err; + int i; + u32 data; + unsigned char reg; + + snd_assert(rmh->cmd_lencmd[0]; + + if (rmh->cmd_len > 1) + data |= 0x008000; /* MASK_MORE_THAN_1_WORD_COMMAND */ + else + data &= 0xff7fff; /* MASK_1_WORD_COMMAND */ +#ifdef CONFIG_SND_DEBUG_DETECT + if (rmh->cmd_idx < CMD_LAST_INDEX) + snd_printdd("MSG cmd[0]=%x (%s)\n", data, cmd_names[rmh->cmd_idx]); +#endif + + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_TRDY, + PCXHR_ISR_HI08_TRDY, PCXHR_TIMEOUT_DSP, ®); + if (err) + return err; + PCXHR_OUTPB(mgr, PCXHR_DSP_TXH, (data>>16)&0xFF); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXM, (data>>8)&0xFF); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXL, (data&0xFF)); + + if (rmh->cmd_len > 1) { + /* send length */ + data = rmh->cmd_len - 1; + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_TRDY, + PCXHR_ISR_HI08_TRDY, PCXHR_TIMEOUT_DSP, ®); + if (err) + return err; + PCXHR_OUTPB(mgr, PCXHR_DSP_TXH, (data>>16)&0xFF); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXM, (data>>8)&0xFF); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXL, (data&0xFF)); + + for (i=1; i < rmh->cmd_len; i++) { + /* send other words */ + data = rmh->cmd[i]; +#ifdef CONFIG_SND_DEBUG_DETECT + if (rmh->cmd_idx < CMD_LAST_INDEX) + snd_printdd(" cmd[%d]=%x\n", i, data); +#endif + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, + PCXHR_ISR_HI08_TRDY, + PCXHR_ISR_HI08_TRDY, + PCXHR_TIMEOUT_DSP, ®); + if (err) + return err; + PCXHR_OUTPB(mgr, PCXHR_DSP_TXH, (data>>16)&0xFF); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXM, (data>>8)&0xFF); + PCXHR_OUTPB(mgr, PCXHR_DSP_TXL, (data&0xFF)); + } + } + /* wait for chk bit */ + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_CHK, + PCXHR_ISR_HI08_CHK, PCXHR_TIMEOUT_DSP, ®); + if (err) + return err; + /* test status ISR */ + if (reg & PCXHR_ISR_HI08_ERR) { + /* ERROR, wait for receiver full */ + err = pcxhr_check_reg_bit(mgr, PCXHR_DSP_ISR, PCXHR_ISR_HI08_RXDF, + PCXHR_ISR_HI08_RXDF, PCXHR_TIMEOUT_DSP, ®); + if (err) { + snd_printk(KERN_ERR "ERROR RMH: ISR:RXDF=1 (ISR = %x)\n", reg); + return err; + } + /* read error code */ + data = PCXHR_INPB(mgr, PCXHR_DSP_TXH) << 16; + data |= PCXHR_INPB(mgr, PCXHR_DSP_TXM) << 8; + data |= PCXHR_INPB(mgr, PCXHR_DSP_TXL); + snd_printk(KERN_ERR "ERROR RMH(%d): 0x%x\n", rmh->cmd_idx, data); + err = -EINVAL; + } else { + /* read the response data */ + err = pcxhr_read_rmh_status(mgr, rmh); + } + /* reset semaphore */ + if (pcxhr_send_it_dsp(mgr, PCXHR_IT_RESET_SEMAPHORE, 1) < 0) + return -EIO; + return err; +} + + +/** + * pcxhr_init_rmh - initialize the RMH instance + * @rmh: the rmh pointer to be initialized + * @cmd: the rmh command to be set + */ +void pcxhr_init_rmh(struct pcxhr_rmh *rmh, int cmd) +{ + snd_assert(cmd < CMD_LAST_INDEX, return); + rmh->cmd[0] = pcxhr_dsp_cmds[cmd].opcode; + rmh->cmd_len = 1; + rmh->stat_len = pcxhr_dsp_cmds[cmd].st_length; + rmh->dsp_stat = pcxhr_dsp_cmds[cmd].st_type; + rmh->cmd_idx = cmd; +} + + +void pcxhr_set_pipe_cmd_params(struct pcxhr_rmh *rmh, int capture, + unsigned int param1, unsigned int param2, + unsigned int param3) +{ + snd_assert(param1 <= MASK_FIRST_FIELD); + if (capture) + rmh->cmd[0] |= 0x800; /* COMMAND_RECORD_MASK */ + if (param1) + rmh->cmd[0] |= (param1 << FIELD_SIZE); + if (param2) { + snd_assert(param2 <= MASK_FIRST_FIELD); + rmh->cmd[0] |= param2; + } + if(param3) { + snd_assert(param3 <= MASK_DSP_WORD); + rmh->cmd[1] = param3; + rmh->cmd_len = 2; + } +} + +/* + * pcxhr_send_msg - send a DSP message with spinlock + * @rmh: the rmh record to send and receive + * + * returns 0 if successful, or a negative error code. + */ +int pcxhr_send_msg(struct pcxhr_mgr *mgr, struct pcxhr_rmh *rmh) +{ + unsigned long flags; + int err; + spin_lock_irqsave(&mgr->msg_lock, flags); + err = pcxhr_send_msg_nolock(mgr, rmh); + spin_unlock_irqrestore(&mgr->msg_lock, flags); + return err; +} + +static inline int pcxhr_pipes_running(struct pcxhr_mgr *mgr) +{ + int start_mask = PCXHR_INPL(mgr, PCXHR_PLX_MBOX2); + /* least segnificant 12 bits are the pipe states for the playback audios */ + /* next 12 bits are the pipe states for the capture audios + * (PCXHR_PIPE_STATE_CAPTURE_OFFSET) + */ + start_mask &= 0xffffff; + snd_printdd("CMD_PIPE_STATE MBOX2=0x%06x\n", start_mask); + return start_mask; +} + +#define PCXHR_PIPE_STATE_CAPTURE_OFFSET 12 +#define MAX_WAIT_FOR_DSP 20 + +static int pcxhr_prepair_pipe_start(struct pcxhr_mgr *mgr, int audio_mask, int *retry) +{ + struct pcxhr_rmh rmh; + int err; + int audio = 0; + + *retry = 0; + while (audio_mask) { + if (audio_mask & 1) { + pcxhr_init_rmh(&rmh, CMD_CAN_START_PIPE); + if (audio < PCXHR_PIPE_STATE_CAPTURE_OFFSET) { + /* can start playback pipe */ + pcxhr_set_pipe_cmd_params(&rmh, 0, audio, 0, 0); + } else { + /* can start capture pipe */ + pcxhr_set_pipe_cmd_params(&rmh, 1, audio - + PCXHR_PIPE_STATE_CAPTURE_OFFSET, + 0, 0); + } + err = pcxhr_send_msg(mgr, &rmh); + if (err) { + snd_printk(KERN_ERR + "error pipe start (CMD_CAN_START_PIPE) err=%x!\n", + err); + return err; + } + /* if the pipe couldn't be prepaired for start, retry it later */ + if (rmh.stat[0] == 0) + *retry |= (1<>=1; + audio++; + } + return 0; +} + +static int pcxhr_stop_pipes(struct pcxhr_mgr *mgr, int audio_mask) +{ + struct pcxhr_rmh rmh; + int err; + int audio = 0; + + while (audio_mask) { + if (audio_mask & 1) { + pcxhr_init_rmh(&rmh, CMD_STOP_PIPE); + if (audio < PCXHR_PIPE_STATE_CAPTURE_OFFSET) { + /* stop playback pipe */ + pcxhr_set_pipe_cmd_params(&rmh, 0, audio, 0, 0); + } else { + /* stop capture pipe */ + pcxhr_set_pipe_cmd_params(&rmh, 1, audio - + PCXHR_PIPE_STATE_CAPTURE_OFFSET, + 0, 0); + } + err = pcxhr_send_msg(mgr, &rmh); + if (err) { + snd_printk(KERN_ERR + "error pipe stop (CMD_STOP_PIPE) err=%x!\n", + err); + return err; + } + } + audio_mask>>=1; + audio++; + } + return 0; +} + +static int pcxhr_toggle_pipes(struct pcxhr_mgr *mgr, int audio_mask) +{ + struct pcxhr_rmh rmh; + int err; + int audio = 0; + + while (audio_mask) { + if (audio_mask & 1) { + pcxhr_init_rmh(&rmh, CMD_CONF_PIPE); + if (audio < PCXHR_PIPE_STATE_CAPTURE_OFFSET) + pcxhr_set_pipe_cmd_params(&rmh, 0, 0, 0, 1 << audio); + else + pcxhr_set_pipe_cmd_params(&rmh, 1, 0, 0, + 1 << (audio - PCXHR_PIPE_STATE_CAPTURE_OFFSET)); + err = pcxhr_send_msg(mgr, &rmh); + if (err) { + snd_printk(KERN_ERR + "error pipe start (CMD_CONF_PIPE) err=%x!\n", + err); + return err; + } + } + audio_mask>>=1; + audio++; + } + /* now fire the interrupt on the card */ + pcxhr_init_rmh(&rmh, CMD_SEND_IRQA); + err = pcxhr_send_msg(mgr, &rmh); + if (err) { + snd_printk(KERN_ERR "error pipe start (CMD_SEND_IRQA) err=%x!\n", err ); + return err; + } + return 0; +} + + + +int pcxhr_set_pipe_state(struct pcxhr_mgr *mgr, int playback_mask, int capture_mask, int start) +{ + int state, i, err; + int audio_mask; + +#ifdef CONFIG_SND_DEBUG_DETECT + struct timeval my_tv1, my_tv2; + do_gettimeofday(&my_tv1); +#endif + audio_mask = (playback_mask | (capture_mask << PCXHR_PIPE_STATE_CAPTURE_OFFSET)); + /* current pipe state (playback + record) */ + state = pcxhr_pipes_running(mgr); + snd_printdd("pcxhr_set_pipe_state %s (mask %x current %x)\n", + start ? "START" : "STOP", audio_mask, state); + if (start) { + audio_mask &= ~state; /* start only pipes that are not yet started */ + state = audio_mask; + for (i = 0; i < MAX_WAIT_FOR_DSP; i++) { + err = pcxhr_prepair_pipe_start(mgr, state, &state); + if (err) + return err; + if (state == 0) + break; /* success, all pipes prepaired for start */ + mdelay(1); /* otherwise wait 1 millisecond and retry */ + } + } else { + audio_mask &= state; /* stop only pipes that are started */ + } + if (audio_mask == 0) + return 0; + + err = pcxhr_toggle_pipes(mgr, audio_mask); + if (err) + return err; + + i = 0; + while (1) { + state = pcxhr_pipes_running(mgr); + /* have all pipes the new state ? */ + if ((state & audio_mask) == (start ? audio_mask : 0)) + break; + if (++i >= MAX_WAIT_FOR_DSP * 100) { + snd_printk(KERN_ERR "error pipe start/stop (ED_NO_RESPONSE_AT_IRQA)\n"); + return -EBUSY; + } + udelay(10); /* wait 10 microseconds */ + } + if (!start) { + err = pcxhr_stop_pipes(mgr, audio_mask); + if (err) + return err; + } +#ifdef CONFIG_SND_DEBUG_DETECT + do_gettimeofday(&my_tv2); + snd_printdd("***SET PIPE STATE*** TIME = %ld (err = %x)\n", + my_tv2.tv_usec - my_tv1.tv_usec, err); +#endif + return 0; +} + +int pcxhr_write_io_num_reg_cont(struct pcxhr_mgr *mgr, unsigned int mask, + unsigned int value, int *changed) +{ + struct pcxhr_rmh rmh; + unsigned long flags; + int err; + + spin_lock_irqsave(&mgr->msg_lock, flags); + if ((mgr->io_num_reg_cont & mask) == value) { + snd_printdd("IO_NUM_REG_CONT mask %x already is set to %x\n", mask, value); + if (changed) + *changed = 0; + spin_unlock_irqrestore(&mgr->msg_lock, flags); + return 0; /* already programmed */ + } + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); + rmh.cmd[0] |= IO_NUM_REG_CONT; + rmh.cmd[1] = mask; + rmh.cmd[2] = value; + rmh.cmd_len = 3; + err = pcxhr_send_msg_nolock(mgr, &rmh); + if (err == 0) { + mgr->io_num_reg_cont &= ~mask; + mgr->io_num_reg_cont |= value; + if (changed) + *changed = 1; + } + spin_unlock_irqrestore(&mgr->msg_lock, flags); + return err; +} + +#define PCXHR_IRQ_TIMER 0x000300 +#define PCXHR_IRQ_FREQ_CHANGE 0x000800 +#define PCXHR_IRQ_TIME_CODE 0x001000 +#define PCXHR_IRQ_NOTIFY 0x002000 +#define PCXHR_IRQ_ASYNC 0x008000 +#define PCXHR_IRQ_MASK 0x00bb00 +#define PCXHR_FATAL_DSP_ERR 0xff0000 + +enum pcxhr_async_err_src { + PCXHR_ERR_PIPE, + PCXHR_ERR_STREAM, + PCXHR_ERR_AUDIO +}; + +static int pcxhr_handle_async_err(struct pcxhr_mgr *mgr, u32 err, + enum pcxhr_async_err_src err_src, int pipe, + int is_capture) +{ +#ifdef CONFIG_SND_DEBUG_DETECT + static char* err_src_name[] = { + [PCXHR_ERR_PIPE] = "Pipe", + [PCXHR_ERR_STREAM] = "Stream", + [PCXHR_ERR_AUDIO] = "Audio" + }; +#endif + if (err & 0xfff) + err &= 0xfff; + else + err = ((err >> 12) & 0xfff); + if (!err) + return 0; + snd_printdd("CMD_ASYNC : Error %s %s Pipe %d err=%x\n", err_src_name[err_src], + is_capture ? "Record" : "Play", pipe, err); + if (err == 0xe01) + mgr->async_err_stream_xrun++; + else if (err == 0xe10) + mgr->async_err_pipe_xrun++; + else + mgr->async_err_other_last = (int)err; + return 1; +} + + +void pcxhr_msg_tasklet(unsigned long arg) +{ + struct pcxhr_mgr *mgr = (struct pcxhr_mgr *)(arg); + struct pcxhr_rmh *prmh = mgr->prmh; + int err; + int i, j; + + if (mgr->src_it_dsp & PCXHR_IRQ_FREQ_CHANGE) + snd_printdd("TASKLET : PCXHR_IRQ_FREQ_CHANGE event occured\n"); + if (mgr->src_it_dsp & PCXHR_IRQ_TIME_CODE) + snd_printdd("TASKLET : PCXHR_IRQ_TIME_CODE event occured\n"); + if (mgr->src_it_dsp & PCXHR_IRQ_NOTIFY) + snd_printdd("TASKLET : PCXHR_IRQ_NOTIFY event occured\n"); + if (mgr->src_it_dsp & PCXHR_IRQ_ASYNC) { + snd_printdd("TASKLET : PCXHR_IRQ_ASYNC event occured\n"); + + pcxhr_init_rmh(prmh, CMD_ASYNC); + prmh->cmd[0] |= 1; /* add SEL_ASYNC_EVENTS */ + /* this is the only one extra long response command */ + prmh->stat_len = PCXHR_SIZE_MAX_LONG_STATUS; + err = pcxhr_send_msg(mgr, prmh); + if (err) + snd_printk(KERN_ERR "ERROR pcxhr_msg_tasklet=%x;\n", err); + i = 1; + while (i < prmh->stat_len) { + int nb_audio = (prmh->stat[i] >> FIELD_SIZE) & MASK_FIRST_FIELD; + int nb_stream = (prmh->stat[i] >> (2*FIELD_SIZE)) & MASK_FIRST_FIELD; + int pipe = prmh->stat[i] & MASK_FIRST_FIELD; + int is_capture = prmh->stat[i] & 0x400000; + u32 err; + + if (prmh->stat[i] & 0x800000) { /* if BIT_END */ + snd_printdd("TASKLET : End%sPipe %d\n", + is_capture ? "Record" : "Play", pipe); + } + i++; + err = prmh->stat[i] ? prmh->stat[i] : prmh->stat[i+1]; + if (err) + pcxhr_handle_async_err(mgr, err, PCXHR_ERR_PIPE, + pipe, is_capture); + i += 2; + for (j = 0; j < nb_stream; j++) { + err = prmh->stat[i] ? prmh->stat[i] : prmh->stat[i+1]; + if (err) + pcxhr_handle_async_err(mgr, err, PCXHR_ERR_STREAM, + pipe, is_capture); + i += 2; + } + for (j = 0; j < nb_audio; j++) { + err = prmh->stat[i] ? prmh->stat[i] : prmh->stat[i+1]; + if (err) + pcxhr_handle_async_err(mgr, err, PCXHR_ERR_AUDIO, + pipe, is_capture); + i += 2; + } + } + } +} + +static u_int64_t pcxhr_stream_read_position(struct pcxhr_mgr *mgr, + struct pcxhr_stream *stream) +{ + u_int64_t hw_sample_count; + struct pcxhr_rmh rmh; + int err, stream_mask; + + stream_mask = stream->pipe->is_capture ? 1 : 1<substream->number; + + /* get sample count for one stream */ + pcxhr_init_rmh(&rmh, CMD_STREAM_SAMPLE_COUNT); + pcxhr_set_pipe_cmd_params(&rmh, stream->pipe->is_capture, + stream->pipe->first_audio, 0, stream_mask); + /* rmh.stat_len = 2; */ /* 2 resp data for each stream of the pipe */ + + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return 0; + + hw_sample_count = ((u_int64_t)rmh.stat[0]) << 24; + hw_sample_count += (u_int64_t)rmh.stat[1]; + + snd_printdd("stream %c%d : abs samples real(%ld) timer(%ld)\n", + stream->pipe->is_capture ? 'C':'P', stream->substream->number, + (long unsigned int)hw_sample_count, + (long unsigned int)(stream->timer_abs_periods + + stream->timer_period_frag + PCXHR_GRANULARITY)); + + return hw_sample_count; +} + +static void pcxhr_update_timer_pos(struct pcxhr_mgr *mgr, + struct pcxhr_stream *stream, int samples_to_add) +{ + if (stream->substream && (stream->status == PCXHR_STREAM_STATUS_RUNNING)) { + u_int64_t new_sample_count; + int elapsed = 0; + int hardware_read = 0; + struct snd_pcm_runtime *runtime = stream->substream->runtime; + + if (samples_to_add < 0) { + stream->timer_is_synced = 0; + /* add default if no hardware_read possible */ + samples_to_add = PCXHR_GRANULARITY; + } + + if (!stream->timer_is_synced) { + if (stream->timer_abs_periods != 0 || + stream->timer_period_frag + PCXHR_GRANULARITY >= + runtime->period_size) { + new_sample_count = pcxhr_stream_read_position(mgr, stream); + hardware_read = 1; + if (new_sample_count >= PCXHR_GRANULARITY_MIN) { + /* sub security offset because of jitter and + * finer granularity of dsp time (MBOX4) + */ + new_sample_count -= PCXHR_GRANULARITY_MIN; + stream->timer_is_synced = 1; + } + } + } + if (!hardware_read) { + /* if we didn't try to sync the position, increment it + * by PCXHR_GRANULARITY every timer interrupt + */ + new_sample_count = stream->timer_abs_periods + + stream->timer_period_frag + samples_to_add; + } + while (1) { + u_int64_t new_elapse_pos = stream->timer_abs_periods + + runtime->period_size; + if (new_elapse_pos > new_sample_count) + break; + elapsed = 1; + stream->timer_buf_periods++; + if (stream->timer_buf_periods >= runtime->periods) + stream->timer_buf_periods = 0; + stream->timer_abs_periods = new_elapse_pos; + } + if (new_sample_count >= stream->timer_abs_periods) + stream->timer_period_frag = (u_int32_t)(new_sample_count - + stream->timer_abs_periods); + else + snd_printk(KERN_ERR "ERROR new_sample_count too small ??? %lx\n", + (long unsigned int)new_sample_count); + + if (elapsed) { + spin_unlock(&mgr->lock); + snd_pcm_period_elapsed(stream->substream); + spin_lock(&mgr->lock); + } + } +} + + +irqreturn_t pcxhr_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + struct pcxhr_mgr *mgr = dev_id; + unsigned int reg; + int i, j; + struct snd_pcxhr *chip; + + spin_lock(&mgr->lock); + + reg = PCXHR_INPL(mgr, PCXHR_PLX_IRQCS); + if (! (reg & PCXHR_IRQCS_ACTIVE_PCIDB)) { + spin_unlock(&mgr->lock); + return IRQ_NONE; /* this device did not cause the interrupt */ + } + + /* clear interrupt */ + reg = PCXHR_INPL(mgr, PCXHR_PLX_L2PCIDB); + PCXHR_OUTPL(mgr, PCXHR_PLX_L2PCIDB, reg); + + /* timer irq occured */ + if (reg & PCXHR_IRQ_TIMER) { + int timer_toggle = reg & PCXHR_IRQ_TIMER; + /* is a 24 bit counter */ + int dsp_time_new = PCXHR_INPL(mgr, PCXHR_PLX_MBOX4) & PCXHR_DSP_TIME_MASK; + int dsp_time_diff = dsp_time_new - mgr->dsp_time_last; + + if (dsp_time_diff < 0 && mgr->dsp_time_last != PCXHR_DSP_TIME_INVALID) { + snd_printdd("ERROR DSP TIME old(%d) new(%d) -> " + "resynchronize all streams\n", + mgr->dsp_time_last, dsp_time_new); + mgr->dsp_time_err++; + } +#ifdef CONFIG_SND_DEBUG_DETECT + if (dsp_time_diff == 0) + snd_printdd("ERROR DSP TIME NO DIFF time(%d)\n", dsp_time_new); + else if (dsp_time_diff >= (2*PCXHR_GRANULARITY)) + snd_printdd("ERROR DSP TIME TOO BIG old(%d) add(%d)\n", + mgr->dsp_time_last, dsp_time_new - mgr->dsp_time_last); +#endif + mgr->dsp_time_last = dsp_time_new; + + if (timer_toggle == mgr->timer_toggle) + snd_printk(KERN_ERR "ERROR TIMER TOGGLE\n"); + mgr->timer_toggle = timer_toggle; + + reg &= ~PCXHR_IRQ_TIMER; + for (i = 0; i < mgr->num_cards; i++) { + chip = mgr->chip[i]; + for (j = 0; j < chip->nb_streams_capt; j++) + pcxhr_update_timer_pos(mgr, &chip->capture_stream[j], + dsp_time_diff); + } + for (i = 0; i < mgr->num_cards; i++) { + chip = mgr->chip[i]; + for (j = 0; j < chip->nb_streams_play; j++) + pcxhr_update_timer_pos(mgr, &chip->playback_stream[j], + dsp_time_diff); + } + } + /* other irq's handled in the tasklet */ + if (reg & PCXHR_IRQ_MASK) { + + /* as we didn't request any notifications, some kind of xrun error + * will probably occured + */ + /* better resynchronize all streams next interrupt : */ + mgr->dsp_time_last = PCXHR_DSP_TIME_INVALID; + + mgr->src_it_dsp = reg; + tasklet_hi_schedule(&mgr->msg_taskq); + } +#ifdef CONFIG_SND_DEBUG_DETECT + if (reg & PCXHR_FATAL_DSP_ERR) + snd_printdd("FATAL DSP ERROR : %x\n", reg); +#endif + spin_unlock(&mgr->lock); + return IRQ_HANDLED; /* this device caused the interrupt */ +} diff --git a/sound/pci/pcxhr/pcxhr_core.h b/sound/pci/pcxhr/pcxhr_core.h new file mode 100644 index 00000000000..e7415d6d182 --- /dev/null +++ b/sound/pci/pcxhr/pcxhr_core.h @@ -0,0 +1,200 @@ +/* + * Driver for Digigram pcxhr compatible soundcards + * + * low level interface with interrupt ans message handling + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __SOUND_PCXHR_CORE_H +#define __SOUND_PCXHR_CORE_H + +struct firmware; +struct pcxhr_mgr; + +/* init and firmware download commands */ +void pcxhr_reset_xilinx_com(struct pcxhr_mgr *mgr); +void pcxhr_reset_dsp(struct pcxhr_mgr *mgr); +void pcxhr_enable_dsp(struct pcxhr_mgr *mgr); +int pcxhr_load_xilinx_binary(struct pcxhr_mgr *mgr, const struct firmware *xilinx, int second); +int pcxhr_load_eeprom_binary(struct pcxhr_mgr *mgr, const struct firmware *eeprom); +int pcxhr_load_boot_binary(struct pcxhr_mgr *mgr, const struct firmware *boot); +int pcxhr_load_dsp_binary(struct pcxhr_mgr *mgr, const struct firmware *dsp); + +/* DSP time available on MailBox4 register : 24 bit time samples() */ +#define PCXHR_DSP_TIME_MASK 0x00ffffff +#define PCXHR_DSP_TIME_INVALID 0x10000000 + + +#define PCXHR_SIZE_MAX_CMD 8 +#define PCXHR_SIZE_MAX_STATUS 16 +#define PCXHR_SIZE_MAX_LONG_STATUS 256 + +struct pcxhr_rmh { + u16 cmd_len; /* length of the command to send (WORDs) */ + u16 stat_len; /* length of the status received (WORDs) */ + u16 dsp_stat; /* status type, RMP_SSIZE_XXX */ + u16 cmd_idx; /* index of the command */ + u32 cmd[PCXHR_SIZE_MAX_CMD]; + u32 stat[PCXHR_SIZE_MAX_STATUS]; +}; + +enum { + CMD_VERSION, /* cmd_len = 2 stat_len = 1 */ + CMD_SUPPORTED, /* cmd_len = 1 stat_len = 4 */ + CMD_TEST_IT, /* cmd_len = 1 stat_len = 1 */ + CMD_SEND_IRQA, /* cmd_len = 1 stat_len = 0 */ + CMD_ACCESS_IO_WRITE, /* cmd_len >= 1 stat_len >= 1 */ + CMD_ACCESS_IO_READ, /* cmd_len >= 1 stat_len >= 1 */ + CMD_ASYNC, /* cmd_len = 1 stat_len = 1 */ + CMD_MODIFY_CLOCK, /* cmd_len = 3 stat_len = 0 */ + CMD_RESYNC_AUDIO_INPUTS, /* cmd_len = 1 stat_len = 0 */ + CMD_GET_DSP_RESOURCES, /* cmd_len = 1 stat_len = 4 */ + CMD_SET_TIMER_INTERRUPT, /* cmd_len = 1 stat_len = 0 */ + CMD_RES_PIPE, /* cmd_len = 2 stat_len = 0 */ + CMD_FREE_PIPE, /* cmd_len = 1 stat_len = 0 */ + CMD_CONF_PIPE, /* cmd_len = 2 stat_len = 0 */ + CMD_STOP_PIPE, /* cmd_len = 1 stat_len = 0 */ + CMD_PIPE_SAMPLE_COUNT, /* cmd_len = 2 stat_len = 2 */ + CMD_CAN_START_PIPE, /* cmd_len >= 1 stat_len = 1 */ + CMD_START_STREAM, /* cmd_len = 2 stat_len = 0 */ + CMD_STREAM_OUT_LEVEL_ADJUST, /* cmd_len >= 1 stat_len = 0 */ + CMD_STOP_STREAM, /* cmd_len = 2 stat_len = 0 */ + CMD_UPDATE_R_BUFFERS, /* cmd_len = 4 stat_len = 0 */ + CMD_FORMAT_STREAM_OUT, /* cmd_len >= 2 stat_len = 0 */ + CMD_FORMAT_STREAM_IN, /* cmd_len >= 4 stat_len = 0 */ + CMD_STREAM_SAMPLE_COUNT, /* cmd_len = 2 stat_len = (2 * nb_stream) */ + CMD_AUDIO_LEVEL_ADJUST, /* cmd_len = 3 stat_len = 0 */ + CMD_LAST_INDEX +}; + +#define MASK_DSP_WORD 0x00ffffff +#define MASK_ALL_STREAM 0x00ffffff +#define MASK_DSP_WORD_LEVEL 0x000001ff +#define MASK_FIRST_FIELD 0x0000001f +#define FIELD_SIZE 5 + +/* + init the rmh struct; by default cmd_len is set to 1 + */ +void pcxhr_init_rmh(struct pcxhr_rmh *rmh, int cmd); + +void pcxhr_set_pipe_cmd_params(struct pcxhr_rmh* rmh, int capture, unsigned int param1, + unsigned int param2, unsigned int param3); + +/* + send the rmh + */ +int pcxhr_send_msg(struct pcxhr_mgr *mgr, struct pcxhr_rmh *rmh); + + +/* values used for CMD_ACCESS_IO_WRITE and CMD_ACCESS_IO_READ */ +#define IO_NUM_REG_CONT 0 +#define IO_NUM_REG_GENCLK 1 +#define IO_NUM_REG_MUTE_OUT 2 +#define IO_NUM_SPEED_RATIO 4 +#define IO_NUM_REG_STATUS 5 +#define IO_NUM_REG_CUER 10 +#define IO_NUM_UER_CHIP_REG 11 +#define IO_NUM_REG_OUT_ANA_LEVEL 20 +#define IO_NUM_REG_IN_ANA_LEVEL 21 + + +#define REG_CONT_UNMUTE_INPUTS 0x020000 + +/* parameters used with register IO_NUM_REG_STATUS */ +#define REG_STATUS_OPTIONS 0 +#define REG_STATUS_AES_SYNC 8 +#define REG_STATUS_AES_1 9 +#define REG_STATUS_AES_2 10 +#define REG_STATUS_AES_3 11 +#define REG_STATUS_AES_4 12 +#define REG_STATUS_WORD_CLOCK 13 +#define REG_STATUS_INTER_SYNC 14 +#define REG_STATUS_CURRENT 0x80 +/* results */ +#define REG_STATUS_OPT_NO_VIDEO_SIGNAL 0x01 +#define REG_STATUS_OPT_DAUGHTER_MASK 0x1c +#define REG_STATUS_OPT_ANALOG_BOARD 0x00 +#define REG_STATUS_OPT_NO_DAUGHTER 0x1c +#define REG_STATUS_OPT_COMPANION_MASK 0xe0 +#define REG_STATUS_OPT_NO_COMPANION 0xe0 +#define REG_STATUS_SYNC_32000 0x00 +#define REG_STATUS_SYNC_44100 0x01 +#define REG_STATUS_SYNC_48000 0x02 +#define REG_STATUS_SYNC_64000 0x03 +#define REG_STATUS_SYNC_88200 0x04 +#define REG_STATUS_SYNC_96000 0x05 +#define REG_STATUS_SYNC_128000 0x06 +#define REG_STATUS_SYNC_176400 0x07 +#define REG_STATUS_SYNC_192000 0x08 + +int pcxhr_set_pipe_state(struct pcxhr_mgr *mgr, int playback_mask, int capture_mask, int start); + +int pcxhr_write_io_num_reg_cont(struct pcxhr_mgr *mgr, unsigned int mask, + unsigned int value, int *changed); + +/* codec parameters */ +#define CS8416_RUN 0x200401 +#define CS8416_FORMAT_DETECT 0x200b00 +#define CS8416_CSB0 0x201900 +#define CS8416_CSB1 0x201a00 +#define CS8416_CSB2 0x201b00 +#define CS8416_CSB3 0x201c00 +#define CS8416_CSB4 0x201d00 +#define CS8416_VERSION 0x207f00 + +#define CS8420_DATA_FLOW_CTL 0x200301 +#define CS8420_CLOCK_SRC_CTL 0x200401 +#define CS8420_RECEIVER_ERRORS 0x201000 +#define CS8420_SRC_RATIO 0x201e00 +#define CS8420_CSB0 0x202000 +#define CS8420_CSB1 0x202100 +#define CS8420_CSB2 0x202200 +#define CS8420_CSB3 0x202300 +#define CS8420_CSB4 0x202400 +#define CS8420_VERSION 0x207f00 + +#define CS4271_MODE_CTL_1 0x200101 +#define CS4271_DAC_CTL 0x200201 +#define CS4271_VOLMIX 0x200301 +#define CS4271_VOLMUTE_LEFT 0x200401 +#define CS4271_VOLMUTE_RIGHT 0x200501 +#define CS4271_ADC_CTL 0x200601 +#define CS4271_MODE_CTL_2 0x200701 + +#define CHIP_SIG_AND_MAP_SPI 0xff7f00 + +/* codec selection */ +#define CS4271_01_CS 0x160018 +#define CS4271_23_CS 0x160019 +#define CS4271_45_CS 0x16001a +#define CS4271_67_CS 0x16001b +#define CS4271_89_CS 0x16001c +#define CS4271_AB_CS 0x16001d +#define CS8420_01_CS 0x080090 +#define CS8420_23_CS 0x080092 +#define CS8420_45_CS 0x080094 +#define CS8420_67_CS 0x080096 +#define CS8416_01_CS 0x080098 + + +/* interrupt handling */ +irqreturn_t pcxhr_interrupt(int irq, void *dev_id, struct pt_regs *regs); +void pcxhr_msg_tasklet(unsigned long arg); + +#endif /* __SOUND_PCXHR_CORE_H */ diff --git a/sound/pci/pcxhr/pcxhr_hwdep.c b/sound/pci/pcxhr/pcxhr_hwdep.c new file mode 100644 index 00000000000..03517c10e99 --- /dev/null +++ b/sound/pci/pcxhr/pcxhr_hwdep.c @@ -0,0 +1,438 @@ +/* + * Driver for Digigram pcxhr compatible soundcards + * + * hwdep device manager + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "pcxhr.h" +#include "pcxhr_mixer.h" +#include "pcxhr_hwdep.h" +#include "pcxhr_core.h" + + +#if defined(CONFIG_FW_LOADER) || defined(CONFIG_FW_LOADER_MODULE) +#if !defined(CONFIG_USE_PCXHRLOADER) && !defined(CONFIG_SND_PCXHR) /* built-in kernel */ +#define SND_PCXHR_FW_LOADER /* use the standard firmware loader */ +#endif +#endif + + +/* + * get basic information and init pcxhr card + */ + +static int pcxhr_init_board(struct pcxhr_mgr *mgr) +{ + int err; + struct pcxhr_rmh rmh; + int card_streams; + + /* calc the number of all streams used */ + if (mgr->mono_capture) + card_streams = mgr->capture_chips * 2; + else + card_streams = mgr->capture_chips; + card_streams += mgr->playback_chips * PCXHR_PLAYBACK_STREAMS; + + /* enable interrupts */ + pcxhr_enable_dsp(mgr); + + pcxhr_init_rmh(&rmh, CMD_SUPPORTED); + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + /* test 8 or 12 phys out */ + snd_assert((rmh.stat[0] & MASK_FIRST_FIELD) == mgr->playback_chips*2, + return -EINVAL); + /* test 8 or 2 phys in */ + snd_assert(((rmh.stat[0] >> (2*FIELD_SIZE)) & MASK_FIRST_FIELD) == + mgr->capture_chips * 2, return -EINVAL); + /* test max nb substream per board */ + snd_assert((rmh.stat[1] & 0x5F) >= card_streams, return -EINVAL); + /* test max nb substream per pipe */ + snd_assert(((rmh.stat[1]>>7)&0x5F) >= PCXHR_PLAYBACK_STREAMS, return -EINVAL); + + pcxhr_init_rmh(&rmh, CMD_VERSION); + /* firmware num for DSP */ + rmh.cmd[0] |= mgr->firmware_num; + /* transfer granularity in samples (should be multiple of 48) */ + rmh.cmd[1] = (1<<23) + PCXHR_GRANULARITY; + rmh.cmd_len = 2; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + snd_printdd("PCXHR DSP version is %d.%d.%d\n", + (rmh.stat[0]>>16)&0xff, (rmh.stat[0]>>8)&0xff, rmh.stat[0]&0xff); + mgr->dsp_version = rmh.stat[0]; + + /* get options */ + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_READ); + rmh.cmd[0] |= IO_NUM_REG_STATUS; + rmh.cmd[1] = REG_STATUS_OPTIONS; + rmh.cmd_len = 2; + err = pcxhr_send_msg(mgr, &rmh); + if (err) + return err; + + if ((rmh.stat[1] & REG_STATUS_OPT_DAUGHTER_MASK) == REG_STATUS_OPT_ANALOG_BOARD) + mgr->board_has_analog = 1; /* analog addon board available */ + else + /* analog addon board not available -> no support for instance */ + return -EINVAL; + + /* unmute inputs */ + err = pcxhr_write_io_num_reg_cont(mgr, REG_CONT_UNMUTE_INPUTS, + REG_CONT_UNMUTE_INPUTS, NULL); + if (err) + return err; + /* unmute outputs */ + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_READ); /* a write to IO_NUM_REG_MUTE_OUT mutes! */ + rmh.cmd[0] |= IO_NUM_REG_MUTE_OUT; + err = pcxhr_send_msg(mgr, &rmh); + return err; +} + +void pcxhr_reset_board(struct pcxhr_mgr *mgr) +{ + struct pcxhr_rmh rmh; + + if (mgr->dsp_loaded & (1 << PCXHR_FIRMWARE_DSP_MAIN_INDEX)) { + /* mute outputs */ + /* a read to IO_NUM_REG_MUTE_OUT register unmutes! */ + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); + rmh.cmd[0] |= IO_NUM_REG_MUTE_OUT; + pcxhr_send_msg(mgr, &rmh); + /* mute inputs */ + pcxhr_write_io_num_reg_cont(mgr, REG_CONT_UNMUTE_INPUTS, 0, NULL); + } + /* reset pcxhr dsp */ + if (mgr->dsp_loaded & ( 1 << PCXHR_FIRMWARE_DSP_EPRM_INDEX)) + pcxhr_reset_dsp(mgr); + /* reset second xilinx */ + if (mgr->dsp_loaded & ( 1 << PCXHR_FIRMWARE_XLX_COM_INDEX)) + pcxhr_reset_xilinx_com(mgr); + return; +} + + +/* + * allocate a playback/capture pipe (pcmp0/pcmc0) + */ +static int pcxhr_dsp_allocate_pipe( struct pcxhr_mgr *mgr, struct pcxhr_pipe *pipe, + int is_capture, int pin) +{ + int stream_count, audio_count; + int err; + struct pcxhr_rmh rmh; + + if (is_capture) { + stream_count = 1; + if (mgr->mono_capture) + audio_count = 1; + else + audio_count = 2; + } else { + stream_count = PCXHR_PLAYBACK_STREAMS; + audio_count = 2; /* always stereo */ + } + snd_printdd("snd_add_ref_pipe pin(%d) pcm%c0\n", pin, is_capture ? 'c' : 'p'); + pipe->is_capture = is_capture; + pipe->first_audio = pin; + /* define pipe (P_PCM_ONLY_MASK (0x020000) is not necessary) */ + pcxhr_init_rmh(&rmh, CMD_RES_PIPE); + pcxhr_set_pipe_cmd_params(&rmh, is_capture, pin, audio_count, stream_count); + err = pcxhr_send_msg(mgr, &rmh); + if (err < 0) { + snd_printk(KERN_ERR "error pipe allocation (CMD_RES_PIPE) err=%x!\n", err ); + return err; + } + pipe->status = PCXHR_PIPE_DEFINED; + + return 0; +} + +/* + * free playback/capture pipe (pcmp0/pcmc0) + */ +#if 0 +static int pcxhr_dsp_free_pipe( struct pcxhr_mgr *mgr, struct pcxhr_pipe *pipe) +{ + struct pcxhr_rmh rmh; + int capture_mask = 0; + int playback_mask = 0; + int err = 0; + + if (pipe->is_capture) + capture_mask = (1 << pipe->first_audio); + else + playback_mask = (1 << pipe->first_audio); + + /* stop one pipe */ + err = pcxhr_set_pipe_state(mgr, playback_mask, capture_mask, 0); + if (err < 0) + snd_printk(KERN_ERR "error stopping pipe!\n"); + /* release the pipe */ + pcxhr_init_rmh(&rmh, CMD_FREE_PIPE); + pcxhr_set_pipe_cmd_params(&rmh, pipe->is_capture, pipe->first_audio, 0, 0); + err = pcxhr_send_msg(mgr, &rmh); + if (err < 0) + snd_printk(KERN_ERR "error pipe release (CMD_FREE_PIPE) err(%x)\n", err); + pipe->status = PCXHR_PIPE_UNDEFINED; + return err; +} +#endif + + +static int pcxhr_config_pipes(struct pcxhr_mgr *mgr) +{ + int err, i, j; + struct snd_pcxhr *chip; + struct pcxhr_pipe *pipe; + + /* allocate the pipes on the dsp */ + for (i = 0; i < mgr->num_cards; i++) { + chip = mgr->chip[i]; + if (chip->nb_streams_play) { + pipe = &chip->playback_pipe; + err = pcxhr_dsp_allocate_pipe( mgr, pipe, 0, i*2); + if (err) + return err; + for(j = 0; j < chip->nb_streams_play; j++) + chip->playback_stream[j].pipe = pipe; + } + for (j = 0; j < chip->nb_streams_capt; j++) { + pipe = &chip->capture_pipe[j]; + err = pcxhr_dsp_allocate_pipe(mgr, pipe, 1, i*2 + j); + if (err) + return err; + chip->capture_stream[j].pipe = pipe; + } + } + return 0; +} + +static int pcxhr_start_pipes(struct pcxhr_mgr *mgr) +{ + int i, j; + struct snd_pcxhr *chip; + int playback_mask = 0; + int capture_mask = 0; + + /* start all the pipes on the dsp */ + for (i = 0; i < mgr->num_cards; i++) { + chip = mgr->chip[i]; + if (chip->nb_streams_play) + playback_mask |= (1 << chip->playback_pipe.first_audio); + for (j = 0; j < chip->nb_streams_capt; j++) + capture_mask |= (1 << chip->capture_pipe[j].first_audio); + } + return pcxhr_set_pipe_state(mgr, playback_mask, capture_mask, 1); +} + + +static int pcxhr_dsp_load(struct pcxhr_mgr *mgr, int index, const struct firmware *dsp) +{ + int err, card_index; + + snd_printdd("loading dsp [%d] size = %Zd\n", index, dsp->size); + + switch (index) { + case PCXHR_FIRMWARE_XLX_INT_INDEX: + pcxhr_reset_xilinx_com(mgr); + return pcxhr_load_xilinx_binary(mgr, dsp, 0); + + case PCXHR_FIRMWARE_XLX_COM_INDEX: + pcxhr_reset_xilinx_com(mgr); + return pcxhr_load_xilinx_binary(mgr, dsp, 1); + + case PCXHR_FIRMWARE_DSP_EPRM_INDEX: + pcxhr_reset_dsp(mgr); + return pcxhr_load_eeprom_binary(mgr, dsp); + + case PCXHR_FIRMWARE_DSP_BOOT_INDEX: + return pcxhr_load_boot_binary(mgr, dsp); + + case PCXHR_FIRMWARE_DSP_MAIN_INDEX: + err = pcxhr_load_dsp_binary(mgr, dsp); + if (err) + return err; + break; /* continue with first init */ + default: + snd_printk(KERN_ERR "wrong file index\n"); + return -EFAULT; + } /* end of switch file index*/ + + /* first communication with embedded */ + err = pcxhr_init_board(mgr); + if (err < 0) { + snd_printk(KERN_ERR "pcxhr could not be set up\n"); + return err; + } + err = pcxhr_config_pipes(mgr); + if (err < 0) { + snd_printk(KERN_ERR "pcxhr pipes could not be set up\n"); + return err; + } + /* create devices and mixer in accordance with HW options*/ + for (card_index = 0; card_index < mgr->num_cards; card_index++) { + struct snd_pcxhr *chip = mgr->chip[card_index]; + + if ((err = pcxhr_create_pcm(chip)) < 0) + return err; + + if (card_index == 0) { + if ((err = pcxhr_create_mixer(chip->mgr)) < 0) + return err; + } + if ((err = snd_card_register(chip->card)) < 0) + return err; + } + err = pcxhr_start_pipes(mgr); + if (err < 0) { + snd_printk(KERN_ERR "pcxhr pipes could not be started\n"); + return err; + } + snd_printdd("pcxhr firmware downloaded and successfully set up\n"); + + return 0; +} + +/* + * fw loader entry + */ +#ifdef SND_PCXHR_FW_LOADER + +int pcxhr_setup_firmware(struct pcxhr_mgr *mgr) +{ + static char *fw_files[5] = { + "xi_1_882.dat", + "xc_1_882.dat", + "e321_512.e56", + "b321_512.b56", + "d321_512.d56" + }; + char path[32]; + + const struct firmware *fw_entry; + int i, err; + + for (i = 0; i < ARRAY_SIZE(fw_files); i++) { + sprintf(path, "pcxhr/%s", fw_files[i]); + if (request_firmware(&fw_entry, path, &mgr->pci->dev)) { + snd_printk(KERN_ERR "pcxhr: can't load firmware %s\n", path); + return -ENOENT; + } + /* fake hwdep dsp record */ + err = pcxhr_dsp_load(mgr, i, fw_entry); + release_firmware(fw_entry); + if (err < 0) + return err; + mgr->dsp_loaded |= 1 << i; + } + return 0; +} + +#else /* old style firmware loading */ + +/* pcxhr hwdep interface id string */ +#define PCXHR_HWDEP_ID "pcxhr loader" + + +static int pcxhr_hwdep_dsp_status(struct snd_hwdep *hw, + struct snd_hwdep_dsp_status *info) +{ + strcpy(info->id, "pcxhr"); + info->num_dsps = PCXHR_FIRMWARE_FILES_MAX_INDEX; + + if (hw->dsp_loaded & (1 << PCXHR_FIRMWARE_DSP_MAIN_INDEX)) + info->chip_ready = 1; + + info->version = PCXHR_DRIVER_VERSION; + return 0; +} + +static int pcxhr_hwdep_dsp_load(struct snd_hwdep *hw, + struct snd_hwdep_dsp_image *dsp) +{ + struct pcxhr_mgr *mgr = hw->private_data; + int err; + struct firmware fw; + + fw.size = dsp->length; + fw.data = vmalloc(fw.size); + if (! fw.data) { + snd_printk(KERN_ERR "pcxhr: cannot allocate dsp image (%d bytes)\n", + fw.size); + return -ENOMEM; + } + if (copy_from_user(fw.data, dsp->image, dsp->length)) { + vfree(fw.data); + return -EFAULT; + } + err = pcxhr_dsp_load(mgr, dsp->index, &fw); + vfree(fw.data); + if (err < 0) + return err; + mgr->dsp_loaded |= 1 << dsp->index; + return 0; +} + +static int pcxhr_hwdep_open(struct snd_hwdep *hw, struct file *file) +{ + return 0; +} + +static int pcxhr_hwdep_release(struct snd_hwdep *hw, struct file *file) +{ + return 0; +} + +int pcxhr_setup_firmware(struct pcxhr_mgr *mgr) +{ + int err; + struct snd_hwdep *hw; + + /* only create hwdep interface for first cardX (see "index" module parameter)*/ + if ((err = snd_hwdep_new(mgr->chip[0]->card, PCXHR_HWDEP_ID, 0, &hw)) < 0) + return err; + + hw->iface = SNDRV_HWDEP_IFACE_PCXHR; + hw->private_data = mgr; + hw->ops.open = pcxhr_hwdep_open; + hw->ops.release = pcxhr_hwdep_release; + hw->ops.dsp_status = pcxhr_hwdep_dsp_status; + hw->ops.dsp_load = pcxhr_hwdep_dsp_load; + hw->exclusive = 1; + mgr->dsp_loaded = 0; + sprintf(hw->name, PCXHR_HWDEP_ID); + + if ((err = snd_card_register(mgr->chip[0]->card)) < 0) + return err; + return 0; +} + +#endif /* SND_PCXHR_FW_LOADER */ diff --git a/sound/pci/pcxhr/pcxhr_hwdep.h b/sound/pci/pcxhr/pcxhr_hwdep.h new file mode 100644 index 00000000000..f561909dc05 --- /dev/null +++ b/sound/pci/pcxhr/pcxhr_hwdep.h @@ -0,0 +1,40 @@ +/* + * Driver for Digigram pcxhr compatible soundcards + * + * definitions and makros for basic card access + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __SOUND_PCXHR_HWDEP_H +#define __SOUND_PCXHR_HWDEP_H + + +/* firmware status codes */ +#define PCXHR_FIRMWARE_XLX_INT_INDEX 0 +#define PCXHR_FIRMWARE_XLX_COM_INDEX 1 +#define PCXHR_FIRMWARE_DSP_EPRM_INDEX 2 +#define PCXHR_FIRMWARE_DSP_BOOT_INDEX 3 +#define PCXHR_FIRMWARE_DSP_MAIN_INDEX 4 +#define PCXHR_FIRMWARE_FILES_MAX_INDEX 5 + + +/* exported */ +int pcxhr_setup_firmware(struct pcxhr_mgr *mgr); +void pcxhr_reset_board(struct pcxhr_mgr *mgr); + +#endif /* __SOUND_PCXHR_HWDEP_H */ diff --git a/sound/pci/pcxhr/pcxhr_mixer.c b/sound/pci/pcxhr/pcxhr_mixer.c new file mode 100644 index 00000000000..760e733ac25 --- /dev/null +++ b/sound/pci/pcxhr/pcxhr_mixer.c @@ -0,0 +1,1020 @@ +#define __NO_VERSION__ +/* + * Driver for Digigram pcxhr compatible soundcards + * + * mixer callbacks + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include "pcxhr.h" +#include "pcxhr_hwdep.h" +#include "pcxhr_core.h" +#include +#include +#include "pcxhr_mixer.h" + + +#define PCXHR_ANALOG_CAPTURE_LEVEL_MIN 0 /* -96.0 dB */ +#define PCXHR_ANALOG_CAPTURE_LEVEL_MAX 255 /* +31.5 dB */ +#define PCXHR_ANALOG_CAPTURE_ZERO_LEVEL 224 /* +16.0 dB ( +31.5 dB - fix level +15.5 dB ) */ + +#define PCXHR_ANALOG_PLAYBACK_LEVEL_MIN 0 /* -128.0 dB */ +#define PCXHR_ANALOG_PLAYBACK_LEVEL_MAX 128 /* 0.0 dB */ +#define PCXHR_ANALOG_PLAYBACK_ZERO_LEVEL 104 /* -24.0 dB ( 0.0 dB - fix level +24.0 dB ) */ + +static int pcxhr_update_analog_audio_level(struct snd_pcxhr *chip, int is_capture, int channel) +{ + int err, vol; + struct pcxhr_rmh rmh; + + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); + if (is_capture) { + rmh.cmd[0] |= IO_NUM_REG_IN_ANA_LEVEL; + rmh.cmd[2] = chip->analog_capture_volume[channel]; + } else { + rmh.cmd[0] |= IO_NUM_REG_OUT_ANA_LEVEL; + if (chip->analog_playback_active[channel]) + vol = chip->analog_playback_volume[channel]; + else + vol = PCXHR_ANALOG_PLAYBACK_LEVEL_MIN; + rmh.cmd[2] = PCXHR_ANALOG_PLAYBACK_LEVEL_MAX - vol; /* playback analog levels are inversed */ + } + rmh.cmd[1] = 1 << ((2 * chip->chip_idx) + channel); /* audio mask */ + rmh.cmd_len = 3; + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err < 0) { + snd_printk(KERN_DEBUG "error update_analog_audio_level card(%d) " + "is_capture(%d) err(%x)\n", chip->chip_idx, is_capture, err); + return -EINVAL; + } + return 0; +} + +/* + * analog level control + */ +static int pcxhr_analog_vol_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; + uinfo->count = 2; + if (kcontrol->private_value == 0) { /* playback */ + uinfo->value.integer.min = PCXHR_ANALOG_PLAYBACK_LEVEL_MIN; /* -128 dB */ + uinfo->value.integer.max = PCXHR_ANALOG_PLAYBACK_LEVEL_MAX; /* 0 dB */ + } else { /* capture */ + uinfo->value.integer.min = PCXHR_ANALOG_CAPTURE_LEVEL_MIN; /* -96 dB */ + uinfo->value.integer.max = PCXHR_ANALOG_CAPTURE_LEVEL_MAX; /* 31.5 dB */ + } + return 0; +} + +static int pcxhr_analog_vol_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + down(&chip->mgr->mixer_mutex); + if (kcontrol->private_value == 0) { /* playback */ + ucontrol->value.integer.value[0] = chip->analog_playback_volume[0]; + ucontrol->value.integer.value[1] = chip->analog_playback_volume[1]; + } else { /* capture */ + ucontrol->value.integer.value[0] = chip->analog_capture_volume[0]; + ucontrol->value.integer.value[1] = chip->analog_capture_volume[1]; + } + up(&chip->mgr->mixer_mutex); + return 0; +} + +static int pcxhr_analog_vol_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int changed = 0; + int is_capture, i; + + down(&chip->mgr->mixer_mutex); + is_capture = (kcontrol->private_value != 0); + for (i = 0; i < 2; i++) { + int new_volume = ucontrol->value.integer.value[i]; + int* stored_volume = is_capture ? &chip->analog_capture_volume[i] : + &chip->analog_playback_volume[i]; + if (*stored_volume != new_volume) { + *stored_volume = new_volume; + changed = 1; + pcxhr_update_analog_audio_level(chip, is_capture, i); + } + } + up(&chip->mgr->mixer_mutex); + return changed; +} + +static struct snd_kcontrol_new pcxhr_control_analog_level = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* name will be filled later */ + .info = pcxhr_analog_vol_info, + .get = pcxhr_analog_vol_get, + .put = pcxhr_analog_vol_put, +}; + +/* shared */ +static int pcxhr_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; + uinfo->count = 2; + uinfo->value.integer.min = 0; + uinfo->value.integer.max = 1; + return 0; +} + +static int pcxhr_audio_sw_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + + down(&chip->mgr->mixer_mutex); + ucontrol->value.integer.value[0] = chip->analog_playback_active[0]; + ucontrol->value.integer.value[1] = chip->analog_playback_active[1]; + up(&chip->mgr->mixer_mutex); + return 0; +} + +static int pcxhr_audio_sw_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int i, changed = 0; + down(&chip->mgr->mixer_mutex); + for(i = 0; i < 2; i++) { + if (chip->analog_playback_active[i] != ucontrol->value.integer.value[i]) { + chip->analog_playback_active[i] = ucontrol->value.integer.value[i]; + changed = 1; + pcxhr_update_analog_audio_level(chip, 0, i); /* update playback levels */ + } + } + up(&chip->mgr->mixer_mutex); + return changed; +} + +static struct snd_kcontrol_new pcxhr_control_output_switch = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Master Playback Switch", + .info = pcxhr_sw_info, /* shared */ + .get = pcxhr_audio_sw_get, + .put = pcxhr_audio_sw_put +}; + + +#define PCXHR_DIGITAL_LEVEL_MIN 0x000 /* -110 dB */ +#define PCXHR_DIGITAL_LEVEL_MAX 0x1ff /* +18 dB */ +#define PCXHR_DIGITAL_ZERO_LEVEL 0x1b7 /* 0 dB */ + + +#define MORE_THAN_ONE_STREAM_LEVEL 0x000001 +#define VALID_STREAM_PAN_LEVEL_MASK 0x800000 +#define VALID_STREAM_LEVEL_MASK 0x400000 +#define VALID_STREAM_LEVEL_1_MASK 0x200000 +#define VALID_STREAM_LEVEL_2_MASK 0x100000 + +static int pcxhr_update_playback_stream_level(struct snd_pcxhr* chip, int idx) +{ + int err; + struct pcxhr_rmh rmh; + struct pcxhr_pipe *pipe = &chip->playback_pipe; + int left, right; + + if (chip->digital_playback_active[idx][0]) + left = chip->digital_playback_volume[idx][0]; + else + left = PCXHR_DIGITAL_LEVEL_MIN; + if (chip->digital_playback_active[idx][1]) + right = chip->digital_playback_volume[idx][1]; + else + right = PCXHR_DIGITAL_LEVEL_MIN; + + pcxhr_init_rmh(&rmh, CMD_STREAM_OUT_LEVEL_ADJUST); + /* add pipe and stream mask */ + pcxhr_set_pipe_cmd_params(&rmh, 0, pipe->first_audio, 0, 1<left / right->right panoramic level */ + rmh.cmd[0] |= MORE_THAN_ONE_STREAM_LEVEL; + rmh.cmd[2] = VALID_STREAM_PAN_LEVEL_MASK | VALID_STREAM_LEVEL_1_MASK; + rmh.cmd[2] |= (left << 10); + rmh.cmd[3] = VALID_STREAM_PAN_LEVEL_MASK | VALID_STREAM_LEVEL_2_MASK; + rmh.cmd[3] |= right; + rmh.cmd_len = 4; + + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err < 0) { + snd_printk(KERN_DEBUG "error update_playback_stream_level " + "card(%d) err(%x)\n", chip->chip_idx, err); + return -EINVAL; + } + return 0; +} + +#define AUDIO_IO_HAS_MUTE_LEVEL 0x400000 +#define AUDIO_IO_HAS_MUTE_MONITOR_1 0x200000 +#define VALID_AUDIO_IO_DIGITAL_LEVEL 0x000001 +#define VALID_AUDIO_IO_MONITOR_LEVEL 0x000002 +#define VALID_AUDIO_IO_MUTE_LEVEL 0x000004 +#define VALID_AUDIO_IO_MUTE_MONITOR_1 0x000008 + +static int pcxhr_update_audio_pipe_level(struct snd_pcxhr* chip, int capture, int channel) +{ + int err; + struct pcxhr_rmh rmh; + struct pcxhr_pipe *pipe; + + if (capture) + pipe = &chip->capture_pipe[0]; + else + pipe = &chip->playback_pipe; + + pcxhr_init_rmh(&rmh, CMD_AUDIO_LEVEL_ADJUST); + /* add channel mask */ + pcxhr_set_pipe_cmd_params(&rmh, capture, 0, 0, 1 << (channel + pipe->first_audio)); + /* TODO : if mask (3 << pipe->first_audio) is used, left and right channel + * will be programmed to the same params + */ + if (capture) { + rmh.cmd[0] |= VALID_AUDIO_IO_DIGITAL_LEVEL; + /* VALID_AUDIO_IO_MUTE_LEVEL not yet handled (capture pipe level) */ + rmh.cmd[2] = chip->digital_capture_volume[channel]; + } else { + rmh.cmd[0] |= VALID_AUDIO_IO_MONITOR_LEVEL | VALID_AUDIO_IO_MUTE_MONITOR_1; + /* VALID_AUDIO_IO_DIGITAL_LEVEL and VALID_AUDIO_IO_MUTE_LEVEL not yet + * handled (playback pipe level) + */ + rmh.cmd[2] = chip->monitoring_volume[channel] << 10; + if (chip->monitoring_active[channel] == 0) + rmh.cmd[2] |= AUDIO_IO_HAS_MUTE_MONITOR_1; + } + rmh.cmd_len = 3; + + err = pcxhr_send_msg(chip->mgr, &rmh); + if(err<0) { + snd_printk(KERN_DEBUG "error update_audio_level card(%d) err(%x)\n", + chip->chip_idx, err); + return -EINVAL; + } + return 0; +} + + +/* shared */ +static int pcxhr_digital_vol_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; + uinfo->count = 2; + uinfo->value.integer.min = PCXHR_DIGITAL_LEVEL_MIN; /* -109.5 dB */ + uinfo->value.integer.max = PCXHR_DIGITAL_LEVEL_MAX; /* 18.0 dB */ + return 0; +} + + +static int pcxhr_pcm_vol_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ + int *stored_volume; + int is_capture = kcontrol->private_value; + + down(&chip->mgr->mixer_mutex); + if (is_capture) + stored_volume = chip->digital_capture_volume; /* digital capture */ + else + stored_volume = chip->digital_playback_volume[idx]; /* digital playback */ + ucontrol->value.integer.value[0] = stored_volume[0]; + ucontrol->value.integer.value[1] = stored_volume[1]; + up(&chip->mgr->mixer_mutex); + return 0; +} + +static int pcxhr_pcm_vol_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ + int changed = 0; + int is_capture = kcontrol->private_value; + int *stored_volume; + int i; + + down(&chip->mgr->mixer_mutex); + if (is_capture) + stored_volume = chip->digital_capture_volume; /* digital capture */ + else + stored_volume = chip->digital_playback_volume[idx]; /* digital playback */ + for (i = 0; i < 2; i++) { + if (stored_volume[i] != ucontrol->value.integer.value[i]) { + stored_volume[i] = ucontrol->value.integer.value[i]; + changed = 1; + if (is_capture) /* update capture volume */ + pcxhr_update_audio_pipe_level(chip, 1, i); + } + } + if (! is_capture && changed) + pcxhr_update_playback_stream_level(chip, idx); /* update playback volume */ + up(&chip->mgr->mixer_mutex); + return changed; +} + +static struct snd_kcontrol_new snd_pcxhr_pcm_vol = +{ + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* name will be filled later */ + /* count will be filled later */ + .info = pcxhr_digital_vol_info, /* shared */ + .get = pcxhr_pcm_vol_get, + .put = pcxhr_pcm_vol_put, +}; + + +static int pcxhr_pcm_sw_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ + + down(&chip->mgr->mixer_mutex); + ucontrol->value.integer.value[0] = chip->digital_playback_active[idx][0]; + ucontrol->value.integer.value[1] = chip->digital_playback_active[idx][1]; + up(&chip->mgr->mixer_mutex); + return 0; +} + +static int pcxhr_pcm_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int changed = 0; + int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ + int i, j; + + down(&chip->mgr->mixer_mutex); + j = idx; + for (i = 0; i < 2; i++) { + if (chip->digital_playback_active[j][i] != ucontrol->value.integer.value[i]) { + chip->digital_playback_active[j][i] = ucontrol->value.integer.value[i]; + changed = 1; + } + } + if (changed) + pcxhr_update_playback_stream_level(chip, idx); + up(&chip->mgr->mixer_mutex); + return changed; +} + +static struct snd_kcontrol_new pcxhr_control_pcm_switch = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "PCM Playback Switch", + .count = PCXHR_PLAYBACK_STREAMS, + .info = pcxhr_sw_info, /* shared */ + .get = pcxhr_pcm_sw_get, + .put = pcxhr_pcm_sw_put +}; + + +/* + * monitoring level control + */ + +static int pcxhr_monitor_vol_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + down(&chip->mgr->mixer_mutex); + ucontrol->value.integer.value[0] = chip->monitoring_volume[0]; + ucontrol->value.integer.value[1] = chip->monitoring_volume[1]; + up(&chip->mgr->mixer_mutex); + return 0; +} + +static int pcxhr_monitor_vol_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int changed = 0; + int i; + + down(&chip->mgr->mixer_mutex); + for (i = 0; i < 2; i++) { + if (chip->monitoring_volume[i] != ucontrol->value.integer.value[i]) { + chip->monitoring_volume[i] = ucontrol->value.integer.value[i]; + if(chip->monitoring_active[i]) /* do only when monitoring is unmuted */ + /* update monitoring volume and mute */ + pcxhr_update_audio_pipe_level(chip, 0, i); + changed = 1; + } + } + up(&chip->mgr->mixer_mutex); + return changed; +} + +static struct snd_kcontrol_new pcxhr_control_monitor_vol = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Monitoring Volume", + .info = pcxhr_digital_vol_info, /* shared */ + .get = pcxhr_monitor_vol_get, + .put = pcxhr_monitor_vol_put, +}; + +/* + * monitoring switch control + */ + +static int pcxhr_monitor_sw_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + down(&chip->mgr->mixer_mutex); + ucontrol->value.integer.value[0] = chip->monitoring_active[0]; + ucontrol->value.integer.value[1] = chip->monitoring_active[1]; + up(&chip->mgr->mixer_mutex); + return 0; +} + +static int pcxhr_monitor_sw_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int changed = 0; + int i; + + down(&chip->mgr->mixer_mutex); + for (i = 0; i < 2; i++) { + if (chip->monitoring_active[i] != ucontrol->value.integer.value[i]) { + chip->monitoring_active[i] = ucontrol->value.integer.value[i]; + changed |= (1<mgr->mixer_mutex); + return (changed != 0); +} + +static struct snd_kcontrol_new pcxhr_control_monitor_sw = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Monitoring Switch", + .info = pcxhr_sw_info, /* shared */ + .get = pcxhr_monitor_sw_get, + .put = pcxhr_monitor_sw_put +}; + + + +/* + * audio source select + */ +#define PCXHR_SOURCE_AUDIO01_UER 0x000100 +#define PCXHR_SOURCE_AUDIO01_SYNC 0x000200 +#define PCXHR_SOURCE_AUDIO23_UER 0x000400 +#define PCXHR_SOURCE_AUDIO45_UER 0x001000 +#define PCXHR_SOURCE_AUDIO67_UER 0x040000 + +static int pcxhr_set_audio_source(struct snd_pcxhr* chip) +{ + struct pcxhr_rmh rmh; + unsigned int mask, reg; + unsigned int codec; + int err, use_src, changed; + + switch (chip->chip_idx) { + case 0 : mask = PCXHR_SOURCE_AUDIO01_UER; codec = CS8420_01_CS; break; + case 1 : mask = PCXHR_SOURCE_AUDIO23_UER; codec = CS8420_23_CS; break; + case 2 : mask = PCXHR_SOURCE_AUDIO45_UER; codec = CS8420_45_CS; break; + case 3 : mask = PCXHR_SOURCE_AUDIO67_UER; codec = CS8420_67_CS; break; + default: return -EINVAL; + } + reg = 0; /* audio source from analog plug */ + use_src = 0; /* do not activate codec SRC */ + + if (chip->audio_capture_source != 0) { + reg = mask; /* audio source from digital plug */ + if (chip->audio_capture_source == 2) + use_src = 1; + } + /* set the input source */ + pcxhr_write_io_num_reg_cont(chip->mgr, mask, reg, &changed); + /* resync them (otherwise channel inversion possible) */ + if (changed) { + pcxhr_init_rmh(&rmh, CMD_RESYNC_AUDIO_INPUTS); + rmh.cmd[0] |= (1 << chip->chip_idx); + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err) + return err; + } + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); /* set codec SRC on off */ + rmh.cmd_len = 3; + rmh.cmd[0] |= IO_NUM_UER_CHIP_REG; + rmh.cmd[1] = codec; + rmh.cmd[2] = (CS8420_DATA_FLOW_CTL & CHIP_SIG_AND_MAP_SPI) | (use_src ? 0x41 : 0x54); + err = pcxhr_send_msg(chip->mgr, &rmh); + if(err) + return err; + rmh.cmd[2] = (CS8420_CLOCK_SRC_CTL & CHIP_SIG_AND_MAP_SPI) | (use_src ? 0x41 : 0x49); + err = pcxhr_send_msg(chip->mgr, &rmh); + return err; +} + +static int pcxhr_audio_src_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + static char *texts[3] = {"Analog", "Digital", "Digi+SRC"}; + + uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; + uinfo->count = 1; + uinfo->value.enumerated.items = 3; + if (uinfo->value.enumerated.item > 2) + uinfo->value.enumerated.item = 2; + strcpy(uinfo->value.enumerated.name, + texts[uinfo->value.enumerated.item]); + return 0; +} + +static int pcxhr_audio_src_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + ucontrol->value.enumerated.item[0] = chip->audio_capture_source; + return 0; +} + +static int pcxhr_audio_src_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int ret = 0; + + down(&chip->mgr->mixer_mutex); + if (chip->audio_capture_source != ucontrol->value.enumerated.item[0]) { + chip->audio_capture_source = ucontrol->value.enumerated.item[0]; + pcxhr_set_audio_source(chip); + ret = 1; + } + up(&chip->mgr->mixer_mutex); + return ret; +} + +static struct snd_kcontrol_new pcxhr_control_audio_src = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .info = pcxhr_audio_src_info, + .get = pcxhr_audio_src_get, + .put = pcxhr_audio_src_put, +}; + + +/* + * clock type selection + * enum pcxhr_clock_type { + * PCXHR_CLOCK_TYPE_INTERNAL = 0, + * PCXHR_CLOCK_TYPE_WORD_CLOCK, + * PCXHR_CLOCK_TYPE_AES_SYNC, + * PCXHR_CLOCK_TYPE_AES_1, + * PCXHR_CLOCK_TYPE_AES_2, + * PCXHR_CLOCK_TYPE_AES_3, + * PCXHR_CLOCK_TYPE_AES_4, + * }; + */ + +static int pcxhr_clock_type_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + static char *texts[7] = { + "Internal", "WordClock", "AES Sync", "AES 1", "AES 2", "AES 3", "AES 4" + }; + struct pcxhr_mgr *mgr = snd_kcontrol_chip(kcontrol); + int clock_items = 3 + mgr->capture_chips; + + uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; + uinfo->count = 1; + uinfo->value.enumerated.items = clock_items; + if (uinfo->value.enumerated.item >= clock_items) + uinfo->value.enumerated.item = clock_items-1; + strcpy(uinfo->value.enumerated.name, + texts[uinfo->value.enumerated.item]); + return 0; +} + +static int pcxhr_clock_type_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct pcxhr_mgr *mgr = snd_kcontrol_chip(kcontrol); + ucontrol->value.enumerated.item[0] = mgr->use_clock_type; + return 0; +} + +static int pcxhr_clock_type_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct pcxhr_mgr *mgr = snd_kcontrol_chip(kcontrol); + int rate, ret = 0; + + down(&mgr->mixer_mutex); + if (mgr->use_clock_type != ucontrol->value.enumerated.item[0]) { + down(&mgr->setup_mutex); + mgr->use_clock_type = ucontrol->value.enumerated.item[0]; + if (mgr->use_clock_type) + pcxhr_get_external_clock(mgr, mgr->use_clock_type, &rate); + else + rate = mgr->sample_rate; + if (rate) { + pcxhr_set_clock(mgr, rate); + if (mgr->sample_rate) + mgr->sample_rate = rate; + } + up(&mgr->setup_mutex); + ret = 1; /* return 1 even if the set was not done. ok ? */ + } + up(&mgr->mixer_mutex); + return ret; +} + +static struct snd_kcontrol_new pcxhr_control_clock_type = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Clock Mode", + .info = pcxhr_clock_type_info, + .get = pcxhr_clock_type_get, + .put = pcxhr_clock_type_put, +}; + +/* + * clock rate control + * specific control that scans the sample rates on the external plugs + */ +static int pcxhr_clock_rate_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) +{ + struct pcxhr_mgr *mgr = snd_kcontrol_chip(kcontrol); + uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; + uinfo->count = 3 + mgr->capture_chips; + uinfo->value.integer.min = 0; /* clock not present */ + uinfo->value.integer.max = 192000; /* max sample rate 192 kHz */ + return 0; +} + +static int pcxhr_clock_rate_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct pcxhr_mgr *mgr = snd_kcontrol_chip(kcontrol); + int i, err, rate; + + down(&mgr->mixer_mutex); + for(i = 0; i < 3 + mgr->capture_chips; i++) { + if (i == PCXHR_CLOCK_TYPE_INTERNAL) + rate = mgr->sample_rate_real; + else { + err = pcxhr_get_external_clock(mgr, i, &rate); + if (err) + break; + } + ucontrol->value.integer.value[i] = rate; + } + up(&mgr->mixer_mutex); + return 0; +} + +static struct snd_kcontrol_new pcxhr_control_clock_rate = { + .access = SNDRV_CTL_ELEM_ACCESS_READ, + .iface = SNDRV_CTL_ELEM_IFACE_CARD, + .name = "Clock Rates", + .info = pcxhr_clock_rate_info, + .get = pcxhr_clock_rate_get, +}; + +/* + * IEC958 status bits + */ +static int pcxhr_iec958_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; + uinfo->count = 1; + return 0; +} + +static int pcxhr_iec958_capture_byte(struct snd_pcxhr *chip, int aes_idx, unsigned char* aes_bits) +{ + int i, err; + unsigned char temp; + struct pcxhr_rmh rmh; + + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_READ); + rmh.cmd[0] |= IO_NUM_UER_CHIP_REG; + switch (chip->chip_idx) { + case 0: rmh.cmd[1] = CS8420_01_CS; break; /* use CS8416_01_CS for AES SYNC plug */ + case 1: rmh.cmd[1] = CS8420_23_CS; break; + case 2: rmh.cmd[1] = CS8420_45_CS; break; + case 3: rmh.cmd[1] = CS8420_67_CS; break; + default: return -EINVAL; + } + switch (aes_idx) { + case 0: rmh.cmd[2] = CS8420_CSB0; break; /* use CS8416_CSBx for AES SYNC plug */ + case 1: rmh.cmd[2] = CS8420_CSB1; break; + case 2: rmh.cmd[2] = CS8420_CSB2; break; + case 3: rmh.cmd[2] = CS8420_CSB3; break; + case 4: rmh.cmd[2] = CS8420_CSB4; break; + default: return -EINVAL; + } + rmh.cmd[1] &= 0x0fffff; /* size and code the chip id for the fpga */ + rmh.cmd[2] &= CHIP_SIG_AND_MAP_SPI; /* chip signature + map for spi read */ + rmh.cmd_len = 3; + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err) + return err; + temp = 0; + for (i = 0; i < 8; i++) { + /* attention : reversed bit order (not with CS8416_01_CS) */ + temp <<= 1; + if (rmh.stat[1] & (1 << i)) + temp |= 1; + } + snd_printdd("read iec958 AES %d byte %d = 0x%x\n", chip->chip_idx, aes_idx, temp); + *aes_bits = temp; + return 0; +} + +static int pcxhr_iec958_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + unsigned char aes_bits; + int i, err; + + down(&chip->mgr->mixer_mutex); + for(i = 0; i < 5; i++) { + if (kcontrol->private_value == 0) /* playback */ + aes_bits = chip->aes_bits[i]; + else { /* capture */ + err = pcxhr_iec958_capture_byte(chip, i, &aes_bits); + if (err) + break; + } + ucontrol->value.iec958.status[i] = aes_bits; + } + up(&chip->mgr->mixer_mutex); + return 0; +} + +static int pcxhr_iec958_mask_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + int i; + for (i = 0; i < 5; i++) + ucontrol->value.iec958.status[i] = 0xff; + return 0; +} + +static int pcxhr_iec958_update_byte(struct snd_pcxhr *chip, int aes_idx, unsigned char aes_bits) +{ + int i, err, cmd; + unsigned char new_bits = aes_bits; + unsigned char old_bits = chip->aes_bits[aes_idx]; + struct pcxhr_rmh rmh; + + for (i = 0; i < 8; i++) { + if ((old_bits & 0x01) != (new_bits & 0x01)) { + cmd = chip->chip_idx & 0x03; /* chip index 0..3 */ + if(chip->chip_idx > 3) + /* new bit used if chip_idx>3 (PCX1222HR) */ + cmd |= 1 << 22; + cmd |= ((aes_idx << 3) + i) << 2; /* add bit offset */ + cmd |= (new_bits & 0x01) << 23; /* add bit value */ + pcxhr_init_rmh(&rmh, CMD_ACCESS_IO_WRITE); + rmh.cmd[0] |= IO_NUM_REG_CUER; + rmh.cmd[1] = cmd; + rmh.cmd_len = 2; + snd_printdd("write iec958 AES %d byte %d bit %d (cmd %x)\n", + chip->chip_idx, aes_idx, i, cmd); + err = pcxhr_send_msg(chip->mgr, &rmh); + if (err) + return err; + } + old_bits >>= 1; + new_bits >>= 1; + } + chip->aes_bits[aes_idx] = aes_bits; + return 0; +} + +static int pcxhr_iec958_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); + int i, changed = 0; + + /* playback */ + down(&chip->mgr->mixer_mutex); + for (i = 0; i < 5; i++) { + if (ucontrol->value.iec958.status[i] != chip->aes_bits[i]) { + pcxhr_iec958_update_byte(chip, i, ucontrol->value.iec958.status[i]); + changed = 1; + } + } + up(&chip->mgr->mixer_mutex); + return changed; +} + +static struct snd_kcontrol_new pcxhr_control_playback_iec958_mask = { + .access = SNDRV_CTL_ELEM_ACCESS_READ, + .iface = SNDRV_CTL_ELEM_IFACE_PCM, + .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), + .info = pcxhr_iec958_info, + .get = pcxhr_iec958_mask_get +}; +static struct snd_kcontrol_new pcxhr_control_playback_iec958 = { + .iface = SNDRV_CTL_ELEM_IFACE_PCM, + .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), + .info = pcxhr_iec958_info, + .get = pcxhr_iec958_get, + .put = pcxhr_iec958_put, + .private_value = 0 /* playback */ +}; + +static struct snd_kcontrol_new pcxhr_control_capture_iec958_mask = { + .access = SNDRV_CTL_ELEM_ACCESS_READ, + .iface = SNDRV_CTL_ELEM_IFACE_PCM, + .name = SNDRV_CTL_NAME_IEC958("",CAPTURE,MASK), + .info = pcxhr_iec958_info, + .get = pcxhr_iec958_mask_get +}; +static struct snd_kcontrol_new pcxhr_control_capture_iec958 = { + .access = SNDRV_CTL_ELEM_ACCESS_READ, + .iface = SNDRV_CTL_ELEM_IFACE_PCM, + .name = SNDRV_CTL_NAME_IEC958("",CAPTURE,DEFAULT), + .info = pcxhr_iec958_info, + .get = pcxhr_iec958_get, + .private_value = 1 /* capture */ +}; + +static void pcxhr_init_audio_levels(struct snd_pcxhr *chip) +{ + int i; + + for (i = 0; i < 2; i++) { + if (chip->nb_streams_play) { + int j; + /* at boot time the digital volumes are unmuted 0dB */ + for (j = 0; j < PCXHR_PLAYBACK_STREAMS; j++) { + chip->digital_playback_active[j][i] = 1; + chip->digital_playback_volume[j][i] = PCXHR_DIGITAL_ZERO_LEVEL; + } + /* after boot, only two bits are set on the uer interface */ + chip->aes_bits[0] = IEC958_AES0_PROFESSIONAL | IEC958_AES0_PRO_FS_48000; +/* only for test purpose, remove later */ +#ifdef CONFIG_SND_DEBUG + /* analog volumes for playback (is LEVEL_MIN after boot) */ + chip->analog_playback_active[i] = 1; + chip->analog_playback_volume[i] = PCXHR_ANALOG_PLAYBACK_ZERO_LEVEL; + pcxhr_update_analog_audio_level(chip, 0, i); +#endif +/* test end */ + } + if (chip->nb_streams_capt) { + /* at boot time the digital volumes are unmuted 0dB */ + chip->digital_capture_volume[i] = PCXHR_DIGITAL_ZERO_LEVEL; +/* only for test purpose, remove later */ +#ifdef CONFIG_SND_DEBUG + /* analog volumes for playback (is LEVEL_MIN after boot) */ + chip->analog_capture_volume[i] = PCXHR_ANALOG_CAPTURE_ZERO_LEVEL; + pcxhr_update_analog_audio_level(chip, 1, i); +#endif +/* test end */ + } + } + + return; +} + + +int pcxhr_create_mixer(struct pcxhr_mgr *mgr) +{ + struct snd_pcxhr *chip; + int err, i; + + init_MUTEX(&mgr->mixer_mutex); /* can be in another place */ + + for (i = 0; i < mgr->num_cards; i++) { + struct snd_kcontrol_new temp; + chip = mgr->chip[i]; + + if (chip->nb_streams_play) { + /* analog output level control */ + temp = pcxhr_control_analog_level; + temp.name = "Master Playback Volume"; + temp.private_value = 0; /* playback */ + if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) + return err; + /* output mute controls */ + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_output_switch, + chip))) < 0) + return err; + + temp = snd_pcxhr_pcm_vol; + temp.name = "PCM Playback Volume"; + temp.count = PCXHR_PLAYBACK_STREAMS; + temp.private_value = 0; /* playback */ + if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) + return err; + + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_pcm_switch, + chip))) < 0) + return err; + + /* IEC958 controls */ + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_playback_iec958_mask, + chip))) < 0) + return err; + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_playback_iec958, + chip))) < 0) + return err; + } + if (chip->nb_streams_capt) { + /* analog input level control only on first two chips !*/ + temp = pcxhr_control_analog_level; + temp.name = "Master Capture Volume"; + temp.private_value = 1; /* capture */ + if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) + return err; + + temp = snd_pcxhr_pcm_vol; + temp.name = "PCM Capture Volume"; + temp.count = 1; + temp.private_value = 1; /* capture */ + if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&temp, chip))) < 0) + return err; + /* Audio source */ + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_audio_src, + chip))) < 0) + return err; + /* IEC958 controls */ + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_capture_iec958_mask, + chip))) < 0) + return err; + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_capture_iec958, + chip))) < 0) + return err; + } + /* monitoring only if playback and capture device available */ + if (chip->nb_streams_capt > 0 && chip->nb_streams_play > 0) { + /* monitoring */ + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_monitor_vol, + chip))) < 0) + return err; + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_monitor_sw, + chip))) < 0) + return err; + } + + if (i == 0) { + /* clock mode only one control per pcxhr */ + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_clock_type, + mgr))) < 0) + return err; + /* non standard control used to scan the external clock presence/frequencies */ + if ((err = snd_ctl_add(chip->card, + snd_ctl_new1(&pcxhr_control_clock_rate, + mgr))) < 0) + return err; + } + + /* init values for the mixer data */ + pcxhr_init_audio_levels(chip); + } + + return 0; +} diff --git a/sound/pci/pcxhr/pcxhr_mixer.h b/sound/pci/pcxhr/pcxhr_mixer.h new file mode 100644 index 00000000000..4348d0e55ba --- /dev/null +++ b/sound/pci/pcxhr/pcxhr_mixer.h @@ -0,0 +1,29 @@ +/* + * Driver for Digigram pcxhr compatible soundcards + * + * include file for mixer + * + * Copyright (c) 2004 by Digigram + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __SOUND_PCXHR_MIXER_H +#define __SOUND_PCXHR_MIXER_H + +/* exported */ +int pcxhr_create_mixer(struct pcxhr_mgr *mgr); + +#endif /* __SOUND_PCXHR_MIXER_H */ -- cgit v1.2.3-70-g09d2 From a0faefedf7d81b6ead6a33e5576a6439606d7ed5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 6 Dec 2005 13:59:12 +0100 Subject: [ALSA] Add a new quirk for mute-LED and HP-only. Modules: AC97 Codec,ATIIXP driver,Intel8x0 driver This patch adds a new quirk for ac97 hardware that combines the existing AC97_TUNE_MUTE_LED and AC97_TUNE_HP_ONLY quirks. This is needed for several current HP laptops. Additionally, it adds the HP nx6125 to the AC97_TUNE_MUTE_LED list. Fixed for the latest version of ALSA by Takashi Iwai . Signed-off-by: Matthew Garrett Signed-off-by: Takashi Iwai --- include/sound/ac97_codec.h | 1 + sound/pci/ac97/ac97_codec.c | 36 ++++++++++++++++++++++++++++++++++++ sound/pci/atiixp.c | 6 ++++++ sound/pci/intel8x0.c | 24 ++++++++++++++++++++++++ 4 files changed, 67 insertions(+) (limited to 'sound/pci') diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index a1814cd9549..b0b3ea7b365 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h @@ -541,6 +541,7 @@ enum { AC97_TUNE_ALC_JACK, /* for Realtek, enable JACK detection */ AC97_TUNE_INV_EAPD, /* inverted EAPD implementation */ AC97_TUNE_MUTE_LED, /* EAPD bit works as mute LED */ + AC97_TUNE_HP_MUTE_LED, /* EAPD bit works as mute LED, use headphone control as master */ }; struct ac97_quirk { diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 33d7a1fc2f9..3020ca2b602 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -2457,6 +2457,41 @@ static int tune_mute_led(struct snd_ac97 *ac97) return 0; } +static int hp_master_mute_sw_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + int err = bind_hp_volsw_put(kcontrol, ucontrol); + if (err > 0) { + struct snd_ac97 *ac97 = snd_kcontrol_chip(kcontrol); + int shift = (kcontrol->private_value >> 8) & 0x0f; + int rshift = (kcontrol->private_value >> 12) & 0x0f; + unsigned short mask; + if (shift != rshift) + mask = 0x8080; + else + mask = 0x8000; + snd_ac97_update_bits(ac97, AC97_POWERDOWN, 0x8000, + (ac97->regs[AC97_MASTER] & mask) == mask ? + 0x8000 : 0); + } + return err; +} + +static int tune_hp_mute_led(struct snd_ac97 *ac97) +{ + struct snd_kcontrol *msw = ctl_find(ac97, "Master Playback Switch", NULL); + struct snd_kcontrol *mvol = ctl_find(ac97, "Master Playback Volume", NULL); + if (! msw || ! mvol) + return -ENOENT; + msw->put = hp_master_mute_sw_put; + mvol->put = bind_hp_volsw_put; + snd_ac97_remove_ctl(ac97, "External Amplifier", NULL); + snd_ac97_remove_ctl(ac97, "Headphone Playback", "Switch"); + snd_ac97_remove_ctl(ac97, "Headphone Playback", "Volume"); + snd_ac97_update_bits(ac97, AC97_POWERDOWN, 0x8000, 0x8000); /* mute LED on */ + return 0; +} + struct quirk_table { const char *name; int (*func)(struct snd_ac97 *); @@ -2471,6 +2506,7 @@ static struct quirk_table applicable_quirks[] = { { "alc_jack", tune_alc_jack }, { "inv_eapd", tune_inv_eapd }, { "mute_led", tune_mute_led }, + { "hp_mute_led", tune_hp_mute_led }, }; /* apply the quirk with the given type */ diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 33e0664a192..b7217adaf1d 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -1353,6 +1353,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { .name = "HP Pavilion ZV5030US", .type = AC97_TUNE_MUTE_LED }, + { + .subvendor = 0x103c, + .subdevice = 0x308b, + .name = "HP nx6125", + .type = AC97_TUNE_MUTE_LED + }, { } /* terminator */ }; diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index d3a4e5e8e04..5466b1fa0cd 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -1857,6 +1857,30 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = { .name = "HP xw8000", .type = AC97_TUNE_HP_ONLY }, + { + .subvendor = 0x103c, + .subdevice = 0x0938, + .name = "HP nc4200", + .type = AC97_TUNE_HP_MUTE_LED + }, + { + .subvendor = 0x103c, + .subdevice = 0x099c, + .name = "HP nc6120", + .type = AC97_TUNE_HP_MUTE_LED + }, + { + .subvendor = 0x103c, + .subdevice = 0x0944, + .name = "HP nc6220", + .type = AC97_TUNE_HP_MUTE_LED + }, + { + .subvendor = 0x103c, + .subdevice = 0x0934, + .name = "HP nc8220", + .type = AC97_TUNE_HP_MUTE_LED + }, { .subvendor = 0x103c, .subdevice = 0x12f1, -- cgit v1.2.3-70-g09d2 From a8ee72952bd7bd21df944ef1512a1e582abe0528 Mon Sep 17 00:00:00 2001 From: Gergely Tamas Date: Tue, 6 Dec 2005 14:10:57 +0100 Subject: [ALSA] emu10k1 - Add entry for SB Live 5.1 Digital OEM [SB0220] Modules: EMU10K1/EMU10K2 driver Added the chip-detail entry for SB Live 5.1 Digital OEM [SB0220, (c) 2003]. Signed-off-by: Gergely Tamas Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/emu10k1_main.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index f6cf589593b..f8e2ccd50d6 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -883,6 +883,12 @@ static struct snd_emu_chip_details emu_chip_details[] = { .emu10k1_chip = 1, .ac97_chip = 1, .sblive51 = 1} , + {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x100a1102, + .driver = "EMU10K1", .name = "SB Live 5.1 [SB0220]", + .id = "Live", + .emu10k1_chip = 1, + .ac97_chip = 1, + .sblive51 = 1} , {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80641102, .driver = "EMU10K1", .name = "SB Live 5.1", .id = "Live", -- cgit v1.2.3-70-g09d2 From c5f2ea08fbd8911e2c975094780d2b16e65f27e0 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 6 Dec 2005 18:54:31 +0100 Subject: [ALSA] hda-codec - Fix ALC codec probing Modules: HDA Codec driver - Fix ALC882 BIOS auto-probe - Fix ALC262 basic model - Add assert for debugging Oops Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_realtek.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a98c0e4da0a..63aeddb731d 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1259,6 +1259,8 @@ static int alc_build_pcms(struct hda_codec *codec) codec->num_pcms = 1; codec->pcm_info = info; + snd_assert(spec->stream_analog_playback, return -EINVAL); + snd_assert(spec->stream_analog_capture, return -EINVAL); info->name = spec->stream_name_analog; info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_analog_playback); info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dac_nids[0]; @@ -1277,10 +1279,12 @@ static int alc_build_pcms(struct hda_codec *codec) info++; info->name = spec->stream_name_digital; if (spec->multiout.dig_out_nid) { + snd_assert(spec->stream_digital_playback, return -EINVAL); info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_digital_playback); info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dig_out_nid; } if (spec->dig_in_nid) { + snd_assert(spec->stream_digital_capture, return -EINVAL); info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_digital_capture); info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in_nid; } @@ -3508,9 +3512,10 @@ static int alc882_parse_auto_config(struct hda_codec *codec) if (err < 0) return err; - /* hack - override the init verbs */ - spec->init_verbs[0] = alc882_auto_init_verbs; - return 0; + else if (err > 0) + /* hack - override the init verbs */ + spec->init_verbs[0] = alc882_auto_init_verbs; + return err; } /* init callback for auto-configuration model -- overriding the default init */ @@ -3605,6 +3610,7 @@ static int patch_alc882(struct hda_codec *codec) #define alc262_adc_nids_alt alc882_adc_nids_alt #define alc262_modes alc260_modes +#define alc262_capture_source alc882_capture_source static struct snd_kcontrol_new alc262_base_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), @@ -3921,6 +3927,7 @@ static struct alc_config_preset alc262_presets[] = { .hp_nid = 0x03, .num_channel_mode = ARRAY_SIZE(alc262_modes), .channel_mode = alc262_modes, + .input_mux = alc262_capture_source, }, }; -- cgit v1.2.3-70-g09d2 From a3bcba384c2f2448ad204ea52baa15f1227d0d40 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 6 Dec 2005 19:05:29 +0100 Subject: [ALSA] hda-codec - Fix Oops with ALC260 auto-probe Modules: HDA Codec driver - Fix Oops with auto-probing of ALC260 with digital I/O - Fix a typo Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_realtek.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 63aeddb731d..2a6a4804cb9 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2678,6 +2678,9 @@ static struct hda_pcm_stream alc260_pcm_analog_capture = { .channels_max = 2, }; +#define alc260_pcm_digital_playback alc880_pcm_digital_playback +#define alc260_pcm_digital_capture alc880_pcm_digital_capture + /* * for BIOS auto-configuration */ @@ -3041,6 +3044,10 @@ static int patch_alc260(struct hda_codec *codec) spec->stream_analog_playback = &alc260_pcm_analog_playback; spec->stream_analog_capture = &alc260_pcm_analog_capture; + spec->stream_name_digital = "ALC260 Digital"; + spec->stream_digital_playback = &alc260_pcm_digital_playback; + spec->stream_digital_capture = &alc260_pcm_digital_capture; + codec->patch_ops = alc_patch_ops; if (board_config == ALC260_AUTO) codec->patch_ops.init = alc260_auto_init; @@ -3927,7 +3934,7 @@ static struct alc_config_preset alc262_presets[] = { .hp_nid = 0x03, .num_channel_mode = ARRAY_SIZE(alc262_modes), .channel_mode = alc262_modes, - .input_mux = alc262_capture_source, + .input_mux = &alc262_capture_source, }, }; -- cgit v1.2.3-70-g09d2 From 156b2aa3bef17c964006c6448aadd440781d7e7d Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Wed, 7 Dec 2005 09:07:25 +0100 Subject: [ALSA] ens1371: fix compilation without SUPPORT_JOYSTICK Modules: ENS1370/1+ driver Move the spdif and lineio parameters around so that they are compiled even when SUPPORT_JOYSTICK isn't set. Signed-off-by: Clemens Ladisch --- sound/pci/ens1370.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index 856f7c63d32..55aaf110331 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -86,12 +86,14 @@ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable switches */ #ifdef SUPPORT_JOYSTICK #ifdef CHIP1371 static int joystick_port[SNDRV_CARDS]; -static int spdif[SNDRV_CARDS]; -static int lineio[SNDRV_CARDS]; #else static int joystick[SNDRV_CARDS]; #endif #endif +#ifdef CHIP1371 +static int spdif[SNDRV_CARDS]; +static int lineio[SNDRV_CARDS]; +#endif module_param_array(index, int, NULL, 0444); MODULE_PARM_DESC(index, "Index value for Ensoniq AudioPCI soundcard."); @@ -103,15 +105,17 @@ MODULE_PARM_DESC(enable, "Enable Ensoniq AudioPCI soundcard."); #ifdef CHIP1371 module_param_array(joystick_port, int, NULL, 0444); MODULE_PARM_DESC(joystick_port, "Joystick port address."); -module_param_array(spdif, int, NULL, 0444); -MODULE_PARM_DESC(spdif, "S/PDIF output (-1 = none, 0 = auto, 1 = force)."); -module_param_array(lineio, int, NULL, 0444); -MODULE_PARM_DESC(lineio, "Line In to Rear Out (0 = auto, 1 = force)."); #else module_param_array(joystick, bool, NULL, 0444); MODULE_PARM_DESC(joystick, "Enable joystick."); #endif #endif /* SUPPORT_JOYSTICK */ +#ifdef CHIP1371 +module_param_array(spdif, int, NULL, 0444); +MODULE_PARM_DESC(spdif, "S/PDIF output (-1 = none, 0 = auto, 1 = force)."); +module_param_array(lineio, int, NULL, 0444); +MODULE_PARM_DESC(lineio, "Line In to Rear Out (0 = auto, 1 = force)."); +#endif /* ES1371 chip ID */ /* This is a little confusing because all ES1371 compatible chips have the -- cgit v1.2.3-70-g09d2 From 4a471b7ddfe76e39c1633d5a23a687f4b5fc0d8d Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 7 Dec 2005 13:56:29 +0100 Subject: [ALSA] hda-codec - Small clean up and fixes Modules: HDA Codec driver,HDA generic driver - Common labels for input pins - Fix and clean up of Realtek codec parsers Signed-off-by: Takashi Iwai --- sound/pci/hda/hda_codec.c | 6 +++ sound/pci/hda/hda_local.h | 2 + sound/pci/hda/patch_analog.c | 8 ++-- sound/pci/hda/patch_realtek.c | 87 +++++++++++++++++++++--------------------- sound/pci/hda/patch_sigmatel.c | 5 +-- 5 files changed, 56 insertions(+), 52 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index bd375f895ec..4a6dd97deba 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -2051,6 +2051,12 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *c return 0; } +/* labels for input pins */ +const char *auto_pin_cfg_labels[AUTO_PIN_LAST] = { + "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" +}; + + #ifdef CONFIG_PM /* * power management diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index a9863eb20c7..c82d2a72d13 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -211,6 +211,8 @@ enum { AUTO_PIN_LAST }; +extern const char *auto_pin_cfg_labels[AUTO_PIN_LAST]; + struct auto_pin_cfg { int line_outs; hda_nid_t line_out_pins[5]; /* sorted in the order of Front/Surr/CLFE/Side */ diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index d1e1ded2753..1ada1b075c9 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -1850,18 +1850,16 @@ static int new_analog_input(struct ad198x_spec *spec, hda_nid_t pin, static int ad1988_auto_create_analog_input_ctls(struct ad198x_spec *spec, const struct auto_pin_cfg *cfg) { - static char *labels[AUTO_PIN_LAST] = { - "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" - }; struct hda_input_mux *imux = &spec->private_imux; int i, err; for (i = 0; i < AUTO_PIN_LAST; i++) { - err = new_analog_input(spec, cfg->input_pins[i], labels[i], + err = new_analog_input(spec, cfg->input_pins[i], + auto_pin_cfg_labels[i], i <= AUTO_PIN_FRONT_MIC); if (err < 0) return err; - imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; imux->items[imux->num_items].index = ad1988_pin_to_adc_idx(cfg->input_pins[i]); imux->num_items++; } diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 2a6a4804cb9..cac109268f7 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1259,18 +1259,24 @@ static int alc_build_pcms(struct hda_codec *codec) codec->num_pcms = 1; codec->pcm_info = info; - snd_assert(spec->stream_analog_playback, return -EINVAL); - snd_assert(spec->stream_analog_capture, return -EINVAL); info->name = spec->stream_name_analog; - info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_analog_playback); - info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dac_nids[0]; - info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_analog_capture); - info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adc_nids[0]; - - info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = 0; - for (i = 0; i < spec->num_channel_mode; i++) { - if (spec->channel_mode[i].channels > info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max) { - info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = spec->channel_mode[i].channels; + if (spec->stream_analog_playback) { + snd_assert(spec->multiout.dac_nids, return -EINVAL); + info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_analog_playback); + info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dac_nids[0]; + } + if (spec->stream_analog_capture) { + snd_assert(spec->adc_nids, return -EINVAL); + info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_analog_capture); + info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adc_nids[0]; + } + + if (spec->channel_mode) { + info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = 0; + for (i = 0; i < spec->num_channel_mode; i++) { + if (spec->channel_mode[i].channels > info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max) { + info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = spec->channel_mode[i].channels; + } } } @@ -1278,13 +1284,13 @@ static int alc_build_pcms(struct hda_codec *codec) codec->num_pcms++; info++; info->name = spec->stream_name_digital; - if (spec->multiout.dig_out_nid) { - snd_assert(spec->stream_digital_playback, return -EINVAL); + if (spec->multiout.dig_out_nid && + spec->stream_digital_playback) { info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_digital_playback); info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dig_out_nid; } - if (spec->dig_in_nid) { - snd_assert(spec->stream_digital_capture, return -EINVAL); + if (spec->dig_in_nid && + spec->stream_digital_capture) { info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_digital_capture); info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in_nid; } @@ -2091,20 +2097,18 @@ static int new_analog_input(struct alc_spec *spec, hda_nid_t pin, const char *ct static int alc880_auto_create_analog_input_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) { - static char *labels[AUTO_PIN_LAST] = { - "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" - }; struct hda_input_mux *imux = &spec->private_imux; int i, err, idx; for (i = 0; i < AUTO_PIN_LAST; i++) { if (alc880_is_input_pin(cfg->input_pins[i])) { idx = alc880_input_pin_idx(cfg->input_pins[i]); - err = new_analog_input(spec, cfg->input_pins[i], labels[i], + err = new_analog_input(spec, cfg->input_pins[i], + auto_pin_cfg_labels[i], idx, 0x0b); if (err < 0) return err; - imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; imux->items[imux->num_items].index = alc880_input_pin_idx(cfg->input_pins[i]); imux->num_items++; } @@ -2664,6 +2668,8 @@ static struct hda_verb alc260_fujitsu_init_verbs[] = { {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, /* Beep-gen pin */ {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)}, /* Line-out pin */ {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)}, /* HP-pin pin */ + + { } }; static struct hda_pcm_stream alc260_pcm_analog_playback = { @@ -2755,28 +2761,27 @@ static int alc260_auto_create_multi_out_ctls(struct alc_spec *spec, static int alc260_auto_create_analog_input_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) { - static char *labels[AUTO_PIN_LAST] = { - "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" - }; struct hda_input_mux *imux = &spec->private_imux; int i, err, idx; for (i = 0; i < AUTO_PIN_LAST; i++) { if (cfg->input_pins[i] >= 0x12) { idx = cfg->input_pins[i] - 0x12; - err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x07); + err = new_analog_input(spec, cfg->input_pins[i], + auto_pin_cfg_labels[i], idx, 0x07); if (err < 0) return err; - imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; imux->items[imux->num_items].index = idx; imux->num_items++; } if ((cfg->input_pins[i] >= 0x0f) && (cfg->input_pins[i] <= 0x10)){ idx = cfg->input_pins[i] - 0x09; - err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x07); + err = new_analog_input(spec, cfg->input_pins[i], + auto_pin_cfg_labels[i], idx, 0x07); if (err < 0) return err; - imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; imux->items[imux->num_items].index = idx; imux->num_items++; } @@ -2889,11 +2894,11 @@ static int alc260_parse_auto_config(struct hda_codec *codec) if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, alc260_ignore)) < 0) return err; - if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && - ! spec->autocfg.hp_pin) + if ((err = alc260_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0) + return err; + if (! spec->kctl_alloc) return 0; /* can't find valid BIOS pin config */ - if ((err = alc260_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || - (err = alc260_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) + if ((err = alc260_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) return err; spec->multiout.max_channels = 2; @@ -2908,19 +2913,18 @@ static int alc260_parse_auto_config(struct hda_codec *codec) spec->input_mux = &spec->private_imux; /* check whether NID 0x04 is valid */ - wcap = snd_hda_param_read(codec, alc260_adc_nids[0], AC_PAR_AUDIO_WIDGET_CAP); + wcap = get_wcaps(codec, 0x04); wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ if (wcap != AC_WID_AUD_IN) { spec->adc_nids = alc260_adc_nids_alt; spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids_alt); spec->mixers[spec->num_mixers] = alc260_capture_alt_mixer; - spec->num_mixers++; } else { spec->adc_nids = alc260_adc_nids; spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids); spec->mixers[spec->num_mixers] = alc260_capture_mixer; - spec->num_mixers++; } + spec->num_mixers++; return 1; } @@ -3582,8 +3586,7 @@ static int patch_alc882(struct hda_codec *codec) if (! spec->adc_nids && spec->input_mux) { /* check whether NID 0x07 is valid */ - unsigned int wcap = snd_hda_param_read(codec, 0x07, - AC_PAR_AUDIO_WIDGET_CAP); + unsigned int wcap = get_wcaps(codec, 0x07); wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ if (wcap != AC_WID_AUD_IN) { spec->adc_nids = alc882_adc_nids_alt; @@ -3991,8 +3994,8 @@ static int patch_alc262(struct hda_codec *codec) if (! spec->adc_nids && spec->input_mux) { /* check whether NID 0x07 is valid */ - unsigned int wcap = snd_hda_param_read(codec, 0x07, - AC_PAR_AUDIO_WIDGET_CAP); + unsigned int wcap = get_wcaps(codec, 0x07); + wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ if (wcap != AC_WID_AUD_IN) { spec->adc_nids = alc262_adc_nids_alt; @@ -4423,9 +4426,6 @@ static int alc861_auto_create_hp_ctls(struct alc_spec *spec, hda_nid_t pin) /* create playback/capture controls for input pins */ static int alc861_auto_create_analog_input_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) { - static char *labels[AUTO_PIN_LAST] = { - "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" - }; struct hda_input_mux *imux = &spec->private_imux; int i, err, idx, idx1; @@ -4455,11 +4455,12 @@ static int alc861_auto_create_analog_input_ctls(struct alc_spec *spec, const str continue; } - err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x15); + err = new_analog_input(spec, cfg->input_pins[i], + auto_pin_cfg_labels[i], idx, 0x15); if (err < 0) return err; - imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; imux->items[imux->num_items].index = idx1; imux->num_items++; } diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 8311c9fa052..61903848cd4 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -702,9 +702,6 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec, struct auto_pin static int stac92xx_auto_create_analog_input_ctls(struct hda_codec *codec, const struct auto_pin_cfg *cfg) { struct sigmatel_spec *spec = codec->spec; - static char *labels[AUTO_PIN_LAST] = { - "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" - }; struct hda_input_mux *imux = &spec->private_imux; hda_nid_t con_lst[HDA_MAX_NUM_INPUTS]; int i, j, k; @@ -715,7 +712,7 @@ static int stac92xx_auto_create_analog_input_ctls(struct hda_codec *codec, const /* Enable active pin widget as an input */ stac92xx_auto_set_pinctl(codec, cfg->input_pins[i], AC_PINCTL_IN_EN); - imux->items[imux->num_items].label = labels[i]; + imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; for (j=0; jnum_muxes; j++) { int num_cons = snd_hda_get_connections(codec, spec->mux_nids[j], con_lst, HDA_MAX_NUM_INPUTS); -- cgit v1.2.3-70-g09d2 From 7632c7b4443057e1294208a0d9a55d8558f2f6ca Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 7 Dec 2005 18:25:47 +0100 Subject: [ALSA] hda-codec - Add the model entry for ASUS P5GD1-HVM Modules: HDA Codec driver Add the model entry (ALC880 6stack) for ASUS P5GD1-HVM. Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index cac109268f7..55bda26ce12 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1665,6 +1665,7 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_Z71V }, { .modelname = "6stack", .config = ALC880_6ST }, + { .pci_subvendor = 0x1043, .pci_subdevice = 0x8196, .config = ALC880_6ST }, /* ASUS P5GD1-HVM */ { .pci_subvendor = 0x1043, .pci_subdevice = 0x81b4, .config = ALC880_6ST }, { .pci_subvendor = 0x1019, .pci_subdevice = 0xa884, .config = ALC880_6ST }, /* Acer APFV */ -- cgit v1.2.3-70-g09d2 From 22fb2a708d2f390808f20609213fd6a588bf7612 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Mon, 12 Dec 2005 09:27:14 +0100 Subject: [ALSA] ymfpci: show chip model Modules: YMFPCI driver Instead of 'DS-XG', show the correct chip model (DS-1/1L/1S/1E) where possible. Signed-off-by: Clemens Ladisch --- sound/pci/ymfpci/ymfpci.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c index 9e30e2c76c7..dab9b831034 100644 --- a/sound/pci/ymfpci/ymfpci.c +++ b/sound/pci/ymfpci/ymfpci.c @@ -31,7 +31,7 @@ #include MODULE_AUTHOR("Jaroslav Kysela "); -MODULE_DESCRIPTION("Yamaha DS-XG PCI"); +MODULE_DESCRIPTION("Yamaha DS-1 PCI"); MODULE_LICENSE("GPL"); MODULE_SUPPORTED_DEVICE("{{Yamaha,YMF724}," "{Yamaha,YMF724F}," @@ -51,11 +51,11 @@ static long joystick_port[SNDRV_CARDS]; static int rear_switch[SNDRV_CARDS]; module_param_array(index, int, NULL, 0444); -MODULE_PARM_DESC(index, "Index value for the Yamaha DS-XG PCI soundcard."); +MODULE_PARM_DESC(index, "Index value for the Yamaha DS-1 PCI soundcard."); module_param_array(id, charp, NULL, 0444); -MODULE_PARM_DESC(id, "ID string for the Yamaha DS-XG PCI soundcard."); +MODULE_PARM_DESC(id, "ID string for the Yamaha DS-1 PCI soundcard."); module_param_array(enable, bool, NULL, 0444); -MODULE_PARM_DESC(enable, "Enable Yamaha DS-XG soundcard."); +MODULE_PARM_DESC(enable, "Enable Yamaha DS-1 soundcard."); module_param_array(mpu_port, long, NULL, 0444); MODULE_PARM_DESC(mpu_port, "MPU-401 Port."); module_param_array(fm_port, long, NULL, 0444); @@ -177,7 +177,7 @@ static int __devinit snd_card_ymfpci_probe(struct pci_dev *pci, struct resource *mpu_res = NULL; struct snd_ymfpci *chip; struct snd_opl3 *opl3; - char *str; + const char *str, *model; int err; u16 legacy_ctrl, legacy_ctrl2, old_legacy_ctrl; @@ -193,13 +193,13 @@ static int __devinit snd_card_ymfpci_probe(struct pci_dev *pci, return -ENOMEM; switch (pci_id->device) { - case 0x0004: str = "YMF724"; break; - case 0x000d: str = "YMF724F"; break; - case 0x000a: str = "YMF740"; break; - case 0x000c: str = "YMF740C"; break; - case 0x0010: str = "YMF744"; break; - case 0x0012: str = "YMF754"; break; - default: str = "???"; break; + case 0x0004: str = "YMF724"; model = "DS-1"; break; + case 0x000d: str = "YMF724F"; model = "DS-1"; break; + case 0x000a: str = "YMF740"; model = "DS-1L"; break; + case 0x000c: str = "YMF740C"; model = "DS-1L"; break; + case 0x0010: str = "YMF744"; model = "DS-1S"; break; + case 0x0012: str = "YMF754"; model = "DS-1E"; break; + default: model = str = "???"; break; } legacy_ctrl = 0; @@ -274,7 +274,7 @@ static int __devinit snd_card_ymfpci_probe(struct pci_dev *pci, card->private_data = chip; strcpy(card->driver, str); - sprintf(card->shortname, "Yamaha DS-XG (%s)", str); + sprintf(card->shortname, "Yamaha %s (%s)", model, str); sprintf(card->longname, "%s at 0x%lx, irq %i", card->shortname, chip->reg_area_phys, @@ -345,7 +345,7 @@ static void __devexit snd_card_ymfpci_remove(struct pci_dev *pci) } static struct pci_driver driver = { - .name = "Yamaha DS-XG PCI", + .name = "Yamaha DS-1 PCI", .id_table = snd_ymfpci_ids, .probe = snd_card_ymfpci_probe, .remove = __devexit_p(snd_card_ymfpci_remove), -- cgit v1.2.3-70-g09d2 From 83e8ad6984dccd6d848ac91ba0df379ff968180b Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Mon, 12 Dec 2005 09:30:43 +0100 Subject: [ALSA] seq: remove struct snd_seq_client_callback The fields of struct snd_seq_client_callback either aren't used or are always set to the same value, so we can get rid of it altogether. Signed-off-by: Clemens Ladisch --- include/sound/seq_kernel.h | 12 +----------- sound/core/seq/oss/seq_oss_init.c | 9 +-------- sound/core/seq/seq_clientmgr.c | 9 +++------ sound/core/seq/seq_clientmgr.h | 2 -- sound/core/seq/seq_dummy.c | 6 +----- sound/core/seq/seq_midi.c | 6 +----- sound/core/seq/seq_system.c | 6 +----- sound/core/seq/seq_virmidi.c | 7 +------ sound/drivers/opl3/opl3_seq.c | 6 +----- sound/drivers/opl4/opl4_seq.c | 6 +----- sound/isa/gus/gus_synth.c | 6 +----- sound/pci/trident/trident_synth.c | 6 +----- sound/synth/emux/emux_seq.c | 8 +------- 13 files changed, 14 insertions(+), 75 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/seq_kernel.h b/include/sound/seq_kernel.h index 1b60890b44c..77cf57e2148 100644 --- a/include/sound/seq_kernel.h +++ b/include/sound/seq_kernel.h @@ -60,15 +60,6 @@ typedef union snd_seq_timestamp snd_seq_timestamp_t; /* max size of event size */ #define SNDRV_SEQ_MAX_EVENT_LEN 0x3fffffff -/* call-backs for kernel client */ - -struct snd_seq_client_callback { - void *private_data; - unsigned allow_input: 1, - allow_output: 1; - /*...*/ -}; - /* call-backs for kernel port */ struct snd_seq_port_callback { struct module *owner; @@ -84,8 +75,7 @@ struct snd_seq_port_callback { }; /* interface for kernel client */ -int snd_seq_create_kernel_client(struct snd_card *card, int client_index, - struct snd_seq_client_callback *callback); +int snd_seq_create_kernel_client(struct snd_card *card, int client_index); int snd_seq_delete_kernel_client(int client); int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop); int snd_seq_kernel_client_dispatch(int client, struct snd_seq_event *ev, int atomic, int hop); diff --git a/sound/core/seq/oss/seq_oss_init.c b/sound/core/seq/oss/seq_oss_init.c index 97e2493e931..cd4139adec0 100644 --- a/sound/core/seq/oss/seq_oss_init.c +++ b/sound/core/seq/oss/seq_oss_init.c @@ -65,7 +65,6 @@ int __init snd_seq_oss_create_client(void) { int rc; - struct snd_seq_client_callback callback; struct snd_seq_client_info *info; struct snd_seq_port_info *port; struct snd_seq_port_callback port_callback; @@ -78,13 +77,7 @@ snd_seq_oss_create_client(void) } /* create ALSA client */ - memset(&callback, 0, sizeof(callback)); - - callback.private_data = NULL; - callback.allow_input = 1; - callback.allow_output = 1; - - rc = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_OSS, &callback); + rc = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_OSS); if (rc < 0) goto __error; diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c index 79199f53d63..bd8c0989785 100644 --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c @@ -2212,15 +2212,12 @@ static long snd_seq_ioctl(struct file *file, unsigned int cmd, unsigned long arg /* exported to kernel modules */ -int snd_seq_create_kernel_client(struct snd_card *card, int client_index, - struct snd_seq_client_callback *callback) +int snd_seq_create_kernel_client(struct snd_card *card, int client_index) { struct snd_seq_client *client; snd_assert(! in_interrupt(), return -EBUSY); - if (callback == NULL) - return -EINVAL; if (card && client_index > 3) return -EINVAL; if (card == NULL && client_index > 63) @@ -2244,8 +2241,8 @@ int snd_seq_create_kernel_client(struct snd_card *card, int client_index, } usage_alloc(&client_usage, 1); - client->accept_input = callback->allow_output; - client->accept_output = callback->allow_input; + client->accept_input = 1; + client->accept_output = 1; sprintf(client->name, "Client-%d", client->number); diff --git a/sound/core/seq/seq_clientmgr.h b/sound/core/seq/seq_clientmgr.h index 7131d218dc7..450091ca153 100644 --- a/sound/core/seq/seq_clientmgr.h +++ b/sound/core/seq/seq_clientmgr.h @@ -91,8 +91,6 @@ struct snd_seq_client *snd_seq_client_use_ptr(int clientid); int snd_seq_dispatch_event(struct snd_seq_event_cell *cell, int atomic, int hop); /* exported to other modules */ -int snd_seq_register_kernel_client(struct snd_seq_client_callback *callback, void *private_data); -int snd_seq_unregister_kernel_client(int client); int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop); int snd_seq_kernel_client_enqueue_blocking(int client, struct snd_seq_event * ev, struct file *file, int atomic, int hop); diff --git a/sound/core/seq/seq_dummy.c b/sound/core/seq/seq_dummy.c index 8101a475e3e..e7344b6332d 100644 --- a/sound/core/seq/seq_dummy.c +++ b/sound/core/seq/seq_dummy.c @@ -193,7 +193,6 @@ create_port(int idx, int type) static int __init register_client(void) { - struct snd_seq_client_callback cb; struct snd_seq_client_info cinfo; struct snd_seq_dummy_port *rec1, *rec2; int i; @@ -204,10 +203,7 @@ register_client(void) } /* create client */ - memset(&cb, 0, sizeof(cb)); - cb.allow_input = 1; - cb.allow_output = 1; - my_client = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_DUMMY, &cb); + my_client = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_DUMMY); if (my_client < 0) return my_client; diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c index 0a65eb2f976..512ffddd158 100644 --- a/sound/core/seq/seq_midi.c +++ b/sound/core/seq/seq_midi.c @@ -295,7 +295,6 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev) struct snd_rawmidi_info *info; int newclient = 0; unsigned int p, ports; - struct snd_seq_client_callback callbacks; struct snd_seq_port_callback pcallbacks; struct snd_card *card = dev->card; int device = dev->device; @@ -334,10 +333,7 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev) kfree(info); return -ENOMEM; } - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.private_data = client; - callbacks.allow_input = callbacks.allow_output = 1; - client->seq_client = snd_seq_create_kernel_client(card, 0, &callbacks); + client->seq_client = snd_seq_create_kernel_client(card, 0); if (client->seq_client < 0) { kfree(client); up(®ister_mutex); diff --git a/sound/core/seq/seq_system.c b/sound/core/seq/seq_system.c index 86b1cba33c0..c87c883bd92 100644 --- a/sound/core/seq/seq_system.c +++ b/sound/core/seq/seq_system.c @@ -120,8 +120,6 @@ static int event_input_timer(struct snd_seq_event * ev, int direct, void *privat /* register our internal client */ int __init snd_seq_system_client_init(void) { - - struct snd_seq_client_callback callbacks; struct snd_seq_port_callback pcallbacks; struct snd_seq_client_info *inf; struct snd_seq_port_info *port; @@ -134,14 +132,12 @@ int __init snd_seq_system_client_init(void) return -ENOMEM; } - memset(&callbacks, 0, sizeof(callbacks)); memset(&pcallbacks, 0, sizeof(pcallbacks)); pcallbacks.owner = THIS_MODULE; pcallbacks.event_input = event_input_timer; /* register client */ - callbacks.allow_input = callbacks.allow_output = 1; - sysclient = snd_seq_create_kernel_client(NULL, 0, &callbacks); + sysclient = snd_seq_create_kernel_client(NULL, 0); /* set our name */ inf->client = 0; diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c index ea2113968fe..2739f577257 100644 --- a/sound/core/seq/seq_virmidi.c +++ b/sound/core/seq/seq_virmidi.c @@ -359,7 +359,6 @@ static struct snd_rawmidi_ops snd_virmidi_output_ops = { static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev) { int client; - struct snd_seq_client_callback callbacks; struct snd_seq_port_callback pcallbacks; struct snd_seq_client_info *info; struct snd_seq_port_info *pinfo; @@ -375,11 +374,7 @@ static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev) goto __error; } - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.private_data = rdev; - callbacks.allow_input = 1; - callbacks.allow_output = 1; - client = snd_seq_create_kernel_client(rdev->card, rdev->device, &callbacks); + client = snd_seq_create_kernel_client(rdev->card, rdev->device); if (client < 0) { err = client; goto __error; diff --git a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c index 1886b2958e7..582ff63e784 100644 --- a/sound/drivers/opl3/opl3_seq.c +++ b/sound/drivers/opl3/opl3_seq.c @@ -219,7 +219,6 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev) { struct snd_opl3 *opl3; int client; - struct snd_seq_client_callback callbacks; struct snd_seq_client_info cinfo; int opl_ver; @@ -232,11 +231,8 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev) opl3->seq_client = -1; /* allocate new client */ - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.private_data = opl3; - callbacks.allow_output = callbacks.allow_input = 1; client = opl3->seq_client = - snd_seq_create_kernel_client(opl3->card, opl3->seq_dev_num, &callbacks); + snd_seq_create_kernel_client(opl3->card, opl3->seq_dev_num); if (client < 0) return client; diff --git a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c index bfd68e49c91..a69117dd007 100644 --- a/sound/drivers/opl4/opl4_seq.c +++ b/sound/drivers/opl4/opl4_seq.c @@ -127,7 +127,6 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev) { struct snd_opl4 *opl4; int client; - struct snd_seq_client_callback callbacks; struct snd_seq_client_info cinfo; struct snd_seq_port_callback pcallbacks; @@ -144,10 +143,7 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev) opl4->chset->private_data = opl4; /* allocate new client */ - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.private_data = opl4; - callbacks.allow_output = callbacks.allow_input = 1; - client = snd_seq_create_kernel_client(opl4->card, opl4->seq_dev_num, &callbacks); + client = snd_seq_create_kernel_client(opl4->card, opl4->seq_dev_num); if (client < 0) { snd_midi_channel_free_set(opl4->chset); return client; diff --git a/sound/isa/gus/gus_synth.c b/sound/isa/gus/gus_synth.c index 9c7d6986f62..6464488363e 100644 --- a/sound/isa/gus/gus_synth.c +++ b/sound/isa/gus/gus_synth.c @@ -214,7 +214,6 @@ static int snd_gus_synth_new_device(struct snd_seq_device *dev) { struct snd_gus_card *gus; int client, i; - struct snd_seq_client_callback callbacks; struct snd_seq_client_info *cinfo; struct snd_seq_port_subscribe sub; struct snd_iwffff_ops *iwops; @@ -233,11 +232,8 @@ static int snd_gus_synth_new_device(struct snd_seq_device *dev) return -ENOMEM; /* allocate new client */ - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.private_data = gus; - callbacks.allow_output = callbacks.allow_input = 1; client = gus->gf1.seq_client = - snd_seq_create_kernel_client(gus->card, 1, &callbacks); + snd_seq_create_kernel_client(gus->card, 1); if (client < 0) { kfree(cinfo); return client; diff --git a/sound/pci/trident/trident_synth.c b/sound/pci/trident/trident_synth.c index a49682ef3e3..e31055a4bd2 100644 --- a/sound/pci/trident/trident_synth.c +++ b/sound/pci/trident/trident_synth.c @@ -934,7 +934,6 @@ static int snd_trident_synth_new_device(struct snd_seq_device *dev) { struct snd_trident *trident; int client, i; - struct snd_seq_client_callback callbacks; struct snd_seq_client_info cinfo; struct snd_seq_port_subscribe sub; struct snd_simple_ops *simpleops; @@ -947,11 +946,8 @@ static int snd_trident_synth_new_device(struct snd_seq_device *dev) trident->synth.seq_client = -1; /* allocate new client */ - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.private_data = trident; - callbacks.allow_output = callbacks.allow_input = 1; client = trident->synth.seq_client = - snd_seq_create_kernel_client(trident->card, 1, &callbacks); + snd_seq_create_kernel_client(trident->card, 1); if (client < 0) return client; diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c index f5a832ff362..b7129c5aee0 100644 --- a/sound/synth/emux/emux_seq.c +++ b/sound/synth/emux/emux_seq.c @@ -347,17 +347,11 @@ snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *info) static int get_client(struct snd_card *card, int index, char *name) { - struct snd_seq_client_callback callbacks; struct snd_seq_client_info cinfo; int client; - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.private_data = NULL; - callbacks.allow_input = 1; - callbacks.allow_output = 1; - /* Find a free client, start from 1 as the MPU expects to use 0 */ - client = snd_seq_create_kernel_client(card, index, &callbacks); + client = snd_seq_create_kernel_client(card, index); if (client < 0) return client; -- cgit v1.2.3-70-g09d2 From 7b6d92451ad5e1136dc347347e888b94638b8ba9 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Mon, 12 Dec 2005 09:33:37 +0100 Subject: [ALSA] seq: set client name in snd_seq_create_kernel_client() All users of snd_seq_create_kernel_client() have to set the client name anyway, so we can just pass the name as parameter. This relieves us from having to muck around with a struct snd_seq_client_info in these cases. Signed-off-by: Clemens Ladisch --- include/sound/seq_kernel.h | 4 +++- sound/core/seq/oss/seq_oss_init.c | 16 +++------------- sound/core/seq/seq_clientmgr.c | 8 ++++++-- sound/core/seq/seq_dummy.c | 11 ++--------- sound/core/seq/seq_midi.c | 24 +++++------------------- sound/core/seq/seq_system.c | 16 ++-------------- sound/core/seq/seq_virmidi.c | 17 +++++------------ sound/drivers/opl3/opl3_seq.c | 17 ++++++----------- sound/drivers/opl4/opl4_seq.c | 11 ++--------- sound/isa/gus/gus_synth.c | 20 +++----------------- sound/pci/trident/trident_synth.c | 16 ++++------------ sound/synth/emux/emux_seq.c | 29 ++--------------------------- 12 files changed, 43 insertions(+), 146 deletions(-) (limited to 'sound/pci') diff --git a/include/sound/seq_kernel.h b/include/sound/seq_kernel.h index 77cf57e2148..f023c1b97f8 100644 --- a/include/sound/seq_kernel.h +++ b/include/sound/seq_kernel.h @@ -75,7 +75,9 @@ struct snd_seq_port_callback { }; /* interface for kernel client */ -int snd_seq_create_kernel_client(struct snd_card *card, int client_index); +int snd_seq_create_kernel_client(struct snd_card *card, int client_index, + const char *name_fmt, ...) + __attribute__ ((format (printf, 3, 4))); int snd_seq_delete_kernel_client(int client); int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop); int snd_seq_kernel_client_dispatch(int client, struct snd_seq_event *ev, int atomic, int hop); diff --git a/sound/core/seq/oss/seq_oss_init.c b/sound/core/seq/oss/seq_oss_init.c index cd4139adec0..ca5a2ed4d7c 100644 --- a/sound/core/seq/oss/seq_oss_init.c +++ b/sound/core/seq/oss/seq_oss_init.c @@ -65,33 +65,24 @@ int __init snd_seq_oss_create_client(void) { int rc; - struct snd_seq_client_info *info; struct snd_seq_port_info *port; struct snd_seq_port_callback port_callback; - info = kmalloc(sizeof(*info), GFP_KERNEL); port = kmalloc(sizeof(*port), GFP_KERNEL); - if (!info || !port) { + if (!port) { rc = -ENOMEM; goto __error; } /* create ALSA client */ - rc = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_OSS); + rc = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_OSS, + "OSS sequencer"); if (rc < 0) goto __error; system_client = rc; debug_printk(("new client = %d\n", rc)); - /* set client information */ - memset(info, 0, sizeof(*info)); - info->client = system_client; - info->type = KERNEL_CLIENT; - strcpy(info->name, "OSS sequencer"); - - rc = call_ctl(SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, info); - /* look up midi devices */ snd_seq_oss_midi_lookup_ports(system_client); @@ -124,7 +115,6 @@ snd_seq_oss_create_client(void) __error: kfree(port); - kfree(info); return rc; } diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c index bd8c0989785..606d076f72f 100644 --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c @@ -2212,9 +2212,11 @@ static long snd_seq_ioctl(struct file *file, unsigned int cmd, unsigned long arg /* exported to kernel modules */ -int snd_seq_create_kernel_client(struct snd_card *card, int client_index) +int snd_seq_create_kernel_client(struct snd_card *card, int client_index, + const char *name_fmt, ...) { struct snd_seq_client *client; + va_list args; snd_assert(! in_interrupt(), return -EBUSY); @@ -2244,7 +2246,9 @@ int snd_seq_create_kernel_client(struct snd_card *card, int client_index) client->accept_input = 1; client->accept_output = 1; - sprintf(client->name, "Client-%d", client->number); + va_start(args, name_fmt); + vsnprintf(client->name, sizeof(client->name), name_fmt, args); + va_end(args); client->type = KERNEL_CLIENT; up(®ister_mutex); diff --git a/sound/core/seq/seq_dummy.c b/sound/core/seq/seq_dummy.c index e7344b6332d..2a283a59ea4 100644 --- a/sound/core/seq/seq_dummy.c +++ b/sound/core/seq/seq_dummy.c @@ -193,7 +193,6 @@ create_port(int idx, int type) static int __init register_client(void) { - struct snd_seq_client_info cinfo; struct snd_seq_dummy_port *rec1, *rec2; int i; @@ -203,17 +202,11 @@ register_client(void) } /* create client */ - my_client = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_DUMMY); + my_client = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_DUMMY, + "Midi Through"); if (my_client < 0) return my_client; - /* set client name */ - memset(&cinfo, 0, sizeof(cinfo)); - cinfo.client = my_client; - cinfo.type = KERNEL_CLIENT; - strcpy(cinfo.name, "Midi Through"); - snd_seq_kernel_client_ctl(my_client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, &cinfo); - /* create ports */ for (i = 0; i < ports; i++) { rec1 = create_port(i, 0); diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c index 512ffddd158..ce0df86157d 100644 --- a/sound/core/seq/seq_midi.c +++ b/sound/core/seq/seq_midi.c @@ -270,21 +270,6 @@ static void snd_seq_midisynth_delete(struct seq_midisynth *msynth) snd_midi_event_free(msynth->parser); } -/* set our client name */ -static int set_client_name(struct seq_midisynth_client *client, struct snd_card *card, - struct snd_rawmidi_info *rmidi) -{ - struct snd_seq_client_info cinfo; - const char *name; - - memset(&cinfo, 0, sizeof(cinfo)); - cinfo.client = client->seq_client; - cinfo.type = KERNEL_CLIENT; - name = rmidi->name[0] ? (const char *)rmidi->name : "External MIDI"; - strlcpy(cinfo.name, name, sizeof(cinfo.name)); - return snd_seq_kernel_client_ctl(client->seq_client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, &cinfo); -} - /* register new midi synth port */ static int snd_seq_midisynth_register_port(struct snd_seq_device *dev) @@ -333,16 +318,17 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev) kfree(info); return -ENOMEM; } - client->seq_client = snd_seq_create_kernel_client(card, 0); + client->seq_client = + snd_seq_create_kernel_client( + card, 0, "%s", info->name[0] ? + (const char *)info->name : "External MIDI"); if (client->seq_client < 0) { kfree(client); up(®ister_mutex); kfree(info); return -ENOMEM; } - set_client_name(client, card, info); - } else if (device == 0) - set_client_name(client, card, info); /* use the first device's name */ + } msynth = kcalloc(ports, sizeof(struct seq_midisynth), GFP_KERNEL); port = kmalloc(sizeof(*port), GFP_KERNEL); diff --git a/sound/core/seq/seq_system.c b/sound/core/seq/seq_system.c index c87c883bd92..b201b76e941 100644 --- a/sound/core/seq/seq_system.c +++ b/sound/core/seq/seq_system.c @@ -121,29 +121,18 @@ static int event_input_timer(struct snd_seq_event * ev, int direct, void *privat int __init snd_seq_system_client_init(void) { struct snd_seq_port_callback pcallbacks; - struct snd_seq_client_info *inf; struct snd_seq_port_info *port; - inf = kzalloc(sizeof(*inf), GFP_KERNEL); port = kzalloc(sizeof(*port), GFP_KERNEL); - if (! inf || ! port) { - kfree(inf); - kfree(port); + if (!port) return -ENOMEM; - } memset(&pcallbacks, 0, sizeof(pcallbacks)); pcallbacks.owner = THIS_MODULE; pcallbacks.event_input = event_input_timer; /* register client */ - sysclient = snd_seq_create_kernel_client(NULL, 0); - - /* set our name */ - inf->client = 0; - inf->type = KERNEL_CLIENT; - strcpy(inf->name, "System"); - snd_seq_kernel_client_ctl(sysclient, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, inf); + sysclient = snd_seq_create_kernel_client(NULL, 0, "System"); /* register timer */ strcpy(port->name, "Timer"); @@ -167,7 +156,6 @@ int __init snd_seq_system_client_init(void) snd_seq_kernel_client_ctl(sysclient, SNDRV_SEQ_IOCTL_CREATE_PORT, port); announce_port = port->addr.port; - kfree(inf); kfree(port); return 0; } diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c index 2739f577257..14fd1a608e1 100644 --- a/sound/core/seq/seq_virmidi.c +++ b/sound/core/seq/seq_virmidi.c @@ -360,34 +360,28 @@ static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev) { int client; struct snd_seq_port_callback pcallbacks; - struct snd_seq_client_info *info; struct snd_seq_port_info *pinfo; int err; if (rdev->client >= 0) return 0; - info = kmalloc(sizeof(*info), GFP_KERNEL); pinfo = kmalloc(sizeof(*pinfo), GFP_KERNEL); - if (! info || ! pinfo) { + if (!pinfo) { err = -ENOMEM; goto __error; } - client = snd_seq_create_kernel_client(rdev->card, rdev->device); + client = snd_seq_create_kernel_client(rdev->card, rdev->device, + "%s %d-%d", rdev->rmidi->name, + rdev->card->number, + rdev->device); if (client < 0) { err = client; goto __error; } rdev->client = client; - /* set client name */ - memset(info, 0, sizeof(*info)); - info->client = client; - info->type = KERNEL_CLIENT; - sprintf(info->name, "%s %d-%d", rdev->rmidi->name, rdev->card->number, rdev->device); - snd_seq_kernel_client_ctl(client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, info); - /* create a port */ memset(pinfo, 0, sizeof(*pinfo)); pinfo->addr.client = client; @@ -418,7 +412,6 @@ static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev) err = 0; /* success */ __error: - kfree(info); kfree(pinfo); return err; } diff --git a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c index 582ff63e784..c4ead790008 100644 --- a/sound/drivers/opl3/opl3_seq.c +++ b/sound/drivers/opl3/opl3_seq.c @@ -219,7 +219,7 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev) { struct snd_opl3 *opl3; int client; - struct snd_seq_client_info cinfo; + char name[32]; int opl_ver; opl3 = *(struct snd_opl3 **)SNDRV_SEQ_DEVICE_ARGPTR(dev); @@ -231,19 +231,14 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev) opl3->seq_client = -1; /* allocate new client */ + opl_ver = (opl3->hardware & OPL3_HW_MASK) >> 8; + sprintf(name, "OPL%i FM synth", opl_ver); client = opl3->seq_client = - snd_seq_create_kernel_client(opl3->card, opl3->seq_dev_num); + snd_seq_create_kernel_client(opl3->card, opl3->seq_dev_num, + name); if (client < 0) return client; - /* change name of client */ - memset(&cinfo, 0, sizeof(cinfo)); - cinfo.client = client; - cinfo.type = KERNEL_CLIENT; - opl_ver = (opl3->hardware & OPL3_HW_MASK) >> 8; - sprintf(cinfo.name, "OPL%i FM synth", opl_ver); - snd_seq_kernel_client_ctl(client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, &cinfo); - snd_opl3_synth_create_port(opl3); /* initialize instrument list */ @@ -264,7 +259,7 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev) opl3->sys_timer_status = 0; #ifdef CONFIG_SND_SEQUENCER_OSS - snd_opl3_init_seq_oss(opl3, cinfo.name); + snd_opl3_init_seq_oss(opl3, name); #endif return 0; } diff --git a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c index a69117dd007..e3480326e73 100644 --- a/sound/drivers/opl4/opl4_seq.c +++ b/sound/drivers/opl4/opl4_seq.c @@ -127,7 +127,6 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev) { struct snd_opl4 *opl4; int client; - struct snd_seq_client_info cinfo; struct snd_seq_port_callback pcallbacks; opl4 = *(struct snd_opl4 **)SNDRV_SEQ_DEVICE_ARGPTR(dev); @@ -143,7 +142,8 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev) opl4->chset->private_data = opl4; /* allocate new client */ - client = snd_seq_create_kernel_client(opl4->card, opl4->seq_dev_num); + client = snd_seq_create_kernel_client(opl4->card, opl4->seq_dev_num, + "OPL4 Wavetable"); if (client < 0) { snd_midi_channel_free_set(opl4->chset); return client; @@ -151,13 +151,6 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev) opl4->seq_client = client; opl4->chset->client = client; - /* change name of client */ - memset(&cinfo, 0, sizeof(cinfo)); - cinfo.client = client; - cinfo.type = KERNEL_CLIENT; - strcpy(cinfo.name, "OPL4 Wavetable"); - snd_seq_kernel_client_ctl(client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, &cinfo); - /* create new port */ memset(&pcallbacks, 0, sizeof(pcallbacks)); pcallbacks.owner = THIS_MODULE; diff --git a/sound/isa/gus/gus_synth.c b/sound/isa/gus/gus_synth.c index 6464488363e..85a1b051f09 100644 --- a/sound/isa/gus/gus_synth.c +++ b/sound/isa/gus/gus_synth.c @@ -214,7 +214,6 @@ static int snd_gus_synth_new_device(struct snd_seq_device *dev) { struct snd_gus_card *gus; int client, i; - struct snd_seq_client_info *cinfo; struct snd_seq_port_subscribe sub; struct snd_iwffff_ops *iwops; struct snd_gf1_ops *gf1ops; @@ -227,25 +226,12 @@ static int snd_gus_synth_new_device(struct snd_seq_device *dev) init_MUTEX(&gus->register_mutex); gus->gf1.seq_client = -1; - cinfo = kmalloc(sizeof(*cinfo), GFP_KERNEL); - if (! cinfo) - return -ENOMEM; - /* allocate new client */ client = gus->gf1.seq_client = - snd_seq_create_kernel_client(gus->card, 1); - if (client < 0) { - kfree(cinfo); + snd_seq_create_kernel_client(gus->card, 1, gus->interwave ? + "AMD InterWave" : "GF1"); + if (client < 0) return client; - } - - /* change name of client */ - memset(cinfo, 0, sizeof(*cinfo)); - cinfo->client = client; - cinfo->type = KERNEL_CLIENT; - sprintf(cinfo->name, gus->interwave ? "AMD InterWave" : "GF1"); - snd_seq_kernel_client_ctl(client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, cinfo); - kfree(cinfo); for (i = 0; i < 4; i++) snd_gus_synth_create_port(gus, i); diff --git a/sound/pci/trident/trident_synth.c b/sound/pci/trident/trident_synth.c index e31055a4bd2..cc7af8bc55a 100644 --- a/sound/pci/trident/trident_synth.c +++ b/sound/pci/trident/trident_synth.c @@ -934,7 +934,6 @@ static int snd_trident_synth_new_device(struct snd_seq_device *dev) { struct snd_trident *trident; int client, i; - struct snd_seq_client_info cinfo; struct snd_seq_port_subscribe sub; struct snd_simple_ops *simpleops; char *str; @@ -946,23 +945,16 @@ static int snd_trident_synth_new_device(struct snd_seq_device *dev) trident->synth.seq_client = -1; /* allocate new client */ - client = trident->synth.seq_client = - snd_seq_create_kernel_client(trident->card, 1); - if (client < 0) - return client; - - /* change name of client */ - memset(&cinfo, 0, sizeof(cinfo)); - cinfo.client = client; - cinfo.type = KERNEL_CLIENT; str = "???"; switch (trident->device) { case TRIDENT_DEVICE_ID_DX: str = "Trident 4DWave-DX"; break; case TRIDENT_DEVICE_ID_NX: str = "Trident 4DWave-NX"; break; case TRIDENT_DEVICE_ID_SI7018: str = "SiS 7018"; break; } - sprintf(cinfo.name, str); - snd_seq_kernel_client_ctl(client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, &cinfo); + client = trident->synth.seq_client = + snd_seq_create_kernel_client(trident->card, 1, str); + if (client < 0) + return client; for (i = 0; i < 4; i++) snd_trident_synth_create_port(trident, i); diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c index b7129c5aee0..1a973d7a90f 100644 --- a/sound/synth/emux/emux_seq.c +++ b/sound/synth/emux/emux_seq.c @@ -28,7 +28,6 @@ static void free_port(void *private); static void snd_emux_init_port(struct snd_emux_port *p); static int snd_emux_use(void *private_data, struct snd_seq_port_subscribe *info); static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *info); -static int get_client(struct snd_card *card, int index, char *name); /* * MIDI emulation operators @@ -71,8 +70,8 @@ snd_emux_init_seq(struct snd_emux *emu, struct snd_card *card, int index) struct snd_seq_port_callback pinfo; char tmpname[64]; - sprintf(tmpname, "%s WaveTable", emu->name); - emu->client = get_client(card, index, tmpname); + emu->client = snd_seq_create_kernel_client(card, index, + "%s WaveTable", emu->name); if (emu->client < 0) { snd_printk("can't create client\n"); return -ENODEV; @@ -341,30 +340,6 @@ snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *info) } -/* - * Create a sequencer client - */ -static int -get_client(struct snd_card *card, int index, char *name) -{ - struct snd_seq_client_info cinfo; - int client; - - /* Find a free client, start from 1 as the MPU expects to use 0 */ - client = snd_seq_create_kernel_client(card, index); - if (client < 0) - return client; - - memset(&cinfo, 0, sizeof(cinfo)); - cinfo.client = client; - cinfo.type = KERNEL_CLIENT; - strcpy(cinfo.name, name); - snd_seq_kernel_client_ctl(client, SNDRV_SEQ_IOCTL_SET_CLIENT_INFO, &cinfo); - - return client; -} - - /* * attach virtual rawmidi devices */ -- cgit v1.2.3-70-g09d2 From 607da7f834592a723797b21c2463507a44d9cfa7 Mon Sep 17 00:00:00 2001 From: Rene Herman Date: Wed, 14 Dec 2005 11:57:27 +0100 Subject: [ALSA] es1968 - Fix conflict with ISA boards Modules: ES1968 driver Fix disablement of TDMA and legacy support to prevent confliction of resources with ISA boards. Confirmed with Terratec DMX and CS4236. Signed-off-by: Takashi Iwai --- sound/pci/es1968.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index 240cf2b4205..9ffb600321c 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c @@ -176,7 +176,7 @@ MODULE_PARM_DESC(joystick, "Enable joystick."); /* Values for the ESM_LEGACY_AUDIO_CONTROL */ -#define ESS_ENABLE_AUDIO 0x8000 +#define ESS_DISABLE_AUDIO 0x8000 #define ESS_ENABLE_SERIAL_IRQ 0x4000 #define IO_ADRESS_ALIAS 0x0020 #define MPU401_IRQ_ENABLE 0x0010 @@ -195,7 +195,7 @@ MODULE_PARM_DESC(joystick, "Enable joystick."); #define DMA_TDMA 0x0100 #define DMA_PCPCI 0x0200 #define POST_WRITE 0x0080 -#define ISA_TIMING 0x0040 +#define PCI_TIMING 0x0040 #define SWAP_LR 0x0020 #define SUBTR_DECODE 0x0002 @@ -2193,14 +2193,11 @@ static void snd_es1968_chip_init(struct es1968 *chip) /* Config Reg A */ pci_read_config_word(pci, ESM_CONFIG_A, &w); - /* Use TDMA for now. TDMA works on all boards, so while its - * not the most efficient its the simplest. */ w &= ~DMA_CLEAR; /* Clear DMA bits */ - w |= DMA_TDMA; /* TDMA on */ w &= ~(PIC_SNOOP1 | PIC_SNOOP2); /* Clear Pic Snoop Mode Bits */ w &= ~SAFEGUARD; /* Safeguard off */ w |= POST_WRITE; /* Posted write */ - w |= ISA_TIMING; /* ISA timing on */ + w |= PCI_TIMING; /* PCI timing on */ /* XXX huh? claims to be reserved.. */ w &= ~SWAP_LR; /* swap left/right seems to only have effect on SB @@ -2241,7 +2238,7 @@ static void snd_es1968_chip_init(struct es1968 *chip) pci_read_config_word(pci, ESM_LEGACY_AUDIO_CONTROL, &w); - w &= ~ESS_ENABLE_AUDIO; /* Disable Legacy Audio */ + w |= ESS_DISABLE_AUDIO; /* Disable Legacy Audio */ w &= ~ESS_ENABLE_SERIAL_IRQ; /* Disable SIRQ */ w &= ~(0x1f); /* disable mpu irq/io, game port, fm, SB */ -- cgit v1.2.3-70-g09d2 From dac8dddd87b1246d9d6b79352bd6f043eb804cf2 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 14 Dec 2005 12:00:46 +0100 Subject: [ALSA] via82xx - Add a quirk for Targa Traveller 811 Modules: VIA82xx driver Add an ac97 quirk entry for Targa Traveller 811. Signed-off-by: Takashi Iwai --- sound/pci/via82xx.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index 6e6eff3e803..ed26a155c34 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -1763,6 +1763,12 @@ static struct ac97_quirk ac97_quirks[] = { .name = "Arima Notebook", .type = AC97_TUNE_HP_ONLY, }, + { + .subvendor = 0x161f, + .subdevice = 0x2032, + .name = "Targa Traveller 811", + .type = AC97_TUNE_HP_ONLY, + }, { } /* terminator */ }; -- cgit v1.2.3-70-g09d2 From 39596dc898270fcaaa8a712b63fc033f86d874cf Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Fri, 16 Dec 2005 21:59:59 +0100 Subject: [ALSA] snd-ca0106: update SPDIF to IEC958 in mixer control names. Modules: CA0106 driver Signed-off-by: James Courtier-Dutton --- sound/pci/ca0106/ca0106_mixer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ca0106/ca0106_mixer.c b/sound/pci/ca0106/ca0106_mixer.c index 39100cb62c4..06fe055674f 100644 --- a/sound/pci/ca0106/ca0106_mixer.c +++ b/sound/pci/ca0106/ca0106_mixer.c @@ -130,7 +130,7 @@ static int snd_ca0106_capture_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { static char *texts[6] = { - "SPDIF out", "i2s mixer out", "SPDIF in", "i2s in", "AC97 in", "SRC out" + "IEC958 out", "i2s mixer out", "IEC958 in", "i2s in", "AC97 in", "SRC out" }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; @@ -349,13 +349,13 @@ static struct snd_kcontrol_new snd_ca0106_volume_ctls[] __devinitdata = { CA_VOLUME("Analog Side Playback Volume", CONTROL_UNKNOWN_CHANNEL, PLAYBACK_VOLUME2), - CA_VOLUME("SPDIF Front Playback Volume", + CA_VOLUME("IEC958 Front Playback Volume", CONTROL_FRONT_CHANNEL, PLAYBACK_VOLUME1), - CA_VOLUME("SPDIF Rear Playback Volume", + CA_VOLUME("IEC958 Rear Playback Volume", CONTROL_REAR_CHANNEL, PLAYBACK_VOLUME1), - CA_VOLUME("SPDIF Center/LFE Playback Volume", + CA_VOLUME("IEC958 Center/LFE Playback Volume", CONTROL_CENTER_LFE_CHANNEL, PLAYBACK_VOLUME1), - CA_VOLUME("SPDIF Unknown Playback Volume", + CA_VOLUME("IEC958 Unknown Playback Volume", CONTROL_UNKNOWN_CHANNEL, PLAYBACK_VOLUME1), CA_VOLUME("CAPTURE feedback Playback Volume", @@ -371,7 +371,7 @@ static struct snd_kcontrol_new snd_ca0106_volume_ctls[] __devinitdata = { }, { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "SPDIF Out", + .name = "IEC958 Playback Switch", .info = snd_ca0106_shared_spdif_info, .get = snd_ca0106_shared_spdif_get, .put = snd_ca0106_shared_spdif_put -- cgit v1.2.3-70-g09d2 From a5875159dd6cec0ec743971343aee8dceac281d7 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Tue, 20 Dec 2005 22:30:49 +0100 Subject: [ALSA] snd-ca0106: Fixes sound output for Creative Audigy SE aka.SB0570. Modules: CA0106 driver Fixes ALSA bug#1636 Signed-off-by: James Courtier-Dutton --- sound/pci/ca0106/ca0106.h | 1 + sound/pci/ca0106/ca0106_main.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/ca0106/ca0106.h b/sound/pci/ca0106/ca0106.h index 7088317ec4c..c8131ea92ed 100644 --- a/sound/pci/ca0106/ca0106.h +++ b/sound/pci/ca0106/ca0106.h @@ -577,6 +577,7 @@ struct snd_ca0106_details { int ac97; int gpio_type; int i2c_adc; + int spi_dac; }; // definition of the chip-specific record diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 5964cdc93f7..1cf6f1fa98b 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -183,6 +183,17 @@ static struct snd_ca0106_details ca0106_chip_details[] = { .name = "Live! 7.1 24bit [SB0413]", .gpio_type = 1, .i2c_adc = 1 } , + /* New Audigy SE. Has a different DAC. */ + /* SB0570: + * CTRL:CA0106-DAT + * ADC: WM8768GEDS + * DAC: WM8775EDS + */ + { .serial = 0x100a1102, + .name = "Audigy SE [SB0570]", + .gpio_type = 1, + .i2c_adc = 1, + .spi_dac = 1 } , /* MSI K8N Diamond Motherboard with onboard SB Live 24bit without AC97 */ { .serial = 0x10091462, .name = "MSI K8N Diamond MB [SB0438]", @@ -273,6 +284,20 @@ void snd_ca0106_ptr_write(struct snd_ca0106 *emu, spin_unlock_irqrestore(&emu->emu_lock, flags); } +int snd_ca0106_spi_write(struct snd_ca0106 *emu, + u32 value) +{ + snd_ca0106_ptr_write(emu, SPI, 0, value); + return 0; +} + +int snd_ca0106_spi_read(struct snd_ca0106 *emu, + u32 *value) +{ + *value = snd_ca0106_ptr_read(emu, SPI, 0); + return 0; +} + int snd_ca0106_i2c_write(struct snd_ca0106 *emu, u32 reg, u32 value) @@ -1304,6 +1329,13 @@ static int __devinit snd_ca0106_create(struct snd_card *card, if (chip->details->i2c_adc == 1) { /* The SB0410 and SB0413 use I2C to control ADC. */ snd_ca0106_i2c_write(chip, ADC_MUX, ADC_MUX_LINEIN); /* Enable Line-in capture. MIC in currently untested. */ } + if (chip->details->spi_dac == 1) { /* The SB0570 use SPI to control DAC. */ + u32 tmp; + snd_ca0106_spi_write(chip, 0xf0622); /* Enable speakers output. */ + snd_ca0106_spi_read(chip, &tmp); /* Read the value. */ + snd_ca0106_spi_write(chip, 0xe1400); + snd_ca0106_spi_read(chip, &tmp); /* Read the value. */ + } if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { -- cgit v1.2.3-70-g09d2 From 27fe864ec9e61041fc0b6f680207ae84f359b502 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Wed, 21 Dec 2005 15:06:08 +0100 Subject: [ALSA] snd-emu10k1: Removes some distortion from Audigy 2 ZS Notebook. Modules: EMU10K1/EMU10K2 driver Description: Part way to fix ALSA bug#927 Add support for the SPI interface on the CA0108 chip. This is used to control the registers on the DAC. Headphone output tested. Other outputs and Capture not tested yet. Note: The red LED does not come on, but sound is still OK. Signed-off-by: James Courtier-Dutton --- include/sound/emu10k1.h | 3 +++ sound/pci/emu10k1/emu10k1_main.c | 28 +++++++++++++++++++++++++++- sound/pci/emu10k1/io.c | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index 0d6e68c43e6..951e40d720d 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h @@ -1062,6 +1062,8 @@ struct snd_emu_chip_details { unsigned char ac97_chip; /* Has an AC97 chip: 1 = mandatory, 2 = optional */ unsigned char ecard; /* APS EEPROM */ unsigned char emu1212m; /* EMU 1212m card */ + unsigned char spi_dac; /* SPI interface for DAC */ + unsigned char i2c_adc; /* I2C interface for ADC */ const char *driver; const char *name; const char *id; /* for backward compatibility - can be NULL if not needed */ @@ -1203,6 +1205,7 @@ unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, un void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data); unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn); void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data); +int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, unsigned int data); unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc); void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb); void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb); diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index f8e2ccd50d6..eb093700fa7 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -181,7 +181,32 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) tmp = inl(emu->port + A_IOCFG) & ~0x8; /* Clear bit 3 */ outl(tmp, emu->port + A_IOCFG); } - + if (emu->card_capabilities->spi_dac) { /* Audigy 2 ZS Notebook with DAC Wolfson WM8768/WM8568 */ + u32 tmp; + tmp = snd_emu10k1_spi_write(emu, 0x00ff); + tmp = snd_emu10k1_spi_write(emu, 0x02ff); + tmp = snd_emu10k1_spi_write(emu, 0x0400); + tmp = snd_emu10k1_spi_write(emu, 0x0520); + tmp = snd_emu10k1_spi_write(emu, 0x0600); + tmp = snd_emu10k1_spi_write(emu, 0x08ff); + tmp = snd_emu10k1_spi_write(emu, 0x0aff); + tmp = snd_emu10k1_spi_write(emu, 0x0cff); + tmp = snd_emu10k1_spi_write(emu, 0x0eff); + tmp = snd_emu10k1_spi_write(emu, 0x10ff); + tmp = snd_emu10k1_spi_write(emu, 0x1200); + tmp = snd_emu10k1_spi_write(emu, 0x1400); + tmp = snd_emu10k1_spi_write(emu, 0x1480); + tmp = snd_emu10k1_spi_write(emu, 0x1800); + tmp = snd_emu10k1_spi_write(emu, 0x1aff); + tmp = snd_emu10k1_spi_write(emu, 0x1cff); + tmp = snd_emu10k1_spi_write(emu, 0x1e00); + tmp = snd_emu10k1_spi_write(emu, 0x0530); + tmp = snd_emu10k1_spi_write(emu, 0x0602); + tmp = snd_emu10k1_spi_write(emu, 0x0622); + tmp = snd_emu10k1_spi_write(emu, 0x1400); + snd_emu10k1_ptr20_write(emu, 0x60, 0, 0x10); + } + snd_emu10k1_ptr_write(emu, PTB, 0, emu->ptb_pages.addr); snd_emu10k1_ptr_write(emu, TCB, 0, 0); /* taken from original driver */ snd_emu10k1_ptr_write(emu, TCBS, 0, 4); /* taken from original driver */ @@ -747,6 +772,7 @@ static struct snd_emu_chip_details emu_chip_details[] = { .emu10k2_chip = 1, .ca0108_chip = 1, .ca_cardbus_chip = 1, + .spi_dac = 1, .spk71 = 1} , {.vendor = 0x1102, .device = 0x0008, .driver = "Audigy2", .name = "Audigy 2 Value [Unknown]", diff --git a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c index 5d116dd7403..7d0cb9db428 100644 --- a/sound/pci/emu10k1/io.c +++ b/sound/pci/emu10k1/io.c @@ -29,6 +29,7 @@ #include #include #include +#include unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn) { @@ -123,6 +124,41 @@ void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, spin_unlock_irqrestore(&emu->emu_lock, flags); } +int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, + unsigned int data) +{ + unsigned int reset, set; + unsigned int reg, tmp; + int n, result; + if (emu->card_capabilities->ca0108_chip) { + reg=0x3c; /* PTR20, reg 0x3c */ + } else { + return 1; /* For other cards types the SPI register is currently unknown. */ + } + if (data > 0xffff) return 1; /* Only 16bit values allowed */ + + tmp = snd_emu10k1_ptr20_read(emu, reg, 0); + reset = (tmp & ~0x3ffff) | 0x20000; /* Set xxx20000 */ + set = reset | 0x10000; /* Set xxx1xxxx */ + snd_emu10k1_ptr20_write(emu, reg, 0, reset | data); + tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* write post */ + snd_emu10k1_ptr20_write(emu, reg, 0, set | data); + result = 1; + /* Wait for status bit to return to 0 */ + for (n=0;n<100;n++) { + udelay(10); + tmp = snd_emu10k1_ptr20_read(emu, reg, 0); + if (!(tmp & 0x10000)) { + result=0; + break; + } + } + if (result) return 1; /* Timed out */ + snd_emu10k1_ptr20_write(emu, reg, 0, reset | data); + tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* Write post */ + return 0; +} + void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb) { unsigned long flags; -- cgit v1.2.3-70-g09d2 From ccadc3e38b72629fdfd1290343fdb11813dfecc2 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Wed, 21 Dec 2005 15:31:02 +0100 Subject: [ALSA] snd-emu10k1: Enable speakers on Audigy 2 ZS Notebook. Modules: EMU10K1/EMU10K2 driver Description: This enables the 7.1 speaker output of the Audigy 2 ZS Notebook. Further towards fixing ALSA bug#927 TODO: SPDIF/IEC958 output. (untested, might already work) Sound capture. (untested, might already work.) Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emu10k1_main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index eb093700fa7..e3a14068115 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -205,6 +205,18 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) tmp = snd_emu10k1_spi_write(emu, 0x0622); tmp = snd_emu10k1_spi_write(emu, 0x1400); snd_emu10k1_ptr20_write(emu, 0x60, 0, 0x10); + /* Enable GPIOs + * GPIO0: Unknown + * GPIO1: Speakers-enabled. + * GPIO2: Unknown + * GPIO3: Unknown + * GPIO4: IEC958 Output on. + * GPIO5: Unknown + * GPIO6: Unknown + * GPIO7: Unknown + */ + outl(0x76, emu->port + A_IOCFG); /* Windows uses 0x3f76 */ + } snd_emu10k1_ptr_write(emu, PTB, 0, emu->ptb_pages.addr); -- cgit v1.2.3-70-g09d2 From 28bcbdddaffcb2ccf08d06db7cecf047ec66057d Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Wed, 21 Dec 2005 15:41:50 +0100 Subject: [ALSA] snd-emu10k1: Fix whitespace. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/io.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c index 7d0cb9db428..08a0cb54582 100644 --- a/sound/pci/emu10k1/io.c +++ b/sound/pci/emu10k1/io.c @@ -130,15 +130,18 @@ int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, unsigned int reset, set; unsigned int reg, tmp; int n, result; - if (emu->card_capabilities->ca0108_chip) { - reg=0x3c; /* PTR20, reg 0x3c */ - } else { - return 1; /* For other cards types the SPI register is currently unknown. */ + if (emu->card_capabilities->ca0108_chip) + reg = 0x3c; /* PTR20, reg 0x3c */ + else { + /* For other chip types the SPI register + * is currently unknown. */ + return 1; } - if (data > 0xffff) return 1; /* Only 16bit values allowed */ + if (data > 0xffff) /* Only 16bit values allowed */ + return 1; tmp = snd_emu10k1_ptr20_read(emu, reg, 0); - reset = (tmp & ~0x3ffff) | 0x20000; /* Set xxx20000 */ + reset = (tmp & ~0x3ffff) | 0x20000; /* Set xxx20000 */ set = reset | 0x10000; /* Set xxx1xxxx */ snd_emu10k1_ptr20_write(emu, reg, 0, reset | data); tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* write post */ -- cgit v1.2.3-70-g09d2 From c6a02ca29388a806df3df73015ee494a6e055309 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Wed, 21 Dec 2005 15:56:01 +0100 Subject: [ALSA] snd-emu10k1: Fix whitespace. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/io.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c index 08a0cb54582..ef5304df8c1 100644 --- a/sound/pci/emu10k1/io.c +++ b/sound/pci/emu10k1/io.c @@ -148,15 +148,16 @@ int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, snd_emu10k1_ptr20_write(emu, reg, 0, set | data); result = 1; /* Wait for status bit to return to 0 */ - for (n=0;n<100;n++) { + for (n = 0; n < 100; n++) { udelay(10); tmp = snd_emu10k1_ptr20_read(emu, reg, 0); if (!(tmp & 0x10000)) { - result=0; + result = 0; break; } } - if (result) return 1; /* Timed out */ + if (result) /* Timed out */ + return 1; snd_emu10k1_ptr20_write(emu, reg, 0, reset | data); tmp = snd_emu10k1_ptr20_read(emu, reg, 0); /* Write post */ return 0; -- cgit v1.2.3-70-g09d2 From 18f3c59f2b14225bd23c41a87a5eec39439bc8b9 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Wed, 21 Dec 2005 22:05:29 +0100 Subject: [ALSA] snd-emu10k1: Tidy SPI code. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emu10k1_main.c | 52 +++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 22 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index e3a14068115..615460f5513 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -92,6 +92,30 @@ void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int ch) } } +static unsigned int spi_dac_init[] = { + 0x00ff, + 0x02ff, + 0x0400, + 0x0520, + 0x0600, + 0x08ff, + 0x0aff, + 0x0cff, + 0x0eff, + 0x10ff, + 0x1200, + 0x1400, + 0x1480, + 0x1800, + 0x1aff, + 0x1cff, + 0x1e00, + 0x0530, + 0x0602, + 0x0622, + 0x1400, +}; + static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) { unsigned int silent_page; @@ -182,28 +206,12 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume) outl(tmp, emu->port + A_IOCFG); } if (emu->card_capabilities->spi_dac) { /* Audigy 2 ZS Notebook with DAC Wolfson WM8768/WM8568 */ - u32 tmp; - tmp = snd_emu10k1_spi_write(emu, 0x00ff); - tmp = snd_emu10k1_spi_write(emu, 0x02ff); - tmp = snd_emu10k1_spi_write(emu, 0x0400); - tmp = snd_emu10k1_spi_write(emu, 0x0520); - tmp = snd_emu10k1_spi_write(emu, 0x0600); - tmp = snd_emu10k1_spi_write(emu, 0x08ff); - tmp = snd_emu10k1_spi_write(emu, 0x0aff); - tmp = snd_emu10k1_spi_write(emu, 0x0cff); - tmp = snd_emu10k1_spi_write(emu, 0x0eff); - tmp = snd_emu10k1_spi_write(emu, 0x10ff); - tmp = snd_emu10k1_spi_write(emu, 0x1200); - tmp = snd_emu10k1_spi_write(emu, 0x1400); - tmp = snd_emu10k1_spi_write(emu, 0x1480); - tmp = snd_emu10k1_spi_write(emu, 0x1800); - tmp = snd_emu10k1_spi_write(emu, 0x1aff); - tmp = snd_emu10k1_spi_write(emu, 0x1cff); - tmp = snd_emu10k1_spi_write(emu, 0x1e00); - tmp = snd_emu10k1_spi_write(emu, 0x0530); - tmp = snd_emu10k1_spi_write(emu, 0x0602); - tmp = snd_emu10k1_spi_write(emu, 0x0622); - tmp = snd_emu10k1_spi_write(emu, 0x1400); + int size, n; + + size = ARRAY_SIZE(spi_dac_init); + for (n=0; n < size; n++) + snd_emu10k1_spi_write(emu, spi_dac_init[n]); + snd_emu10k1_ptr20_write(emu, 0x60, 0, 0x10); /* Enable GPIOs * GPIO0: Unknown -- cgit v1.2.3-70-g09d2 From aad9095322c0c7d9637f29b71167458c36a4cdf6 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Wed, 21 Dec 2005 22:26:26 +0100 Subject: [ALSA] snd-ca0106: Fix SPI driver code. Fixes speaker output. Modules: CA0106 driver Signed-off-by: James Courtier-Dutton --- sound/pci/ca0106/ca0106_main.c | 72 +++++++++++++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 15 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 1cf6f1fa98b..6ed7c0bfa09 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -284,20 +284,38 @@ void snd_ca0106_ptr_write(struct snd_ca0106 *emu, spin_unlock_irqrestore(&emu->emu_lock, flags); } -int snd_ca0106_spi_write(struct snd_ca0106 *emu, - u32 value) +int snd_ca0106_spi_write(struct snd_ca0106 * emu, + unsigned int data) { - snd_ca0106_ptr_write(emu, SPI, 0, value); + unsigned int reset, set; + unsigned int reg, tmp; + int n, result; + reg = SPI; + if (data > 0xffff) /* Only 16bit values allowed */ + return 1; + tmp = snd_ca0106_ptr_read(emu, reg, 0); + reset = (tmp & ~0x3ffff) | 0x20000; /* Set xxx20000 */ + set = reset | 0x10000; /* Set xxx1xxxx */ + snd_ca0106_ptr_write(emu, reg, 0, reset | data); + tmp = snd_ca0106_ptr_read(emu, reg, 0); /* write post */ + snd_ca0106_ptr_write(emu, reg, 0, set | data); + result = 1; + /* Wait for status bit to return to 0 */ + for (n = 0; n < 100; n++) { + udelay(10); + tmp = snd_ca0106_ptr_read(emu, reg, 0); + if (!(tmp & 0x10000)) { + result = 0; + break; + } + } + if (result) /* Timed out */ + return 1; + snd_ca0106_ptr_write(emu, reg, 0, reset | data); + tmp = snd_ca0106_ptr_read(emu, reg, 0); /* Write post */ return 0; } -int snd_ca0106_spi_read(struct snd_ca0106 *emu, - u32 *value) -{ - *value = snd_ca0106_ptr_read(emu, SPI, 0); - return 0; -} - int snd_ca0106_i2c_write(struct snd_ca0106 *emu, u32 reg, u32 value) @@ -1148,6 +1166,30 @@ static int __devinit snd_ca0106_pcm(struct snd_ca0106 *emu, int device, struct s return 0; } +static unsigned int spi_dac_init[] = { + 0x00ff, + 0x02ff, + 0x0400, + 0x0520, + 0x0600, + 0x08ff, + 0x0aff, + 0x0cff, + 0x0eff, + 0x10ff, + 0x1200, + 0x1400, + 0x1480, + 0x1800, + 0x1aff, + 0x1cff, + 0x1e00, + 0x0530, + 0x0602, + 0x0622, + 0x1400, +}; + static int __devinit snd_ca0106_create(struct snd_card *card, struct pci_dev *pci, struct snd_ca0106 **rchip) @@ -1330,11 +1372,11 @@ static int __devinit snd_ca0106_create(struct snd_card *card, snd_ca0106_i2c_write(chip, ADC_MUX, ADC_MUX_LINEIN); /* Enable Line-in capture. MIC in currently untested. */ } if (chip->details->spi_dac == 1) { /* The SB0570 use SPI to control DAC. */ - u32 tmp; - snd_ca0106_spi_write(chip, 0xf0622); /* Enable speakers output. */ - snd_ca0106_spi_read(chip, &tmp); /* Read the value. */ - snd_ca0106_spi_write(chip, 0xe1400); - snd_ca0106_spi_read(chip, &tmp); /* Read the value. */ + int size, n; + + size = ARRAY_SIZE(spi_dac_init); + for (n=0; n < size; n++) + snd_ca0106_spi_write(chip, spi_dac_init[n]); } if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, -- cgit v1.2.3-70-g09d2 From 54efc96d4a26f1d55be36324e9cc658a581a40ba Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Thu, 22 Dec 2005 12:58:41 +0100 Subject: [ALSA] snd-emu10k1: Add some comments regarding chip types. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emu10k1_main.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 615460f5513..dfe74581866 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -776,6 +776,12 @@ static int snd_emu10k1_dev_free(struct snd_device *device) static struct snd_emu_chip_details emu_chip_details[] = { /* Audigy 2 Value AC3 out does not work yet. Need to find out how to turn off interpolators.*/ /* Tested by James@superbug.co.uk 3rd July 2005 */ + /* DSP: CA0108-IAT + * DAC: CS4382-KQ + * ADC: Philips 1361T + * AC97: STAC9750 + * CA0151: None + */ {.vendor = 0x1102, .device = 0x0008, .subsystem = 0x10011102, .driver = "Audigy2", .name = "Audigy 2 Value [SB0400]", .id = "Audigy2", @@ -845,6 +851,14 @@ static struct snd_emu_chip_details emu_chip_details[] = { .spk71 = 1, .spdif_bug = 1, .ac97_chip = 1} , + /* Audigy 2 */ + /* Tested by James@superbug.co.uk 3rd July 2005 */ + /* DSP: CA0102-IAT + * DAC: CS4382-KQ + * ADC: Philips 1361T + * AC97: STAC9721 + * CA0151: Yes + */ {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x10071102, .driver = "Audigy2", .name = "Audigy 2 [SB0240]", .id = "Audigy2", -- cgit v1.2.3-70-g09d2 From f951fd3cc4b04c338b4fcf94b4844e921337dfaa Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Thu, 22 Dec 2005 13:05:23 +0100 Subject: [ALSA] snd-emu10k1: Add comments regarding chips present on the card. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emu10k1_main.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index dfe74581866..cec7305b77e 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -790,8 +790,17 @@ static struct snd_emu_chip_details emu_chip_details[] = { .spk71 = 1, .ac97_chip = 1} , /* Audigy 2 ZS Notebook Cardbus card.*/ - /* Tested by James@superbug.co.uk 30th October 2005 */ - /* Not working yet, but progressing. */ + /* Tested by James@superbug.co.uk 22th December 2005 */ + /* Audio output 7.1/Headphones working. + * Digital output working. (AC3 not checked, only PCM) + * Audio inputs not tested. + */ + /* DSP: Tiny2 + * DAC: Wolfson WM8768/WM8568 + * ADC: Wolfson WM8775 + * AC97: None + * CA0151: None + */ {.vendor = 0x1102, .device = 0x0008, .subsystem = 0x20011102, .driver = "Audigy2", .name = "Audigy 2 ZS Notebook [SB0530]", .id = "Audigy2", -- cgit v1.2.3-70-g09d2 From eff49137dd432eeae16e4627b8595c71e1362307 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 22 Dec 2005 17:01:20 +0100 Subject: [ALSA] emu10k1 - Clean up p16v code Modules: EMU10K1/EMU10K2 driver Clean up and optimize the codes in p16v.c - Add proper __devinit* tags - Reduce unnecessary functions using a closure - Fix whitespaces - Rename 'Unknown' to 'Side' controls Signed-off-by: Takashi Iwai --- sound/pci/emu10k1/p16v.c | 361 +++++++++++------------------------------------ 1 file changed, 80 insertions(+), 281 deletions(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c index 76d86ed46df..9905651935f 100644 --- a/sound/pci/emu10k1/p16v.c +++ b/sound/pci/emu10k1/p16v.c @@ -107,11 +107,11 @@ #define PCM_FRONT_CHANNEL 0 #define PCM_REAR_CHANNEL 1 #define PCM_CENTER_LFE_CHANNEL 2 -#define PCM_UNKNOWN_CHANNEL 3 +#define PCM_SIDE_CHANNEL 3 #define CONTROL_FRONT_CHANNEL 0 #define CONTROL_REAR_CHANNEL 3 #define CONTROL_CENTER_LFE_CHANNEL 1 -#define CONTROL_UNKNOWN_CHANNEL 2 +#define CONTROL_SIDE_CHANNEL 2 /* Card IDs: * Class 0401: 1102:0004 (rev 04) Subsystem: 1102:2002 -> Audigy2 ZS 7.1 Model:SB0350 @@ -590,7 +590,7 @@ int snd_p16v_free(struct snd_emu10k1 *chip) return 0; } -int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm) +int __devinit snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm) { struct snd_pcm *pcm; struct snd_pcm_substream *substream; @@ -644,7 +644,8 @@ int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm) return 0; } -static int snd_p16v_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +static int snd_p16v_volume_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->count = 2; @@ -654,240 +655,56 @@ static int snd_p16v_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_el } static int snd_p16v_volume_get(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol, int reg, int high_low) + struct snd_ctl_elem_value *ucontrol) { struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); - u32 value; - - value = snd_emu10k1_ptr20_read(emu, reg, high_low); - if (high_low == 1) { - ucontrol->value.integer.value[0] = 0xff - ((value >> 24) & 0xff); /* Left */ - ucontrol->value.integer.value[1] = 0xff - ((value >> 16) & 0xff); /* Right */ + int high_low = (kcontrol->private_value >> 8) & 0xff; + int reg = kcontrol->private_value & 0xff; + u32 value; + + value = snd_emu10k1_ptr20_read(emu, reg, high_low); + if (high_low) { + ucontrol->value.integer.value[0] = 0xff - ((value >> 24) & 0xff); /* Left */ + ucontrol->value.integer.value[1] = 0xff - ((value >> 16) & 0xff); /* Right */ } else { - ucontrol->value.integer.value[0] = 0xff - ((value >> 8) & 0xff); /* Left */ - ucontrol->value.integer.value[1] = 0xff - ((value >> 0) & 0xff); /* Right */ + ucontrol->value.integer.value[0] = 0xff - ((value >> 8) & 0xff); /* Left */ + ucontrol->value.integer.value[1] = 0xff - ((value >> 0) & 0xff); /* Right */ } - return 0; -} - -static int snd_p16v_volume_get_spdif_front(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER7; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_get_spdif_center_lfe(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER7; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); -} -static int snd_p16v_volume_get_spdif_unknown(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER8; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); -} -static int snd_p16v_volume_get_spdif_rear(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER8; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_get_analog_front(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER9; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_get_analog_center_lfe(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER9; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); -} -static int snd_p16v_volume_get_analog_rear(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER10; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_get_analog_unknown(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER10; - return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); + return 0; } static int snd_p16v_volume_put(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol, int reg, int high_low) + struct snd_ctl_elem_value *ucontrol) { struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); - u32 value; - value = snd_emu10k1_ptr20_read(emu, reg, 0); - //value = value & 0xffff; + int high_low = (kcontrol->private_value >> 8) & 0xff; + int reg = kcontrol->private_value & 0xff; + u32 value, oval; + + oval = value = snd_emu10k1_ptr20_read(emu, reg, 0); if (high_low == 1) { value &= 0xffff; - value = value | ((0xff - ucontrol->value.integer.value[0]) << 24) | ((0xff - ucontrol->value.integer.value[1]) << 16); + value |= ((0xff - ucontrol->value.integer.value[0]) << 24) | + ((0xff - ucontrol->value.integer.value[1]) << 16); } else { value &= 0xffff0000; - value = value | ((0xff - ucontrol->value.integer.value[0]) << 8) | ((0xff - ucontrol->value.integer.value[1]) ); + value |= ((0xff - ucontrol->value.integer.value[0]) << 8) | + ((0xff - ucontrol->value.integer.value[1]) ); } - snd_emu10k1_ptr20_write(emu, reg, 0, value); - return 1; -} - -static int snd_p16v_volume_put_spdif_front(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER7; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_put_spdif_center_lfe(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER7; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_put_spdif_unknown(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER8; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_put_spdif_rear(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER8; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_put_analog_front(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER9; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_put_analog_center_lfe(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER9; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_put_analog_rear(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 1; - int reg = PLAYBACK_VOLUME_MIXER10; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); -} - -static int snd_p16v_volume_put_analog_unknown(struct snd_kcontrol *kcontrol, - struct snd_ctl_elem_value *ucontrol) -{ - int high_low = 0; - int reg = PLAYBACK_VOLUME_MIXER10; - return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); + if (value != oval) { + snd_emu10k1_ptr20_write(emu, reg, 0, value); + return 1; + } + return 0; } -static struct snd_kcontrol_new snd_p16v_volume_control_analog_front = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD Analog Front Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_analog_front, - .put = snd_p16v_volume_put_analog_front -}; - -static struct snd_kcontrol_new snd_p16v_volume_control_analog_center_lfe = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD Analog Center/LFE Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_analog_center_lfe, - .put = snd_p16v_volume_put_analog_center_lfe -}; - -static struct snd_kcontrol_new snd_p16v_volume_control_analog_unknown = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD Analog Unknown Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_analog_unknown, - .put = snd_p16v_volume_put_analog_unknown -}; - -static struct snd_kcontrol_new snd_p16v_volume_control_analog_rear = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD Analog Rear Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_analog_rear, - .put = snd_p16v_volume_put_analog_rear -}; - -static struct snd_kcontrol_new snd_p16v_volume_control_spdif_front = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD SPDIF Front Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_spdif_front, - .put = snd_p16v_volume_put_spdif_front -}; - -static struct snd_kcontrol_new snd_p16v_volume_control_spdif_center_lfe = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD SPDIF Center/LFE Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_spdif_center_lfe, - .put = snd_p16v_volume_put_spdif_center_lfe -}; - -static struct snd_kcontrol_new snd_p16v_volume_control_spdif_unknown = +static int snd_p16v_capture_source_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD SPDIF Unknown Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_spdif_unknown, - .put = snd_p16v_volume_put_spdif_unknown -}; - -static struct snd_kcontrol_new snd_p16v_volume_control_spdif_rear = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD SPDIF Rear Playback Volume", - .info = snd_p16v_volume_info, - .get = snd_p16v_volume_get_spdif_rear, - .put = snd_p16v_volume_put_spdif_rear -}; - -static int snd_p16v_capture_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) -{ - static char *texts[8] = { "SPDIF", "I2S", "SRC48", "SRCMulti_SPDIF", "SRCMulti_I2S", "CDIF", "FX", "AC97" }; + static char *texts[8] = { + "SPDIF", "I2S", "SRC48", "SRCMulti_SPDIF", "SRCMulti_I2S", + "CDIF", "FX", "AC97" + }; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->count = 1; @@ -927,16 +744,8 @@ static int snd_p16v_capture_source_put(struct snd_kcontrol *kcontrol, return change; } -static struct snd_kcontrol_new snd_p16v_capture_source __devinitdata = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD source Capture", - .info = snd_p16v_capture_source_info, - .get = snd_p16v_capture_source_get, - .put = snd_p16v_capture_source_put -}; - -static int snd_p16v_capture_channel_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +static int snd_p16v_capture_channel_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) { static char *texts[4] = { "0", "1", "2", "3", }; @@ -976,60 +785,50 @@ static int snd_p16v_capture_channel_put(struct snd_kcontrol *kcontrol, return change; } -static struct snd_kcontrol_new snd_p16v_capture_channel __devinitdata = -{ - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "HD channel Capture", - .info = snd_p16v_capture_channel_info, - .get = snd_p16v_capture_channel_get, - .put = snd_p16v_capture_channel_put +#define P16V_VOL(xname,xreg,xhl) { \ + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ + .info = snd_p16v_volume_info, \ + .get = snd_p16v_volume_get, \ + .put = snd_p16v_volume_put, \ + .private_value = ((xreg) | ((xhl) << 8)) \ +} + +static struct snd_kcontrol_new p16v_mixer_controls[] __devinitdata = { + P16V_VOL("HD Analog Front Playback Volume", PLAYBACK_VOLUME_MIXER9, 0), + P16V_VOL("HD Analog Rear Playback Volume", PLAYBACK_VOLUME_MIXER10, 1), + P16V_VOL("HD Analog Center/LFE Playback Volume", PLAYBACK_VOLUME_MIXER9, 1), + P16V_VOL("HD Analog Side Playback Volume", PLAYBACK_VOLUME_MIXER10, 0), + P16V_VOL("HD SPDIF Front Playback Volume", PLAYBACK_VOLUME_MIXER7, 0), + P16V_VOL("HD SPDIF Rear Playback Volume", PLAYBACK_VOLUME_MIXER8, 1), + P16V_VOL("HD SPDIF Center/LFE Playback Volume", PLAYBACK_VOLUME_MIXER7, 1), + P16V_VOL("HD SPDIF Side Playback Volume", PLAYBACK_VOLUME_MIXER8, 0), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "HD source Capture", + .info = snd_p16v_capture_source_info, + .get = snd_p16v_capture_source_get, + .put = snd_p16v_capture_source_put + }, + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "HD channel Capture", + .info = snd_p16v_capture_channel_info, + .get = snd_p16v_capture_channel_get, + .put = snd_p16v_capture_channel_put + }, }; -int snd_p16v_mixer(struct snd_emu10k1 *emu) + +int __devinit snd_p16v_mixer(struct snd_emu10k1 *emu) { - int err; - struct snd_kcontrol *kctl; + int i, err; struct snd_card *card = emu->card; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_analog_front, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_analog_rear, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_analog_center_lfe, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_analog_unknown, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_spdif_front, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_spdif_rear, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_spdif_center_lfe, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_spdif_unknown, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_capture_source, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; - if ((kctl = snd_ctl_new1(&snd_p16v_capture_channel, emu)) == NULL) - return -ENOMEM; - if ((err = snd_ctl_add(card, kctl))) - return err; + + for (i = 0; i < ARRAY_SIZE(p16v_mixer_controls); i++) { + if ((err = snd_ctl_add(card, snd_ctl_new1(&p16v_mixer_controls[i], + emu))) < 0) + return err; + } return 0; } -- cgit v1.2.3-70-g09d2 From 041dec01736c59df43b0600c0fd154e50d8ccf6e Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 23 Dec 2005 12:27:52 +0100 Subject: [ALSA] hda-codec - Add model entry for Shuttle ST20G5 Modules: HDA Codec driver Added the model entry for Shuttle ST20G5. Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sound/pci') diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 55bda26ce12..ad9e501a981 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1678,6 +1678,7 @@ static struct hda_board_config alc880_cfg_tbl[] = { { .pci_subvendor = 0x1025, .pci_subdevice = 0x0077, .config = ALC880_6ST_DIG }, { .pci_subvendor = 0x1025, .pci_subdevice = 0x0078, .config = ALC880_6ST_DIG }, { .pci_subvendor = 0x1025, .pci_subdevice = 0x0087, .config = ALC880_6ST_DIG }, + { .pci_subvendor = 0x1297, .pci_subdevice = 0xc790, .config = ALC880_6ST_DIG }, /* Shuttle ST20G5 */ { .modelname = "asus", .config = ALC880_ASUS }, { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_ASUS_DIG }, -- cgit v1.2.3-70-g09d2 From e3b9bc0e78a330d0dc6669ace7925e8c132e08a7 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Sat, 24 Dec 2005 16:54:51 +0100 Subject: [ALSA] snd-emu10k1: Correct control names for Audigy 4 Pro. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emumixer.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c index 306fe4aa4aa..2e86a901a0a 100644 --- a/sound/pci/emu10k1/emumixer.c +++ b/sound/pci/emu10k1/emumixer.c @@ -866,7 +866,17 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, c = emu10k1_rename_ctls; for (; *c; c += 2) rename_ctl(card, c[0], c[1]); - + if (emu->card_capabilities->subsystem == 0x20071102) { /* Audigy 4 Pro */ + rename_ctl(card, "Line2 Capture Volume", "Line1/Mic Capture Volume"); + rename_ctl(card, "Analog Mix Capture Volume", "Line2 Capture Volume"); + rename_ctl(card, "Aux2 Capture Volume", "Line3 Capture Volume"); + rename_ctl(card, "Mic Capture Volume", "Unknown1 Capture Volume"); + remove_ctl(card, "Headphone Playback Switch"); + remove_ctl(card, "Headphone Playback Volume"); + remove_ctl(card, "3D Control - Center"); + remove_ctl(card, "3D Control - Depth"); + remove_ctl(card, "3D Control - Switch"); + } if ((kctl = emu->ctl_send_routing = snd_ctl_new1(&snd_emu10k1_send_routing_control, emu)) == NULL) return -ENOMEM; kctl->id.device = pcm_device; -- cgit v1.2.3-70-g09d2 From 0ba656d0b2319b76fbebd01c1c9ba5ca8eb33fb1 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Mon, 26 Dec 2005 15:30:03 +0100 Subject: [ALSA] snd-emu10k1: Add new SB Live 5.1 PCI-ID. Modules: EMU10K1/EMU10K2 driver Signed-off-by: James Courtier-Dutton --- sound/pci/emu10k1/emu10k1_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'sound/pci') diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index cec7305b77e..3c7043b7d4c 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -945,6 +945,14 @@ static struct snd_emu_chip_details emu_chip_details[] = { .emu10k1_chip = 1, .ac97_chip = 1, .sblive51 = 1} , + /* Tested by ALSA bug#1680 26th December 2005 */ + /* note: It really has SB0220 written on the card. */ + {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80661102, + .driver = "EMU10K1", .name = "SB Live 5.1 Dell OEM [SB0220]", + .id = "Live", + .emu10k1_chip = 1, + .ac97_chip = 1, + .sblive51 = 1} , /* Tested by Thomas Zehetbauer 27th Aug 2005 */ {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80651102, .driver = "EMU10K1", .name = "SB Live 5.1 [SB0220]", -- cgit v1.2.3-70-g09d2 From c6f43290ae687c11cdcd150d8bfeb57ec29cfa5b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 4 Jan 2006 10:26:16 +0100 Subject: [ALSA] ad1889 - remove CVS ID from the driver identification Signed-off-by: Jaroslav Kysela --- sound/pci/ad1889.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/pci') diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index 61d6d523633..a208075cdc1 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c @@ -50,7 +50,7 @@ #include "ad1889.h" #include "ac97/ac97_id.h" -#define AD1889_DRVVER "$Revision: 1.4 $" +#define AD1889_DRVVER "Version: 1.7" MODULE_AUTHOR("Kyle McMartin , Thibaut Varene "); MODULE_DESCRIPTION("Analog Devices AD1889 ALSA sound driver"); -- cgit v1.2.3-70-g09d2