You are not logged in.

#1 2018-12-20 12:45:34

iamhermes
Member
Registered: 2018-12-20
Posts: 2

swapped speaker and headphone output - Lenovo Thinkpad E485

Hello,

with the Lenovo Thinkpad E485 i need a solution to fix a swapped muting of output channels.

failure:
- headphones plugged in: integrated speakers are unmuted and sound is playing over the speaker and the headphone jack is muted.
- headphones plugged out: headphone output unmuted and integrated speakers muted.


I am able to unmute and mute the headphone and speaker output with alsamixer, also able to set a new volume to the outputs to hear sound from it.
The outputs are labeled correct in alsamixer.
pavucontrol shows the plugged/unplugged status on headphone channel.

I tried to invert the jacks via snd_hda_codec. But it is a unknown parameter.
Tried to add the inv jack parameter to all loaded snd* modules. But it is not working

$ cat /etc/modprobe.d/snd_hda_core.conf

options snd_hda_codec_conexant inv_jack_detect=1
options snd_hda_codec_generic inv_jack_detect=1
options snd_hda_codec_hdmi inv_jack_detect=1
options snd_hda_intel inv_jack_detect=1
options snd_hda_codec inv_jack_detect=1
options snd_hda_core inv_jack_detect=1
options snd_hwdep inv_jack_detect=1
options snd_pcm inv_jack_detect=1
options snd_time inv_jack_detect=1
options snd inv_jack_detect=1
options soundcore inv_jack_detect=1

$ dmesg|grep jack

[    2.703993] soundcore: unknown parameter 'inv_jack_detect' ignored
[    2.735130] snd: unknown parameter 'inv_jack_detect' ignored
[    2.767413] snd_pcm: unknown parameter 'inv_jack_detect' ignored
[    2.770595] snd_hwdep: unknown parameter 'inv_jack_detect' ignored
[    2.803639] snd_hda_core: unknown parameter 'inv_jack_detect' ignored
[    2.838967] snd_hda_codec: unknown parameter 'inv_jack_detect' ignored
[    2.860471] snd_hda_intel: unknown parameter 'inv_jack_detect' ignored
[    2.887159] snd_hda_codec_hdmi: unknown parameter 'inv_jack_detect' ignored
[    2.889648] snd_hda_codec_generic: unknown parameter 'inv_jack_detect' ignored
[    2.897774] snd_hda_codec_conexant: unknown parameter 'inv_jack_detect' ignored

in the following output there is a diff between unplugged and plugged headphones ( cat /proc/asound/card1/codec#0 )
$ diff -y plugged unplugged

Codec: Conexant CX20753/4					Codec: Conexant CX20753/4
Address: 0							Address: 0
AFG Function Id: 0x1 (unsol 1)					AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x14f15111						Vendor Id: 0x14f15111
Subsystem Id: 0x17aa5070					Subsystem Id: 0x17aa5070
Revision Id: 0x100101						Revision Id: 0x100101
No Modem Function Group found					No Modem Function Group found
Default PCM:							Default PCM:
    rates [0x160]: 44100 48000 96000				    rates [0x160]: 44100 48000 96000
    bits [0xe]: 16 20 24					    bits [0xe]: 16 20 24
    formats [0x1]: PCM						    formats [0x1]: PCM
Default Amp-In caps: N/A					Default Amp-In caps: N/A
Default Amp-Out caps: N/A					Default Amp-Out caps: N/A
State of AFG node 0x01:						State of AFG node 0x01:
  Power states:  D0 D1 D2 D3 D3cold S3D3cold CLKSTOP EPSS	  Power states:  D0 D1 D2 D3 D3cold S3D3cold CLKSTOP EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
GPIO: io=3, o=0, i=0, unsolicited=1, wake=0			GPIO: io=3, o=0, i=0, unsolicited=1, wake=0
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0	  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0	  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0	  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L	Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Control: name="Headphone Playback Volume", index=0, device=	  Control: name="Headphone Playback Volume", index=0, device=
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0			    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Headphone Playback Switch", index=0, device=	  Control: name="Headphone Playback Switch", index=0, device=
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0			    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="CX20753/4 Analog", type="Audio", device=0	  Device: name="CX20753/4 Analog", type="Audio", device=0
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1	  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x80 0x80]				      |	  Amp-Out vals:  [0x37 0x37]
  Converter: stream=5, channel=0				  Converter: stream=5, channel=0
  PCM:								  PCM:
    rates [0x560]: 44100 48000 96000 192000			    rates [0x560]: 44100 48000 96000 192000
    bits [0xa]: 16 24						    bits [0xa]: 16 24
    formats [0x1]: PCM						    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L	Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Control: name="Speaker Playback Volume", index=0, device=0	  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0			    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Playback Switch", index=0, device=0	  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0			    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1	  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x3a 0x3a]				      |	  Amp-Out vals:  [0x80 0x80]
  Converter: stream=5, channel=0				  Converter: stream=5, channel=0
  PCM:								  PCM:
    rates [0x560]: 44100 48000 96000 192000			    rates [0x560]: 44100 48000 96000 192000
    bits [0xa]: 16 24						    bits [0xa]: 16 24
    formats [0x1]: PCM						    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
Node 0x12 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Ou	Node 0x12 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Ou
  Control: name="Beep Playback Volume", index=0, device=0	  Control: name="Beep Playback Volume", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0			    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Control: name="Beep Playback Switch", index=0, device=0	  Control: name="Beep Playback Switch", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0			    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0f, mute=0	  Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0f, mute=0
  Amp-Out vals:  [0x05]						  Amp-Out vals:  [0x05]
Node 0x13 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L	Node 0x13 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Device: name="CX20753/4 Analog", type="Audio", device=0	  Device: name="CX20753/4 Analog", type="Audio", device=0
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1	  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a] [0x4a 0x4a]		  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a] [0x4a 0x4a]
  Converter: stream=1, channel=0				  Converter: stream=1, channel=0
  SDI-Select: 0							  SDI-Select: 0
  PCM:								  PCM:
    rates [0x160]: 44100 48000 96000				    rates [0x160]: 44100 48000 96000
    bits [0xa]: 16 24						    bits [0xa]: 16 24
    formats [0x1]: PCM						    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
  Connection: 3							  Connection: 3
     0x18* 0x1a 0x19						     0x18* 0x1a 0x19
Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L	Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Device: name="CX20753/4 Alt Analog", type="Audio", device=2	  Device: name="CX20753/4 Alt Analog", type="Audio", device=2
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1	  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a] [0x4a 0x4a]		  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a] [0x4a 0x4a]
  Converter: stream=0, channel=0				  Converter: stream=0, channel=0
  SDI-Select: 0							  SDI-Select: 0
  PCM:								  PCM:
    rates [0x160]: 44100 48000 96000				    rates [0x160]: 44100 48000 96000
    bits [0xa]: 16 24						    bits [0xa]: 16 24
    formats [0x1]: PCM						    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
  Connection: 3							  Connection: 3
     0x19* 0x1a 0x15						     0x19* 0x1a 0x15
Node 0x15 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In		Node 0x15 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1	  Amp-In caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-In vals:  [0x00 0x00] [0x00 0x00]				  Amp-In vals:  [0x00 0x00] [0x00 0x00]
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
  Connection: 2							  Connection: 2
     0x10 0x11							     0x10 0x11
Node 0x16 [Pin Complex] wcaps 0x400581: Stereo			Node 0x16 [Pin Complex] wcaps 0x400581: Stereo
  Pincap 0x0000001c: OUT HP Detect				  Pincap 0x0000001c: OUT HP Detect
  Pin Default 0x03211040: [Jack] HP Out at Ext Left		  Pin Default 0x03211040: [Jack] HP Out at Ext Left
    Conn = 1/8, Color = Black					    Conn = 1/8, Color = Black
    DefAssociation = 0x4, Sequence = 0x0			    DefAssociation = 0x4, Sequence = 0x0
  Pin-ctls: 0xc0: OUT HP					  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1				  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
  Connection: 2							  Connection: 2
     0x10* 0x11							     0x10* 0x11
Node 0x17 [Pin Complex] wcaps 0x400501: Stereo			Node 0x17 [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00000010: OUT					  Pincap 0x00000010: OUT
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A		  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown				    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0			    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE						    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT					      |	  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
  Connection: 2							  Connection: 2
     0x10 0x11*							     0x10 0x11*
Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In		Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0	  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]					  Amp-In vals:  [0x00 0x00]
  Pincap 0x00001124: IN Detect					  Pincap 0x00001124: IN Detect
    Vref caps: HIZ 80						    Vref caps: HIZ 80
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A		  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown				    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0			    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE						    Misc = NO_PRESENCE
  Pin-ctls: 0x00: VREF_HIZ					  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0				  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In		Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0	  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]					  Amp-In vals:  [0x00 0x00]
  Pincap 0x00001124: IN Detect					  Pincap 0x00001124: IN Detect
    Vref caps: HIZ 80						    Vref caps: HIZ 80
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A		  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown				    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0			    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE						    Misc = NO_PRESENCE
  Pin-ctls: 0x00: VREF_HIZ					  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0				  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
Node 0x1a [Pin Complex] wcaps 0x40048b: Stereo Amp-In		Node 0x1a [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0	  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]					  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN						  Pincap 0x00000020: IN
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A		  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown				    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0			    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE						    Misc = NO_PRESENCE
  Pin-ctls: 0x00:						  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0				  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS				  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0					  Power: setting=D0, actual=D0
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono		Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono		Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono

via diff the differences are in
- Node 0x17 (Pin-ctls), presumably plugged headphone?
- Node 0x10 (Amp-Out vals), via alsamixer checked with changed output volume, definitely headphone jack
- Node 0x11 (Amp-Out vals), via alsamixer checked with changed output volume, definitely internal speakers


a "$ cat /sys/class/sound/hwC1D0/init_pin_configs" shows the following

0x16 0x03211040
0x17 0x90170110
0x18 0x40f001f0
0x19 0x40f001f0
0x1a 0x40f001f0

Is it possible to change the pin configs to invert(?) the headphone jack?

thanks

Last edited by iamhermes (2018-12-20 12:51:26)

Offline

#2 2020-04-01 20:24:15

Head_on_a_Stick
Member
From: London
Registered: 2014-02-20
Posts: 7,732
Website

Re: swapped speaker and headphone output - Lenovo Thinkpad E485

With my humble apologies to the community for this egregious necrobump...

I've been suffering with this problem on my own E485 for a while now and I've just discovered the solution: enable the onboard microphone in the firmware ("BIOS") options.

If the internal microphone is disabled then the headphone & speakers outputs are swapped, I have no idea why hmm

Offline

#3 2020-04-01 22:45:03

2ManyDogs
Forum Fellow
Registered: 2012-01-15
Posts: 4,645

Re: swapped speaker and headphone output - Lenovo Thinkpad E485

Thanks for the contribution. I am closing this old topic now.


How to post. A sincere effort to use modest and proper language and grammar is a sign of respect toward the community.

Offline

Board footer

Powered by FluxBB