]> git.hungrycats.org Git - linux/commitdiff
ASoC: zl38060: Use auto-cleanup for firmware loading
authorTakashi Iwai <tiwai@suse.de>
Thu, 6 Aug 2026 13:59:56 +0000 (15:59 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 10 Aug 2026 14:34:08 +0000 (15:34 +0100)
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/20260806140006.1412298-25-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/zl38060.c

index 7de4014e626d21900cdb554bb531a750df95a580..894b8eb42e399d645964d131781c3a6cc06af815 100644 (file)
@@ -162,7 +162,7 @@ static int zl38_fw_send_xaddr(struct regmap *regmap, const void *data)
 static int zl38_load_firmware(struct device *dev, struct regmap *regmap)
 {
        const struct ihex_binrec *rec;
-       const struct firmware *fw;
+       const struct firmware *fw __free(firmware) = NULL;
        u32 addr;
        u16 len;
        int err;
@@ -180,7 +180,7 @@ static int zl38_load_firmware(struct device *dev, struct regmap *regmap)
                return err;
        err = zl38_fw_enter_boot_mode(regmap);
        if (err)
-               goto out;
+               return err;
        rec = (const struct ihex_binrec *)fw->data;
        while (rec) {
                addr = be32_to_cpu(rec->addr);
@@ -195,15 +195,12 @@ static int zl38_load_firmware(struct device *dev, struct regmap *regmap)
                        err = -EINVAL;
                }
                if (err)
-                       goto out;
+                       return err;
                /* next ! */
                rec = ihex_next_binrec(rec);
        }
-       err = zl38_fw_go(regmap);
 
-out:
-       release_firmware(fw);
-       return err;
+       return zl38_fw_go(regmap);
 }