No internal speaker sound on HP Pavilion All-in-One 27-ca1xxx (Realtek ALC274) — working fix found
Hardware: HP Pavilion All-in-One 27-ca1xxx, SKU 686T9PA#ACJ, family 103C_53311M Codec: Realtek ALC274 (0x10ec0274), codec subsystem ID 0x103c8a6b, PCI subsystem ID 0x103c89e9 OS tested: Fedora Workstation 44, kernel 7.1.3-200.fc44.x86_64 (both snd-hda-intel legacy driver and snd-sof-pci-intel-tgl SOF driver) Related reports for the same hardware family (same symptom, unresolved as of mid-2026): Launchpad #1982483 kernel.org Bugzilla #216139 alsa-lib GitHub issue #299 Symptom Internal speakers and the headphone jack produce no sound at all under Linux, while HDMI audio and Bluetooth audio work correctly, and the internal speakers work correctly under the factory Windows install (confirmed with HP's official Realtek driver package, sp149953.exe). Every software-visible signal looks correct: PipeWire/ALSA route the stream to the correct sink, the codec topology is fully and correctly auto-configured (pin 0x17 selects speaker DAC 0x03, pin 0x21 selects headphone DAC 0x02, both pins report the correct fixed/jack pin defaults), EAPD is on, jack-sense correctly detects headphone insertion, and the DAC output amp itself reports healthy non-zero gain. Ruled out during investigation (in this order): ALSA mixer state, Auto- Mute Mode, jack-sense/pin-sense, GPIO0–3 individually, EAPD toggling, PCI-vs-codec subsystem ID mismatch (103c:0000 reported at driver-probe time vs the correct 103c:8a6b/103c:89e9), the ALC274_FIXUP_HP_AIO_BIND_DACS quirk (both via kernel source inspection and via testing model= overrides), the SOF/DSP audio driver stack as a full alternative to legacy HDA, codec runtime power-save (power_save module parameter), and BIOS-level hardware mute. Root cause The speaker/headphone amplifier path requires a set of Realtek vendor- specific processing-coefficient (COEF) writes on the vendor processing widget (NID 0x20) that neither the generic Linux snd-hda-intel autoconfig nor the existing ALC274_FIXUP_HP_AIO_BIND_DACS/ALC274_FIXUP_HP_AIO_BIND_DACS-adjacent quirks apply for this exact subsystem ID. These are separate from, and not published in, any current patch_realtek.c quirk table entry. The fix Confirmed reproducible across multiple full cold boots (not a one-off), applied from userspace after boot, no kernel patch required: 1. Vendor COEF writes on NID 0x20 hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x26 hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x5757 hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x10 hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0xc580 hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x0b hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x7778 hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x6b hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x0060 Note: a fifth coefficient (index 0x62, target value 0xa007) appeared in an early, unverified community writeup of a similar SSID (103c:8acf) and was tested extensively on this hardware. It proved non-deterministically writable — it stuck once, across dozens of later attempts (including immediate re-writes, writes during active playback, and even a full cold power-off/power-on cycle) it consistently refused to change from its default 0xa000. Critically, sound worked correctly with this register left at its default 0xa000, confirming it is not required for this SSID. It is included here only as a note for anyone else debugging this family of codec, since it may matter on other board revisions (e.g. 103c:8acf) even though it did not on this one. 2. Pin/amp enablement (speaker pin 0x17, headphone pin 0x21) hda-verb /dev/snd/hwC0D0 0x17 SET_EAPD_BTLENABLE 0x2 hda-verb /dev/snd/hwC0D0 0x17 SET_PIN_WIDGET_CONTROL 0x40 hda-verb /dev/snd/hwC0D0 0x17 SET_AMP_GAIN_MUTE 0xb03f hda-verb /dev/snd/hwC0D0 0x17 SET_AMP_GAIN_MUTE 0xa03f hda-verb /dev/snd/hwC0D0 0x21 SET_EAPD_BTLENABLE 0x2 hda-verb /dev/snd/hwC0D0 0x21 SET_AMP_GAIN_MUTE 0xb03f hda-verb /dev/snd/hwC0D0 0x21 SET_AMP_GAIN_MUTE 0xa03f 3. ALSA mixer unmute amixer -c0 sset Master unmute 87 amixer -c0 sset Speaker unmute 87 amixer -c0 sset Headphone unmute 87 4. Disable codec runtime power-save Default power_save (module option for snd-hda-intel) aggressively suspends the codec to D3 after ~1 second idle, which was observed to silently drop the above state after playback stopped. Setting: options snd-hda-intel power_save=0 in a modprobe config (e.g. /etc/modprobe.d/99-alc274-hp.conf) resolved this. Making it persistent The COEF/EAPD/gain/mixer writes are all volatile (register-only, reset on every boot) and are not reliably applyable via a /lib/firmware/*.fw codec patch file alone — testing showed a patch file applies its verbs successfully at early boot, but this alone was insufficient; the mixer- level unmute step still needs to run afterward, once ALSA has enumerated its controls. The reliable approach used here is a small script run once at boot via a systemd oneshot service (After=sound.target), waiting for /dev/snd/hwC0D0 to exist before running. Verification Validated clean across two independent full reboots to a stock Fedora 44 baseline (all prior modprobe/patch-file experiments removed, dracut --force rebuilt), applying the sequence above manually each time and confirming both internal speaker and headphone output. Subsequently automated via the systemd service described above and reconfirmed working on a fully automated cold boot with zero manual intervention. What upstream still needs A proper patch_realtek.c fixup for PCI SSID 0x103c89e9 (and likely the sibling 27-ca2xxx/24-ca1xxx/B&O-speaker AIO variants referenced in the bug reports above) that applies the four COEF values above at codec init and disables codec runtime-suspend for this SSID, similar in spirit to the existing ALC274_FIXUP_ASUS_ZEN_AIO_27 fixup (which sets an overlapping subset of the same coefficient family). Ideally confirmed against Realtek's own driver source, which is not publicly available. Investigated and fixed jointly — Claude (Anthropic) and wurs10. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1982483 Title: No sound from built-in speakers HP Pavilion All-in-One Desktop 27-ca1xxx (ALC274) To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/1982483/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
