NAK: [SRU][oem-5.14][pull-request] alsa: enable the cirrus-logic side-codec to make the speaker output sound

Hui Wang hui.wang at canonical.com
Tue Mar 22 14:02:05 UTC 2022


Will try to drop some patches to keep the change as small as possible.

On 3/19/22 09:19, Hui Wang wrote:
> 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 
> ead0ca00148b78edbafa0b34a8ad2956d52532d1:
>
>   UBUNTU: Ubuntu-oem-5.14-5.14.0-1029.32 (2022-03-18 15:06:46 +0200)
>
> are available in the Git repository at:
>
> https://git.launchpad.net/~hui.wang/ubuntu/+source/linux-oem/+git/focal:oem514-lp1965496 
>
>
> for you to fetch changes up to 4947827810a51d9b2b86c3bf5c62a26d4e05b5ad:
>
>   UBUNTU: [Config]: Add cirruslogic side codec support (2022-03-19 
> 09:14:52 +0800)
>
> ----------------------------------------------------------------
> Alexander Sergeyev (1):
>       ALSA: hda/realtek: fix speakers and micmute on HP 855 G8
>
> Charles Keepax (20):
>       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: Remove pointless string comparison
>       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
>
> Hans de Goede (2):
>       i2c: acpi: Add an i2c_acpi_client_count() helper function
>       platform/x86: i2c-multi-instantiate: Use the new 
> i2c_acpi_client_count() helper
>
> 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.oem/config/annotations                              |    2 +-
>  debian.oem/config/config.common.ubuntu                     |    9 +-
>  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/i2c/i2c-core-acpi.c                                |   32 ++
>  drivers/platform/x86/Kconfig                               |   12 +-
>  drivers/platform/x86/Makefile                              |    2 +-
>  drivers/platform/x86/i2c-multi-instantiate.c               |  214 
> --------
>  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/i2c.h                                        |    5 +
>  include/linux/spi/spi.h                                    |    9 +
>  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                                 | 3321 
> +++++++++++++----------------------------------------------------------------------------------------------------- 
>
>  sound/soc/codecs/wm_adsp.h                                 |  111 +---
>  47 files changed, 9134 insertions(+), 3433 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