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
