All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Sigmatel stac92hd71b7 low HP volume
@ 2008-10-02 19:45 Klaas De Craemer
  2008-10-08 21:50 ` Andrew Morton
  0 siblings, 1 reply; 11+ messages in thread
From: Klaas De Craemer @ 2008-10-02 19:45 UTC (permalink / raw)
  To: linux-kernel; +Cc: perex

Hello,

Below is my patch for an issue on Dell E6500 notebooks with the Sigmatel stac92hd71b7 codec. In the default snd-hda-intel configuration, the sound going to the headphone jack goes comes directly from the DAC, resulting in very low volume output. The patch changes the codec's widget connections so that the internal mixer is put in between and sets its input amplifiers to the maximum value. The output to the internal speaker port has been left untouched.
I have tested this and it gives a much better output.

Klaas De Craemer


diff -uNr linux-2.6.26.5/sound/pci/hda/patch_sigmatel.c linux-2.6.26.5.new/sound/pci/hda/patch_sigmatel.c
--- linux-2.6.26.5/sound/pci/hda/patch_sigmatel.c	2008-09-08 19:40:20.000000000 +0200
+++ linux-2.6.26.5.new/sound/pci/hda/patch_sigmatel.c	2008-10-02 20:08:51.000000000 +0200
@@ -624,6 +624,22 @@
 	{}
 };
 
+static struct hda_verb stac92hd71b7_core_init[] = {
+	/* set master volume and direct control */
+	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
+	/* connect headphone jack to mixer */
+	{ 0x0a, AC_VERB_SET_CONNECT_SEL, 0x02},
+	/* unmute right and left channels for nodes 0x0a, 0xd, 0x0f */
+	{ 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+	{ 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+	{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+
+	/* Increase mixer volume for the two dac's */
+	{ 0x17, 0x370, 0x7f },
+	{ 0x17, 0x371, 0x7f },
+	{}
+};
+
 static struct hda_verb stac92hd71bxx_core_init[] = {
 	/* set master volume and direct control */
 	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
@@ -3642,6 +3658,10 @@
 		spec->mixer = stac92hd71bxx_mixer;
 		spec->init = stac92hd71bxx_core_init;
 		break;
+	case 0x111d76b2: /* Dell E6500 stac92hd71b7 configuration */
+		spec->mixer = stac92hd71bxx_mixer;
+		spec->init = stac92hd71b7_core_init;
+		break;
 	default:
 		spec->mixer = stac92hd71bxx_analog_mixer;
 		spec->init = stac92hd71bxx_analog_core_init;

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH] Sigmatel stac92hd71b7 low HP volume
@ 2008-10-05 20:10 Klaas De Craemer
  2008-10-06  9:44 ` Takashi Iwai
  0 siblings, 1 reply; 11+ messages in thread
From: Klaas De Craemer @ 2008-10-05 20:10 UTC (permalink / raw)
  To: alsa-devel

Hello,

A few days ago, I posted a patch to the linux kernel list, but afterwards I realised that it is 
more appropriate for the alsa list. So I repost it here.

Below is my patch for an issue on Dell E6500 notebooks with the Sigmatel stac92hd71b7 codec. In 
the default snd-hda-intel configuration, the sound going to the headphone jack 
goes comes directly from the DAC, resulting in very low volume output. The patch changes the 
codec's widget connections so that the internal mixer is put in between and sets its 
input amplifiers to the maximum value. The output to the internal speaker port has been left 
untouched.
I have tested this and it gives a much better output.

Klaas De Craemer


diff -uNr linux-2.6.26.5/sound/pci/hda/patch_sigmatel.c 
linux-2.6.26.5.new/sound/pci/hda/patch_sigmatel.c
--- linux-2.6.26.5/sound/pci/hda/patch_sigmatel.c	2008-09-08 19:40:20.000000000 +0200
+++ linux-2.6.26.5.new/sound/pci/hda/patch_sigmatel.c	2008-10-02 20:08:51.000000000 +0200
@@ -624,6 +624,22 @@
 	{}
 };
 
+static struct hda_verb stac92hd71b7_core_init[] = {
+	/* set master volume and direct control */
+	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
+	/* connect headphone jack to mixer */
+	{ 0x0a, AC_VERB_SET_CONNECT_SEL, 0x02},
+	/* unmute right and left channels for nodes 0x0a, 0xd, 0x0f */
+	{ 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+	{ 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+	{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+
+	/* Increase mixer volume for the two dac's */
+	{ 0x17, 0x370, 0x7f },
+	{ 0x17, 0x371, 0x7f },
+	{}
+};
+
 static struct hda_verb stac92hd71bxx_core_init[] = {
 	/* set master volume and direct control */
 	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
@@ -3642,6 +3658,10 @@
 		spec->mixer = stac92hd71bxx_mixer;
 		spec->init = stac92hd71bxx_core_init;
 		break;
+	case 0x111d76b2: /* Dell E6500 stac92hd71b7 configuration */
+		spec->mixer = stac92hd71bxx_mixer;
+		spec->init = stac92hd71b7_core_init;
+		break;
 	default:
 		spec->mixer = stac92hd71bxx_analog_mixer;
 		spec->init = stac92hd71bxx_analog_core_init;

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-05 20:10 [PATCH] Sigmatel stac92hd71b7 low HP volume Klaas De Craemer
@ 2008-10-06  9:44 ` Takashi Iwai
       [not found]   ` <200810061248.43643.klaasdc@gmail.com>
  0 siblings, 1 reply; 11+ messages in thread
From: Takashi Iwai @ 2008-10-06  9:44 UTC (permalink / raw)
  To: Klaas De Craemer; +Cc: alsa-devel

At Sun, 5 Oct 2008 22:10:46 +0200,
Klaas De Craemer wrote:
> 
> Hello,
> 
> A few days ago, I posted a patch to the linux kernel list, but afterwards I realised that it is 
> more appropriate for the alsa list. So I repost it here.
> 
> Below is my patch for an issue on Dell E6500 notebooks with the Sigmatel stac92hd71b7 codec. In 
> the default snd-hda-intel configuration, the sound going to the headphone jack 
> goes comes directly from the DAC, resulting in very low volume output. The patch changes the 
> codec's widget connections so that the internal mixer is put in between and sets its 
> input amplifiers to the maximum value. The output to the internal speaker port has been left 
> untouched.
> I have tested this and it gives a much better output.

Thanks for the patch.

I wonder whether this really improves the quality.
Basically what you does is to set the volume of the input mixer over
0dB, and this is usually bad when really high signals come in.

Just to be sure, is the output pin set to the headphone pin control?
You can give alsa-info.sh output (run with --no-upload option) for
further analysis.  The script is found in
    http://www.alsa-project.org/alsa-info.sh


thanks,

Takashi

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
       [not found]   ` <200810061248.43643.klaasdc@gmail.com>
@ 2008-10-06 10:57     ` Takashi Iwai
  2008-10-06 17:10       ` Klaas De Craemer
  0 siblings, 1 reply; 11+ messages in thread
From: Takashi Iwai @ 2008-10-06 10:57 UTC (permalink / raw)
  To: Klaas De Craemer; +Cc: alsa-devel

[please don't drop Cc to alsa-devel ML]

At Mon, 6 Oct 2008 12:48:43 +0200,
Klaas De Craemer wrote:
> 
> Hello,
> 
> I'm sure that the audioquality will degrade somewhat because of the additional amplification, 
> but before, the HP-out was not usable at all. I had to use an external ampli just to use my 
> headphones, even after turning all volume sliders to 100%. Then again, when removing the HP, 
> the volume though the internal speakers was way too loud...
> 
> I'm not sure what you mean with the output pin and headphone control, but I have uploaded the 
> output of the codegraph tool before and after my modification here:
> http://users.vtk.be/~s0159120/codec_original.svg
> http://users.vtk.be/~s0159120/codec_final.svg
> 
> Below is the output of alsa-info with the patched module
> Klaas

Thanks.

So, if I understand correctly, when the pin 0x0a is connected directly
from DAC0 0x10, the output level is too low even if you set the all
volumes maximal.  In the alsa-info.sh output, I see the following:

> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x5e 0x5e]

which means that you decrease the output level intentionally.
Is the HP output still too low even if you set to the higher value?


Takashi


> 
> -----
> upload=true&script=true&cardinfo=
> !!################################
> !!ALSA Information Script v 0.4.51
> !!################################
> 
> !!Script ran on: Mon Oct  6 12:42:48 CEST 2008
> 
> 
> !!Linux Distribution
> !!------------------
> 
> Debian GNU/Linux lenny/sid \n \l
> 
> 
> !!Kernel Information
> !!------------------
> 
> Kernel release:    2.6.26-5.slh.6-sidux-686
> Operating System:  GNU/Linux
> Architecture:      i686
> Processor:         unknown
> SMP Enabled:       Yes
> 
> 
> !!ALSA Version
> !!------------
> 
> Driver version:     1.0.16
> Library version:    
> Utilities version:  1.0.16
> 
> 
> !!Loaded ALSA modules
> !!-------------------
> 
> snd_hda_intel
> 
> 
> !!Soundcards recognised by ALSA
> !!-----------------------------
> 
>  0 [Intel          ]: HDA-Intel - HDA Intel
>                       HDA Intel at 0xf6fdc000 irq 21
> 
> 
> !!PCI Soundcards installed in the system
> !!--------------------------------------
> 
> 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
> 
> 
> !!Advanced information - PCI Vendor/Device/Susbsystem ID's
> !!--------------------------------------------------------
> 
> 00:1b.0 0403: 8086:293e (rev 03)
> 	Subsystem: 1028:024f
> 
> 
> !!Modprobe options (Sound related)
> !!--------------------------------
> 
> snd-atiixp-modem: index=-2
> snd-intel8x0m: index=-2
> snd-via82xx-modem: index=-2
> snd-pcsp: index=-2
> 
> 
> !!Loaded sound module options
> !!--------------------------
> 
> !!Module: snd_hda_intel
> enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y
> enable_msi : 0
> id : 
> <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
> index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> model : 
> <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
> position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
> power_save : 0
> power_save_controller : Y
> probe_mask : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> single_cmd : N
> 
> 
> !!HDA-Intel Codec information
> !!---------------------------
> --startcollapse--
> 
> Codec: IDT 92HD71B7X
> Address: 0
> Vendor Id: 0x111d76b2
> Subsystem Id: 0x1028024f
> Revision Id: 0x100302
> No Modem Function Group found
> Default PCM:
>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>     bits [0xe]: 16 20 24
>     formats [0x1]: PCM
> Default Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
> GPIO: io=8, o=0, i=0, unsolicited=1, wake=1
>   IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1
>   IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0
> Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
>   Pincap 0x081c: OUT HP Detect
>   Pin Default 0x0421101f: [Jack] HP Out at Ext Right
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x1, Sequence = 0xf
>   Pin-ctls: 0xc0: OUT HP
>   Unsolicited: tag=30, enabled=1
>   Connection: 3
>      0x10 0x11 0x17*
> Node 0x0b [Pin Complex] wcaps 0x400081: Stereo
>   Pincap 0x081724: IN Detect
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x04a11221: [Jack] Mic at Ext Right
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x2, Sequence = 0x1
>   Pin-ctls: 0x24: IN VREF_80
>   Unsolicited: tag=00, enabled=0
> Node 0x0c [Pin Complex] wcaps 0x400081: Stereo
>   Pincap 0x081724: IN Detect
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00: VREF_HIZ
>   Unsolicited: tag=00, enabled=0
> Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
>   Pincap 0x0814: OUT Detect
>   Pin Default 0x90170110: [Fixed] Speaker at Int N/A
>     Conn = Analog, Color = Unknown
>     DefAssociation = 0x1, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 3
>      0x10* 0x11 0x17
> Node 0x0e [Pin Complex] wcaps 0x400081: Stereo
>   Pincap 0x081724: IN Detect
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x23a1902e: [Jack] Mic at Sep Left
>     Conn = 1/8, Color = Pink
>     DefAssociation = 0x2, Sequence = 0xe
>   Pin-ctls: 0x24: IN VREF_80
>   Unsolicited: tag=00, enabled=0
> Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
>   Pincap 0x0814: OUT Detect
>   Pin Default 0x23014250: [Jack] Line Out at Sep Left
>     Conn = 1/8, Color = Green
>     DefAssociation = 0x5, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 3
>      0x10* 0x11 0x17
> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x5e 0x5e]
>   Converter: stream=5, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x3d 0x3d]
>   Converter: stream=5, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x1c
>   Processing caps: benign=0, ncoeff=0
> Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x1d
>   Processing caps: benign=0, ncoeff=0
> Node 0x14 [Pin Complex] wcaps 0x400100: Mono
>   Pincap 0x0810: OUT
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Connection: 1
>      0x16
> Node 0x15 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 3
>      0x10* 0x11 0x17
> Node 0x16 [Audio Mixer] wcaps 0x200100: Mono
>   Connection: 1
>      0x15
> Node 0x17 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
>   Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
>   Amp-In vals:  [0x1f 0x1f] [0x1f 0x1f] [0x97 0x97] [0x97 0x97] [0x97 0x97]
>   Connection: 5
>      0x10 0x11 0x27 0x1a 0x1b
> Node 0x18 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x00 0x00]
>   Pincap 0x0820: IN
>   Pin Default 0x90a000f0: [Fixed] Mic at Int N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x20: IN
> Node 0x19 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x00 0x00]
>   Pincap 0x0820: IN
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x20: IN
> Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x01 0x01]
>   Connection: 3
>      0x0b* 0x0c 0x0e
> Node 0x1b [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x00 0x00]
>   Connection: 3
>      0x0b* 0x0c 0x0e
> Node 0x1c [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x00 0x00]
>   Connection: 4
>      0x1a* 0x17 0x18 0x19
> Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x80 0x80]
>   Connection: 4
>      0x1b* 0x17 0x18 0x19
> Node 0x1e [Pin Complex] wcaps 0x400301: Stereo Digital
>   Pincap 0x0810: OUT
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Connection: 1
>      0x24
> Node 0x1f [Pin Complex] wcaps 0x400701: Stereo Digital
>   Pincap 0x0810010: OUT EAPD
>   EAPD 0x0:
>   Pin Default 0x40f000f6: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x6
>   Pin-ctls: 0x00:
>   Power: setting=D0, actual=D0
>   Connection: 2
>      0x24* 0x25
> Node 0x20 [Pin Complex] wcaps 0x400301: Stereo Digital
>   Pincap 0x0810: OUT
>   Pin Default 0x40f000f7: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x7
>   Pin-ctls: 0x00:
>   Connection: 1
>      0x25
> Node 0x21 [Audio Output] wcaps 0x40211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Delay: 4 samples
> Node 0x22 [Audio Output] wcaps 0x40211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Delay: 4 samples
> Node 0x23 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x24 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 3
>      0x21* 0x1c 0x1d
> Node 0x25 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 3
>      0x22* 0x1c 0x1d
> Node 0x26 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
>   Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
>   Amp-Out vals:  [0x00]
> Node 0x27 [Pin Complex] wcaps 0x400000: Mono
>   Pincap 0x0820: IN
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
> Node 0x28 [Volume Knob Widget] wcaps 0x600000: Mono
>   Volume-Knob: delta=1, steps=127, direct=1, val=127
>   Connection: 2
>      0x10* 0x11
> --endcollapse--
> 
> 
> !!ALSA Device nodes
> !!-----------------
> 
> crw-rw---- 1 root audio 116, 7 okt  6 12:40 /dev/snd/controlC0
> crw-rw---- 1 root audio 116, 6 okt  6 12:40 /dev/snd/hwC0D0
> crw-rw---- 1 root audio 116, 5 okt  6 12:40 /dev/snd/pcmC0D0c
> crw-rw---- 1 root audio 116, 4 okt  6 12:41 /dev/snd/pcmC0D0p
> crw-rw---- 1 root audio 116, 3 okt  6 11:41 /dev/snd/seq
> crw-rw---- 1 root audio 116, 2 okt  6 11:41 /dev/snd/timer
> 
> 
> !!Aplay/Arecord output
> !!------------
> 
> APLAY
> 
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
>   Subdevices: 0/1
>   Subdevice #0: subdevice #0
> 
> ARECORD
> 
> **** List of CAPTURE Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
>   Subdevices: 2/2
>   Subdevice #0: subdevice #0
>   Subdevice #1: subdevice #1
> 
> !!Amixer output
> !!-------------
> 
> !!-------Mixer controls for card 0 [Intel]
> 
> Card hw:0 'Intel'/'HDA Intel at 0xf6fdc000 irq 21'
>   Mixer name	: 'IDT 92HD71B7X'
>   Components	: 'HDA:111d76b2'
>   Controls      : 19
>   Simple ctrls  : 14
> Simple mixer control 'Master',0
>   Capabilities: pvolume pvolume-joined pswitch pswitch-joined
>   Playback channels: Mono
>   Limits: Playback 0 - 127
>   Mono: Playback 94 [74%] [-24.75dB] [on]
> Simple mixer control 'Headphone',0
>   Capabilities: pvolume pswitch
>   Playback channels: Front Left - Front Right
>   Limits: Playback 0 - 127
>   Mono:
>   Front Left: Playback 127 [100%] [0.00dB] [on]
>   Front Right: Playback 127 [100%] [0.00dB] [on]
> Simple mixer control 'PCM',0
>   Capabilities: pvolume
>   Playback channels: Front Left - Front Right
>   Limits: Playback 0 - 255
>   Mono:
>   Front Left: Playback 255 [100%] [0.00dB]
>   Front Right: Playback 255 [100%] [0.00dB]
> Simple mixer control 'Front',0
>   Capabilities: pvolume pswitch
>   Playback channels: Front Left - Front Right
>   Limits: Playback 0 - 127
>   Mono:
>   Front Left: Playback 127 [100%] [0.00dB] [on]
>   Front Right: Playback 127 [100%] [0.00dB] [on]
> Simple mixer control 'Capture',0
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 15
>   Front Left: Capture 0 [0%] [0.00dB] [on]
>   Front Right: Capture 0 [0%] [0.00dB] [on]
> Simple mixer control 'Capture Mux',0
>   Capabilities: volume
>   Playback channels: Front Left - Front Right
>   Capture channels: Front Left - Front Right
>   Limits: 0 - 3
>   Front Left: 1 [33%] [10.00dB]
>   Front Right: 1 [33%] [10.00dB]
> Simple mixer control 'Capture Mux',1
>   Capabilities: volume
>   Playback channels: Front Left - Front Right
>   Capture channels: Front Left - Front Right
>   Limits: 0 - 3
>   Front Left: 0 [0%] [0.00dB]
>   Front Right: 0 [0%] [0.00dB]
> Simple mixer control 'Capture',1
>   Capabilities: cvolume cswitch
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 15
>   Front Left: Capture 0 [0%] [0.00dB] [off]
>   Front Right: Capture 0 [0%] [0.00dB] [off]
> Simple mixer control 'Analog Loopback',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control 'Analog Loopback',1
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control 'Digital Input Source',0
>   Capabilities: enum
>   Items: 'Analog Inputs' 'Digital Mic 1'
>   Item0: 'Analog Inputs'
> Simple mixer control 'Digital Mic 1',0
>   Capabilities: cvolume
>   Capture channels: Front Left - Front Right
>   Limits: Capture 0 - 3
>   Front Left: Capture 0 [0%] [0.00dB]
>   Front Right: Capture 0 [0%] [0.00dB]
> Simple mixer control 'Input Source',0
>   Capabilities: cenum
>   Items: 'Mic' 'Front Mic'
>   Item0: 'Mic'
> Simple mixer control 'Input Source',1
>   Capabilities: cenum
>   Items: 'Mic' 'Front Mic'
>   Item0: 'Mic'
> 
> 
> !!Alsactl output
> !!-------------
> 
> --startcollapse--
> state.Intel {
> 	control.1 {
> 		comment.access 'read write'
> 		comment.type ENUMERATED
> 		comment.count 1
> 		comment.item.0 Mic
> 		comment.item.1 'Front Mic'
> 		iface MIXER
> 		name 'Input Source'
> 		value Mic
> 	}
> 	control.2 {
> 		comment.access 'read write'
> 		comment.type ENUMERATED
> 		comment.count 1
> 		comment.item.0 Mic
> 		comment.item.1 'Front Mic'
> 		iface MIXER
> 		name 'Input Source'
> 		index 1
> 		value Mic
> 	}
> 	control.3 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Analog Loopback'
> 		value false
> 	}
> 	control.4 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Analog Loopback'
> 		index 1
> 		value false
> 	}
> 	control.5 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 15'
> 		comment.dbmin 0
> 		comment.dbmax 2250
> 		iface MIXER
> 		name 'Capture Volume'
> 		value.0 0
> 		value.1 0
> 	}
> 	control.6 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Capture Switch'
> 		value.0 true
> 		value.1 true
> 	}
> 	control.7 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 3'
> 		comment.dbmin 0
> 		comment.dbmax 3000
> 		iface MIXER
> 		name 'Capture Mux Volume'
> 		value.0 1
> 		value.1 1
> 	}
> 	control.8 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 15'
> 		comment.dbmin 0
> 		comment.dbmax 2250
> 		iface MIXER
> 		name 'Capture Volume'
> 		index 1
> 		value.0 0
> 		value.1 0
> 	}
> 	control.9 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Capture Switch'
> 		index 1
> 		value.0 false
> 		value.1 false
> 	}
> 	control.10 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 3'
> 		comment.dbmin 0
> 		comment.dbmax 3000
> 		iface MIXER
> 		name 'Capture Mux Volume'
> 		index 1
> 		value.0 0
> 		value.1 0
> 	}
> 	control.11 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 127'
> 		comment.dbmin -9525
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'Front Playback Volume'
> 		value.0 127
> 		value.1 127
> 	}
> 	control.12 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Front Playback Switch'
> 		value.0 true
> 		value.1 true
> 	}
> 	control.13 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 127'
> 		comment.dbmin -9525
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'Headphone Playback Volume'
> 		value.0 127
> 		value.1 127
> 	}
> 	control.14 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 2
> 		iface MIXER
> 		name 'Headphone Playback Switch'
> 		value.0 true
> 		value.1 true
> 	}
> 	control.15 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 3'
> 		comment.dbmin 0
> 		comment.dbmax 3000
> 		iface MIXER
> 		name 'Digital Mic 1 Capture Volume'
> 		value.0 0
> 		value.1 0
> 	}
> 	control.16 {
> 		comment.access 'read write'
> 		comment.type ENUMERATED
> 		comment.count 1
> 		comment.item.0 'Analog Inputs'
> 		comment.item.1 'Digital Mic 1'
> 		iface MIXER
> 		name 'Digital Input Source'
> 		value 'Analog Inputs'
> 	}
> 	control.17 {
> 		comment.access 'read write'
> 		comment.type INTEGER
> 		comment.count 1
> 		comment.range '0 - 127'
> 		comment.dbmin -9525
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'Master Playback Volume'
> 		value 94
> 	}
> 	control.18 {
> 		comment.access 'read write'
> 		comment.type BOOLEAN
> 		comment.count 1
> 		iface MIXER
> 		name 'Master Playback Switch'
> 		value true
> 	}
> 	control.19 {
> 		comment.access 'read write user'
> 		comment.type INTEGER
> 		comment.count 2
> 		comment.range '0 - 255'
> 		comment.tlv '0000000100000008ffffec1400000014'
> 		comment.dbmin -5100
> 		comment.dbmax 0
> 		iface MIXER
> 		name 'PCM Playback Volume'
> 		value.0 255
> 		value.1 255
> 	}
> }
> --endcollapse--
> 
> 
> !!All Loaded Modules
> !!------------------
> 
> Module
> snd_hda_intel
> snd_hwdep
> nls_cp437
> vfat
> fat
> loop
> isofs
> udf
> nvidia
> ppdev
> lp
> parport
> acpi_cpufreq
> cpufreq_performance
> cpufreq_stats
> cpufreq_ondemand
> cpufreq_powersave
> cpufreq_conservative
> freq_table
> ipv6
> af_packet
> hfsplus
> nls_utf8
> ntfs
> nls_base
> fuse
> snd_pcm_oss
> snd_pcm
> snd_page_alloc
> snd_mixer_oss
> pcmcia
> firmware_class
> snd_seq_dummy
> rtc_cmos
> snd_seq_oss
> rtc_core
> rtc_lib
> dcdbas
> snd_seq_midi_event
> snd_seq
> snd_timer
> snd_seq_device
> serio_raw
> psmouse
> i2c_i801
> snd
> pcspkr
> evdev
> i2c_core
> yenta_socket
> rsrc_nonstatic
> pcmcia_core
> soundcore
> video
> output
> wmi
> ac
> button
> battery
> intel_agp
> ext3
> jbd
> mbcache
> dm_mirror
> dm_log
> dm_snapshot
> dm_mod
> firewire_sbp2
> sg
> sr_mod
> cdrom
> sd_mod
> usbhid
> hid
> ff_memless
> ahci
> libata
> scsi_mod
> dock
> ricoh_mmc
> sdhci
> mmc_core
> firewire_ohci
> firewire_core
> crc_itu_t
> ehci_hcd
> uhci_hcd
> usbcore
> e1000e
> thermal
> processor
> fan
> 
> 
> On Monday 06 October 2008 11:44:33 you wrote:
> > At Sun, 5 Oct 2008 22:10:46 +0200,
> >
> > Klaas De Craemer wrote:
> > > Hello,
> > >
> > > A few days ago, I posted a patch to the linux kernel list, but afterwards
> > > I realised that it is more appropriate for the alsa list. So I repost it
> > > here.
> > >
> > > Below is my patch for an issue on Dell E6500 notebooks with the Sigmatel
> > > stac92hd71b7 codec. In the default snd-hda-intel configuration, the sound
> > > going to the headphone jack goes comes directly from the DAC, resulting
> > > in very low volume output. The patch changes the codec's widget
> > > connections so that the internal mixer is put in between and sets its
> > > input amplifiers to the maximum value. The output to the internal speaker
> > > port has been left untouched.
> > > I have tested this and it gives a much better output.
> >
> > Thanks for the patch.
> >
> > I wonder whether this really improves the quality.
> > Basically what you does is to set the volume of the input mixer over
> > 0dB, and this is usually bad when really high signals come in.
> >
> > Just to be sure, is the output pin set to the headphone pin control?
> > You can give alsa-info.sh output (run with --no-upload option) for
> > further analysis.  The script is found in
> >     http://www.alsa-project.org/alsa-info.sh
> >
> >
> > thanks,
> >
> > Takashi
> 
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-06 10:57     ` Takashi Iwai
@ 2008-10-06 17:10       ` Klaas De Craemer
  2008-10-07  5:44         ` Takashi Iwai
  0 siblings, 1 reply; 11+ messages in thread
From: Klaas De Craemer @ 2008-10-06 17:10 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Mon, Oct 6, 2008 at 12:57 PM, Takashi Iwai <tiwai@suse.de> wrote:
> [please don't drop Cc to alsa-devel ML]
>
> At Mon, 6 Oct 2008 12:48:43 +0200,
> Klaas De Craemer wrote:
>>
>> Hello,
>>
>> I'm sure that the audioquality will degrade somewhat because of the additional amplification,
>> but before, the HP-out was not usable at all. I had to use an external ampli just to use my
>> headphones, even after turning all volume sliders to 100%. Then again, when removing the HP,
>> the volume though the internal speakers was way too loud...
>>
>> I'm not sure what you mean with the output pin and headphone control, but I have uploaded the
>> output of the codegraph tool before and after my modification here:
>> http://users.vtk.be/~s0159120/codec_original.svg
>> http://users.vtk.be/~s0159120/codec_final.svg
>>
>> Below is the output of alsa-info with the patched module
>> Klaas
>
> Thanks.
>
> So, if I understand correctly, when the pin 0x0a is connected directly
> from DAC0 0x10, the output level is too low even if you set the all
> volumes maximal.

That is correct.


> In the alsa-info.sh output, I see the following:
>> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>>   Amp-Out caps: N/A
>>   Amp-Out vals:  [0x5e 0x5e]
>
> which means that you decrease the output level intentionally.
> Is the HP output still too low even if you set to the higher value?


No, after the patch I don't need 100% anymore. The HP output is fine
now, and I can tune it up and down a bit. Before using the mixer-amp,
going from 90 to 100 resulted in going from no sound to little sound.
Now the range is more useful.

>
> Takashi
>
>
>>
>> -----
>> upload=true&script=true&cardinfo=
>> !!################################
>> !!ALSA Information Script v 0.4.51
>> !!################################
>>
>> !!Script ran on: Mon Oct  6 12:42:48 CEST 2008
>>
>>
>> !!Linux Distribution
>> !!------------------
>>
>> Debian GNU/Linux lenny/sid \n \l
>>
>>
>> !!Kernel Information
>> !!------------------
>>
>> Kernel release:    2.6.26-5.slh.6-sidux-686
>> Operating System:  GNU/Linux
>> Architecture:      i686
>> Processor:         unknown
>> SMP Enabled:       Yes
>>
>>
>> !!ALSA Version
>> !!------------
>>
>> Driver version:     1.0.16
>> Library version:
>> Utilities version:  1.0.16
>>
>>
>> !!Loaded ALSA modules
>> !!-------------------
>>
>> snd_hda_intel
>>
>>
>> !!Soundcards recognised by ALSA
>> !!-----------------------------
>>
>>  0 [Intel          ]: HDA-Intel - HDA Intel
>>                       HDA Intel at 0xf6fdc000 irq 21
>>
>>
>> !!PCI Soundcards installed in the system
>> !!--------------------------------------
>>
>> 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
>>
>>
>> !!Advanced information - PCI Vendor/Device/Susbsystem ID's
>> !!--------------------------------------------------------
>>
>> 00:1b.0 0403: 8086:293e (rev 03)
>>       Subsystem: 1028:024f
>>
>>
>> !!Modprobe options (Sound related)
>> !!--------------------------------
>>
>> snd-atiixp-modem: index=-2
>> snd-intel8x0m: index=-2
>> snd-via82xx-modem: index=-2
>> snd-pcsp: index=-2
>>
>>
>> !!Loaded sound module options
>> !!--------------------------
>>
>> !!Module: snd_hda_intel
>> enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y
>> enable_msi : 0
>> id :
>> <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
>> index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
>> model :
>> <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
>> position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
>> power_save : 0
>> power_save_controller : Y
>> probe_mask : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
>> single_cmd : N
>>
>>
>> !!HDA-Intel Codec information
>> !!---------------------------
>> --startcollapse--
>>
>> Codec: IDT 92HD71B7X
>> Address: 0
>> Vendor Id: 0x111d76b2
>> Subsystem Id: 0x1028024f
>> Revision Id: 0x100302
>> No Modem Function Group found
>> Default PCM:
>>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>>     bits [0xe]: 16 20 24
>>     formats [0x1]: PCM
>> Default Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
>> Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
>> GPIO: io=8, o=0, i=0, unsolicited=1, wake=1
>>   IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1
>>   IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0
>>   IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0
>>   IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0
>>   IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0
>>   IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0
>>   IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0
>>   IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0
>> Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
>>   Pincap 0x081c: OUT HP Detect
>>   Pin Default 0x0421101f: [Jack] HP Out at Ext Right
>>     Conn = 1/8, Color = Black
>>     DefAssociation = 0x1, Sequence = 0xf
>>   Pin-ctls: 0xc0: OUT HP
>>   Unsolicited: tag=30, enabled=1
>>   Connection: 3
>>      0x10 0x11 0x17*
>> Node 0x0b [Pin Complex] wcaps 0x400081: Stereo
>>   Pincap 0x081724: IN Detect
>>     Vref caps: HIZ 50 GRD 80
>>   Pin Default 0x04a11221: [Jack] Mic at Ext Right
>>     Conn = 1/8, Color = Black
>>     DefAssociation = 0x2, Sequence = 0x1
>>   Pin-ctls: 0x24: IN VREF_80
>>   Unsolicited: tag=00, enabled=0
>> Node 0x0c [Pin Complex] wcaps 0x400081: Stereo
>>   Pincap 0x081724: IN Detect
>>     Vref caps: HIZ 50 GRD 80
>>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x0
>>   Pin-ctls: 0x00: VREF_HIZ
>>   Unsolicited: tag=00, enabled=0
>> Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
>>   Pincap 0x0814: OUT Detect
>>   Pin Default 0x90170110: [Fixed] Speaker at Int N/A
>>     Conn = Analog, Color = Unknown
>>     DefAssociation = 0x1, Sequence = 0x0
>>     Misc = NO_PRESENCE
>>   Pin-ctls: 0x00:
>>   Unsolicited: tag=00, enabled=0
>>   Connection: 3
>>      0x10* 0x11 0x17
>> Node 0x0e [Pin Complex] wcaps 0x400081: Stereo
>>   Pincap 0x081724: IN Detect
>>     Vref caps: HIZ 50 GRD 80
>>   Pin Default 0x23a1902e: [Jack] Mic at Sep Left
>>     Conn = 1/8, Color = Pink
>>     DefAssociation = 0x2, Sequence = 0xe
>>   Pin-ctls: 0x24: IN VREF_80
>>   Unsolicited: tag=00, enabled=0
>> Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
>>   Pincap 0x0814: OUT Detect
>>   Pin Default 0x23014250: [Jack] Line Out at Sep Left
>>     Conn = 1/8, Color = Green
>>     DefAssociation = 0x5, Sequence = 0x0
>>   Pin-ctls: 0x00:
>>   Unsolicited: tag=00, enabled=0
>>   Connection: 3
>>      0x10* 0x11 0x17
>> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>>   Amp-Out caps: N/A
>>   Amp-Out vals:  [0x5e 0x5e]
>>   Converter: stream=5, channel=0
>>   Power: setting=D0, actual=D0
>>   Delay: 13 samples
>> Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>>   Amp-Out caps: N/A
>>   Amp-Out vals:  [0x3d 0x3d]
>>   Converter: stream=5, channel=0
>>   Power: setting=D0, actual=D0
>>   Delay: 13 samples
>> Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo
>>   Converter: stream=0, channel=0
>>   SDI-Select: 0
>>   Power: setting=D0, actual=D0
>>   Delay: 13 samples
>>   Connection: 1
>>      0x1c
>>   Processing caps: benign=0, ncoeff=0
>> Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo
>>   Converter: stream=0, channel=0
>>   SDI-Select: 0
>>   Power: setting=D0, actual=D0
>>   Delay: 13 samples
>>   Connection: 1
>>      0x1d
>>   Processing caps: benign=0, ncoeff=0
>> Node 0x14 [Pin Complex] wcaps 0x400100: Mono
>>   Pincap 0x0810: OUT
>>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x0
>>   Pin-ctls: 0x00:
>>   Connection: 1
>>      0x16
>> Node 0x15 [Audio Selector] wcaps 0x300101: Stereo
>>   Connection: 3
>>      0x10* 0x11 0x17
>> Node 0x16 [Audio Mixer] wcaps 0x200100: Mono
>>   Connection: 1
>>      0x15
>> Node 0x17 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
>>   Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
>>   Amp-In vals:  [0x1f 0x1f] [0x1f 0x1f] [0x97 0x97] [0x97 0x97] [0x97 0x97]
>>   Connection: 5
>>      0x10 0x11 0x27 0x1a 0x1b
>> Node 0x18 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
>>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>>   Amp-Out vals:  [0x00 0x00]
>>   Pincap 0x0820: IN
>>   Pin Default 0x90a000f0: [Fixed] Mic at Int N/A
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x0
>>   Pin-ctls: 0x20: IN
>> Node 0x19 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
>>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>>   Amp-Out vals:  [0x00 0x00]
>>   Pincap 0x0820: IN
>>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x0
>>   Pin-ctls: 0x20: IN
>> Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
>>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>>   Amp-Out vals:  [0x01 0x01]
>>   Connection: 3
>>      0x0b* 0x0c 0x0e
>> Node 0x1b [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
>>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>>   Amp-Out vals:  [0x00 0x00]
>>   Connection: 3
>>      0x0b* 0x0c 0x0e
>> Node 0x1c [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>>   Amp-Out vals:  [0x00 0x00]
>>   Connection: 4
>>      0x1a* 0x17 0x18 0x19
>> Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>>   Amp-Out vals:  [0x80 0x80]
>>   Connection: 4
>>      0x1b* 0x17 0x18 0x19
>> Node 0x1e [Pin Complex] wcaps 0x400301: Stereo Digital
>>   Pincap 0x0810: OUT
>>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x0
>>   Pin-ctls: 0x00:
>>   Connection: 1
>>      0x24
>> Node 0x1f [Pin Complex] wcaps 0x400701: Stereo Digital
>>   Pincap 0x0810010: OUT EAPD
>>   EAPD 0x0:
>>   Pin Default 0x40f000f6: [N/A] Other at Ext N/A
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x6
>>   Pin-ctls: 0x00:
>>   Power: setting=D0, actual=D0
>>   Connection: 2
>>      0x24* 0x25
>> Node 0x20 [Pin Complex] wcaps 0x400301: Stereo Digital
>>   Pincap 0x0810: OUT
>>   Pin Default 0x40f000f7: [N/A] Other at Ext N/A
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x7
>>   Pin-ctls: 0x00:
>>   Connection: 1
>>      0x25
>> Node 0x21 [Audio Output] wcaps 0x40211: Stereo Digital
>>   Converter: stream=0, channel=0
>>   Digital:
>>   Digital category: 0x0
>>   PCM:
>>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>>     bits [0xe]: 16 20 24
>>     formats [0x5]: PCM AC3
>>   Delay: 4 samples
>> Node 0x22 [Audio Output] wcaps 0x40211: Stereo Digital
>>   Converter: stream=0, channel=0
>>   Digital:
>>   Digital category: 0x0
>>   PCM:
>>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>>     bits [0xe]: 16 20 24
>>     formats [0x5]: PCM AC3
>>   Delay: 4 samples
>> Node 0x23 [Vendor Defined Widget] wcaps 0xf00000: Mono
>> Node 0x24 [Audio Selector] wcaps 0x300101: Stereo
>>   Connection: 3
>>      0x21* 0x1c 0x1d
>> Node 0x25 [Audio Selector] wcaps 0x300101: Stereo
>>   Connection: 3
>>      0x22* 0x1c 0x1d
>> Node 0x26 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
>>   Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
>>   Amp-Out vals:  [0x00]
>> Node 0x27 [Pin Complex] wcaps 0x400000: Mono
>>   Pincap 0x0820: IN
>>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>>     Conn = Unknown, Color = Unknown
>>     DefAssociation = 0xf, Sequence = 0x0
>>   Pin-ctls: 0x00:
>> Node 0x28 [Volume Knob Widget] wcaps 0x600000: Mono
>>   Volume-Knob: delta=1, steps=127, direct=1, val=127
>>   Connection: 2
>>      0x10* 0x11
>> --endcollapse--
>>
>>
>> !!ALSA Device nodes
>> !!-----------------
>>
>> crw-rw---- 1 root audio 116, 7 okt  6 12:40 /dev/snd/controlC0
>> crw-rw---- 1 root audio 116, 6 okt  6 12:40 /dev/snd/hwC0D0
>> crw-rw---- 1 root audio 116, 5 okt  6 12:40 /dev/snd/pcmC0D0c
>> crw-rw---- 1 root audio 116, 4 okt  6 12:41 /dev/snd/pcmC0D0p
>> crw-rw---- 1 root audio 116, 3 okt  6 11:41 /dev/snd/seq
>> crw-rw---- 1 root audio 116, 2 okt  6 11:41 /dev/snd/timer
>>
>>
>> !!Aplay/Arecord output
>> !!------------
>>
>> APLAY
>>
>> **** List of PLAYBACK Hardware Devices ****
>> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
>>   Subdevices: 0/1
>>   Subdevice #0: subdevice #0
>>
>> ARECORD
>>
>> **** List of CAPTURE Hardware Devices ****
>> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
>>   Subdevices: 2/2
>>   Subdevice #0: subdevice #0
>>   Subdevice #1: subdevice #1
>>
>> !!Amixer output
>> !!-------------
>>
>> !!-------Mixer controls for card 0 [Intel]
>>
>> Card hw:0 'Intel'/'HDA Intel at 0xf6fdc000 irq 21'
>>   Mixer name  : 'IDT 92HD71B7X'
>>   Components  : 'HDA:111d76b2'
>>   Controls      : 19
>>   Simple ctrls  : 14
>> Simple mixer control 'Master',0
>>   Capabilities: pvolume pvolume-joined pswitch pswitch-joined
>>   Playback channels: Mono
>>   Limits: Playback 0 - 127
>>   Mono: Playback 94 [74%] [-24.75dB] [on]
>> Simple mixer control 'Headphone',0
>>   Capabilities: pvolume pswitch
>>   Playback channels: Front Left - Front Right
>>   Limits: Playback 0 - 127
>>   Mono:
>>   Front Left: Playback 127 [100%] [0.00dB] [on]
>>   Front Right: Playback 127 [100%] [0.00dB] [on]
>> Simple mixer control 'PCM',0
>>   Capabilities: pvolume
>>   Playback channels: Front Left - Front Right
>>   Limits: Playback 0 - 255
>>   Mono:
>>   Front Left: Playback 255 [100%] [0.00dB]
>>   Front Right: Playback 255 [100%] [0.00dB]
>> Simple mixer control 'Front',0
>>   Capabilities: pvolume pswitch
>>   Playback channels: Front Left - Front Right
>>   Limits: Playback 0 - 127
>>   Mono:
>>   Front Left: Playback 127 [100%] [0.00dB] [on]
>>   Front Right: Playback 127 [100%] [0.00dB] [on]
>> Simple mixer control 'Capture',0
>>   Capabilities: cvolume cswitch
>>   Capture channels: Front Left - Front Right
>>   Limits: Capture 0 - 15
>>   Front Left: Capture 0 [0%] [0.00dB] [on]
>>   Front Right: Capture 0 [0%] [0.00dB] [on]
>> Simple mixer control 'Capture Mux',0
>>   Capabilities: volume
>>   Playback channels: Front Left - Front Right
>>   Capture channels: Front Left - Front Right
>>   Limits: 0 - 3
>>   Front Left: 1 [33%] [10.00dB]
>>   Front Right: 1 [33%] [10.00dB]
>> Simple mixer control 'Capture Mux',1
>>   Capabilities: volume
>>   Playback channels: Front Left - Front Right
>>   Capture channels: Front Left - Front Right
>>   Limits: 0 - 3
>>   Front Left: 0 [0%] [0.00dB]
>>   Front Right: 0 [0%] [0.00dB]
>> Simple mixer control 'Capture',1
>>   Capabilities: cvolume cswitch
>>   Capture channels: Front Left - Front Right
>>   Limits: Capture 0 - 15
>>   Front Left: Capture 0 [0%] [0.00dB] [off]
>>   Front Right: Capture 0 [0%] [0.00dB] [off]
>> Simple mixer control 'Analog Loopback',0
>>   Capabilities: pswitch pswitch-joined
>>   Playback channels: Mono
>>   Mono: Playback [off]
>> Simple mixer control 'Analog Loopback',1
>>   Capabilities: pswitch pswitch-joined
>>   Playback channels: Mono
>>   Mono: Playback [off]
>> Simple mixer control 'Digital Input Source',0
>>   Capabilities: enum
>>   Items: 'Analog Inputs' 'Digital Mic 1'
>>   Item0: 'Analog Inputs'
>> Simple mixer control 'Digital Mic 1',0
>>   Capabilities: cvolume
>>   Capture channels: Front Left - Front Right
>>   Limits: Capture 0 - 3
>>   Front Left: Capture 0 [0%] [0.00dB]
>>   Front Right: Capture 0 [0%] [0.00dB]
>> Simple mixer control 'Input Source',0
>>   Capabilities: cenum
>>   Items: 'Mic' 'Front Mic'
>>   Item0: 'Mic'
>> Simple mixer control 'Input Source',1
>>   Capabilities: cenum
>>   Items: 'Mic' 'Front Mic'
>>   Item0: 'Mic'
>>
>>
>> !!Alsactl output
>> !!-------------
>>
>> --startcollapse--
>> state.Intel {
>>       control.1 {
>>               comment.access 'read write'
>>               comment.type ENUMERATED
>>               comment.count 1
>>               comment.item.0 Mic
>>               comment.item.1 'Front Mic'
>>               iface MIXER
>>               name 'Input Source'
>>               value Mic
>>       }
>>       control.2 {
>>               comment.access 'read write'
>>               comment.type ENUMERATED
>>               comment.count 1
>>               comment.item.0 Mic
>>               comment.item.1 'Front Mic'
>>               iface MIXER
>>               name 'Input Source'
>>               index 1
>>               value Mic
>>       }
>>       control.3 {
>>               comment.access 'read write'
>>               comment.type BOOLEAN
>>               comment.count 1
>>               iface MIXER
>>               name 'Analog Loopback'
>>               value false
>>       }
>>       control.4 {
>>               comment.access 'read write'
>>               comment.type BOOLEAN
>>               comment.count 1
>>               iface MIXER
>>               name 'Analog Loopback'
>>               index 1
>>               value false
>>       }
>>       control.5 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 15'
>>               comment.dbmin 0
>>               comment.dbmax 2250
>>               iface MIXER
>>               name 'Capture Volume'
>>               value.0 0
>>               value.1 0
>>       }
>>       control.6 {
>>               comment.access 'read write'
>>               comment.type BOOLEAN
>>               comment.count 2
>>               iface MIXER
>>               name 'Capture Switch'
>>               value.0 true
>>               value.1 true
>>       }
>>       control.7 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 3'
>>               comment.dbmin 0
>>               comment.dbmax 3000
>>               iface MIXER
>>               name 'Capture Mux Volume'
>>               value.0 1
>>               value.1 1
>>       }
>>       control.8 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 15'
>>               comment.dbmin 0
>>               comment.dbmax 2250
>>               iface MIXER
>>               name 'Capture Volume'
>>               index 1
>>               value.0 0
>>               value.1 0
>>       }
>>       control.9 {
>>               comment.access 'read write'
>>               comment.type BOOLEAN
>>               comment.count 2
>>               iface MIXER
>>               name 'Capture Switch'
>>               index 1
>>               value.0 false
>>               value.1 false
>>       }
>>       control.10 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 3'
>>               comment.dbmin 0
>>               comment.dbmax 3000
>>               iface MIXER
>>               name 'Capture Mux Volume'
>>               index 1
>>               value.0 0
>>               value.1 0
>>       }
>>       control.11 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 127'
>>               comment.dbmin -9525
>>               comment.dbmax 0
>>               iface MIXER
>>               name 'Front Playback Volume'
>>               value.0 127
>>               value.1 127
>>       }
>>       control.12 {
>>               comment.access 'read write'
>>               comment.type BOOLEAN
>>               comment.count 2
>>               iface MIXER
>>               name 'Front Playback Switch'
>>               value.0 true
>>               value.1 true
>>       }
>>       control.13 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 127'
>>               comment.dbmin -9525
>>               comment.dbmax 0
>>               iface MIXER
>>               name 'Headphone Playback Volume'
>>               value.0 127
>>               value.1 127
>>       }
>>       control.14 {
>>               comment.access 'read write'
>>               comment.type BOOLEAN
>>               comment.count 2
>>               iface MIXER
>>               name 'Headphone Playback Switch'
>>               value.0 true
>>               value.1 true
>>       }
>>       control.15 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 3'
>>               comment.dbmin 0
>>               comment.dbmax 3000
>>               iface MIXER
>>               name 'Digital Mic 1 Capture Volume'
>>               value.0 0
>>               value.1 0
>>       }
>>       control.16 {
>>               comment.access 'read write'
>>               comment.type ENUMERATED
>>               comment.count 1
>>               comment.item.0 'Analog Inputs'
>>               comment.item.1 'Digital Mic 1'
>>               iface MIXER
>>               name 'Digital Input Source'
>>               value 'Analog Inputs'
>>       }
>>       control.17 {
>>               comment.access 'read write'
>>               comment.type INTEGER
>>               comment.count 1
>>               comment.range '0 - 127'
>>               comment.dbmin -9525
>>               comment.dbmax 0
>>               iface MIXER
>>               name 'Master Playback Volume'
>>               value 94
>>       }
>>       control.18 {
>>               comment.access 'read write'
>>               comment.type BOOLEAN
>>               comment.count 1
>>               iface MIXER
>>               name 'Master Playback Switch'
>>               value true
>>       }
>>       control.19 {
>>               comment.access 'read write user'
>>               comment.type INTEGER
>>               comment.count 2
>>               comment.range '0 - 255'
>>               comment.tlv '0000000100000008ffffec1400000014'
>>               comment.dbmin -5100
>>               comment.dbmax 0
>>               iface MIXER
>>               name 'PCM Playback Volume'
>>               value.0 255
>>               value.1 255
>>       }
>> }
>> --endcollapse--
>>
>>
>> !!All Loaded Modules
>> !!------------------
>>
>> Module
>> snd_hda_intel
>> snd_hwdep
>> nls_cp437
>> vfat
>> fat
>> loop
>> isofs
>> udf
>> nvidia
>> ppdev
>> lp
>> parport
>> acpi_cpufreq
>> cpufreq_performance
>> cpufreq_stats
>> cpufreq_ondemand
>> cpufreq_powersave
>> cpufreq_conservative
>> freq_table
>> ipv6
>> af_packet
>> hfsplus
>> nls_utf8
>> ntfs
>> nls_base
>> fuse
>> snd_pcm_oss
>> snd_pcm
>> snd_page_alloc
>> snd_mixer_oss
>> pcmcia
>> firmware_class
>> snd_seq_dummy
>> rtc_cmos
>> snd_seq_oss
>> rtc_core
>> rtc_lib
>> dcdbas
>> snd_seq_midi_event
>> snd_seq
>> snd_timer
>> snd_seq_device
>> serio_raw
>> psmouse
>> i2c_i801
>> snd
>> pcspkr
>> evdev
>> i2c_core
>> yenta_socket
>> rsrc_nonstatic
>> pcmcia_core
>> soundcore
>> video
>> output
>> wmi
>> ac
>> button
>> battery
>> intel_agp
>> ext3
>> jbd
>> mbcache
>> dm_mirror
>> dm_log
>> dm_snapshot
>> dm_mod
>> firewire_sbp2
>> sg
>> sr_mod
>> cdrom
>> sd_mod
>> usbhid
>> hid
>> ff_memless
>> ahci
>> libata
>> scsi_mod
>> dock
>> ricoh_mmc
>> sdhci
>> mmc_core
>> firewire_ohci
>> firewire_core
>> crc_itu_t
>> ehci_hcd
>> uhci_hcd
>> usbcore
>> e1000e
>> thermal
>> processor
>> fan
>>
>>
>> On Monday 06 October 2008 11:44:33 you wrote:
>> > At Sun, 5 Oct 2008 22:10:46 +0200,
>> >
>> > Klaas De Craemer wrote:
>> > > Hello,
>> > >
>> > > A few days ago, I posted a patch to the linux kernel list, but afterwards
>> > > I realised that it is more appropriate for the alsa list. So I repost it
>> > > here.
>> > >
>> > > Below is my patch for an issue on Dell E6500 notebooks with the Sigmatel
>> > > stac92hd71b7 codec. In the default snd-hda-intel configuration, the sound
>> > > going to the headphone jack goes comes directly from the DAC, resulting
>> > > in very low volume output. The patch changes the codec's widget
>> > > connections so that the internal mixer is put in between and sets its
>> > > input amplifiers to the maximum value. The output to the internal speaker
>> > > port has been left untouched.
>> > > I have tested this and it gives a much better output.
>> >
>> > Thanks for the patch.
>> >
>> > I wonder whether this really improves the quality.
>> > Basically what you does is to set the volume of the input mixer over
>> > 0dB, and this is usually bad when really high signals come in.
>> >
>> > Just to be sure, is the output pin set to the headphone pin control?
>> > You can give alsa-info.sh output (run with --no-upload option) for
>> > further analysis.  The script is found in
>> >     http://www.alsa-project.org/alsa-info.sh
>> >
>> >
>> > thanks,
>> >
>> > Takashi
>>
>>
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-06 17:10       ` Klaas De Craemer
@ 2008-10-07  5:44         ` Takashi Iwai
  2008-10-07  9:46           ` Klaas De Craemer
  0 siblings, 1 reply; 11+ messages in thread
From: Takashi Iwai @ 2008-10-07  5:44 UTC (permalink / raw)
  To: Klaas De Craemer; +Cc: alsa-devel

At Mon, 6 Oct 2008 19:10:14 +0200,
Klaas De Craemer wrote:
> 
> On Mon, Oct 6, 2008 at 12:57 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > [please don't drop Cc to alsa-devel ML]
> >
> > At Mon, 6 Oct 2008 12:48:43 +0200,
> > Klaas De Craemer wrote:
> >>
> >> Hello,
> >>
> >> I'm sure that the audioquality will degrade somewhat because of the additional amplification,
> >> but before, the HP-out was not usable at all. I had to use an external ampli just to use my
> >> headphones, even after turning all volume sliders to 100%. Then again, when removing the HP,
> >> the volume though the internal speakers was way too loud...
> >>
> >> I'm not sure what you mean with the output pin and headphone control, but I have uploaded the
> >> output of the codegraph tool before and after my modification here:
> >> http://users.vtk.be/~s0159120/codec_original.svg
> >> http://users.vtk.be/~s0159120/codec_final.svg
> >>
> >> Below is the output of alsa-info with the patched module
> >> Klaas
> >
> > Thanks.
> >
> > So, if I understand correctly, when the pin 0x0a is connected directly
> > from DAC0 0x10, the output level is too low even if you set the all
> > volumes maximal.
> 
> That is correct.
> 
> 
> > In the alsa-info.sh output, I see the following:
> >> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
> >>   Amp-Out caps: N/A
> >>   Amp-Out vals:  [0x5e 0x5e]
> >
> > which means that you decrease the output level intentionally.
> > Is the HP output still too low even if you set to the higher value?
> 
> 
> No, after the patch I don't need 100% anymore.

Of course not :)

> The HP output is fine
> now, and I can tune it up and down a bit. Before using the mixer-amp,
> going from 90 to 100 resulted in going from no sound to little sound.
> Now the range is more useful.

Could you check the raw value of the widget 0x10 without your patch?
The percent doesn't tell you exactly what you changed.


Takashi

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-07  5:44         ` Takashi Iwai
@ 2008-10-07  9:46           ` Klaas De Craemer
  2008-10-07 10:07             ` Takashi Iwai
  0 siblings, 1 reply; 11+ messages in thread
From: Klaas De Craemer @ 2008-10-07  9:46 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Tue, Oct 7, 2008 at 7:44 AM, Takashi Iwai <tiwai@suse.de> wrote:
> At Mon, 6 Oct 2008 19:10:14 +0200,
> Klaas De Craemer wrote:
>>
>> On Mon, Oct 6, 2008 at 12:57 PM, Takashi Iwai <tiwai@suse.de> wrote:
>> > [please don't drop Cc to alsa-devel ML]
>> >
>> > At Mon, 6 Oct 2008 12:48:43 +0200,
>> > Klaas De Craemer wrote:
>> >>
>> >> Hello,
>> >>
>> >> I'm sure that the audioquality will degrade somewhat because of the additional amplification,
>> >> but before, the HP-out was not usable at all. I had to use an external ampli just to use my
>> >> headphones, even after turning all volume sliders to 100%. Then again, when removing the HP,
>> >> the volume though the internal speakers was way too loud...
>> >>
>> >> I'm not sure what you mean with the output pin and headphone control, but I have uploaded the
>> >> output of the codegraph tool before and after my modification here:
>> >> http://users.vtk.be/~s0159120/codec_original.svg
>> >> http://users.vtk.be/~s0159120/codec_final.svg
>> >>
>> >> Below is the output of alsa-info with the patched module
>> >> Klaas
>> >
>> > Thanks.
>> >
>> > So, if I understand correctly, when the pin 0x0a is connected directly
>> > from DAC0 0x10, the output level is too low even if you set the all
>> > volumes maximal.
>>
>> That is correct.
>>
>>
>> > In the alsa-info.sh output, I see the following:
>> >> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>> >>   Amp-Out caps: N/A
>> >>   Amp-Out vals:  [0x5e 0x5e]
>> >
>> > which means that you decrease the output level intentionally.
>> > Is the HP output still too low even if you set to the higher value?
>>
>>
>> No, after the patch I don't need 100% anymore.
>
> Of course not :)
>
>> The HP output is fine
>> now, and I can tune it up and down a bit. Before using the mixer-amp,
>> going from 90 to 100 resulted in going from no sound to little sound.
>> Now the range is more useful.
>
> Could you check the raw value of the widget 0x10 without your patch?
> The percent doesn't tell you exactly what you changed.
>
>
> Takashi
>

I have pasted the output of /proc/asound/card0/codec#0 below, without
the patch. However, I'm not sure what you're exactly looking for? I'm
quite new to all this stuff , but I'd be more than happy to help out
more, so feel free to ask anything.

Also related, in windows (yeah i know), using the IDT drivers, the
volume is extremely high  :) So I went searching in the driver files
and it seems that the widget configuration is specified there in an
ini file. As far as I can see, the mixer is not configured, but an
external amp is mentioned. Could it be that the external amp of 0x0A
is not used in snd-hda-intel? Or maybe it refers to the "+3dBV output
option on headphone capable ports" as mentioned in the datasheet...
But I'm just guessing now.

Klaas

--------------- 92HDM4-1.INI  ---------------
[HKLM\SOFTWARE\IDT\Config\EventExpressions\JackPresensea]
110="if(JackState(10) == 1 || JackState(15) ==
1,(BypassSystemEq(1)),(BypassSystemEq(0)))"
120="if(JackState(10) == 1 || JackState(15) ==
1,(BypassSystemComp(1)),(BypassSystemComp(0)))"
[HKLM\SOFTWARE\IDT\Config\EventExpressions\JackPresensef]
110="if(JackState(10) == 1 || JackState(15) ==
1,(BypassSystemEq(1)),(BypassSystemEq(0)))"
120="if(JackState(10) == 1 || JackState(15) ==
1,(BypassSystemComp(1)),(BypassSystemComp(0)))"
[HKR]
CodecName = "92HD71B8x"
[HKR\Settings]
InitVerbs                            = hex:
TraceFlags                           = dword: 0x89B3
Biostype1  = hex: 1
EnablePcBeepAtCd                     = hex: 1
AllowHpOnNonSupportingPin            = hex: 0
CPL_SaveExtraPower                   = hex: 1
CPL_MaySwitchExtAmpPowerState        = hex: 1
CPL_SecondsAfter                     = dword: 30
EnableDLCDWA                         = hex: 1
PmEnabledWidget				= hex: 0A,0B,0C,0D,0E,0F
ShareSystemMicJackAsLine = hex: 1
AfgPowerStatePolicy = hex: 2
CPL_ControlAfgPowerState = hex: 0x1
KeepAnalogLoopbackAlwaysOn = hex: 0
DelayInMsAfterPortDisabling = dword: 0x40
SAEN = dword: 0x08
[HKR\Settings\pin]
[HKR\Settings\Pin\0A]
CfgDflt = dword: 0x0421101F
Action = hex: 81,0D, 81,0F
ExtAmpCtrl = hex: 00,05,02
[HKR\Settings\Pin\0B]
[HKR\Settings\Pin\0C]
CfgDflt = dword: 0x400003F0
[HKR\Settings\Pin\0D]
CfgDflt = dword: 0x90170010
[HKR\Settings\Pin\0E]
[HKR\Settings\Pin\0F]
CfgDflt = dword: 0x2301401F
Action = hex: 81,0D
[HKR\Settings\Pin\14]
CfgDflt = dword: 0x400003F0
[HKR\Settings\Pin\18]
[HKR\Settings\Pin\19]
CfgDflt = dword: 0x400003F0
[HKR\Settings\Pin\1E]
[HKR\Settings\Pin\1F]
CfgDflt = dword: 0x400000F0
[HKR\Settings\Pin\20]
CfgDflt = dword: 0x400000F0
[HKR\Settings\Pin\27]
CfgDflt = dword: 0x90300022
[HKR\Settings\GPIO]
00                    = hex: 82

--------------- codecoutput_nonpatched ---------------
Codec: IDT 92HD71B7X
Address: 0
Vendor Id: 0x111d76b2
Subsystem Id: 0x1028024f
Revision Id: 0x100302
No Modem Function Group found
Default PCM:
    rates [0x7e0]: 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
Default Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
GPIO: io=8, o=0, i=0, unsolicited=1, wake=1
  IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0
  IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0
  IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0
  IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0
  IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0
  IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0
Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x081c: OUT HP Detect
  Pin Default 0x0421101f: [Jack] HP Out at Ext Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=30, enabled=1
  Connection: 3
     0x10 0x11* 0x17
Node 0x0b [Pin Complex] wcaps 0x400081: Stereo
  Pincap 0x081724: IN Detect
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x04a11221: [Jack] Mic at Ext Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x2, Sequence = 0x1
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=00, enabled=0
Node 0x0c [Pin Complex] wcaps 0x400081: Stereo
  Pincap 0x081724: IN Detect
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0814: OUT Detect
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Connection: 3
     0x10 0x11 0x17*
Node 0x0e [Pin Complex] wcaps 0x400081: Stereo
  Pincap 0x081724: IN Detect
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x23a1902e: [Jack] Mic at Sep Left
    Conn = 1/8, Color = Pink
    DefAssociation = 0x2, Sequence = 0xe
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=00, enabled=0
Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
  Pincap 0x0814: OUT Detect
  Pin Default 0x23014250: [Jack] Line Out at Sep Left
    Conn = 1/8, Color = Green
    DefAssociation = 0x5, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Connection: 3
     0x10 0x11 0x17*
Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
  Amp-Out caps: N/A
  Amp-Out vals:  [0x72 0x72]
  Converter: stream=5, channel=0
  Power: setting=D0, actual=D0
  Delay: 13 samples
Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
  Amp-Out caps: N/A
  Amp-Out vals:  [0x65 0x65]
  Converter: stream=5, channel=0
  Power: setting=D0, actual=D0
  Delay: 13 samples
Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Power: setting=D0, actual=D0
  Delay: 13 samples
  Connection: 1
     0x1c
  Processing caps: benign=0, ncoeff=0
Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Power: setting=D0, actual=D0
  Delay: 13 samples
  Connection: 1
     0x1d
  Processing caps: benign=0, ncoeff=0
Node 0x14 [Pin Complex] wcaps 0x400100: Mono
  Pincap 0x0810: OUT
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x16
Node 0x15 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 3
     0x10* 0x11 0x17
Node 0x16 [Audio Mixer] wcaps 0x200100: Mono
  Connection: 1
     0x15
Node 0x17 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x1f 0x1f] [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97]
  Connection: 5
     0x10 0x11 0x27 0x1a 0x1b
Node 0x18 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0820: IN
  Pin Default 0x90a000f0: [Fixed] Mic at Int N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x20: IN
Node 0x19 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0820: IN
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x20: IN
Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-Out vals:  [0x01 0x01]
  Connection: 3
     0x0b* 0x0c 0x0e
Node 0x1b [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-Out vals:  [0x00 0x00]
  Connection: 3
     0x0b* 0x0c 0x0e
Node 0x1c [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
  Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
  Amp-Out vals:  [0x00 0x00]
  Connection: 4
     0x1a* 0x17 0x18 0x19
Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
  Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
  Amp-Out vals:  [0x80 0x80]
  Connection: 4
     0x1b* 0x17 0x18 0x19
Node 0x1e [Pin Complex] wcaps 0x400301: Stereo Digital
  Pincap 0x0810: OUT
  Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x24
Node 0x1f [Pin Complex] wcaps 0x400701: Stereo Digital
  Pincap 0x0810010: OUT EAPD
  EAPD 0x0:
  Pin Default 0x40f000f6: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x6
  Pin-ctls: 0x00:
  Power: setting=D0, actual=D0
  Connection: 2
     0x24* 0x25
Node 0x20 [Pin Complex] wcaps 0x400301: Stereo Digital
  Pincap 0x0810: OUT
  Pin Default 0x40f000f7: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x7
  Pin-ctls: 0x00:
  Connection: 1
     0x25
Node 0x21 [Audio Output] wcaps 0x40211: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0x7e0]: 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Delay: 4 samples
Node 0x22 [Audio Output] wcaps 0x40211: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0x7e0]: 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Delay: 4 samples
Node 0x23 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x24 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 3
     0x21* 0x1c 0x1d
Node 0x25 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 3
     0x22* 0x1c 0x1d
Node 0x26 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
  Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
  Amp-Out vals:  [0x00]
Node 0x27 [Pin Complex] wcaps 0x400000: Mono
  Pincap 0x0820: IN
  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
Node 0x28 [Volume Knob Widget] wcaps 0x600000: Mono
  Volume-Knob: delta=1, steps=127, direct=1, val=127
  Connection: 2
     0x10* 0x11

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-07  9:46           ` Klaas De Craemer
@ 2008-10-07 10:07             ` Takashi Iwai
  2008-10-07 22:41               ` Klaas De Craemer
  0 siblings, 1 reply; 11+ messages in thread
From: Takashi Iwai @ 2008-10-07 10:07 UTC (permalink / raw)
  To: Klaas De Craemer; +Cc: alsa-devel

At Tue, 7 Oct 2008 11:46:58 +0200,
Klaas De Craemer wrote:
> 
> On Tue, Oct 7, 2008 at 7:44 AM, Takashi Iwai <tiwai@suse.de> wrote:
> > At Mon, 6 Oct 2008 19:10:14 +0200,
> > Klaas De Craemer wrote:
> >>
> >> On Mon, Oct 6, 2008 at 12:57 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >> > [please don't drop Cc to alsa-devel ML]
> >> >
> >> > At Mon, 6 Oct 2008 12:48:43 +0200,
> >> > Klaas De Craemer wrote:
> >> >>
> >> >> Hello,
> >> >>
> >> >> I'm sure that the audioquality will degrade somewhat because of the additional amplification,
> >> >> but before, the HP-out was not usable at all. I had to use an external ampli just to use my
> >> >> headphones, even after turning all volume sliders to 100%. Then again, when removing the HP,
> >> >> the volume though the internal speakers was way too loud...
> >> >>
> >> >> I'm not sure what you mean with the output pin and headphone control, but I have uploaded the
> >> >> output of the codegraph tool before and after my modification here:
> >> >> http://users.vtk.be/~s0159120/codec_original.svg
> >> >> http://users.vtk.be/~s0159120/codec_final.svg
> >> >>
> >> >> Below is the output of alsa-info with the patched module
> >> >> Klaas
> >> >
> >> > Thanks.
> >> >
> >> > So, if I understand correctly, when the pin 0x0a is connected directly
> >> > from DAC0 0x10, the output level is too low even if you set the all
> >> > volumes maximal.
> >>
> >> That is correct.
> >>
> >>
> >> > In the alsa-info.sh output, I see the following:
> >> >> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
> >> >>   Amp-Out caps: N/A
> >> >>   Amp-Out vals:  [0x5e 0x5e]
> >> >
> >> > which means that you decrease the output level intentionally.
> >> > Is the HP output still too low even if you set to the higher value?
> >>
> >>
> >> No, after the patch I don't need 100% anymore.
> >
> > Of course not :)
> >
> >> The HP output is fine
> >> now, and I can tune it up and down a bit. Before using the mixer-amp,
> >> going from 90 to 100 resulted in going from no sound to little sound.
> >> Now the range is more useful.
> >
> > Could you check the raw value of the widget 0x10 without your patch?
> > The percent doesn't tell you exactly what you changed.
> >
> >
> > Takashi
> >
> 
> I have pasted the output of /proc/asound/card0/codec#0 below, without
> the patch. However, I'm not sure what you're exactly looking for? I'm
> quite new to all this stuff , but I'd be more than happy to help out
> more, so feel free to ask anything.

The mixer volume level in percentage might be different from the raw
value of the NID 0x10 (or 0x11?) amps because of volume-knob stuff.
I just wanted to make sure that a really high value is set to the
amp.

OTOH, if it happens only with the headphone (I suppose the loud enough
output from the speaker after unplugging the headphone), this isn't a
matter of the DAC amp value.

> Also related, in windows (yeah i know), using the IDT drivers, the
> volume is extremely high  :) So I went searching in the driver files
> and it seems that the widget configuration is specified there in an
> ini file. As far as I can see, the mixer is not configured, but an
> external amp is mentioned. Could it be that the external amp of 0x0A
> is not used in snd-hda-intel? Or maybe it refers to the "+3dBV output
> option on headphone capable ports" as mentioned in the datasheet...

This seems to be the normal pin control bit 7 to me.  And we already
set it.

BTW, you can use hda-verb program to change the verb dynamically.
Build the driver with CONFIG_SND_HDA_HWDEP=y, and you'll have the
access to hwdep device, e.g. /dev/snd/hwC0D0.  The device number
depends on the codec slot.
    ftp://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2


thanks,

Takashi

> Klaas
> 
> --------------- 92HDM4-1.INI  ---------------
> [HKLM\SOFTWARE\IDT\Config\EventExpressions\JackPresensea]
> 110="if(JackState(10) == 1 || JackState(15) ==
> 1,(BypassSystemEq(1)),(BypassSystemEq(0)))"
> 120="if(JackState(10) == 1 || JackState(15) ==
> 1,(BypassSystemComp(1)),(BypassSystemComp(0)))"
> [HKLM\SOFTWARE\IDT\Config\EventExpressions\JackPresensef]
> 110="if(JackState(10) == 1 || JackState(15) ==
> 1,(BypassSystemEq(1)),(BypassSystemEq(0)))"
> 120="if(JackState(10) == 1 || JackState(15) ==
> 1,(BypassSystemComp(1)),(BypassSystemComp(0)))"
> [HKR]
> CodecName = "92HD71B8x"
> [HKR\Settings]
> InitVerbs                            = hex:
> TraceFlags                           = dword: 0x89B3
> Biostype1  = hex: 1
> EnablePcBeepAtCd                     = hex: 1
> AllowHpOnNonSupportingPin            = hex: 0
> CPL_SaveExtraPower                   = hex: 1
> CPL_MaySwitchExtAmpPowerState        = hex: 1
> CPL_SecondsAfter                     = dword: 30
> EnableDLCDWA                         = hex: 1
> PmEnabledWidget				= hex: 0A,0B,0C,0D,0E,0F
> ShareSystemMicJackAsLine = hex: 1
> AfgPowerStatePolicy = hex: 2
> CPL_ControlAfgPowerState = hex: 0x1
> KeepAnalogLoopbackAlwaysOn = hex: 0
> DelayInMsAfterPortDisabling = dword: 0x40
> SAEN = dword: 0x08
> [HKR\Settings\pin]
> [HKR\Settings\Pin\0A]
> CfgDflt = dword: 0x0421101F
> Action = hex: 81,0D, 81,0F
> ExtAmpCtrl = hex: 00,05,02
> [HKR\Settings\Pin\0B]
> [HKR\Settings\Pin\0C]
> CfgDflt = dword: 0x400003F0
> [HKR\Settings\Pin\0D]
> CfgDflt = dword: 0x90170010
> [HKR\Settings\Pin\0E]
> [HKR\Settings\Pin\0F]
> CfgDflt = dword: 0x2301401F
> Action = hex: 81,0D
> [HKR\Settings\Pin\14]
> CfgDflt = dword: 0x400003F0
> [HKR\Settings\Pin\18]
> [HKR\Settings\Pin\19]
> CfgDflt = dword: 0x400003F0
> [HKR\Settings\Pin\1E]
> [HKR\Settings\Pin\1F]
> CfgDflt = dword: 0x400000F0
> [HKR\Settings\Pin\20]
> CfgDflt = dword: 0x400000F0
> [HKR\Settings\Pin\27]
> CfgDflt = dword: 0x90300022
> [HKR\Settings\GPIO]
> 00                    = hex: 82
> 
> --------------- codecoutput_nonpatched ---------------
> Codec: IDT 92HD71B7X
> Address: 0
> Vendor Id: 0x111d76b2
> Subsystem Id: 0x1028024f
> Revision Id: 0x100302
> No Modem Function Group found
> Default PCM:
>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>     bits [0xe]: 16 20 24
>     formats [0x1]: PCM
> Default Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
> GPIO: io=8, o=0, i=0, unsolicited=1, wake=1
>   IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1
>   IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0
> Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
>   Pincap 0x081c: OUT HP Detect
>   Pin Default 0x0421101f: [Jack] HP Out at Ext Right
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x1, Sequence = 0xf
>   Pin-ctls: 0xc0: OUT HP
>   Unsolicited: tag=30, enabled=1
>   Connection: 3
>      0x10 0x11* 0x17
> Node 0x0b [Pin Complex] wcaps 0x400081: Stereo
>   Pincap 0x081724: IN Detect
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x04a11221: [Jack] Mic at Ext Right
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x2, Sequence = 0x1
>   Pin-ctls: 0x24: IN VREF_80
>   Unsolicited: tag=00, enabled=0
> Node 0x0c [Pin Complex] wcaps 0x400081: Stereo
>   Pincap 0x081724: IN Detect
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00: VREF_HIZ
>   Unsolicited: tag=00, enabled=0
> Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
>   Pincap 0x0814: OUT Detect
>   Pin Default 0x90170110: [Fixed] Speaker at Int N/A
>     Conn = Analog, Color = Unknown
>     DefAssociation = 0x1, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 3
>      0x10 0x11 0x17*
> Node 0x0e [Pin Complex] wcaps 0x400081: Stereo
>   Pincap 0x081724: IN Detect
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x23a1902e: [Jack] Mic at Sep Left
>     Conn = 1/8, Color = Pink
>     DefAssociation = 0x2, Sequence = 0xe
>   Pin-ctls: 0x24: IN VREF_80
>   Unsolicited: tag=00, enabled=0
> Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
>   Pincap 0x0814: OUT Detect
>   Pin Default 0x23014250: [Jack] Line Out at Sep Left
>     Conn = 1/8, Color = Green
>     DefAssociation = 0x5, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 3
>      0x10 0x11 0x17*
> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x72 0x72]
>   Converter: stream=5, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x65 0x65]
>   Converter: stream=5, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x1c
>   Processing caps: benign=0, ncoeff=0
> Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x1d
>   Processing caps: benign=0, ncoeff=0
> Node 0x14 [Pin Complex] wcaps 0x400100: Mono
>   Pincap 0x0810: OUT
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Connection: 1
>      0x16
> Node 0x15 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 3
>      0x10* 0x11 0x17
> Node 0x16 [Audio Mixer] wcaps 0x200100: Mono
>   Connection: 1
>      0x15
> Node 0x17 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
>   Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
>   Amp-In vals:  [0x1f 0x1f] [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97]
>   Connection: 5
>      0x10 0x11 0x27 0x1a 0x1b
> Node 0x18 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x00 0x00]
>   Pincap 0x0820: IN
>   Pin Default 0x90a000f0: [Fixed] Mic at Int N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x20: IN
> Node 0x19 [Pin Complex] wcaps 0x40000d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x00 0x00]
>   Pincap 0x0820: IN
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x20: IN
> Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x01 0x01]
>   Connection: 3
>      0x0b* 0x0c 0x0e
> Node 0x1b [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
>   Amp-Out vals:  [0x00 0x00]
>   Connection: 3
>      0x0b* 0x0c 0x0e
> Node 0x1c [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x00 0x00]
>   Connection: 4
>      0x1a* 0x17 0x18 0x19
> Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x80 0x80]
>   Connection: 4
>      0x1b* 0x17 0x18 0x19
> Node 0x1e [Pin Complex] wcaps 0x400301: Stereo Digital
>   Pincap 0x0810: OUT
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Connection: 1
>      0x24
> Node 0x1f [Pin Complex] wcaps 0x400701: Stereo Digital
>   Pincap 0x0810010: OUT EAPD
>   EAPD 0x0:
>   Pin Default 0x40f000f6: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x6
>   Pin-ctls: 0x00:
>   Power: setting=D0, actual=D0
>   Connection: 2
>      0x24* 0x25
> Node 0x20 [Pin Complex] wcaps 0x400301: Stereo Digital
>   Pincap 0x0810: OUT
>   Pin Default 0x40f000f7: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x7
>   Pin-ctls: 0x00:
>   Connection: 1
>      0x25
> Node 0x21 [Audio Output] wcaps 0x40211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Delay: 4 samples
> Node 0x22 [Audio Output] wcaps 0x40211: Stereo Digital
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x7e0]: 44100 48000 88200 96000 176400 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Delay: 4 samples
> Node 0x23 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x24 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 3
>      0x21* 0x1c 0x1d
> Node 0x25 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 3
>      0x22* 0x1c 0x1d
> Node 0x26 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
>   Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
>   Amp-Out vals:  [0x00]
> Node 0x27 [Pin Complex] wcaps 0x400000: Mono
>   Pincap 0x0820: IN
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
> Node 0x28 [Volume Knob Widget] wcaps 0x600000: Mono
>   Volume-Knob: delta=1, steps=127, direct=1, val=127
>   Connection: 2
>      0x10* 0x11
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-07 10:07             ` Takashi Iwai
@ 2008-10-07 22:41               ` Klaas De Craemer
  2008-10-08  6:36                 ` Takashi Iwai
  0 siblings, 1 reply; 11+ messages in thread
From: Klaas De Craemer @ 2008-10-07 22:41 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Tue, Oct 7, 2008 at 12:07 PM, Takashi Iwai <tiwai@suse.de> wrote:
> At Tue, 7 Oct 2008 11:46:58 +0200,
> Klaas De Craemer wrote:
>>
>> On Tue, Oct 7, 2008 at 7:44 AM, Takashi Iwai <tiwai@suse.de> wrote:
>> > At Mon, 6 Oct 2008 19:10:14 +0200,
>> > Klaas De Craemer wrote:
>> >>
>> >> On Mon, Oct 6, 2008 at 12:57 PM, Takashi Iwai <tiwai@suse.de> wrote:
>> >> > [please don't drop Cc to alsa-devel ML]
>> >> >
>> >> > At Mon, 6 Oct 2008 12:48:43 +0200,
>> >> > Klaas De Craemer wrote:
>> >> >>
>> >> >> Hello,
>> >> >>
>> >> >> I'm sure that the audioquality will degrade somewhat because of the additional amplification,
>> >> >> but before, the HP-out was not usable at all. I had to use an external ampli just to use my
>> >> >> headphones, even after turning all volume sliders to 100%. Then again, when removing the HP,
>> >> >> the volume though the internal speakers was way too loud...
>> >> >>
>> >> >> I'm not sure what you mean with the output pin and headphone control, but I have uploaded the
>> >> >> output of the codegraph tool before and after my modification here:
>> >> >> http://users.vtk.be/~s0159120/codec_original.svg
>> >> >> http://users.vtk.be/~s0159120/codec_final.svg
>> >> >>
>> >> >> Below is the output of alsa-info with the patched module
>> >> >> Klaas
>> >> >
>> >> > Thanks.
>> >> >
>> >> > So, if I understand correctly, when the pin 0x0a is connected directly
>> >> > from DAC0 0x10, the output level is too low even if you set the all
>> >> > volumes maximal.
>> >>
>> >> That is correct.
>> >>
>> >>
>> >> > In the alsa-info.sh output, I see the following:
>> >> >> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>> >> >>   Amp-Out caps: N/A
>> >> >>   Amp-Out vals:  [0x5e 0x5e]
>> >> >
>> >> > which means that you decrease the output level intentionally.
>> >> > Is the HP output still too low even if you set to the higher value?
>> >>
>> >>
>> >> No, after the patch I don't need 100% anymore.
>> >
>> > Of course not :)
>> >
>> >> The HP output is fine
>> >> now, and I can tune it up and down a bit. Before using the mixer-amp,
>> >> going from 90 to 100 resulted in going from no sound to little sound.
>> >> Now the range is more useful.
>> >
>> > Could you check the raw value of the widget 0x10 without your patch?
>> > The percent doesn't tell you exactly what you changed.
>> >
>> >
>> > Takashi
>> >
>>
>> I have pasted the output of /proc/asound/card0/codec#0 below, without
>> the patch. However, I'm not sure what you're exactly looking for? I'm
>> quite new to all this stuff , but I'd be more than happy to help out
>> more, so feel free to ask anything.
>
> The mixer volume level in percentage might be different from the raw
> value of the NID 0x10 (or 0x11?) amps because of volume-knob stuff.
> I just wanted to make sure that a really high value is set to the
> amp.
>
> OTOH, if it happens only with the headphone (I suppose the loud enough
> output from the speaker after unplugging the headphone), this isn't a
> matter of the DAC amp value.


But, with this information, can something be done about it in future
releases? Maybe a model-option?

I also checked the output by connecting earplugs and by using the jack
as lineout to my hifi, but it is again quite low-volume. So that rules
out a "bad" headphone.

Klaas

ps: it also seems like most of this conversation is not listed in the
alsa-devel list?

>> Also related, in windows (yeah i know), using the IDT drivers, the
>> volume is extremely high  :) So I went searching in the driver files
>> and it seems that the widget configuration is specified there in an
>> ini file. As far as I can see, the mixer is not configured, but an
>> external amp is mentioned. Could it be that the external amp of 0x0A
>> is not used in snd-hda-intel? Or maybe it refers to the "+3dBV output
>> option on headphone capable ports" as mentioned in the datasheet...
>
> This seems to be the normal pin control bit 7 to me.  And we already
> set it.
>
> BTW, you can use hda-verb program to change the verb dynamically.
> Build the driver with CONFIG_SND_HDA_HWDEP=y, and you'll have the
> access to hwdep device, e.g. /dev/snd/hwC0D0.  The device number
> depends on the codec slot.
>    ftp://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2
>
>
> thanks,
>
> Takashi
>
>> Klaas
>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-07 22:41               ` Klaas De Craemer
@ 2008-10-08  6:36                 ` Takashi Iwai
  0 siblings, 0 replies; 11+ messages in thread
From: Takashi Iwai @ 2008-10-08  6:36 UTC (permalink / raw)
  To: Klaas De Craemer; +Cc: alsa-devel

At Wed, 8 Oct 2008 00:41:27 +0200,
Klaas De Craemer wrote:
> 
> On Tue, Oct 7, 2008 at 12:07 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > At Tue, 7 Oct 2008 11:46:58 +0200,
> > Klaas De Craemer wrote:
> >>
> >> On Tue, Oct 7, 2008 at 7:44 AM, Takashi Iwai <tiwai@suse.de> wrote:
> >> > At Mon, 6 Oct 2008 19:10:14 +0200,
> >> > Klaas De Craemer wrote:
> >> >>
> >> >> On Mon, Oct 6, 2008 at 12:57 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >> >> > [please don't drop Cc to alsa-devel ML]
> >> >> >
> >> >> > At Mon, 6 Oct 2008 12:48:43 +0200,
> >> >> > Klaas De Craemer wrote:
> >> >> >>
> >> >> >> Hello,
> >> >> >>
> >> >> >> I'm sure that the audioquality will degrade somewhat because of the additional amplification,
> >> >> >> but before, the HP-out was not usable at all. I had to use an external ampli just to use my
> >> >> >> headphones, even after turning all volume sliders to 100%. Then again, when removing the HP,
> >> >> >> the volume though the internal speakers was way too loud...
> >> >> >>
> >> >> >> I'm not sure what you mean with the output pin and headphone control, but I have uploaded the
> >> >> >> output of the codegraph tool before and after my modification here:
> >> >> >> http://users.vtk.be/~s0159120/codec_original.svg
> >> >> >> http://users.vtk.be/~s0159120/codec_final.svg
> >> >> >>
> >> >> >> Below is the output of alsa-info with the patched module
> >> >> >> Klaas
> >> >> >
> >> >> > Thanks.
> >> >> >
> >> >> > So, if I understand correctly, when the pin 0x0a is connected directly
> >> >> > from DAC0 0x10, the output level is too low even if you set the all
> >> >> > volumes maximal.
> >> >>
> >> >> That is correct.
> >> >>
> >> >>
> >> >> > In the alsa-info.sh output, I see the following:
> >> >> >> Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
> >> >> >>   Amp-Out caps: N/A
> >> >> >>   Amp-Out vals:  [0x5e 0x5e]
> >> >> >
> >> >> > which means that you decrease the output level intentionally.
> >> >> > Is the HP output still too low even if you set to the higher value?
> >> >>
> >> >>
> >> >> No, after the patch I don't need 100% anymore.
> >> >
> >> > Of course not :)
> >> >
> >> >> The HP output is fine
> >> >> now, and I can tune it up and down a bit. Before using the mixer-amp,
> >> >> going from 90 to 100 resulted in going from no sound to little sound.
> >> >> Now the range is more useful.
> >> >
> >> > Could you check the raw value of the widget 0x10 without your patch?
> >> > The percent doesn't tell you exactly what you changed.
> >> >
> >> >
> >> > Takashi
> >> >
> >>
> >> I have pasted the output of /proc/asound/card0/codec#0 below, without
> >> the patch. However, I'm not sure what you're exactly looking for? I'm
> >> quite new to all this stuff , but I'd be more than happy to help out
> >> more, so feel free to ask anything.
> >
> > The mixer volume level in percentage might be different from the raw
> > value of the NID 0x10 (or 0x11?) amps because of volume-knob stuff.
> > I just wanted to make sure that a really high value is set to the
> > amp.
> >
> > OTOH, if it happens only with the headphone (I suppose the loud enough
> > output from the speaker after unplugging the headphone), this isn't a
> > matter of the DAC amp value.
> 
> 
> But, with this information, can something be done about it in future
> releases? Maybe a model-option?

Possibly.  Or, it's a generic problem regarding volume-knob.  It's not
ruled out yet.

> I also checked the output by connecting earplugs and by using the jack
> as lineout to my hifi, but it is again quite low-volume. So that rules
> out a "bad" headphone.

I didn't doubt it.  My question was "what is the raw value".
I don't trust the mixer percentage values you showed.  They are
important in the end result, but not for analyzing the problem.
Instead, the raw values the driver sends to the codec are really raw
and more understandable.  (And, for checking this, you can use
hda-verb program, too.)

So, if you try to analyze the problem, always check the values in
codec proc.  At best, check the values directly by yourself via
hda-verb program.


> Klaas
> 
> ps: it also seems like most of this conversation is not listed in the
> alsa-devel list?

The posts from non-subscribers have to be approved manually.
Just subscribe to the list first to reduce the latency.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Sigmatel stac92hd71b7 low HP volume
  2008-10-02 19:45 Klaas De Craemer
@ 2008-10-08 21:50 ` Andrew Morton
  0 siblings, 0 replies; 11+ messages in thread
From: Andrew Morton @ 2008-10-08 21:50 UTC (permalink / raw)
  To: Klaas De Craemer; +Cc: linux-kernel, perex, Takashi Iwai

On Thu, 2 Oct 2008 21:45:03 +0200
Klaas De Craemer <klaasdc@gmail.com> wrote:

> Hello,
> 
> Below is my patch for an issue on Dell E6500 notebooks with the Sigmatel stac92hd71b7 codec. In the default snd-hda-intel configuration, the sound going to the headphone jack goes comes directly from the DAC, resulting in very low volume output. The patch changes the codec's widget connections so that the internal mixer is put in between and sets its input amplifiers to the maximum value. The output to the internal speaker port has been left untouched.
> I have tested this and it gives a much better output.
> 
> Klaas De Craemer
> 
> 
> diff -uNr linux-2.6.26.5/sound/pci/hda/patch_sigmatel.c linux-2.6.26.5.new/sound/pci/hda/patch_sigmatel.c
> --- linux-2.6.26.5/sound/pci/hda/patch_sigmatel.c	2008-09-08 19:40:20.000000000 +0200
> +++ linux-2.6.26.5.new/sound/pci/hda/patch_sigmatel.c	2008-10-02 20:08:51.000000000 +0200
> @@ -624,6 +624,22 @@
>  	{}
>  };
>  
> +static struct hda_verb stac92hd71b7_core_init[] = {
> +	/* set master volume and direct control */
> +	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
> +	/* connect headphone jack to mixer */
> +	{ 0x0a, AC_VERB_SET_CONNECT_SEL, 0x02},
> +	/* unmute right and left channels for nodes 0x0a, 0xd, 0x0f */
> +	{ 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
> +	{ 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
> +	{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
> +
> +	/* Increase mixer volume for the two dac's */
> +	{ 0x17, 0x370, 0x7f },
> +	{ 0x17, 0x371, 0x7f },
> +	{}
> +};
> +
>  static struct hda_verb stac92hd71bxx_core_init[] = {
>  	/* set master volume and direct control */
>  	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
> @@ -3642,6 +3658,10 @@
>  		spec->mixer = stac92hd71bxx_mixer;
>  		spec->init = stac92hd71bxx_core_init;
>  		break;
> +	case 0x111d76b2: /* Dell E6500 stac92hd71b7 configuration */
> +		spec->mixer = stac92hd71bxx_mixer;
> +		spec->init = stac92hd71b7_core_init;
> +		break;
>  	default:
>  		spec->mixer = stac92hd71bxx_analog_mixer;
>  		spec->init = stac92hd71bxx_analog_core_init;

This needed updating to apply on the current alsa development tree. 
Please see below.

Note that this may now be wrong - various cases in
patch_stac92hd71bxx() have recently been updated to modify
codec->slave_dig_outs, but we're not doing that in the case of
0x111d76b2.

Please send us a Signed-off-by: for your patch, as per
Documentation/Submittingpatches, thanks.



From: Klaas De Craemer <klaasdc@gmail.com>

Fix an issue on Dell E6500 notebooks with the Sigmatel stac92hd71b7 codec.

In the default snd-hda-intel configuration, the sound going to the
headphone jack goes comes directly from the DAC, resulting in very low
volume output.  The patch changes the codec's widget connections so that
the internal mixer is put in between and sets its input amplifiers to the
maximum value.  The output to the internal speaker port has been left
untouched.  I have tested this and it gives a much better output.

Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 sound/pci/hda/patch_sigmatel.c |   20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff -puN sound/pci/hda/patch_sigmatel.c~alsa-sigmatel-stac92hd71b7-low-hp-volume sound/pci/hda/patch_sigmatel.c
--- a/sound/pci/hda/patch_sigmatel.c~alsa-sigmatel-stac92hd71b7-low-hp-volume
+++ a/sound/pci/hda/patch_sigmatel.c
@@ -855,6 +855,22 @@ static struct hda_verb stac92hd83xxx_cor
 	{ 0x01, AC_VERB_SET_EAPD, 1 << 2},
 };
 
+static struct hda_verb stac92hd71b7_core_init[] = {
+	/* set master volume and direct control */
+	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
+	/* connect headphone jack to mixer */
+	{ 0x0a, AC_VERB_SET_CONNECT_SEL, 0x02},
+	/* unmute right and left channels for nodes 0x0a, 0xd, 0x0f */
+	{ 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+	{ 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+	{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+
+	/* Increase mixer volume for the two dac's */
+	{ 0x17, 0x370, 0x7f },
+	{ 0x17, 0x371, 0x7f },
+	{}
+};
+
 static struct hda_verb stac92hd71bxx_core_init[] = {
 	/* set master volume and direct control */
 	{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
@@ -4354,6 +4370,10 @@ again:
 		spec->init = stac92hd71bxx_core_init;
 		codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
 		break;
+	case 0x111d76b2: /* Dell E6500 stac92hd71b7 configuration */
+		spec->mixer = stac92hd71bxx_mixer;
+		spec->init = stac92hd71b7_core_init;
+		break;
 	case 0x111d7608: /* 5 Port with Analog Mixer */
 		if ((codec->revision_id & 0xf) == 0 ||
 				(codec->revision_id & 0xf) == 1) {
_


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-10-08 21:51 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-05 20:10 [PATCH] Sigmatel stac92hd71b7 low HP volume Klaas De Craemer
2008-10-06  9:44 ` Takashi Iwai
     [not found]   ` <200810061248.43643.klaasdc@gmail.com>
2008-10-06 10:57     ` Takashi Iwai
2008-10-06 17:10       ` Klaas De Craemer
2008-10-07  5:44         ` Takashi Iwai
2008-10-07  9:46           ` Klaas De Craemer
2008-10-07 10:07             ` Takashi Iwai
2008-10-07 22:41               ` Klaas De Craemer
2008-10-08  6:36                 ` Takashi Iwai
  -- strict thread matches above, loose matches on Subject: below --
2008-10-02 19:45 Klaas De Craemer
2008-10-08 21:50 ` Andrew Morton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.