Hello,

On a Dell Latitude 12 Rugged Extreme (7204), the internal speaker is silent
under Linux unless the ALSA "Headphone" volume is raised to maximum, even with
nothing plugged into the headphone jack. The speaker worked before I updated
the BIOS from A05 to A16. I found a workaround but not the cause, so I am
reporting it in case a quirk is needed.

How this report was made
I am not a kernel or audio developer. The diagnosis was done with the help of
Claude, an AI assistant from Anthropic, which proposed the commands (amixer,
speaker-test, hda-verb, alsa-info, ...) and helped interpret their output. I
ran every command myself on my machine and the outputs quoted here are real. I
could not have carried out this analysis without that help, so please read the
interpretation with that in mind.

Hardware / software
- Dell Latitude 12 Rugged Extreme (7204), board 06346H
- BIOS A16 (05/27/2019), updated from A05. The internal speaker worked with
  A05 on this same Debian installation and stopped working after the update.
  Routine Debian package updates may have happened in the same period.
- Debian 13 (trixie), kernel 6.12.111+deb13-amd64 (the current one in Debian
  13 at the time of writing), PipeWire 1.4.2 + WirePlumber
- The same behaviour was observed with 6.12.57+deb13-amd64
- Not yet tested with a newer mainline kernel
- Codec: Realtek ALC3226 (vendor id 0x10ec0292), codec SSID 0x10280610,
  HDA Intel PCH, card 1

Symptom
The internal speaker is silent (at most a very faint sound). Headphones work
normally. Dell's built-in diagnostics (BIOS audio test) play sound through the
internal speaker, so the hardware is fine.

Observations
1. dmesg shows no error from snd_hda_*. Autoconfig: line_outs=1 (0x14) type:
   speaker, hp_outs=1 (0x15), Internal Mic=0x12, Headset Mic=0x1a.
2. Mixer: Master, Speaker and PCM are at 100% and unmuted, Auto-Mute Mode is
   Disabled, "Front Headphone Jack" is off. "Headphone" (the volume of DAC
   0x02) is at 0% with its switch off.
3. With PipeWire stopped, playing "speaker-test -D plughw:1,0 -t sine -f 440
   -c 2": "Headphone" at 0% gives silence, "Headphone" at 100% (switch still
   off, no headphones) gives a clear tone from the internal speaker. Repeated
   several times, it follows this one control.
4. With PipeWire running, "Headphone" is back at 0% while the speaker sink is
   playing (seen with amixer during playback), and the speaker is silent.
   Setting it to 100% by hand during playback restores the sound and it stays.
   After a reboot the control is at 0% again.
5. /proc/asound/card1/codec#0 while silent: pin 0x14 is connected to mixer
   0x0d (selected), whose input from DAC 0x03 is unmuted; DAC 0x03 is at
   maximum gain; pin 0x14 has Pin-ctls OUT, EAPD 0x2, amp unmuted. Pin 0x15
   connects to mixer 0x0c (DAC 0x02). Nothing looks wrong in this dump.
6. Toggling GPIO 0-4 with hda-verb while the speaker was silent had no effect.
7. I dumped coefficients 0x00-0x7f of NID 0x20 at several points while silent;
   only two values changed (0x2b and 0x6c), apparently volatile, and not
   correlated with sound. I did not compare against an audible-state dump.
8. Toggling the Dell "stealth mode" (Fn+F7) had no effect.
9. A diff of the two attached alsa-info outputs (speaker silent vs working,
   taken one second apart) shows only one functional difference: the output
   amp gain of DAC 0x02 (0x00 vs 0x57) and the matching "Headphone" ALSA
   control values (0% vs 100%). Everything else in the codec dump and the
   mixer is identical.

I do not understand why the volume of DAC 0x02 gates the speaker, since the
parser connects the speaker pin to DAC 0x03 through mixer 0x0d.

Workaround
A user service that sets "Headphone" to 100% whenever the jack is unplugged.
With it, the speaker works after a cold boot, and plugging in headphones mutes
the speaker as expected.

Is a fixup for SSID 1028:0610 likely to be needed? I can test patches and
provide any additional dumps. alsa-info output (generated with --no-upload) is
attached for both states: speaker silent ("Headphone" 0%) and speaker working
("Headphone" 100%).

Thanks,

Benjamin Levaux



Ing. Benjamin Levaux MSc

Ingénieur Industriel, Maître Brasseur

Les Buissonnets
Morcles 40
CH-1892 Morcles
+41762171267