mirror of https://gitee.com/openkylin/linux.git
ALSA: hda/ca0132 - Simplify alt firmware loading code
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 <arnd@arndb.de> Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
ca0214ee28
commit
4fc90fb883
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue