Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 22719
b: refs/heads/master
c: 531af46
h: refs/heads/master
i:
  22717: 4ebd92d
  22715: 648284e
  22711: 09befc9
  22703: 7e627c5
  22687: 42bd73c
  22655: b123095
v: v3
  • Loading branch information
Alan Horstmann authored and Jaroslav Kysela committed Mar 22, 2006
1 parent a5741e5 commit a84d539
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cc7a59bd8dcee9b01e0c9ab21380071f0ae6ef0d
refs/heads/master: 531af46279fe113f9e41bd5167c8868c936813b5
16 changes: 14 additions & 2 deletions trunk/sound/pci/ice1712/ice1712.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable this card
static char *model[SNDRV_CARDS];
static int omni[SNDRV_CARDS]; /* Delta44 & 66 Omni I/O support */
static int cs8427_timeout[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 500}; /* CS8427 S/PDIF transciever reset timeout value in msec */
static int dxr_enable[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 500}; /* DXR enable for DMX6FIRE */

module_param_array(index, int, NULL, 0444);
MODULE_PARM_DESC(index, "Index value for ICE1712 soundcard.");
Expand All @@ -100,6 +101,8 @@ module_param_array(cs8427_timeout, int, NULL, 0444);
MODULE_PARM_DESC(cs8427_timeout, "Define reset timeout for cs8427 chip in msec resolution.");
module_param_array(model, charp, NULL, 0444);
MODULE_PARM_DESC(model, "Use the given board model.");
module_param_array(dxr_enable, int, NULL, 0444);
MODULE_PARM_DESC(dsr_enable, "Enable DXR support for Terratec DMX6FIRE.");


static struct pci_device_id snd_ice1712_ids[] = {
Expand Down Expand Up @@ -2390,7 +2393,13 @@ static int __devinit snd_ice1712_chip_init(struct snd_ice1712 *ice)
udelay(200);
outb(ICE1712_NATIVE, ICEREG(ice, CONTROL));
udelay(200);
pci_write_config_byte(ice->pci, 0x60, ice->eeprom.data[ICE_EEP1_CODEC]);
if (ice->eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE && !ice->dxr_enable) {
/* Limit active ADCs and DACs to 6; */
/* Note: DXR extension not supported */
pci_write_config_byte(ice->pci, 0x60, 0x0a);
} else {
pci_write_config_byte(ice->pci, 0x60, ice->eeprom.data[ICE_EEP1_CODEC]);
}
pci_write_config_byte(ice->pci, 0x61, ice->eeprom.data[ICE_EEP1_ACLINK]);
pci_write_config_byte(ice->pci, 0x62, ice->eeprom.data[ICE_EEP1_I2SID]);
pci_write_config_byte(ice->pci, 0x63, ice->eeprom.data[ICE_EEP1_SPDIF]);
Expand Down Expand Up @@ -2526,6 +2535,7 @@ static int __devinit snd_ice1712_create(struct snd_card *card,
const char *modelname,
int omni,
int cs8427_timeout,
int dxr_enable,
struct snd_ice1712 ** r_ice1712)
{
struct snd_ice1712 *ice;
Expand Down Expand Up @@ -2558,6 +2568,7 @@ static int __devinit snd_ice1712_create(struct snd_card *card,
else if (cs8427_timeout > 1000)
cs8427_timeout = 1000;
ice->cs8427_timeout = cs8427_timeout;
ice->dxr_enable = dxr_enable;
spin_lock_init(&ice->reg_lock);
mutex_init(&ice->gpio_mutex);
mutex_init(&ice->i2c_mutex);
Expand Down Expand Up @@ -2660,7 +2671,8 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
strcpy(card->shortname, "ICEnsemble ICE1712");

if ((err = snd_ice1712_create(card, pci, model[dev], omni[dev],
cs8427_timeout[dev], &ice)) < 0) {
cs8427_timeout[dev], dxr_enable[dev],
&ice)) < 0) {
snd_card_free(card);
return err;
}
Expand Down
1 change: 1 addition & 0 deletions trunk/sound/pci/ice1712/ice1712.h
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,7 @@ struct snd_ice1712 {

unsigned int pro_volumes[20];
unsigned int omni: 1; /* Delta Omni I/O */
unsigned int dxr_enable: 1; /* Terratec DXR enable for DMX6FIRE */
unsigned int vt1724: 1;
unsigned int vt1720: 1;
unsigned int has_spdif: 1; /* VT1720/4 - has SPDIF I/O */
Expand Down

0 comments on commit a84d539

Please sign in to comment.