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

Reply via email to