[alsa-devel] [RFC] Initialize volumes of HD-audio slave ctls
Raymond Yau
superquad.vortex2 at gmail.com
Fri Mar 9 04:13:38 CET 2012
2012/3/9, David Henningsson <david.henningsson at canonical.com>:
> On 03/08/2012 04:27 PM, Takashi Iwai wrote:
>> diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
>> index 9771b07..f450f2a 100644
>> --- a/sound/pci/hda/patch_analog.c
>> +++ b/sound/pci/hda/patch_analog.c
>> @@ -82,6 +82,7 @@ struct ad198x_spec {
>> unsigned int inv_jack_detect: 1;/* inverted jack-detection */
>> unsigned int inv_eapd: 1; /* inverted EAPD implementation */
>> unsigned int analog_beep: 1; /* analog beep input present */
>> + unsigned int avoid_init_slave_vol:1;
>>
>> #ifdef CONFIG_SND_HDA_POWER_SAVE
>> struct hda_loopback_check loopback;
>> @@ -223,11 +224,12 @@ static int ad198x_build_controls(struct hda_codec
>> *codec)
>> unsigned int vmaster_tlv[4];
>> snd_hda_set_vmaster_tlv(codec, spec->vmaster_nid,
>> HDA_OUTPUT, vmaster_tlv);
>> - err = snd_hda_add_vmaster(codec, "Master Playback Volume",
>> + err = __snd_hda_add_vmaster(codec, "Master Playback Volume",
>> vmaster_tlv,
>> (spec->slave_vols ?
>> spec->slave_vols : ad_slave_pfxs),
>> - "Playback Volume");
>> + "Playback Volume",
>> + !spec->avoid_init_slave_vol);
>> if (err< 0)
>> return err;
>> }
>> @@ -3604,6 +3606,7 @@ static int patch_ad1884(struct hda_codec *codec)
>> spec->vmaster_nid = 0x04;
>> /* we need to cover all playback volumes */
>> spec->slave_vols = ad1884_slave_vols;
>> + spec->avoid_init_slave_vol = 1;
>>
>> codec->patch_ops = ad198x_patch_ops;
>>
https://bugs.launchpad.net/alsa-driver/+bug/526201
https://bugzilla.novell.com/show_bug.cgi?id=595544
Some HP desktops seem have internal speaker connected to mono port
, line out at rear panel and HP at front panel
Node 0x11 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Control: name="Headphone Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0000001f: OUT HP Detect Trigger ImpSense
Pin Default 0x02211030: [Jack] HP Out at Ext Front
Conn = 1/8, Color = Black
DefAssociation = 0x3, Sequence = 0x0
Pin-ctls: 0xc0: OUT HP
Unsolicited: tag=00, enabled=0
Connection: 1
0x07
Node 0x12 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
Control: name="Front Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0001001f: OUT HP EAPD Detect Trigger ImpSense
EAPD 0x0:
Pin Default 0x01014010: [Jack] Line Out at Ext Rear
Conn = 1/8, Color = Green
DefAssociation = 0x1, Sequence = 0x0
Pin-ctls: 0xc0: OUT HP
Unsolicited: tag=00, enabled=0
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x0a
Node 0x13 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
Control: name="Mono Playback Volume", index=0, device=0
ControlAmp: chs=1, dir=Out, idx=0, ofs=0
Control: name="Mono Playback Switch", index=0, device=0
ControlAmp: chs=1, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
Amp-Out vals: [0x00]
Pincap 0x00010010: OUT EAPD
EAPD 0x0:
Pin Default 0x99131150: [Fixed] Speaker at Int ATAPI
Conn = ATAPI, Color = Black
DefAssociation = 0x5, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x1f
DAC0 is not used and there is amp at node 0x13
dB range of volume control node 0x13 is different from node 0x03 and 0x04
Node 0x03 [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x00 0x00]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D0, actual=D0
Node 0x04 [Audio Output] wcaps 0x405: Stereo Amp-Out
Control: name="PCM Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Device: name="AD198x Analog", type="Audio", device=0
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x1a 0x1a]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D0, actual=D0
More information about the Alsa-devel
mailing list