summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2026-07-29 10:37:22 +0200
committerTakashi Iwai <tiwai@suse.de>2026-07-31 12:44:36 +0200
commitba2ad78c193bb422f4a984c19a92c3cf19e354b9 (patch)
treeaee0492aae261bb74bd54a9df3bbef2f3fbacc30
parentf37eed135b97501ae06cfea4b9bb119af499f716 (diff)
downloadlinux-next-ba2ad78c193bb422f4a984c19a92c3cf19e354b9.tar.gz
linux-next-ba2ad78c193bb422f4a984c19a92c3cf19e354b9.zip
ALSA: msnd: Use auto-cleanup for firmware loading
Simplify the code to manage the firmware loading with __free(firmware) auto-cleanup. Only the code refactoring, no functional changes. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260729083735.120219-5-tiwai@suse.de
-rw-r--r--sound/isa/msnd/msnd_pinnacle.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/sound/isa/msnd/msnd_pinnacle.c b/sound/isa/msnd/msnd_pinnacle.c
index 0d5f4461a7bc..eac6e22362cc 100644
--- a/sound/isa/msnd/msnd_pinnacle.c
+++ b/sound/isa/msnd/msnd_pinnacle.c
@@ -367,7 +367,8 @@ static int snd_msnd_init_sma(struct snd_msnd *chip)
static int upload_dsp_code(struct snd_card *card)
{
struct snd_msnd *chip = card->private_data;
- const struct firmware *init_fw = NULL, *perm_fw = NULL;
+ const struct firmware *init_fw __free(firmware) = NULL;
+ const struct firmware *perm_fw __free(firmware) = NULL;
int err;
outb(HPBLKSEL_0, chip->io + HP_BLKS);
@@ -375,28 +376,21 @@ static int upload_dsp_code(struct snd_card *card)
err = request_firmware(&init_fw, INITCODEFILE, card->dev);
if (err < 0) {
dev_err(card->dev, LOGNAME ": Error loading " INITCODEFILE);
- goto cleanup1;
+ return err;
}
err = request_firmware(&perm_fw, PERMCODEFILE, card->dev);
if (err < 0) {
dev_err(card->dev, LOGNAME ": Error loading " PERMCODEFILE);
- goto cleanup;
+ return err;
}
memcpy_toio(chip->mappedbase, perm_fw->data, perm_fw->size);
if (snd_msnd_upload_host(chip, init_fw->data, init_fw->size) < 0) {
dev_warn(card->dev, LOGNAME ": Error uploading to DSP\n");
- err = -ENODEV;
- goto cleanup;
+ return -ENODEV;
}
dev_info(card->dev, LOGNAME ": DSP firmware uploaded\n");
- err = 0;
-
-cleanup:
- release_firmware(perm_fw);
-cleanup1:
- release_firmware(init_fw);
- return err;
+ return 0;
}
#ifdef MSND_CLASSIC