[SRU][jammy][pull-request] alsa: enable the cirrus-logic side-codec to make the speaker output sound
Hui Wang
hui.wang at canonical.com
Sat Mar 19 00:51:03 UTC 2022
BugLink: https://bugs.launchpad.net/bugs/1965496
[Impact]
We have a couple of lenovo latops models which have cirrus-logic side
codec between realtek codec and speaker, it plays a role as amplifier,
we need to enable this side-codec, otherwise the speaker can't output
sound.
[Fix]
Backport codec patches and some i2c and acpi detection patches from
mainline kernel and linux-next
[Test]
boot the patched kernel, run speaker test, both left and right channel
could work well.
[Where problems could occur]
If it could introduce regression, it will be on soc wm_adsp codec
drivers, since most of patch are adding new codec drivers, it will
not touch existing codec drivers. If a machine with wm_adsp codec
can't output sound or record sound, it means this SRU introduce
the regression on wm_adsp driver, but this possibility is very
low, since all patches are picked from mainline kernel.
The following changes since commit 659e1cf637d4da7cfd706b613359f92ef9c7d1f1:
ALSA: hda/cs8409: Add new Warlock SKUs to patch_cs8409 (2022-03-15
17:42:37 +0100)
are available in the Git repository at:
https://git.launchpad.net/~hui.wang/ubuntu/+source/linux/+git/jammy:jammy-lp1945496
for you to fetch changes up to a91f858c5c672c902da61bc63c15fd3718506267:
UBUNTU: [Config] Add cirruslogic side codec support (2022-03-18
15:21:54 +0800)
----------------------------------------------------------------
Alexander Sergeyev (1):
ALSA: hda/realtek: fix speakers and micmute on HP 855 G8
Charles Keepax (19):
ASoC: wm_adsp: Move check for control existence
ASoC: wm_adsp: Switch to using wm_coeff_read_ctrl for compressed
buffers
ASoC: wm_adsp: Move sys_config_size to wm_adsp
ASoC: wm_adsp: Add support for "toggle" preloaders
ASoC: cs35l41: Fix use of an uninitialised variable
ASoC: cs35l41: Use regmap_read_poll_timeout to wait for OTP boot
ASoC: cs35l41: Combine adjacent register writes
ASoC: cs35l41: Don't overwrite returned error code
ASoC: cs35l41: Fixup the error messages
ASoC: cs35l41: Fix a bunch of trivial code formating/style issues
misc: cs35l41: Remove unused pdn variable
ASoC: cs35l41: Change monitor widgets to siggens
ASoC: cs35l41: Remove incorrect comment
ASoC: cs35l41: Correct DSP power down
ASoC: cs35l41: Correct handling of some registers in the cache
ASoC: cs35l41: Update handling of test key registers
ASoC: cs35l41: Add support for hibernate memory retention mode
ALSA: hda: cs35l41: Avoid overwriting register patch
ALSA: hda: cs35l41: Add calls to newly added test key function
Dan Carpenter (1):
ALSA: hda: cs35l41: fix double free on error in probe()
David Rhodes (3):
ASoC: cs35l41: CS35L41 Boosted Smart Amplifier
ASoC: cs35l41: DSP Support
ASoC: cs35l41: Add cs35l51/53 IDs
Hui Wang (1):
UBUNTU: [Config] Add cirruslogic side codec support
Lucas Tanure (19):
ASoC: cs35l41: Set the max SPI speed for the whole device
ASoC: cs35l41: Fix link problem
ASoC: cs35l41: Fix undefined reference to core functions
ASoC: cs35l41: Convert tables to shared source code
ASoC: cs35l41: Move cs35l41_otp_unpack to shared code
ASoC: cs35l41: Move power initializations to reg_sequence
ASoC: cs35l41: Create shared function for errata patches
ASoC: cs35l41: Create shared function for setting channels
ASoC: cs35l41: Create shared function for boost configuration
ALSA: hda: cs35l41: Add support for CS35L41 in HDA systems
ALSA: hda: cs35l41: Move cs35l41* calls to its own symbol namespace
ALSA: hda: cs35l41: Add missing default cases
ALSA: hda: cs35l41: Make use of the helper function dev_err_probe()
ALSA: hda: cs35l41: Tidyup code
ALSA: hda/realtek: Add support for Legion 7 16ACHg6 laptop
platform/x86: i2c-multi-instantiate: Rename it for a generic
serial driver name
platform/x86: serial-multi-instantiate: Reorganize I2C functions
ALSA: hda/realtek: Add support for HP Laptops
ACPI / scan: Create platform device for CS35L41
Saranya Gopal (1):
Revert "platform/x86: i2c-multi-instantiate: Don't create
platform device for INT3515 ACPI nodes"
Simon Trimmer (13):
ASoC: wm_adsp: Remove use of snd_ctl_elem_type_t
ASoC: wm_adsp: Cancel ongoing work when removing controls
ASoC: wm_adsp: Rename generic DSP support
ASoC: wm_adsp: Introduce cs_dsp logging macros
ASoC: wm_adsp: Separate some ASoC and generic functions
ASoC: wm_adsp: Split DSP power operations into helper functions
ASoC: wm_adsp: Separate generic cs_dsp_coeff_ctl handling
ASoC: wm_adsp: Move check of dsp->running to better place
ASoC: wm_adsp: Pass firmware names as parameters when starting
DSP core
ASoC: wm_adsp: move firmware loading to client
ASoC: wm_adsp: Split out struct cs_dsp from struct wm_adsp
ASoC: wm_adsp: Separate wm_adsp specifics in cs_dsp_client_ops
firmware: cs_dsp: add driver to support firmware loading on
Cirrus Logic DSPs
Stefan Binding (5):
ALSA: hda/realtek: Add CS35L41 support for Thinkpad laptops
spi: Create helper API to lookup ACPI info for spi device
spi: Support selection of the index of the ACPI Spi Resource
before alloc
spi: Add API to count spi acpi resources
platform/x86: serial-multi-instantiate: Add SPI support
Uwe Kleine-König (2):
ASoC: cs35l41: Make cs35l41_remove() return void
ALSA: hda: cs35l41: Make cs35l41_hda_remove() return void
MAINTAINERS | 18 +-
debian.master/config/annotations | 20 +-
debian.master/config/config.common.ubuntu | 10 +-
drivers/acpi/scan.c | 16 +-
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/cirrus/Kconfig | 5 +
drivers/firmware/cirrus/Makefile | 3 +
drivers/firmware/cirrus/cs_dsp.c | 3109
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/platform/x86/Kconfig | 12 +-
drivers/platform/x86/Makefile | 2 +-
drivers/platform/x86/i2c-multi-instantiate.c | 189 -------
drivers/platform/x86/serial-multi-instantiate.c | 348
++++++++++++
drivers/spi/spi.c | 131 ++++-
include/linux/firmware/cirrus/cs_dsp.h | 242
+++++++++
{sound/soc/codecs => include/linux/firmware/cirrus}/wmfw.h | 8 +-
include/linux/spi/spi.h | 7 +
include/sound/cs35l41.h | 780
+++++++++++++++++++++++++++
sound/pci/hda/Kconfig | 29 +
sound/pci/hda/Makefile | 10 +
sound/pci/hda/cs35l41_hda.c | 542
+++++++++++++++++++
sound/pci/hda/cs35l41_hda.h | 69 +++
sound/pci/hda/cs35l41_hda_i2c.c | 68 +++
sound/pci/hda/cs35l41_hda_spi.c | 65 +++
sound/pci/hda/hda_component.h | 20 +
sound/pci/hda/patch_realtek.c | 201 ++++++-
sound/soc/codecs/Kconfig | 27 +
sound/soc/codecs/Makefile | 8 +
sound/soc/codecs/cs35l41-i2c.c | 102 ++++
sound/soc/codecs/cs35l41-lib.c | 1040
++++++++++++++++++++++++++++++++++++
sound/soc/codecs/cs35l41-spi.c | 100 ++++
sound/soc/codecs/cs35l41.c | 1597
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
sound/soc/codecs/cs35l41.h | 60 +++
sound/soc/codecs/cs47l15.c | 26 +-
sound/soc/codecs/cs47l24.c | 20 +-
sound/soc/codecs/cs47l35.c | 26 +-
sound/soc/codecs/cs47l85.c | 34 +-
sound/soc/codecs/cs47l90.c | 36 +-
sound/soc/codecs/cs47l92.c | 20 +-
sound/soc/codecs/madera.c | 18 +-
sound/soc/codecs/wm2200.c | 30 +-
sound/soc/codecs/wm5102.c | 16 +-
sound/soc/codecs/wm5110.c | 24 +-
sound/soc/codecs/wm_adsp.c | 3320
+++++++++++++-----------------------------------------------------------------------------------------------------
sound/soc/codecs/wm_adsp.h | 111 +---
45 files changed, 9114 insertions(+), 3407 deletions(-)
create mode 100644 drivers/firmware/cirrus/Kconfig
create mode 100644 drivers/firmware/cirrus/Makefile
create mode 100644 drivers/firmware/cirrus/cs_dsp.c
delete mode 100644 drivers/platform/x86/i2c-multi-instantiate.c
create mode 100644 drivers/platform/x86/serial-multi-instantiate.c
create mode 100644 include/linux/firmware/cirrus/cs_dsp.h
rename {sound/soc/codecs => include/linux/firmware/cirrus}/wmfw.h (91%)
create mode 100644 include/sound/cs35l41.h
create mode 100644 sound/pci/hda/cs35l41_hda.c
create mode 100644 sound/pci/hda/cs35l41_hda.h
create mode 100644 sound/pci/hda/cs35l41_hda_i2c.c
create mode 100644 sound/pci/hda/cs35l41_hda_spi.c
create mode 100644 sound/pci/hda/hda_component.h
create mode 100644 sound/soc/codecs/cs35l41-i2c.c
create mode 100644 sound/soc/codecs/cs35l41-lib.c
create mode 100644 sound/soc/codecs/cs35l41-spi.c
create mode 100644 sound/soc/codecs/cs35l41.c
create mode 100644 sound/soc/codecs/cs35l41.h
More information about the kernel-team
mailing list