linux/sound/soc
Richard Fitzgerald f4ef514995
ASoC: cs35l56: Firmware file must match the version of preloaded firmware
Check during initialization whether the firmware is already patched.
If so, include the firmware version in the wm_adsp fwf_name string.

If the firmware has already been patched by the BIOS the driver
can only replace it if it has control of hard RESET.

If the driver cannot replace the firmware, it can still load a wmfw
(for ALSA control definitions) and/or a bin (for additional tunings).
But these must match the version of firmware that is running on the
CS35L56.

The firmware is pre-patched if FIRMWARE_MISSING == 0.

Including the firmware version in the fwf_name string will
qualify the firmware file name:

Normal (unpatched or replaceable firmware):
  cs35l56-rev-dsp1-misc[-system_name].[wmfw|bin]

Preloaded firmware:
  cs35l56-rev[-s]-VVVVVV-dsp1-misc[-system_name].[wmfw|bin]

Where:
   [-s] is an optional -s added into the name for a secured CS35L56
   VVVVVV is the 24-bit firmware version in hexadecimal.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 608f1b0dbd ("ASoC: cs35l56: Move DSP part string generation so that it is done only once")
Link: https://msgid.link/r/20240129162737.497-13-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-02-01 12:57:24 +00:00
..
adi
amd ASoC: Updates for v6.8 2024-01-08 08:18:02 +01:00
apple ASoC: apple: mca: Annotate struct mca_data with __counted_by 2023-10-10 22:10:07 +01:00
atmel ASoC: Explicitly include correct DT includes 2023-10-09 13:13:56 +01:00
au1x ASoC: au1x: convert not to use asoc_xxx() 2023-09-25 14:16:24 +02:00
bcm ASoC: Explicitly include correct DT includes 2023-10-09 13:13:56 +01:00
cirrus ASoC: cirrus: edb93xx: Drop legacy include 2023-12-01 16:59:22 +00:00
codecs ASoC: cs35l56: Firmware file must match the version of preloaded firmware 2024-02-01 12:57:24 +00:00
dwc Linux 6.6-rc7 2023-10-23 19:38:22 +01:00
fsl sound updates for 6.8-rc1 2024-01-12 11:55:28 -08:00
generic ASoC: audio-graph-card2: fix index check on graph_parse_node_multi_nm() 2024-01-12 14:13:53 +00:00
google ASoC: google: convert not to use asoc_xxx() 2023-09-25 14:16:32 +02:00
hisilicon ASoC: hisilicon: Drop GPIO include 2023-12-18 14:03:29 +00:00
img ASoC: img: convert not to use asoc_xxx() 2023-09-25 14:16:21 +02:00
intel sound fixes for 6.8-rc1 2024-01-19 12:30:29 -08:00
jz4740
kirkwood ASoC: kirkwood: convert not to use asoc_xxx() 2023-09-25 14:16:36 +02:00
loongson ASoC: loongson: convert not to use asoc_xxx() 2023-09-25 14:16:37 +02:00
mediatek ASoC: Fixes for v6.8 2024-01-16 17:37:17 +01:00
meson ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux 2024-01-03 18:37:02 +00:00
mxs ASoC: Explicitly include correct DT includes 2023-10-09 13:13:56 +01:00
pxa ASoC: pxa: sspa: Don't select SND_ARM 2023-12-29 17:41:15 +00:00
qcom ASoC: Updates for v6.8 2024-01-08 08:18:02 +01:00
rockchip i2c: make i2c_bus_type const 2024-01-18 21:10:43 +01:00
samsung ASoC: samsung: odroid: don't need DUMMY Platform 2023-12-19 13:23:43 +00:00
sh ASoC: sh: convert not to use dma_request_slave_channel() 2023-11-27 13:44:06 +00:00
sof ASoC: Fixes for v6.8 2024-01-16 17:37:17 +01:00
spear
sprd ASoC: sprd: Simplify memory allocation in sprd_platform_compr_dma_config() 2023-12-19 14:02:50 +00:00
starfive ASoC: starfive/jh7110-pwmdac: Convert to platform remove callback returning void 2023-10-23 13:29:44 +01:00
sti ASoC: sti-uniperf: Use default pcm_config instead 2023-11-13 01:26:07 +00:00
stm ASoC: Use device_get_match_data() 2023-10-09 13:13:59 +01:00
sunxi ASoC: Explicitly include correct DT includes 2023-10-09 13:13:56 +01:00
tegra ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors 2023-12-18 14:03:32 +00:00
ti ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings 2023-10-30 13:30:20 +00:00
uniphier ASoC: uniphier: Make uniphier_aio_remove() return void 2023-10-23 13:29:48 +01:00
ux500 ASoC: ux500: convert not to use asoc_xxx() 2023-09-25 14:16:31 +02:00
xilinx
xtensa ASoC: extensa: convert not to use asoc_xxx() 2023-09-25 14:16:35 +02:00
Kconfig
Makefile
soc-ac97.c
soc-acpi.c
soc-card.c
soc-component.c ASoC: Merge fixes for consistent cs42l43 schema 2023-10-10 17:07:17 +01:00
soc-compress.c ASoC: soc-compress: convert not to use asoc_xxx() 2023-09-25 14:16:52 +02:00
soc-core.c ASoC: soc.h: don't create dummy Component via COMP_DUMMY() 2023-12-19 13:23:46 +00:00
soc-dai.c ASoC: Merge up workaround for CODECs that play noise on stopped stream 2023-10-27 22:33:15 +01:00
soc-dapm.c ASoC: makes CPU/Codec channel connection map more generic 2023-11-27 13:44:00 +00:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: Merge up fixes 2023-09-26 16:14:44 +02:00
soc-jack.c
soc-link.c ASoC: soc-link: convert not to use asoc_xxx() 2023-09-25 14:16:50 +02:00
soc-ops.c ASoC: ops: add correct range check for limiting volume 2023-12-04 16:20:25 +00:00
soc-pcm.c ASoC: Updates for v6.8 2024-01-08 08:18:02 +01:00
soc-topology-test.c ASoC: topology: Replace fake root_device with kunit_device in tests 2023-12-18 13:28:08 -07:00
soc-topology.c ASoC: soc-topology: convert not to use asoc_xxx() 2023-09-25 14:16:52 +02:00
soc-utils-test.c
soc-utils.c ASoC: soc-utils: convert not to use asoc_xxx() 2023-09-25 14:16:51 +02:00