Skip to content

Commit

Permalink
ALSA: hda/ca0132 - Simplify alt firmware loading code
Browse files Browse the repository at this point in the history
ca0132 codec driver loads the firmware selectively depending on the
model in addition to the fallback of the default firmware.  The code
works good, but a minor problem is that the current code seems
confusing for Clang where it spews a warning about uninitialized
variable.

This patch simplifies the code flow for such a false-positive
warning.  After this refactoring, the ca0132_spec.alt_firmware_present
field is no longer used, hence it's eliminated as well.

Reported-and-tested-by: Arnd Bergmann <[email protected]>
Reviewed-by: Nathan Chancellor <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
tiwai committed Mar 22, 2019
1 parent ca0214e commit 4fc90fb
Showing 1 changed file with 6 additions and 14 deletions.
20 changes: 6 additions & 14 deletions sound/pci/hda/patch_ca0132.c
Original file line number Diff line number Diff line change
Expand Up @@ -1005,7 +1005,6 @@ struct ca0132_spec {
unsigned int scp_resp_header;
unsigned int scp_resp_data[4];
unsigned int scp_resp_count;
bool alt_firmware_present;
bool startup_check_entered;
bool dsp_reload;

Expand Down Expand Up @@ -7518,7 +7517,7 @@ static bool ca0132_download_dsp_images(struct hda_codec *codec)
bool dsp_loaded = false;
struct ca0132_spec *spec = codec->spec;
const struct dsp_image_seg *dsp_os_image;
const struct firmware *fw_entry;
const struct firmware *fw_entry = NULL;
/*
* Alternate firmwares for different variants. The Recon3Di apparently
* can use the default firmware, but I'll leave the option in case
Expand All @@ -7529,33 +7528,26 @@ static bool ca0132_download_dsp_images(struct hda_codec *codec)
case QUIRK_R3D:
case QUIRK_AE5:
if (request_firmware(&fw_entry, DESKTOP_EFX_FILE,
codec->card->dev) != 0) {
codec->card->dev) != 0)
codec_dbg(codec, "Desktop firmware not found.");
spec->alt_firmware_present = false;
} else {
else
codec_dbg(codec, "Desktop firmware selected.");
spec->alt_firmware_present = true;
}
break;
case QUIRK_R3DI:
if (request_firmware(&fw_entry, R3DI_EFX_FILE,
codec->card->dev) != 0) {
codec->card->dev) != 0)
codec_dbg(codec, "Recon3Di alt firmware not detected.");
spec->alt_firmware_present = false;
} else {
else
codec_dbg(codec, "Recon3Di firmware selected.");
spec->alt_firmware_present = true;
}
break;
default:
spec->alt_firmware_present = false;
break;
}
/*
* Use default ctefx.bin if no alt firmware is detected, or if none
* exists for your particular codec.
*/
if (!spec->alt_firmware_present) {
if (!fw_entry) {
codec_dbg(codec, "Default firmware selected.");
if (request_firmware(&fw_entry, EFX_FILE,
codec->card->dev) != 0)
Expand Down

0 comments on commit 4fc90fb

Please sign in to comment.