-----Original Message----- From: David Henningsson [mailto:david.henningsson@canonical.com] Sent: Wednesday, June 05, 2013 7:34 PM
On 06/05/2013 01:06 PM, Lin, Mengdong wrote:
Hi,
I'm using a Realtek HD-A codec ALC282. But the headphone output amplifier is
always muted and I cannot unmute it by amixer.
I tried to unmute the pin via control 'Headphone Playback Switch', but
snd_hda_mixer_amp_switch_put() gets a ZERO value from ucontrol->value.integer.value, thus the pin will be muted.
Could somebody give me some tips to further check this issue? Many thanks!
Maybe there's also a "Master playback switch" that needs to be turned on as well?
Many thanks, David! This works. I need to turn on "Master playback switch" as well.
And could you give me some info about the relationship of "Master playback switch", "Headphone Playback Switch" and "Speaker Playback switch"? I observed a close binding between "Master playback switch" and "Headphone Playback Switch": if I turn off one, then both will be turned off. It looks strange. But the "Speaker Playback Switch" is independent from "Master playback switch": It can be turn on/off without affecting the "Master". Both "Speaker Playback Switch" and "Headphone Playback Switch" are implemented by a output pin, why "Master" seems to be tied to "Headphone"?
Is this behavior a designed result, user preference, or codec H/W restriction?
Thanks Mengdong
Here are the headphone pin info: Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Headphone Jack", index=0, device=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000001c: OUT HP Detect Pin Default 0x0321401f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Green DefAssociation = 0x1, Sequence = 0xf Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c 0x0d*
Here is the pin's controls listed by amixer: numid=2,iface=MIXER,name='Headphone Playback Switch'
Then I use this command to unmute the pin's amplifier: amixer -c 1 cset numid=2,iface=MIXER,name='Headphone Playback Switch' on
My debug message show that snd_hda_mixer_amp_switch_put() gets zero
value , indicating to 'mute':
[ 346.263519] snd_hda_mixer_amp_switch_put: nid 0x0021, chs 3, control value [0x00000000, 0x00000000] [ 346.263527] snd_hda_codec_amp_update: nid 0x0021 [ 346.263532]
codec_amp_update:
nid 0x0021, ch 0, direction 1 (OUT 1), index 0, val 0x00000080 [ 346.263536] codec_amp_update: amp val not change [ 346.263538] snd_hda_codec_amp_update: nid 0x0021 [ 346.263542]
codec_amp_update:
nid 0x0021, ch 1, direction 1 (OUT 1), index 0, val 0x00000080 [ 346.263544] codec_amp_update: amp val not change
Thanks Mengdong _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic