mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 12:41:55 +00:00
[ALSA] Added support for Delta1010E (newer revisions of Delta1010)
For more details, see ALSA bug#3327 . Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
cf7aaca8ba
commit
a60567d13c
@ -86,6 +86,7 @@ static unsigned char ap_cs8427_codec_select(struct snd_ice1712 *ice)
|
|||||||
unsigned char tmp;
|
unsigned char tmp;
|
||||||
tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
|
tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
|
||||||
switch (ice->eeprom.subvendor) {
|
switch (ice->eeprom.subvendor) {
|
||||||
|
case ICE1712_SUBDEVICE_DELTA1010E:
|
||||||
case ICE1712_SUBDEVICE_DELTA1010LT:
|
case ICE1712_SUBDEVICE_DELTA1010LT:
|
||||||
tmp &= ~ICE1712_DELTA_1010LT_CS;
|
tmp &= ~ICE1712_DELTA_1010LT_CS;
|
||||||
tmp |= ICE1712_DELTA_1010LT_CCLK | ICE1712_DELTA_1010LT_CS_CS8427;
|
tmp |= ICE1712_DELTA_1010LT_CCLK | ICE1712_DELTA_1010LT_CS_CS8427;
|
||||||
@ -109,6 +110,7 @@ static unsigned char ap_cs8427_codec_select(struct snd_ice1712 *ice)
|
|||||||
static void ap_cs8427_codec_deassert(struct snd_ice1712 *ice, unsigned char tmp)
|
static void ap_cs8427_codec_deassert(struct snd_ice1712 *ice, unsigned char tmp)
|
||||||
{
|
{
|
||||||
switch (ice->eeprom.subvendor) {
|
switch (ice->eeprom.subvendor) {
|
||||||
|
case ICE1712_SUBDEVICE_DELTA1010E:
|
||||||
case ICE1712_SUBDEVICE_DELTA1010LT:
|
case ICE1712_SUBDEVICE_DELTA1010LT:
|
||||||
tmp &= ~ICE1712_DELTA_1010LT_CS;
|
tmp &= ~ICE1712_DELTA_1010LT_CS;
|
||||||
tmp |= ICE1712_DELTA_1010LT_CS_NONE;
|
tmp |= ICE1712_DELTA_1010LT_CS_NONE;
|
||||||
@ -534,6 +536,9 @@ static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice)
|
|||||||
int err;
|
int err;
|
||||||
struct snd_akm4xxx *ak;
|
struct snd_akm4xxx *ak;
|
||||||
|
|
||||||
|
if (ice->eeprom.subvendor && ice->eeprom.gpiodir == 0x7b)
|
||||||
|
ice->eeprom.subvendor = ICE1712_SUBDEVICE_DELTA1010E;
|
||||||
|
|
||||||
/* determine I2C, DACs and ADCs */
|
/* determine I2C, DACs and ADCs */
|
||||||
switch (ice->eeprom.subvendor) {
|
switch (ice->eeprom.subvendor) {
|
||||||
case ICE1712_SUBDEVICE_AUDIOPHILE:
|
case ICE1712_SUBDEVICE_AUDIOPHILE:
|
||||||
@ -550,6 +555,7 @@ static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice)
|
|||||||
ice->num_total_adcs = ice->omni ? 8 : 4;
|
ice->num_total_adcs = ice->omni ? 8 : 4;
|
||||||
break;
|
break;
|
||||||
case ICE1712_SUBDEVICE_DELTA1010:
|
case ICE1712_SUBDEVICE_DELTA1010:
|
||||||
|
case ICE1712_SUBDEVICE_DELTA1010E:
|
||||||
case ICE1712_SUBDEVICE_DELTA1010LT:
|
case ICE1712_SUBDEVICE_DELTA1010LT:
|
||||||
case ICE1712_SUBDEVICE_MEDIASTATION:
|
case ICE1712_SUBDEVICE_MEDIASTATION:
|
||||||
ice->num_total_dacs = 8;
|
ice->num_total_dacs = 8;
|
||||||
@ -568,6 +574,7 @@ static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice)
|
|||||||
switch (ice->eeprom.subvendor) {
|
switch (ice->eeprom.subvendor) {
|
||||||
case ICE1712_SUBDEVICE_AUDIOPHILE:
|
case ICE1712_SUBDEVICE_AUDIOPHILE:
|
||||||
case ICE1712_SUBDEVICE_DELTA410:
|
case ICE1712_SUBDEVICE_DELTA410:
|
||||||
|
case ICE1712_SUBDEVICE_DELTA1010E:
|
||||||
case ICE1712_SUBDEVICE_DELTA1010LT:
|
case ICE1712_SUBDEVICE_DELTA1010LT:
|
||||||
case ICE1712_SUBDEVICE_VX442:
|
case ICE1712_SUBDEVICE_VX442:
|
||||||
if ((err = snd_i2c_bus_create(ice->card, "ICE1712 GPIO 1", NULL, &ice->i2c)) < 0) {
|
if ((err = snd_i2c_bus_create(ice->card, "ICE1712 GPIO 1", NULL, &ice->i2c)) < 0) {
|
||||||
@ -601,6 +608,7 @@ static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice)
|
|||||||
/* no analog? */
|
/* no analog? */
|
||||||
switch (ice->eeprom.subvendor) {
|
switch (ice->eeprom.subvendor) {
|
||||||
case ICE1712_SUBDEVICE_DELTA1010:
|
case ICE1712_SUBDEVICE_DELTA1010:
|
||||||
|
case ICE1712_SUBDEVICE_DELTA1010E:
|
||||||
case ICE1712_SUBDEVICE_DELTADIO2496:
|
case ICE1712_SUBDEVICE_DELTADIO2496:
|
||||||
case ICE1712_SUBDEVICE_MEDIASTATION:
|
case ICE1712_SUBDEVICE_MEDIASTATION:
|
||||||
return 0;
|
return 0;
|
||||||
@ -674,6 +682,7 @@ static int __devinit snd_ice1712_delta_add_controls(struct snd_ice1712 *ice)
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
break;
|
break;
|
||||||
|
case ICE1712_SUBDEVICE_DELTA1010E:
|
||||||
case ICE1712_SUBDEVICE_DELTA1010LT:
|
case ICE1712_SUBDEVICE_DELTA1010LT:
|
||||||
err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010lt_wordclock_select, ice));
|
err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010lt_wordclock_select, ice));
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
"{Lionstracs,Mediastation},"
|
"{Lionstracs,Mediastation},"
|
||||||
|
|
||||||
#define ICE1712_SUBDEVICE_DELTA1010 0x121430d6
|
#define ICE1712_SUBDEVICE_DELTA1010 0x121430d6
|
||||||
|
#define ICE1712_SUBDEVICE_DELTA1010E 0xff1430d6
|
||||||
#define ICE1712_SUBDEVICE_DELTADIO2496 0x121431d6
|
#define ICE1712_SUBDEVICE_DELTADIO2496 0x121431d6
|
||||||
#define ICE1712_SUBDEVICE_DELTA66 0x121432d6
|
#define ICE1712_SUBDEVICE_DELTA66 0x121432d6
|
||||||
#define ICE1712_SUBDEVICE_DELTA44 0x121433d6
|
#define ICE1712_SUBDEVICE_DELTA44 0x121433d6
|
||||||
|
Loading…
Reference in New Issue
Block a user