mbox series

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

Message ID 20210811185654.6837-1-vitalyr@opensource.cirrus.com
Headers show
Series ALSA: hda/cirrus: Split generic cirrus HDA codecs and CS8490 bridge into separate modules. | expand

Message

Vitaly Rodionov Aug. 11, 2021, 6:56 p.m. UTC
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

Comments

Takashi Iwai Aug. 12, 2021, 11:47 a.m. UTC | #1
On Wed, 11 Aug 2021 20:56:27 +0200,
Vitaly Rodionov wrote:
> 
> 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

Thanks, applied now all 27 patches to for-next branch.


Takashi