[PATCH] [UBUNTU:sound/pci/ice1712/] #40158: Fix DXR support for Terratec DMX 6FIRE
crimsun at fungus.sh.nu
crimsun at fungus.sh.nu
Fri Apr 28 06:14:10 UTC 2006
Subject: [PATCH] [UBUNTU:sound/pci/ice1712/] #40158: Fix DXR support for Terratec DMX 6FIRE
UpstreamStatus: Added in upstream pci/ice1712/ice1712.c r1.{7[89],8[0-2]},
http://sourceforge.net/mailarchive/forum.php?thread_id=9668854&forum_id=33141 ,
http://sourceforge.net/mailarchive/forum.php?thread_id=10000476&forum_id=33141 ,
http://sourceforge.net/mailarchive/forum.php?thread_id=10029950&forum_id=33141 ;
pci/ice1712/ice1712.h r1.34
Alan Horstmann <gineera at aspect135.co.uk> submitted these patches fixing
DXR support on the Terratec DMX 6FIRE.
This commit closes Malone #40158.
Signed-off-by: Daniel T Chen <crimsun at ubuntu.com>
---
sound/pci/ice1712/ice1712.c | 15 +++++++++++++--
sound/pci/ice1712/ice1712.h | 1 +
2 files changed, 14 insertions(+), 2 deletions(-)
3c4a9c90c6d83d64fe70f92c95ba4e08e6ab4469
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index 736edf1..ec0116d 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -86,6 +86,7 @@ static int enable[SNDRV_CARDS] = SNDRV_D
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];/* DXR enable for DMX6FIRE */
module_param_array(index, int, NULL, 0444);
MODULE_PARM_DESC(index, "Index value for ICE1712 soundcard.");
@@ -99,6 +100,8 @@ module_param_array(cs8427_timeout, int,
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(dxr_enable, "Enable DXR support for Terratec DMX6FIRE.");
static struct pci_device_id snd_ice1712_ids[] = {
@@ -2380,7 +2383,13 @@ static int __devinit snd_ice1712_chip_in
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, 0x2a);
+ } 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]);
@@ -2512,6 +2521,7 @@ static int __devinit snd_ice1712_create(
const char *modelname,
int omni,
int cs8427_timeout,
+ int dxr_enable,
ice1712_t ** r_ice1712)
{
ice1712_t *ice;
@@ -2544,6 +2554,7 @@ static int __devinit snd_ice1712_create(
else if (cs8427_timeout > 1000)
cs8427_timeout = 1000;
ice->cs8427_timeout = cs8427_timeout;
+ ice->dxr_enable = dxr_enable;
spin_lock_init(&ice->reg_lock);
init_MUTEX(&ice->gpio_mutex);
init_MUTEX(&ice->i2c_mutex);
@@ -2642,7 +2653,7 @@ static int __devinit snd_ice1712_probe(s
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], dxr_enable[dev], &ice)) < 0) {
snd_card_free(card);
return err;
}
diff --git a/sound/pci/ice1712/ice1712.h b/sound/pci/ice1712/ice1712.h
index 5ad4728..d2b0d2b 100644
--- a/sound/pci/ice1712/ice1712.h
+++ b/sound/pci/ice1712/ice1712.h
@@ -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 */
--
1.1.3
--
Daniel T. Chen crimsun at ubuntu.com
GPG key: www.sh.nu/~crimsun/pubkey.gpg.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20060427/f1d9b37c/attachment.sig>
More information about the kernel-team
mailing list