ALSA: hda/cs35l56: Do not download firmware over existing RAM firmware
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Mon, 31 Jul 2023 16:57:24 +0000 (17:57 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 1 Aug 2023 06:30:08 +0000 (08:30 +0200)
commit2f860dd895381c8d120e68526f34fe9b29da4310
tree0fb05fbbabbdf29a6e6325489b809e2445a9d362
parent0ba0dfd969926563016e706346a9caba7f5a15ac
ALSA: hda/cs35l56: Do not download firmware over existing RAM firmware

A RAM firmware can only be downloaded if the CS35L56 is currently
running from ROM firmware. The driver must not try to overwrite
the RAM if the CS35L56 is already running from that RAM.

Firmware can be downloaded in these two cases:

- The BIOS has already patched the firmware (secured mode).
  In this case the firmware files will only contain tunings that
  are safe to overwrite.

- The CS35L56 is running the built-in ROM firmware.

After a RAM firmware has been downloaded it can only be cleared by
hard resetting CS35L56. Some systems only hard-reset during
power-on and do not give the driver control of hard reset.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230731165726.7940-8-rf@opensource.cirrus.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/cs35l56_hda.c