native: stop enabling UCM Headphones at boot — was silencing speakers
Logs from the G7 (Drawcia JSL) showed everything my code expected:
UCM Speaker PCM: raw=_ucm0002.hw:sofrt5682,0 -> hw:0,0
UCM: _enadev=Speaker ok
Parallel PCM opened: hw:0,1 — auto-routing enabled
max98357a MX98360A:00: set sdmode to 1 (at 8.3s)
max98357a MX98360A:00: set sdmode to 0 (at 35.5s, never comes back)
The amp was *getting* powered up (sdmode=1), then DAPM silenced it
because the codec's `Headphone Jack Switch` was ON. Root cause: I was
enumerating every UCM SectionDevice and running `_enadev Headphones`,
which ran the ChromeOS EnableSequence `cset "name='Headphone Jack
Switch' on" + HPOL/HPOR=1` — that re-enabled the HP path after
rt5682-init's BootSequence had explicitly disabled it.
Fix:
- Skip Headphones/Headset/Headphone in UCM _enadev enumeration
- Gate the parallel headphone PCM tee behind AC_AUDIO_TEE=1
(opening hw:0,1 also powers the HP DAPM path)
- Volume keys: add DAC1/PGA*.0 * Master to try-list since this card
has no "Master"/"Speaker"/"Headphone"/"PCM" mixer elements
Jack-plug auto-routing becomes a follow-up (needs a jack-state watcher
thread that calls _enadev Headphones / _disdev Speaker on plug).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>