Skip to contentSkip to conversation

revo51: add headphone output

PATCH Applied Alexander Beregalov 3 participants 5 messages Aug 21, 2008 Sound

lore
Share & tools
lore
#0 lore raw

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
index 288926d..4c94458 100644
@@ -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
index 4d26314..30b5e83 100644
@@ -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:
#1 lore raw
Quoted 15 lines · Alexander Beregalov

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 +0 -0
index 288926d..4c94458 100644

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.

#2 lore raw

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.

---

 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
index 288926d..4c94458 100644
@@ -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

#3 lore raw
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.

---

 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
index 288926d..4c94458 100644
@@ -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.c for 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.

Applied
#4 lore raw
In reply to Alexander Beregalov

At 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.

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
index 288926d..4c94458 100644
@@ -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
index 4d26314..30b5e83 100644
@@ -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: