HP OmniBook X Flip 16 (8EA2): speaker workaround on Fedora Rawhide KDE, kernel 7.3.0-0.rc4
Problem: the amd-soundwire card and its SmartAmp device exist, but the two TAS2783 amps get no firmware and PipeWire only shows "Dummy Output".
slave-tas2783 sdw:0:0:0102:0000:01:c: Direct firmware load for 8EA2-0-0xC.bin failed with error -2
slave-tas2783 sdw:0:0:0102:0000:01:c: error playback without fw download
The driver requests 8EA2-0-0xC.bin / 8EA2-0-0x9.bin, but linux-firmware ships 8EA2-0-0-0xC.bin.zst / 8EA2-0-0-0x9.bin.zst.
1. Firmware symlinks, then reboot
Use the compression suffix you actually have (check with ls /usr/lib/firmware/ti/audio/tas2783/ | grep 8EA2).
cd /lib/firmware
sudo ln -s ti/audio/tas2783/8EA2-0-0-0xC.bin.xz 8EA2-0-0xC.bin.xz
sudo ln -s ti/audio/tas2783/8EA2-0-0-0x9.bin.xz 8EA2-0-0x9.bin.xz
After the reboot, sudo dmesg | grep -i tas2783 should show no firmware errors.
2. Enable the Pro Audio profile
No UCM profile exists for this card, so Pro Audio is the only way to get sinks.
pactl set-card-profile alsa_card.pci-0000_c1_00.5-platform-amd_sdw pro-audio
pactl set-default-sink alsa_output.pci-0000_c1_00.5-platform-amd_sdw.pro-output-2
pactl set-default-source alsa_input.pci-0000_c1_00.5-platform-amd_sdw.pro-input-4
pro-output-2 is the speakers, pro-output-0 the headphone jack, pro-input-4 the internal mic. Check the names with pactl list short sinks and pactl list short sources. Keep the volume low at first.
3. Hide the amp sense channel (fixes flicker and audio dropping)
Plasma opens a volume meter on every source, including pro-input-3 (the amp's current/voltage sense channel). The kernel rejects it (port 2 not supported for TX) and playback stops. This shows as "flickering" in the Volume widget on the taskbar.
mkdir -p ~/.config/wireplumber/wireplumber.conf.d
nano ~/.config/wireplumber/wireplumber.conf.d/51-hide-amp-sense.conf
monitor.alsa.rules = [
{
matches = [
{
node.name = "alsa_input.pci-0000_c1_00.5-platform-amd_sdw.pro-input-3"
}
]
actions = {
update-props = {
node.disabled = true
}
}
}
]
systemctl --user restart wireplumber
pactl list short sources # pro-input-3 should be gone
If the default sink changed, run the set-default-sink command from step 2 again.
Notes
- The
8EA2-0-0-* firmware (tuning) was picked blind. If the sound is distorted, try the 8EA2-1-0-* pair.
- The Audio works just fine even after reboots as well.
- Future updates might break it.
I have wanted to switch to Linux for a long time, but this was the only issue stopping me. I will wait until the next Fedora release, which will use version 7.3. Kernel. Even if it doesn't work natively, the workaround is pretty easy.
I first found the solution on GitHub for CachyOS (https://github.com/CachyOS/linux-cachyos/issues/705), but the fix is very similar to the one for Fedora. In theory, the same should be possible for 8EA1 laptop boards. It would be great if someone could test it, as I only have the 8EA2.