From: Richard Fitzgerald <rf@opensource.cirrus.com>
To: broonie@kernel.org
Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
patches@opensource.cirrus.com
Subject: [PATCH 10/10] ASoC: wm_adsp: Combine some similar code in firmware file search
Date: Tue, 10 Mar 2026 14:18:17 +0000 [thread overview]
Message-ID: <20260310141817.1871794-11-rf@opensource.cirrus.com> (raw)
In-Reply-To: <20260310141817.1871794-1-rf@opensource.cirrus.com>
In wm_adsp_request_firmware_files() squash the if (system_name && suffix)
and the following if (system_name) blocks together. This removes some
duplicated code.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
---
sound/soc/codecs/wm_adsp.c | 49 +++++++++++++++++---------------------
1 file changed, 22 insertions(+), 27 deletions(-)
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
index 1c480d59bd55..a637e22c3929 100644
--- a/sound/soc/codecs/wm_adsp.c
+++ b/sound/soc/codecs/wm_adsp.c
@@ -804,47 +804,42 @@ VISIBLE_IF_KUNIT int wm_adsp_request_firmware_files(struct wm_adsp *dsp,
{
const char *system_name = dsp->system_name;
const char *suffix = dsp->component->name_prefix;
+ bool require_bin_suffix = false;
int ret = 0;
if (dsp->fwf_suffix)
suffix = dsp->fwf_suffix;
- if (system_name && suffix) {
+ if (system_name) {
ret = wm_adsp_request_firmware_file(dsp, &fw->wmfw,
cirrus_dir, system_name,
suffix, "wmfw");
if (ret < 0)
goto err;
- if (fw->wmfw.firmware) {
+ if (suffix) {
+ if (fw->wmfw.firmware) {
+ require_bin_suffix = true;
+ } else {
+ /* Fallback to name without suffix */
+ ret = wm_adsp_request_firmware_file(dsp, &fw->wmfw,
+ cirrus_dir, system_name,
+ NULL, "wmfw");
+ if (ret < 0)
+ goto err;
+ }
+ }
+
+ /* Look for matching .bin file */
+ if (fw->wmfw.firmware || dsp->wmfw_optional) {
ret = wm_adsp_request_firmware_file(dsp, &fw->coeff,
cirrus_dir, system_name,
suffix, "bin");
if (ret < 0)
goto err;
- return 0;
- }
- }
-
- if (system_name) {
- ret = wm_adsp_request_firmware_file(dsp, &fw->wmfw,
- cirrus_dir, system_name,
- NULL, "wmfw");
- if (ret < 0)
- goto err;
-
- if (fw->wmfw.firmware || dsp->wmfw_optional) {
- if (suffix) {
- ret = wm_adsp_request_firmware_file(dsp,
- &fw->coeff,
- cirrus_dir, system_name,
- suffix, "bin");
- if (ret < 0)
- goto err;
- }
-
- if (!fw->coeff.firmware) {
+ if (suffix && !fw->coeff.firmware && !require_bin_suffix) {
+ /* Fallback to name without suffix */
ret = wm_adsp_request_firmware_file(dsp,
&fw->coeff,
cirrus_dir, system_name,
@@ -852,10 +847,10 @@ VISIBLE_IF_KUNIT int wm_adsp_request_firmware_files(struct wm_adsp *dsp,
if (ret < 0)
goto err;
}
-
- if (fw->wmfw.firmware || (dsp->wmfw_optional && fw->coeff.firmware))
- return 0;
}
+
+ if (fw->wmfw.firmware || (dsp->wmfw_optional && fw->coeff.firmware))
+ return 0;
}
/* Check legacy location */
--
2.47.3
next prev parent reply other threads:[~2026-03-10 14:18 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-10 14:18 [PATCH 00/10] ASoC: wm_adsp: Some improvements to firmware file search Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 01/10] ASoC: wm_adsp: Remove unused argument to wm_adsp_release_firmware_files() Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 02/10] ASoC: wm_adsp: Add KUnit redirection stubs for firmware file search Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 03/10] ASoC: wm_adsp: Export function for KUnit test to get firmware filenames Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 04/10] ASoC: wm_adsp: Add kunit test for firmware file search Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 05/10] ASoC: wm_adsp: Remove duplicated code to find firmware file Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 06/10] ASoC: wm_adsp: Use consistent error checks in wm_adsp_request_firmware_files() Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 07/10] ASoC: wm_adsp: Convert '/' to '-' when normalizing firmware filenames Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 08/10] ASoC: wm_adsp: Add KUnit test cases for '/' in " Richard Fitzgerald
2026-03-10 14:18 ` [PATCH 09/10] ASoC: wm_adsp: Use a struct to pass around firmware struct and filename Richard Fitzgerald
2026-03-10 14:18 ` Richard Fitzgerald [this message]
2026-03-12 17:34 ` [PATCH 00/10] ASoC: wm_adsp: Some improvements to firmware file search Mark Brown
2026-03-13 14:58 ` Mark Brown
2026-03-17 15:37 ` Mark Brown
2026-03-17 15:52 ` Charles Keepax
2026-03-17 17:47 ` Charles Keepax
2026-03-17 18:11 ` Mark Brown
2026-03-18 9:31 ` Charles Keepax
2026-03-18 10:27 ` Charles Keepax
2026-03-18 11:15 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260310141817.1871794-11-rf@opensource.cirrus.com \
--to=rf@opensource.cirrus.com \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.