[alsa-devel] hda question: 'Headphone Playback Switch' cannot unmute the pin's output amplifier?
mengdong.lin at intel.com
Thu Jun 6 07:39:00 CEST 2013
> -----Original Message-----
> From: David Henningsson [mailto:david.henningsson at 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
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?
> > 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]
> > 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]
> > 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 at alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> David Henningsson, Canonical Ltd.
More information about the Alsa-devel