Bug 1222651 - After slowroll upgrade, laptop no longer switches from internal speakers to external display audio on connection/disconnection
Summary: After slowroll upgrade, laptop no longer switches from internal speakers to e...
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Sound (show other bugs)
Version: Current
Hardware: x86-64 openSUSE Tumbleweed
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Antonio Larrosa
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-10 20:54 UTC by Bilocura
Modified: 2024-07-03 00:31 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
Packages upgraded during dist upgrade from Slowroll 20240213 to 20240405 (420.54 KB, text/plain)
2024-04-23 20:13 UTC, Bilocura
Details
Working (expected) behavior when HDMI is plugged/unplugged (6.47 MB, video/mp4)
2024-04-26 04:18 UTC, Bilocura
Details
Incorrect behavior: Audio device shows as inactive and doesn't switch to internal audio after disconnecting external display (1.45 MB, video/mp4)
2024-04-26 04:22 UTC, Bilocura
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bilocura 2024-04-10 20:54:55 UTC
After the latest slowroll release (including the update to Plasma 6), my laptop no longer switches between HDMI audio and internal speakers when an external display is connected/disconnected.

I have to e.g. when disconnecting HDMI, manually go into Plasma sound settings, show inactive devices, and switch profiles to Analog Stereo Output.

To be clear – audio works both with laptop speakers and with HDMI, I just have to manually switch profiles. This is very annoying.

Things I’ve tried:

    Reinstalling pavucontrol, pipewire-pulseaudio, wireplumber
    Removing ~/.local/state/wireplumber
    pactl load-module module-switch-on-connect

Operating System: openSUSE Tumbleweed-Slowroll 20240405
KDE Plasma Version: 6.0.3
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.3
Kernel Version: 6.8.4-rc1-1-default (64-bit)
Graphics Platform: Wayland
Processors: 12 × Intel® Core™ i7-10710U CPU @ 1.10GHz
Memory: 15.5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics
Manufacturer: Micro-Star International Co., Ltd.
Product Name: Prestige 15 A10SC
System Version: REV:1.0


This also happens under the latest 20240409 Tumbleweed KDE Live image.

However, reverting my actual install to a previous snapshot restores my laptop’s ability to automatically switch between internal speakers and external display (HDMI) audio.

----Working configuration----
Operating System: openSUSE Tumbleweed-Slowroll 20240213
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.12
Kernel Version: 6.8.1-1-default (64-bit)
Graphics Platform: Wayland
Processors: 12 × Intel® Core™ i7-10710U CPU @ 1.10GHz
Memory: 15.5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics
Manufacturer: Micro-Star International Co., Ltd.
Product Name: Prestige 15 A10SC
System Version: REV:1.0

Obviously this is not a long term solution as I cannot update without losing functionality. I also do not have this problem on the latest KDE Neon live image. It seems to be limited to openSUSE.
Comment 1 Bilocura 2024-04-22 16:35:42 UTC
Re-assigning from "Upgrade Problems" to "Sound" since this happens when booting from a Live USB stick.
Comment 2 Takashi Iwai 2024-04-22 16:37:47 UTC
Which packages have you updated and which of them broke?  Basically you should be able to downgrade the packages again (e.g. if it's a kernel, it's easy, even you can boot the older kernel as is).
Comment 3 Bilocura 2024-04-22 18:00:31 UTC
When I first experienced the issue, it was from a dist upgrade from Slowroll 20240213 to 20240405. I remember zypper showing 2000 packages to be upgraded.

I have since rolled back to 20240213.

The problem is also present in the current 20240419 live KDE ISO, i.e. "out of the box".

lspci from 20240213 without an external monitor connected:

00:00.0 Host bridge: Intel Corporation Device 9b51
00:02.0 VGA compatible controller: Intel Corporation Comet Lake UHD Graphics (rev 04)
00:12.0 Signal processing controller: Intel Corporation Comet Lake Thermal Subsytem
00:14.0 USB controller: Intel Corporation Comet Lake PCH-LP USB 3.1 xHCI Host Controller
00:14.2 RAM memory: Intel Corporation Comet Lake PCH-LP Shared SRAM
00:14.3 Network controller: Intel Corporation Comet Lake PCH-LP CNVi WiFi
00:15.0 Serial bus controller: Intel Corporation Serial IO I2C Host Controller
00:16.0 Communication controller: Intel Corporation Comet Lake Management Engine Interface
00:1c.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #1 (rev f0)
00:1c.4 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #5 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #9 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #13 (rev f0)
00:1d.6 PCI bridge: Intel Corporation Device 02b6 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Comet Lake PCH-LP LPC Premium Controller/eSPI Controller
00:1f.3 Audio device: Intel Corporation Comet Lake PCH-LP cAVS
00:1f.4 SMBus: Intel Corporation Comet Lake PCH-LP SMBus Host Controller
00:1f.5 Serial bus controller: Intel Corporation Comet Lake SPI (flash) Controller
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5250 PCI Express Card Reader (rev 01)
02:00.0 3D controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
03:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
05:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06)
39:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)
6e:00.0 Non-Volatile memory controller: Toshiba Corporation BG3 x2 NVMe SSD Controller (DRAM-less) (rev 01)
6f:00.0 Non-Volatile memory controller: Intel Corporation SSD 660P Series (rev 03)
Comment 4 Takashi Iwai 2024-04-22 19:37:38 UTC
That really makes hard to judge.  Which kernel version did you have before the update?  Also, is the pipewire version update involved there?  You need to figure out by checking those massive updates.

Then, for verifying whether it's a kernel regression,
could you try downgrading some old kernels found in Tumbleweed history repo?
  http://download.opensuse.org/history/
e.g. 6.8.1 kernel there.  If it doesn't work, try the kernel in my OBS kernel archive repo, OBS home:tiwai:kernel:6.7
  http://download.opensuse.org/repositories/home:/tiwai:/kernel:/6.7/standard/

Just grab kernel-default.rpm from those repos above, and install via zypper install --oldpackage option.
Comment 5 Bilocura 2024-04-23 20:13:09 UTC
Created attachment 874467 [details]
Packages upgraded during dist upgrade from Slowroll 20240213 to 20240405
Comment 6 Bilocura 2024-04-23 20:14:22 UTC
Working configuration was on Slowroll 20240213 with kernel 6.7.4

I upgraded kernel to 6.8.7-1.1 without upgrading anything else and everything was still good. So it's likely not the kernel.

I then did a distribution upgrade to 20240405, and now the laptop no longer auto switches audio again.

Details of the changed packages is in the attached "Slowroll 20240213 to 20240405.txt". I see pipewire, pulseaudio, and kpipewire buried in there.

For now I'm rolling back again. I'm happy to keep trying to narrow down where it breaks but need guidance on which ones to try first.
Comment 7 Bilocura 2024-04-26 04:18:22 UTC
Created attachment 874512 [details]
Working (expected) behavior when HDMI is plugged/unplugged

This is a video of how KDE Plasma Sound settings behave when a TV is plugged and unplugged from the HDMI port.

The first time I connect the display, I have to choose the HDMI audio output, which is fine. Whenever I unplug the display, audio switches back to the internal speakers correctly. When I plug the display in again, it remembers my settings from last time and correctly switches back to the external display audio.
Comment 8 Bilocura 2024-04-26 04:22:46 UTC
Created attachment 874513 [details]
Incorrect behavior: Audio device shows as inactive and doesn't switch to internal audio after disconnecting external display

This is how KDE Plasma sound settings appear in the 20240419 Tumbleweed KDE Live distro.

First, I set the audio to use the HDMI port instead of laptop speakers. However, when the external display is disconnected, the computer still tries to send audio to the now "Inactive" HDMI/Displayport device. It does not switch over to the internal speakers until I manually change audio profiles.
Comment 9 Bilocura 2024-04-28 21:25:06 UTC
Looks like someone else has narrowed this down to wireplumber:

https://www.reddit.com/r/pipewire/comments/1blys11/auto_switch_audio_speakerhdmi_not_works_anymore/
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/629
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/613

*** Indeed, protecting the packages libwireplumber-0_4-0, wireplumber, and wireplumber-audio results in correct behavior even after dist upgrade to the latest Slowroll release! ***
Comment 10 Takashi Iwai 2024-04-29 07:02:01 UTC
Thanks for figuring out.  Adding Antonio to Cc.
Comment 11 Takashi Iwai 2024-05-17 15:24:33 UTC
Tossed to Antonio, as it's a pipewire / wireplumber bug.  Let's hope that it'll be fixed soon in the upstream.
Comment 12 Bilocura 2024-07-03 00:31:47 UTC
Update: This has now been fixed now that Slowroll has wireplumber 0.5.3.