This project applies a conservative PipeWire speaker correction derived from
Lenovo's official Windows audio package for the ThinkPad P1 Gen 8, subsystem
17aa:2349.
My installed Linux CS35L56 smart-amplifier firmware and both left/right tuning
blobs were checked against Lenovo package n4ea114w.exe (release 2026-06-09).
They were byte-for-byte identical.
If they are not, I have no idea what will happen for you.
The missing Windows layer is Dolby Atmos/DAX. Lenovo's exact endpoint file is
SOUNDWIRE_MAN_01FA_FUNC_3556_SUBSYS_234917AA.xml, tuning version 34. It defines
a 100 Hz speaker high-pass and a device-specific 20-band optimizer. The
PipeWire configuration reproduces those deterministic parts and reserves
headroom. The CS35L56 continues to provide hardware-specific calibration,
excursion/thermal protection, and final amplification.
It does not claim to reproduce Dolby's proprietary object renderer, dialog steering, adaptive loudness, or speaker-stress regulator. Those cannot be translated exactly into PipeWire from the declarative tuning file alone.
./install.sh
This creates only a per-user PipeWire configuration and enables Fedora's
filter-chain.service. It does not modify /usr, /etc, ALSA UCM, or firmware.
./uninstall.sh
systemctl --user status filter-chain.service
wpctl status -n
journalctl --user -u filter-chain.service
The default output should be ThinkPad P1 Gen 8 Speakers, routed to the
hardware HiFi__Speaker__sink. Headphones, HDMI, and Bluetooth remain
unprocessed.
1 commits
Shell
100.0%
This project applies a conservative PipeWire speaker correction derived from
Lenovo's official Windows audio package for the ThinkPad P1 Gen 8, subsystem
17aa:2349.
My installed Linux CS35L56 smart-amplifier firmware and both left/right tuning
blobs were checked against Lenovo package n4ea114w.exe (release 2026-06-09).
They were byte-for-byte identical.
If they are not, I have no idea what will happen for you.
The missing Windows layer is Dolby Atmos/DAX. Lenovo's exact endpoint file is
SOUNDWIRE_MAN_01FA_FUNC_3556_SUBSYS_234917AA.xml, tuning version 34. It defines
a 100 Hz speaker high-pass and a device-specific 20-band optimizer. The
PipeWire configuration reproduces those deterministic parts and reserves
headroom. The CS35L56 continues to provide hardware-specific calibration,
excursion/thermal protection, and final amplification.
It does not claim to reproduce Dolby's proprietary object renderer, dialog steering, adaptive loudness, or speaker-stress regulator. Those cannot be translated exactly into PipeWire from the declarative tuning file alone.
./install.sh
This creates only a per-user PipeWire configuration and enables Fedora's
filter-chain.service. It does not modify /usr, /etc, ALSA UCM, or firmware.
./uninstall.sh
systemctl --user status filter-chain.service
wpctl status -n
journalctl --user -u filter-chain.service
The default output should be ThinkPad P1 Gen 8 Speakers, routed to the
hardware HiFi__Speaker__sink. Headphones, HDMI, and Bluetooth remain
unprocessed.
1 commits
Shell
100.0%