[PATCH v4 00/27] ALSA: hda/cirrus: Split generic cirrus HDA codecs and CS8490 bridge into separate modules.

From: Vitaly Rodionov
Date: Wed Aug 11 2021 - 14:58:00 EST


This series of patches splits generic cirrus HDA codecs and CS8490 bridge
into separate modules, adds support for multiple companion codecs connected to
CS8409, and also adds support for new DELL HW platform.

CS8409 part is not really a HDA codec, it is a HDA bridge where companion codecs
(up to 16) can be attached. With growing number of supported configurations and
platforms, patch_cirrus is getting less and less transparent and maintainable.
So, the logical step is to separate generic Cirrus HDA codecs support
and Cirrus HDA bridge support.

Lots of improvements to existing functionality, code clean-up and refactoring,
remove duplicated/redundant code, improve I2C functions etc.

Add support for new DELL HW platform with 2 CS42L42 codecs for front and rear jacks.

Lucas Tanure (12):
ALSA: hda/cirrus: Move CS8409 HDA bridge to separate module
ALSA: hda/cs8409: Move arrays of configuration to a new file
ALSA: hda/cs8409: Disable unsolicited response for the first boot
ALSA: hda/cs8409: Prevent I2C access during suspend time
ALSA: hda/cs8409: Generalize volume controls
ALSA: hda/cs8409: Dont disable I2C clock between consecutive accesses
ALSA: hda/cs8409: Avoid setting the same I2C address for every access
ALSA: hda/cs8409: Avoid re-setting the same page as the last access
ALSA: hda/cs8409: Support i2c bulk read/write functions
ALSA: hda/cs8409: Separate CS8409, CS42L42 and project functions
ALSA: hda/cs8409: Move codec properties to its own struct
ALSA: hda/cs8409: Add support for dolphin

Stefan Binding (15):
ALSA: hda/cs8409: Use enums for register names and coefficients
ALSA: hda/cs8409: Mask all CS42L42 interrupts on initialization
ALSA: hda/cs8409: Reduce HS pops/clicks for Cyborg
ALSA: hda/cs8409: Disable unnecessary Ring Sense for
Cyborg/Warlock/Bullseye
ALSA: hda/cs8409: Disable unsolicited responses during suspend
ALSA: hda/cs8409: Mask CS42L42 wake events
ALSA: hda/cs8409: Simplify CS42L42 jack detect.
ALSA: hda/cs8409: Support multiple sub_codecs for Suspend/Resume/Unsol
events
ALSA: hda/cs8409: Add Support to disable jack type detection for
CS42L42
ALSA: hda/cs8409: Enable Full Scale Volume for Line Out Codec on
Dolphin
ALSA: hda/cs8409: Set fixed sample rate of 48kHz for CS42L42
ALSA: hda/cs8409: Use timeout rather than retries for I2C transaction
waits
ALSA: hda/cs8409: Remove unnecessary delays
ALSA: hda/cs8409: Follow correct CS42L42 power down sequence for
suspend
ALSA: hda/cs8409: Unmute/Mute codec when stream starts/stops

sound/pci/hda/Kconfig | 10 +
sound/pci/hda/Makefile | 2 +
sound/pci/hda/patch_cirrus.c | 1074 ----------------------
sound/pci/hda/patch_cs8409-tables.c | 560 ++++++++++++
sound/pci/hda/patch_cs8409.c | 1273 +++++++++++++++++++++++++++
sound/pci/hda/patch_cs8409.h | 369 ++++++++
6 files changed, 2214 insertions(+), 1074 deletions(-)
create mode 100644 sound/pci/hda/patch_cs8409-tables.c
create mode 100644 sound/pci/hda/patch_cs8409.c
create mode 100644 sound/pci/hda/patch_cs8409.h

--
2.25.1