[SRU][jammy][pull-request v4] alsa: enable the cirrus-logic side-codec to make the speaker output sound

Hui Wang hui.wang at canonical.com
Fri Apr 15 04:32:27 UTC 2022


In the v4:

Rebase to the latest next-master branch, fix conflicting and change 
cherry-picked to backported.

Remove the linux-next in the last 8 patches since those commits are 
merged to mainline kernel from 5.18-rc1.

In the v3:

Dropped 17 patches which are fixing build errors for 
sound/asoc/codec/cs35l41*.c. Without those 17 patches, I did some change 
in the sound/asoc/codec/cs35l41*.c to make sure there are no failures 
when building them, and change the cherry-pick to backport in some patches.

After dropping the 17 patches, this SRU is pretty clean now, it nearly 
doesn't change the existing APIs or functions, it only introduces new 
files or new functions in the existing files. It is safe to merge to 
jammy kernel

And I also cleaned the annotations to fix the errors like "check-config: 
FAIL (m != -):..."


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 2ae47f1acb5bbd2c971de62710fcb9fbe5a23338:

   drm/i915/intel_combo_phy: Print I/O voltage info (2022-04-14 15:53:10 
+0200)

are available in the Git repository at:

git://git.launchpad.net/~hui.wang/ubuntu/+source/linux/+git/jammy 
jammy-lp1965496

for you to fetch changes up to ede14513342958ae54b6877483c10a061d00adb4:

   UBUNTU: [Config] Add cirruslogic side codec support (2022-04-15 
11:19:50 +0800)

----------------------------------------------------------------
Alexander Sergeyev (1):
       ALSA: hda/realtek: fix speakers and micmute on HP 855 G8

Charles Keepax (15):
       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"

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                                     |    7 +-
  debian.master/abi/amd64/generic.modules         |    1 -
  debian.master/config/annotations                |   18 +-
  debian.master/config/config.common.ubuntu       |    9 +-
  drivers/acpi/scan.c                             |   16 +-
  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/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                        |   26 +++
  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                      | 1596 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  sound/soc/codecs/cs35l41.h                      |   60 +++++
  27 files changed, 5234 insertions(+), 222 deletions(-)
  delete mode 100644 drivers/platform/x86/i2c-multi-instantiate.c
  create mode 100644 drivers/platform/x86/serial-multi-instantiate.c
  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