revo51: add headphone output
PATCH 1/1 revo51: add headphone output
It is ALSA bug #1754.
D6 bit in 02 register is PW4.
---
sound/i2c/other/ak4xxx-adda.c | 4 ++-- sound/pci/ice1712/revo.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-)
sound/i2c/other/ak4xxx-adda.c +2 -2
@@ -233,8 +233,8 @@ void snd_akm4xxx_init(struct snd_akm4xxx *ak)0x01 ,0x02 ,/* 1: reset and soft-mute */ 0x00 ,0x06 ,/* 0: mode3(i2s), disable auto-clock detect, * disable DZF, sharp roll-off, RSTN#=0 */ -0x02 ,0x0e ,/* 2: DA's power up, normal speed, RSTN#=0 */ -// 0x02, 0x2e, /* quad speed */ +0x02 ,0x4e ,/* 2: DA's power up, normal speed, RSTN#=0 */ +// 0x02, 0x6e, /* quad speed */ 0x03 ,0x01 ,/* 3: de-emphasis off */ 0x04 ,0x00 ,/* 4: LOUT1 volume muted */ 0x05, 0x00, /* 5: ROUT1 volume muted */
sound/pci/ice1712/revo.c +3 -2
@@ -216,6 +216,7 @@ static const struct snd_akm4xxx_dac_channel revo51_dac[] = {AK_DAC ("PCM Center Playback Volume" ,1 ),AK_DAC ("PCM LFE Playback Volume" ,1 ),AK_DAC ("PCM Rear Playback Volume" ,2 ), + AK_DAC("PCM Headphone Volume", 2), }; static const char *revo51_adc_input_names[] = {
@@ -279,7 +280,7 @@ static struct snd_ak4xxx_private akm_revo_surround_priv __devinitdata = {static struct snd_akm4xxx akm_revo51__devinitdata = { .type =SND_AK4358 , - .num_dacs =6 , + .num_dacs =8 , .ops = { .set_rate_val = revo_set_rate_val },
@@ -508,7 +509,7 @@ static int __devinit revo_init(struct snd_ice1712 *ice) ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed;break ;case VT1724_SUBDEVICE_REVOLUTION51 : - ice->num_total_dacs =6 ; + ice->num_total_dacs =8 ; ice->num_total_adcs =2 ;break ;case VT1724_SUBDEVICE_AUDIOPHILE192 :
Quoted 15 lines · Alexander Beregalov
It is ALSA bug #1754.
D6 bit in 02 register is PW4.Signed-off-by Alexander Beregalov <[email protected]>---
sound/i2c/other/ak4xxx-adda.c | 4 ++-- sound/pci/ice1712/revo.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-)sound/i2c/other/ak4xxx-adda.c +0
-0
sound/i2c/other/ak4xxx-adda.c void snd_akm4xxx_init(struct snd_akm4xxx *ak) · line 237
Quoted 7 lines
sound/i2c/other/ak4xxx-adda.c +2
-2@@ -233,8 +233,8 @@ void snd_akm4xxx_init(struct snd_akm4xxx *ak)0x01 ,0x02 ,/* 1: reset and soft-mute */ 0x00 ,0x06 ,/* 0: mode3(i2s), disable auto-clock detect, * disable DZF, sharp roll-off, RSTN#=0 */ - 0x02, 0x0e, /* 2: DA's power up, normal speed, RSTN#=0 */ -// 0x02, 0x2e, /* quad speed */ + 0x02, 0x4e, /* 2: DA's power up, normal speed, RSTN#=0 */ +// 0x02, 0x6e, /* quad speed */
Fantastic, I guess this could help to fix the problem with non-functioning monitoring in ESI Juli@ too. I did not notice the fourth DAC was powered down. Thanks a lot!
Pavel.
At Thu, 21 Aug 2008 09:14:21 +0200,
Quoted 12 lines · Pavel Hofman
Quoted 10 lines · Alexander Beregalov
It is ALSA bug #1754.
D6 bit in 02 register is PW4.Signed-off-by Alexander Beregalov <[email protected]>---
sound/i2c/other/ak4xxx-adda.c | 4 ++-- sound/pci/ice1712/revo.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-)
Quoted 16 lines
sound/i2c/other/ak4xxx-adda.c void snd_akm4xxx_init(struct snd_akm4xxx *ak) · line 237
Quoted 12 lines
sound/i2c/other/ak4xxx-adda.c +2
-2@@ -233,8 +233,8 @@ void snd_akm4xxx_init(struct snd_akm4xxx *ak)0x01 ,0x02 ,/* 1: reset and soft-mute */ 0x00 ,0x06 ,/* 0: mode3(i2s), disable auto-clock detect, * disable DZF, sharp roll-off, RSTN#=0 */ - 0x02, 0x0e, /* 2: DA's power up, normal speed, RSTN#=0 */ -// 0x02, 0x2e, /* quad speed */ + 0x02, 0x4e, /* 2: DA's power up, normal speed, RSTN#=0 */ +// 0x02, 0x6e, /* quad speed */ Fantastic, I guess this could help to fix the problem with non-functioning monitoring in ESI Juli@ too. I did not notice the fourth DAC was powered down. Thanks a lot!
Maybe we need a change like in revo.c for Juli@, too?
Takashi
Quoted 29 lines · Takashi Iwai
At Thu, 21 Aug 2008 09:14:21 +0200,
Quoted 11 lines · Pavel Hofman
Quoted 10 lines · Alexander Beregalov
It is ALSA bug #1754.
D6 bit in 02 register is PW4.Signed-off-by Alexander Beregalov <[email protected]>---
sound/i2c/other/ak4xxx-adda.c | 4 ++-- sound/pci/ice1712/revo.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-)Quoted 15 lines
sound/i2c/other/ak4xxx-adda.c void snd_akm4xxx_init(struct snd_akm4xxx *ak) · line 237
Quoted 12 lines
sound/i2c/other/ak4xxx-adda.c +2
-2@@ -233,8 +233,8 @@ void snd_akm4xxx_init(struct snd_akm4xxx *ak)0x01 ,0x02 ,/* 1: reset and soft-mute */ 0x00 ,0x06 ,/* 0: mode3(i2s), disable auto-clock detect, * disable DZF, sharp roll-off, RSTN#=0 */ - 0x02, 0x0e, /* 2: DA's power up, normal speed, RSTN#=0 */ -// 0x02, 0x2e, /* quad speed */ + 0x02, 0x4e, /* 2: DA's power up, normal speed, RSTN#=0 */ +// 0x02, 0x6e, /* quad speed */ Fantastic, I guess this could help to fix the problem with non-functioning monitoring in ESI Juli@ too. I did not notice the fourth DAC was powered down. Thanks a lot!
Quoted 6 lines
Maybe we need a change like in
revo.cfor Juli@, too?Takashi
From what I understand, the changes in
revo.c:
@@ -216,6 +216,7 @@ static const struct snd_akm4xxx_dac_channel revo51_dac[] = {
AK_DAC("PCM Center Playback Volume", 1), AK_DAC("PCM LFE Playback Volume", 1), AK_DAC("PCM Rear Playback Volume", 2),
+ AK_DAC("PCM Headphone Volume", 2),
};
Already in juli.c, monitors volume.
static struct snd_akm4xxx akm_revo51 __devinitdata = {
.type = SND_AK4358,
- .num_dacs = 6,
+ .num_dacs = 8,
.ops = {
Important, already in juli.c
@@ -508,7 +509,7 @@ static int __devinit revo_init(struct snd_ice1712 *ice)
ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed; break;
case VT1724_SUBDEVICE_REVOLUTION51:
- ice->num_total_dacs = 6;
+ ice->num_total_dacs = 8;
ice->num_total_adcs = 2;
break;
Enables additional snd_vt1724_mixer_pro_analog_route controls for the new channels, we do not need them in Juli monitoring (ice1724 does not process these channels, their i2s lines go straight from adc/spdif receiver to the DAC chip via the Xilinx FPGA array.
I do not have the card available anymore, perhaps anyone could please check?
Thanks,
Pavel.
Takashi Iwai
AppliedAt Thu, 21 Aug 2008 08:28:42 +0400,
Quoted 6 lines · Alexander Beregalov
It is ALSA bug #1754.
D6 bit in 02 register is PW4.Signed-off-by Alexander Beregalov <[email protected]>
Thanks, applied now (with a slight correction of C++ comments).
Takashi
Quoted 52 lines
---
sound/i2c/other/ak4xxx-adda.c | 4 ++-- sound/pci/ice1712/revo.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-)sound/i2c/other/ak4xxx-adda.c +2
-2@@ -233,8 +233,8 @@ void snd_akm4xxx_init(struct snd_akm4xxx *ak)0x01 ,0x02 ,/* 1: reset and soft-mute */ 0x00 ,0x06 ,/* 0: mode3(i2s), disable auto-clock detect, * disable DZF, sharp roll-off, RSTN#=0 */ -0x02 ,0x0e ,/* 2: DA's power up, normal speed, RSTN#=0 */ -// 0x02, 0x2e, /* quad speed */ +0x02 ,0x4e ,/* 2: DA's power up, normal speed, RSTN#=0 */ +// 0x02, 0x6e, /* quad speed */ 0x03 ,0x01 ,/* 3: de-emphasis off */ 0x04 ,0x00 ,/* 4: LOUT1 volume muted */ 0x05, 0x00, /* 5: ROUT1 volume muted */sound/pci/ice1712/revo.c +3
-2@@ -216,6 +216,7 @@ static const struct snd_akm4xxx_dac_channel revo51_dac[] = {AK_DAC ("PCM Center Playback Volume" ,1 ),AK_DAC ("PCM LFE Playback Volume" ,1 ),AK_DAC ("PCM Rear Playback Volume" ,2 ), + AK_DAC("PCM Headphone Volume", 2), }; static const char *revo51_adc_input_names[] = {@@ -279,7 +280,7 @@ static struct snd_ak4xxx_private akm_revo_surround_priv __devinitdata = {static struct snd_akm4xxx akm_revo51__devinitdata = { .type =SND_AK4358 , - .num_dacs =6 , + .num_dacs =8 , .ops = { .set_rate_val = revo_set_rate_val },@@ -508,7 +509,7 @@ static int __devinit revo_init(struct snd_ice1712 *ice) ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed;break ;case VT1724_SUBDEVICE_REVOLUTION51 : - ice->num_total_dacs =6 ; + ice->num_total_dacs =8 ; ice->num_total_adcs =2 ;break ;case VT1724_SUBDEVICE_AUDIOPHILE192 :