ALSA: hda: cs35l56: Initialize all ASP1 registers
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Mon, 29 Jan 2024 16:27:28 +0000 (16:27 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 1 Feb 2024 12:57:22 +0000 (12:57 +0000)
commit856ce8982169acb31a25c5f2ecd2570ab8a6af46
tree29bf8aa2a8be621544ca72cbb95714675ad6cfd5
parent782e6c538be43a17e34f552ab49e8c713cac7883
ALSA: hda: cs35l56: Initialize all ASP1 registers

Add ASP1_FRAME_CONTROL1, ASP1_FRAME_CONTROL5 and the ASP1_TX?_INPUT
registers to the sequence used to initialize the ASP configuration.
Write this sequence to the cache and directly to the registers to
ensure that they match.

A system-specific firmware can patch these registers to values that are
not the silicon default, so that the CS35L56 boots already in the
configuration used by Windows or by "driverless" Windows setups such
as factory tuning.

These may not match how Linux is configuring the HDA codec. And anyway
on Linux the ALSA controls are used to configure routing options.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 73cfbfa9caea ("ALSA: hda/cs35l56: Add driver for Cirrus Logic CS35L56 amplifier")
Link: https://msgid.link/r/20240129162737.497-10-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/pci/hda/cs35l56_hda.c