ASoC: wm_adsp: Combine some similar code in firmware file search

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>
Link: https://patch.msgid.link/20260310141817.1871794-11-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Richard Fitzgerald 2026-03-10 14:18:17 +00:00 committed by Mark Brown
parent 7bca3ca55e
commit 8fc5c78951
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -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 */