Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

native: disable runtime-PM on sound PCI + mount debugfs early

G7 audio stayed silent even with the full UCM chain correct:
UCM: skip _enadev=Headphones (jack-gated)
Skip unmute (jack-gated): Headphone Jack
UCM: _enadev=Speaker ok
kmsg: MX98360A:00: set sdmode to 1 (at 8.3s — amp on)
kmsg: MX98360A:00: set sdmode to 0 (at 31.9s — amp off, never returns)

Symptom matches runtime-PM auto-suspend on the SOF DSP: ~20s after
the last non-silence, the DSP idles the pipeline → BE DAI stops →
max98357a driver's trigger callback drops sdmode to 0. The existing
cmdline snd_hda_intel.power_save=0 only covers HDA, not SOF.

Echo 'on' into power/control for every sound-card PCI device so
runtime PM is disabled at all tiers (SOF, HDA, generic PCI audio).

Also mount debugfs unconditionally so audio-diag can dump the live
DAPM widget states next time — before this, /sys/kernel/debug/asoc
was empty because the mount silently failed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+17
+17
fedac/native/initramfs/init
··· 12 12 mount -t tmpfs tmpfs /tmp 2>/dev/null 13 13 mount -t tmpfs tmpfs /run 2>/dev/null 14 14 mount -t efivarfs efivarfs /sys/firmware/efi/efivars 2>/dev/null 15 + # debugfs — needed for ASoC DAPM state inspection in audio-diag. 16 + # CONFIG_DEBUG_FS must be y in the kernel; mount early so everything 17 + # downstream (audio-diag, gpio dump, etc) can read it. 18 + mkdir -p /sys/kernel/debug 2>/dev/null 19 + mount -t debugfs debugfs /sys/kernel/debug 2>/dev/null 15 20 16 21 # zram swap 17 22 modprobe zram 2>/dev/null || true ··· 58 63 echo performance > "$g" 2>/dev/null 59 64 done 60 65 fi 66 + 67 + # Disable PCI runtime-PM on every audio controller so the SOF DSP + 68 + # SSP DAI + MAX98360A speaker amp don't auto-suspend after ~20s of 69 + # silence. Symptom was sdmode=1 at boot, sdmode=0 ~23s later, and 70 + # then the amp never came back on when notepat tried to play notes. 71 + # The kernel cmdline already has snd_hda_intel.power_save=0, but SOF 72 + # uses its own runtime PM policy; this is the portable backstop. 73 + for p in /sys/class/sound/card*/device/power/control \ 74 + /sys/bus/pci/drivers/sof-audio-pci-intel-icl/*/power/control \ 75 + /sys/bus/pci/drivers/snd_hda_intel/*/power/control; do 76 + [ -w "$p" ] && echo on > "$p" 2>/dev/null 77 + done 61 78 export SSL_CERT_FILE="/etc/pki/tls/certs/ca-bundle.crt" 62 79 export CURL_CA_BUNDLE="/etc/pki/tls/certs/ca-bundle.crt" 63 80 export SSL_CERT_DIR="/etc/ssl/certs"