Confirmed: manual installation of upstream CS35L56 firmware (
CS35L56_Rev3.11.21.wmfw + amp1/amp2 bins) restores internal speakers on
Ubuntu 24.04. No kernel or PipeWire changes required.

Thanks for your prompt attention to this bug report!

Vijay


On Sun, Feb 1, 2026 at 9:00 PM AaronMa <[email protected]>
wrote:

> Could you try the upstream linux-firmware files?
>
> Link: cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1.wmfw ->
> cs35l56/CS35L56_Rev3.11.21.wmfw
> File: cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1-amp1.bin
> File: cirrus/cs35l56-b0-dsp1-misc-17aa392c-spkid1-amp2.bin
>
> 25.10 resolute version of linux-firmware already includes this.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/2139523
>
> Title:
>   Lenovo Legion 7 16IAX10 (17AA392C): CS35L56 speaker firmware (.bin)
>   missing, no internal sound
>
> Status in linux-firmware package in Ubuntu:
>   Confirmed
>
> Bug description:
>   On Ubuntu 24.04 with kernel 6.14, internal speakers do not produce
>   sound on Lenovo Legion 7 16IAX10.
>
>   Hardware uses:
>   - Realtek ALC287 codec
>   - Dual Cirrus Logic CS35L56 smart amplifiers
>
>   Driver loads correctly, but dmesg shows missing firmware:
>     cs35l56-hda: .bin file required but not found
>
>   Relevant dmesg excerpt:
>     cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: .bin file required but not
> found
>     cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: .bin file required but not
> found
>
>   DSP system name reported by driver:
>     '17AA392C-spkid1'
>
>   SOF is enabled, no kernel audio overrides are in use.
>   HDMI audio works as expected.
>   Bluetooth/USB audio works as expected.
>
>   This appears to be missing Cirrus CS35L56 firmware/calibration data in
>   linux-firmware for Lenovo SSID 17AA392C.
>
>   +++++++++++
>
>   sudo dmesg | grep -i cs35l56
>   [    4.325375] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: Cirrus Logic
> CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
>   [    4.341615] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: DSP system
> name: '17AA392C-spkid1', amp name: 'AMP1'
>   [    4.345269] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: Reset GPIO
> busy, assume shared reset
>   [    4.352557] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: Cirrus Logic
> CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
>   [    4.367941] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: DSP system
> name: '17AA392C-spkid1', amp name: 'AMP2'
>   [    5.661747] snd_hda_codec_realtek hdaudioC1D0: Found 2 CSC3556 on i2c
> (-%s:00-cs35l56-hda.%d)
>   [    5.661840] snd_hda_codec_realtek hdaudioC1D0: bound
> i2c-CSC3556:00-cs35l56-hda.0 (ops cs35l56_hda_comp_ops
> [snd_hda_scodec_cs35l56])
>   [    5.661849] snd_hda_codec_realtek hdaudioC1D0: bound
> i2c-CSC3556:00-cs35l56-hda.1 (ops cs35l56_hda_comp_ops
> [snd_hda_scodec_cs35l56])
>   [    5.675980] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: .bin file
> required but not found
>   [    5.675990] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: .bin file
> required but not found
>   [  653.429183] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: .bin file
> required but not found
>   [  65sudo dmesg | grep -i cs35l56
>   [    4.325375] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: Cirrus Logic
> CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
>   [    4.341615] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: DSP system
> name: '17AA392C-spkid1', amp name: 'AMP1'
>   [    4.345269] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: Reset GPIO
> busy, assume shared reset
>   [    4.352557] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: Cirrus Logic
> CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
>   [    4.367941] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: DSP system
> name: '17AA392C-spkid1', amp name: 'AMP2'
>   [    5.661747] snd_hda_codec_realtek hdaudioC1D0: Found 2 CSC3556 on i2c
> (-%s:00-cs35l56-hda.%d)
>   [    5.661840] snd_hda_codec_realtek hdaudioC1D0: bound
> i2c-CSC3556:00-cs35l56-hda.0 (ops cs35l56_hda_comp_ops
> [snd_hda_scodec_cs35l56])
>   [    5.661849] snd_hda_codec_realtek hdaudioC1D0: bound
> i2c-CSC3556:00-cs35l56-hda.1 (ops cs35l56_hda_comp_ops
> [snd_hda_scodec_cs35l56])
>   [    5.675980] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: .bin file
> required but not found
>   [    5.675990] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: .bin file
> required but not found
>   [  653.429183] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: .bin file
> required but not found
>   [  653.430086] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: .bin file
> required but not found
>   3.430086] cs35l56-hda i2c-CSC3556:00-cs35l56-hda.1: .bin file required
> but not found
>
>
>   +++++++++++++
>
>
>   uname -a
>   Linux vijay-manghnani-Legion-7-16IAX10 6.14.0-37-generic
> #37~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 20 10:25:38 UTC 2 x86_64
> x86_64 x86_64 GNU/Linux
>
> To manage notifications about this bug go to:
>
> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/2139523/+subscriptions
>
>

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2139523

Title:
  Lenovo Legion 7 16IAX10 (17AA392C): CS35L56 speaker firmware (.bin)
  missing, no internal sound

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/2139523/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to