Commit 0348756a authored by Jaroslav Kysela's avatar Jaroslav Kysela

ALSA CVS update - Takashi Iwai <tiwai@suse.de>

PCI drivers,ICE1712 driver,ICE1724 driver
- improved the description of ice1724 driver on Kconfig.
- better support of VT1720 with snd-ice1724 driver.
- check PCI subsystem IDs when no EEPROM is available (ice1724 only)
- change the driver name string if given in the board list.
- merged prodigy 7.1 support into aureon.c.  they are almost identical.
- allow to use PDMA4 and RMDA1 for non-SPDIF purpose if specified (ice1724 only).
parent 15fe2ede
...@@ -270,15 +270,15 @@ config SND_ICE1712 ...@@ -270,15 +270,15 @@ config SND_ICE1712
TerraTec - EWX 24/96, EWS 88MT, EWS 88D, DMX 6Fire. TerraTec - EWX 24/96, EWS 88MT, EWS 88D, DMX 6Fire.
config SND_ICE1724 config SND_ICE1724
tristate "ICE/VT1724 (Envy24HT)" tristate "ICE/VT1724/1720 (Envy24HT/PT)"
depends on SND depends on SND
select SND_MPU401_UART select SND_MPU401_UART
select SND_AC97_CODEC select SND_AC97_CODEC
help help
Say 'Y' or 'M' to include support for ICE/VT1724 (Envy24HT) based Say 'Y' or 'M' to include support for ICE/VT1724/1720 (Envy24HT/PT) based
soundcards. soundcards.
Currently supported hardware is: MidiMan M Audio - Revolution 7.1, Currently supported hardware is: MidiMan M Audio - Revolution 7.1,
AMP Ltd AUDIO2000. AMP Ltd AUDIO2000, Terratec Aureon 5.1 Sky/7.1, AudioTrak Prodigy 7.1.
config SND_INTEL8X0 config SND_INTEL8X0
tristate "Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111" tristate "Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111"
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
snd-ice17xx-ak4xxx-objs := ak4xxx.o snd-ice17xx-ak4xxx-objs := ak4xxx.o
snd-ice1712-objs := ice1712.o delta.o hoontech.o ews.o snd-ice1712-objs := ice1712.o delta.o hoontech.o ews.o
snd-ice1724-objs := ice1724.o amp.o revo.o aureon.o prodigy.o snd-ice1724-objs := ice1724.o amp.o revo.o aureon.o
# Toplevel Module Dependency # Toplevel Module Dependency
obj-$(CONFIG_SND_ICE1712) += snd-ice1712.o snd-ice17xx-ak4xxx.o obj-$(CONFIG_SND_ICE1712) += snd-ice1712.o snd-ice17xx-ak4xxx.o
......
This diff is collapsed.
...@@ -26,11 +26,13 @@ ...@@ -26,11 +26,13 @@
#define AUREON_DEVICE_DESC "{Terratec,Aureon 5.1 Sky},"\ #define AUREON_DEVICE_DESC "{Terratec,Aureon 5.1 Sky},"\
"{Terratec,Aureon 7.1 Space},"\ "{Terratec,Aureon 7.1 Space},"\
"{Terratec,Aureon 7.1 Universe}," "{Terratec,Aureon 7.1 Universe}," \
"{AudioTrak,Prodigy 7.1},"
#define VT1724_SUBDEVICE_AUREON51_SKY 0x3b154711 /* Aureon 5.1 Sky */ #define VT1724_SUBDEVICE_AUREON51_SKY 0x3b154711 /* Aureon 5.1 Sky */
#define VT1724_SUBDEVICE_AUREON71_SPACE 0x3b154511 /* Aureon 7.1 Space */ #define VT1724_SUBDEVICE_AUREON71_SPACE 0x3b154511 /* Aureon 7.1 Space */
#define VT1724_SUBDEVICE_AUREON71_UNIVERSE 0x3b155311 /* Aureon 7.1 Universe */ #define VT1724_SUBDEVICE_AUREON71_UNIVERSE 0x3b155311 /* Aureon 7.1 Universe */
#define VT1724_SUBDEVICE_PRODIGY71 0x33495345 /* PRODIGY 7.1 */
extern struct snd_ice1712_card_info snd_vt1724_aureon_cards[]; extern struct snd_ice1712_card_info snd_vt1724_aureon_cards[];
...@@ -46,4 +48,8 @@ extern struct snd_ice1712_card_info snd_vt1724_aureon_cards[]; ...@@ -46,4 +48,8 @@ extern struct snd_ice1712_card_info snd_vt1724_aureon_cards[];
#define AUREON_HP_SEL (1 << 14) #define AUREON_HP_SEL (1 << 14)
#define AUREON_WM_CS (1 << 12) #define AUREON_WM_CS (1 << 12)
/* Prodigy has different pin assignment for chip select */
#define PRODIGY_CS8415_CS (1 << 23)
#define PRODIGY_CS8415_CDTO (1 << 22)
#endif /* __SOUND_AUREON_H */ #endif /* __SOUND_AUREON_H */
...@@ -2660,6 +2660,8 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci, ...@@ -2660,6 +2660,8 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
for (c = *tbl; c->subvendor; c++) { for (c = *tbl; c->subvendor; c++) {
if (c->subvendor == ice->eeprom.subvendor) { if (c->subvendor == ice->eeprom.subvendor) {
strcpy(card->shortname, c->name); strcpy(card->shortname, c->name);
if (c->driver) /* specific driver? */
strcpy(card->driver, c->driver);
if (c->chip_init) { if (c->chip_init) {
if ((err = c->chip_init(ice)) < 0) { if ((err = c->chip_init(ice)) < 0) {
snd_card_free(card); snd_card_free(card);
......
...@@ -329,6 +329,10 @@ struct _snd_ice1712 { ...@@ -329,6 +329,10 @@ struct _snd_ice1712 {
unsigned int pro_volumes[20]; unsigned int pro_volumes[20];
unsigned int omni: 1; /* Delta Omni I/O */ unsigned int omni: 1; /* Delta Omni I/O */
unsigned int vt1724: 1; unsigned int vt1724: 1;
unsigned int vt1720: 1;
unsigned int has_spdif: 1; /* VT1720/4 - has SPDIF I/O */
unsigned int force_pdma4: 1; /* VT1720/4 - PDMA4 as non-spdif */
unsigned int force_rdma1: 1; /* VT1720/4 - RDMA1 as non-spdif */
unsigned int num_total_dacs; /* total DACs */ unsigned int num_total_dacs; /* total DACs */
unsigned int num_total_adcs; /* total ADCs */ unsigned int num_total_adcs; /* total ADCs */
unsigned char hoontech_boxbits[4]; unsigned char hoontech_boxbits[4];
...@@ -461,6 +465,7 @@ struct snd_ice1712_card_info { ...@@ -461,6 +465,7 @@ struct snd_ice1712_card_info {
unsigned int subvendor; unsigned int subvendor;
char *name; char *name;
char *model; char *model;
char *driver;
int (*chip_init)(ice1712_t *); int (*chip_init)(ice1712_t *);
int (*build_controls)(ice1712_t *); int (*build_controls)(ice1712_t *);
int no_mpu401: 1; int no_mpu401: 1;
......
This diff is collapsed.
This diff is collapsed.
#ifndef __SOUND_PRODIGY_H
#define __SOUND_PRODIGY_H
/*
* ALSA driver for VIA VT1724 (Envy24HT)
*
* Lowlevel functions for Terratec PRODIGY cards
*
* Copyright (c) 2003 Takashi Iwai <tiwai@suse.de>
*
* 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
*
*/
#define PRODIGY_DEVICE_DESC "{AudioTrak,Prodigy 7.1},"
#define VT1724_SUBDEVICE_PRODIGY71 0x33495345 /* PRODIGY 7.1 */
extern struct snd_ice1712_card_info snd_vt1724_prodigy_cards[];
/* GPIO bits */
#define PRODIGY_CS8415_CS (1 << 23)
#define PRODIGY_CS8415_CDTO (1 << 22)
#define PRODIGY_WM_RESET (1 << 20)
#define PRODIGY_WM_CLK (1 << 19)
#define PRODIGY_WM_DATA (1 << 18)
#define PRODIGY_WM_RW (1 << 17)
#define PRODIGY_AC97_RESET (1 << 16)
#define PRODIGY_DIGITAL_SEL1 (1 << 15)
// #define PRODIGY_HP_SEL (1 << 14)
#define PRODIGY_WM_CS (1 << 12)
#define PRODIGY_HP_AMP_EN (1 << 14)
/* WM8770 registers */
#define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */
#define WM_DAC_MASTER_ATTEN 0x08 /* DAC master analog attenuation */
#define WM_DAC_DIG_ATTEN 0x09 /* DAC1-8 digital attenuation */
#define WM_DAC_DIG_MATER_ATTEN 0x11 /* DAC master digital attenuation */
#define WM_PHASE_SWAP 0x12 /* DAC phase */
#define WM_DAC_CTRL1 0x13 /* DAC control bits */
#define WM_MUTE 0x14 /* mute controls */
#define WM_DAC_CTRL2 0x15 /* de-emphasis and zefo-flag */
#define WM_INT_CTRL 0x16 /* interface control */
#define WM_MASTER 0x17 /* master clock and mode */
#define WM_POWERDOWN 0x18 /* power-down controls */
#define WM_ADC_GAIN 0x19 /* ADC gain L(19)/R(1a) */
#define WM_ADC_MUX 0x1b /* input MUX */
#define WM_OUT_MUX1 0x1c /* output MUX */
#define WM_OUT_MUX2 0x1e /* output MUX */
#define WM_RESET 0x1f /* software reset */
#endif /* __SOUND_PRODIGY_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment