* [PATCH] ALSA: hda: cs35l56: Fail if wmfw file is missing
@ 2026-07-09 16:12 Richard Fitzgerald
2026-07-13 10:04 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Richard Fitzgerald @ 2026-07-09 16:12 UTC (permalink / raw)
To: tiwai; +Cc: linux-sound, linux-kernel, patches
Fail cs35l56_hda_fw_load() and log an error if it didn't find a wmfw file
and the BIOS didn't patch the firmware already. Also remove a section of
code from cs35l56_hda_request_firmware_files() that attempted to find a
.bin if a .wmfw was not found.
The CS35L56 ROM can only provide default audio in SoundWire mode. A wmfw
is needed to enable I2S audio. Also none of the customer-specific .bin
files are compatible with the ROM firmware. So a .wmfw file is always
required.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
---
sound/hda/codecs/side-codecs/cs35l56_hda.c | 30 +++++++---------------
1 file changed, 9 insertions(+), 21 deletions(-)
diff --git a/sound/hda/codecs/side-codecs/cs35l56_hda.c b/sound/hda/codecs/side-codecs/cs35l56_hda.c
index a0ea08eb96a93..78c2cf387a001 100644
--- a/sound/hda/codecs/side-codecs/cs35l56_hda.c
+++ b/sound/hda/codecs/side-codecs/cs35l56_hda.c
@@ -512,20 +512,6 @@ static void cs35l56_hda_request_firmware_files(struct cs35l56_hda *cs35l56,
NULL, "bin");
return;
}
-
- /*
- * Check for system-specific bin files without wmfw before
- * falling back to generic firmware
- */
- if (amp_name)
- cs35l56_hda_request_firmware_file(cs35l56, coeff_firmware, coeff_filename,
- base_name, system_name, amp_name, "bin");
- if (!*coeff_firmware)
- cs35l56_hda_request_firmware_file(cs35l56, coeff_firmware, coeff_filename,
- base_name, system_name, NULL, "bin");
-
- if (*coeff_firmware)
- return;
}
ret = cs35l56_hda_request_firmware_file(cs35l56, wmfw_firmware, wmfw_filename,
@@ -616,13 +602,15 @@ static void cs35l56_hda_fw_load(struct cs35l56_hda *cs35l56)
&wmfw_firmware, &wmfw_filename,
&coeff_firmware, &coeff_filename);
- /*
- * If the BIOS didn't patch the firmware a bin file is mandatory to
- * enable the ASP·
- */
- if (!coeff_firmware && firmware_missing) {
- dev_err(cs35l56->base.dev, ".bin file required but not found\n");
- goto err_fw_release;
+ /* If the BIOS didn't patch the firmware a wmfw and bin file are mandatory */
+ if (firmware_missing) {
+ if (!wmfw_firmware) {
+ dev_err(cs35l56->base.dev, ".%s file required but not found\n", "wmfw");
+ goto err_fw_release;
+ } else if (!coeff_firmware) {
+ dev_err(cs35l56->base.dev, ".%s file required but not found\n", "bin");
+ goto err_fw_release;
+ }
}
mutex_lock(&cs35l56->base.irq_lock);
--
2.47.3
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] ALSA: hda: cs35l56: Fail if wmfw file is missing
2026-07-09 16:12 [PATCH] ALSA: hda: cs35l56: Fail if wmfw file is missing Richard Fitzgerald
@ 2026-07-13 10:04 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2026-07-13 10:04 UTC (permalink / raw)
To: Richard Fitzgerald; +Cc: tiwai, linux-sound, linux-kernel, patches
On Thu, 09 Jul 2026 18:12:06 +0200,
Richard Fitzgerald wrote:
>
> Fail cs35l56_hda_fw_load() and log an error if it didn't find a wmfw file
> and the BIOS didn't patch the firmware already. Also remove a section of
> code from cs35l56_hda_request_firmware_files() that attempted to find a
> .bin if a .wmfw was not found.
>
> The CS35L56 ROM can only provide default audio in SoundWire mode. A wmfw
> is needed to enable I2S audio. Also none of the customer-specific .bin
> files are compatible with the ROM firmware. So a .wmfw file is always
> required.
>
> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Applied now. Thanks.
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-13 10:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-09 16:12 [PATCH] ALSA: hda: cs35l56: Fail if wmfw file is missing Richard Fitzgerald
2026-07-13 10:04 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox