Bug 82508

Summary: Speakers don't mute when headphones plugged in
Product: PulseAudio Reporter: afolger
Component: coreAssignee: pulseaudio-bugs
Status: RESOLVED FIXED QA Contact: pulseaudio-bugs
Severity: normal    
Priority: medium CC: lennart
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description afolger 2014-08-12 12:03:14 UTC
NOTE: This is a copy of a bug report on RedHat's bugzilla, where it was suggested I file it here as an upstream destination. My RedHat Bugzilla report is here: https://bugzilla.redhat.com/show_bug.cgi?id=1129210

Also, as should be obvious from the context, I am using Fedora, the latest stable version, with all updates applied.

Description of problem:
The speakers don't mute when headphones plugged in. This is a problem that has dragged on for years, as you can see here that I filed such a bug report on FC13 (and continued reporting it in FC14 and FC15)! https://bugzilla.redhat.com/show_bug.cgi?id=623632

Version-Release number of selected component (if applicable):
$ rpm -qa pulse* kernel alsa* |sort
alsa-firmware-1.0.27-2.fc20.noarch
alsa-lib-1.0.27.2-2.fc20.i686
alsa-lib-1.0.27.2-2.fc20.x86_64
alsa-plugins-pulseaudio-1.0.27-2.fc20.x86_64
alsa-tools-firmware-1.0.27-3.fc20.x86_64
alsa-utils-1.0.27.2-4.fc20.x86_64
kernel-3.15.6-200.fc20.x86_64
kernel-3.15.7-200.fc20.x86_64
kernel-3.15.8-200.fc20.x86_64
pulseaudio-5.0-7.fc20.x86_64
pulseaudio-libs-5.0-7.fc20.i686
pulseaudio-libs-5.0-7.fc20.x86_64
pulseaudio-libs-glib2-5.0-7.fc20.x86_64
pulseaudio-module-bluetooth-5.0-7.fc20.x86_64
pulseaudio-module-x11-5.0-7.fc20.x86_64
pulseaudio-utils-5.0-7.fc20.x86_64

# dmidecode
# dmidecode 2.12
SMBIOS 2.5 present.
63 structures occupying 2292 bytes.
Table at 0x0009F000.
<SNIP>
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: ASUSTeK Computer INC.
        Product Name: M4A88T-M
        Version: Rev X.0x
        Serial Number: 105289970002059
        Asset Tag: To Be Filled By O.E.M.
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: To Be Filled By O.E.M.
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0
<SNIP>
Handle 0x000D, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Audio_Line_In
        Internal Connector Type: None
        External Reference Designator: Audio_Line_In
        External Connector Type: Mini Jack (headphones)
        Port Type: Audio Port

Handle 0x000E, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Audio_Line_Out
        Internal Connector Type: None
        External Reference Designator: Audio_Line_Out
        External Connector Type: Mini Jack (headphones)
        Port Type: Audio Port

Handle 0x000F, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Audio_Mic_In
        Internal Connector Type: None
        External Reference Designator: Audio_Mic_In
        External Connector Type: Mini Jack (headphones)
        Port Type: Audio Port

Handle 0x0010, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Audio_Center/Sub
        Internal Connector Type: None
        External Reference Designator: Audio_Center/Sub
        External Connector Type: Mini Jack (headphones)
        Port Type: Audio Port

Handle 0x0011, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Audio_Rear
        Internal Connector Type: None
        External Reference Designator: Audio_Rear
        External Connector Type: Mini Jack (headphones)
        Port Type: Audio Port

Handle 0x0012, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Audio_Side
        Internal Connector Type: None
        External Reference Designator: Audio_Side
        External Connector Type: Mini Jack (headphones)
        Port Type: Audio Port

Handle 0x0013, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: HDMI
        Internal Connector Type: None
        External Reference Designator: HDMI port
        External Connector Type: Other
        Port Type: Other
<SNIP>
Handle 0x0016, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: SPDIFO
        Internal Connector Type: None
        External Reference Designator: SPDIF_OUT
        External Connector Type: Mini Jack (headphones)
        Port Type: Audio Port
<SNIP>
End Of Table

$ cat /proc/asound/card0/codec#0 
Codec: VIA VT1708S
Address: 0
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x11060397
Subsystem Id: 0x1043836c

How reproducible:
Every time

Steps to Reproduce:
1. plug in headphones
2. play sound
3. put headphone in one ear
4. hear sound coming from both headphones and speakers

Actual results:
hear sound coming from both headphones and speakers

Expected results:
hear sound coming from headphones only

Additional info:
For the output of alsa-info.sh see http://www.alsa-project.org/db/?f=644aba4b6646730fb7ae37da57fbf10ef3b4ce2a
Comment 1 Raymond 2014-08-12 13:33:49 UTC
Node 0x1d [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="Front Headphone Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0000233c: IN OUT HP Detect
    Vref caps: HIZ 50 100
  Pin Default 0x0221411f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Green
    DefAssociation = 0x1, Sequence = 0xf
    Misc = NO_PRESENCE
  Pin-ctls: 0xc0: OUT HP VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x16* 0x25


misc bit is set , this mean BIOS want to tell the driver that you front audio panel does not support Jack detection,

driver won't enable unsolicited event for front panel headphone and mic

if your computer chassis have a hda front audio panel which support Jack detection,  change the front audio panel type in BIOS setup or use early patching to clear misc bit (bit 8 of pin default)
Comment 2 afolger 2014-08-12 19:08:44 UTC
Thank you Raymond, that is exactly what it was. I switched a cable around, changed teh BIOS settings, and it now works like a charm. Petty no one told me that when I first filed my RedHat Bugzilla report in 2010(!).

A big thank you.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.