59 |
reg = 1; |
reg = 1; |
60 |
shift = 3; |
shift = 3; |
61 |
} |
} |
62 |
tmp = ak->images[0][reg]; |
tmp = snd_akm4xxx_get(ak, 0, reg); |
63 |
old = (tmp >> shift) & 0x03; |
old = (tmp >> shift) & 0x03; |
64 |
if (old == dfs) |
if (old == dfs) |
65 |
return; |
return; |
66 |
|
|
67 |
/* reset DFS */ |
/* reset DFS */ |
68 |
snd_akm4xxx_reset(ak, 1); |
snd_akm4xxx_reset(ak, 1); |
69 |
tmp = ak->images[0][reg]; |
tmp = snd_akm4xxx_get(ak, 0, reg); |
70 |
tmp &= ~(0x03 << shift); |
tmp &= ~(0x03 << shift); |
71 |
tmp |= dfs << shift; |
tmp |= dfs << shift; |
72 |
snd_akm4xxx_write(ak, 0, reg, tmp); |
snd_akm4xxx_write(ak, 0, reg, tmp); |
121 |
static int __devinit revo_init(ice1712_t *ice) |
static int __devinit revo_init(ice1712_t *ice) |
122 |
{ |
{ |
123 |
akm4xxx_t *ak; |
akm4xxx_t *ak; |
124 |
|
int err; |
125 |
|
|
126 |
/* determine I2C, DACs and ADCs */ |
/* determine I2C, DACs and ADCs */ |
127 |
switch (ice->eeprom.subvendor) { |
switch (ice->eeprom.subvendor) { |
140 |
ice->akm_codecs = 2; |
ice->akm_codecs = 2; |
141 |
switch (ice->eeprom.subvendor) { |
switch (ice->eeprom.subvendor) { |
142 |
case VT1724_SUBDEVICE_REVOLUTION71: |
case VT1724_SUBDEVICE_REVOLUTION71: |
143 |
snd_ice1712_akm4xxx_init(ak, &akm_revo_front, &akm_revo_front_priv, ice); |
if ((err = snd_ice1712_akm4xxx_init(ak, &akm_revo_front, &akm_revo_front_priv, ice)) < 0) |
144 |
snd_ice1712_akm4xxx_init(ak + 1, &akm_revo_surround, &akm_revo_surround_priv, ice); |
return err; |
145 |
|
if ((err = snd_ice1712_akm4xxx_init(ak + 1, &akm_revo_surround, &akm_revo_surround_priv, ice)) < 0) |
146 |
|
return err; |
147 |
/* unmute all codecs */ |
/* unmute all codecs */ |
148 |
snd_ice1712_gpio_write_bits(ice, VT1724_REVO_MUTE, VT1724_REVO_MUTE); |
snd_ice1712_gpio_write_bits(ice, VT1724_REVO_MUTE, VT1724_REVO_MUTE); |
149 |
break; |
break; |