aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2004-04-24 19:56:47 +0200
committerJaroslav Kysela <perex@suse.cz>2004-04-24 19:56:47 +0200
commit5ea317ac11eb1d05f324ca218374ed47c6fda93d (patch)
tree11f8c0a976878e475f1e6fbcaf5775e99f4767eb /sound
parent9f6ccec9fe5e3173df9c27182907e661b249d1d6 (diff)
downloadhistory-5ea317ac11eb1d05f324ca218374ed47c6fda93d.tar.gz
ALSA CVS update - Takashi Iwai <tiwai@suse.de>
ICE1712 driver added Event Electronics EZ8 support by Doug McLain <nostar@comcast.net>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/ice1712/hoontech.c14
-rw-r--r--sound/pci/ice1712/ice1712.c13
-rw-r--r--sound/pci/ice1712/ice1712.h1
3 files changed, 26 insertions, 2 deletions
diff --git a/sound/pci/ice1712/hoontech.c b/sound/pci/ice1712/hoontech.c
index cd60f564fdf01c..16f323f6a5cf76 100644
--- a/sound/pci/ice1712/hoontech.c
+++ b/sound/pci/ice1712/hoontech.c
@@ -152,6 +152,20 @@ static int __devinit snd_ice1712_hoontech_init(ice1712_t *ice)
{
int box, chn;
+ /* EZ8 Hack: Change shortname and subvendor id, Recall functions called in
+ * snd_ice1712_chip_init when it still thinks it is a Hoontech DSP24 card.
+ */
+ if (ice->ez8) {
+ strcpy(ice->card->shortname, "Event Electronics EZ8");
+ ice->eeprom.subvendor = 0;
+ 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);
+ return 0;
+ }
+
ice->num_total_dacs = 8;
ice->num_total_adcs = 8;
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index 8044e700fbfd01..2c3541a46260db 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -41,6 +41,9 @@
* 2003.02.20 Taksahi Iwai <tiwai@suse.de>
* Split vt1724 part to an independent driver.
* The GPIO is accessed through the callback functions now.
+ *
+ * 2004.03.31 Doug McLain <nostar@comcast.net>
+ * Added support for Event Electronics EZ8 card to hoontech.c.
*/
@@ -81,8 +84,9 @@ MODULE_DEVICES("{"
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 omni[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 0}; /* Delta44 & 66 Omni I/O support */
+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 ez8[SNDRV_CARDS]; /* EZ8 card */
static int boot_devs;
module_param_array(index, int, boot_devs, 0444);
@@ -100,6 +104,9 @@ MODULE_PARM_SYNTAX(omni, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
module_param_array(cs8427_timeout, int, boot_devs, 0444);
MODULE_PARM_DESC(cs8427_timeout, "Define reset timeout for cs8427 chip in msec resolution.");
MODULE_PARM_SYNTAX(cs8427_timeout, SNDRV_ENABLED ", allows:{{1,1000}},default=500,skill:advanced");
+module_param_array(ez8, bool, boot_devs, 0444);
+MODULE_PARM_DESC(ez8, "Enable Event Electronics EZ8 support.");
+MODULE_PARM_SYNTAX(ez8, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
#ifndef PCI_VENDOR_ID_ICE
#define PCI_VENDOR_ID_ICE 0x1412
@@ -2410,6 +2417,7 @@ static int __devinit snd_ice1712_create(snd_card_t * card,
struct pci_dev *pci,
int omni,
int cs8427_timeout,
+ int ez8,
ice1712_t ** r_ice1712)
{
ice1712_t *ice;
@@ -2438,6 +2446,7 @@ static int __devinit snd_ice1712_create(snd_card_t * card,
cs8427_timeout = 1;
else if (cs8427_timeout > 1000)
cs8427_timeout = 1000;
+ ice->ez8 = ez8 ? 1 : 0;
ice->cs8427_timeout = cs8427_timeout;
spin_lock_init(&ice->reg_lock);
init_MUTEX(&ice->gpio_mutex);
@@ -2558,7 +2567,7 @@ 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, omni[dev], cs8427_timeout[dev], &ice)) < 0) {
+ if ((err = snd_ice1712_create(card, pci, omni[dev], cs8427_timeout[dev], ez8[dev], &ice)) < 0) {
snd_card_free(card);
return err;
}
diff --git a/sound/pci/ice1712/ice1712.h b/sound/pci/ice1712/ice1712.h
index 8b4bc08a534e58..bb44ebae7c928a 100644
--- a/sound/pci/ice1712/ice1712.h
+++ b/sound/pci/ice1712/ice1712.h
@@ -329,6 +329,7 @@ struct _snd_ice1712 {
unsigned int pro_volumes[20];
unsigned int omni: 1; /* Delta Omni I/O */
unsigned int vt1724: 1;
+ unsigned int ez8: 1; /* EZ8 support */
unsigned int num_total_dacs; /* total DACs */
unsigned int num_total_adcs; /* total ADCs */
unsigned char hoontech_boxbits[4];