mirror of
https://github.com/torvalds/linux.git
synced 2026-09-27 02:22:02 +02:00
ASoC: tas5805m: 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/20260806140006.1412298-21-tiwai@suse.de Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
37cb22498f
commit
834c7c8511
|
|
@ -457,7 +457,6 @@ static int tas5805m_i2c_probe(struct i2c_client *i2c)
|
|||
struct tas5805m_priv *tas5805m;
|
||||
char filename[128];
|
||||
const char *config_name;
|
||||
const struct firmware *fw;
|
||||
int ret;
|
||||
|
||||
regmap = devm_regmap_init_i2c(i2c, &tas5805m_regmap);
|
||||
|
|
@ -502,24 +501,20 @@ static int tas5805m_i2c_probe(struct i2c_client *i2c)
|
|||
|
||||
snprintf(filename, sizeof(filename), "tas5805m_dsp_%s.bin",
|
||||
config_name);
|
||||
const struct firmware *fw __free(firmware) = NULL;
|
||||
ret = request_firmware(&fw, filename, dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if ((fw->size < 2) || (fw->size & 1)) {
|
||||
dev_err(dev, "firmware is invalid\n");
|
||||
release_firmware(fw);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
tas5805m->dsp_cfg_len = fw->size;
|
||||
tas5805m->dsp_cfg_data = devm_kmemdup(dev, fw->data, fw->size, GFP_KERNEL);
|
||||
if (!tas5805m->dsp_cfg_data) {
|
||||
release_firmware(fw);
|
||||
if (!tas5805m->dsp_cfg_data)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
release_firmware(fw);
|
||||
|
||||
/* Do the first part of the power-on here, while we can expect
|
||||
* the I2S interface to be quiet. We must raise PDN# and then
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user