diff options
author | Takashi Iwai <tiwai@suse.de> | 2021-07-15 09:59:24 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2021-07-19 16:17:20 +0200 |
commit | 1bb11c1c7f6e264a737b30c667c3c84fbe511d98 (patch) | |
tree | 1951dfc613380be046813a16217e3f4e9cc78dca /sound/isa/es1688/es1688.c | |
parent | ALSA: cs423x: Allocate resources with device-managed APIs (diff) | |
download | linux-1bb11c1c7f6e264a737b30c667c3c84fbe511d98.tar.xz linux-1bb11c1c7f6e264a737b30c667c3c84fbe511d98.zip |
ALSA: es1688: Allocate resources with device-managed APIs
This patch converts the resource management in ISA es1688 driver with
devres as a clean up. Each manual resource management is converted
with the corresponding devres helper. The remove callback became
superfluous and dropped.
This should give no user-visible functional changes.
Link: https://lore.kernel.org/r/20210715075941.23332-63-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/isa/es1688/es1688.c')
-rw-r--r-- | sound/isa/es1688/es1688.c | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/sound/isa/es1688/es1688.c b/sound/isa/es1688/es1688.c index 750d4995634f..f935b56eeec7 100644 --- a/sound/isa/es1688/es1688.c +++ b/sound/isa/es1688/es1688.c @@ -166,36 +166,27 @@ static int snd_es1688_isa_probe(struct device *dev, unsigned int n) struct snd_card *card; int error; - error = snd_card_new(dev, index[n], id[n], THIS_MODULE, - sizeof(struct snd_es1688), &card); + error = snd_devm_card_new(dev, index[n], id[n], THIS_MODULE, + sizeof(struct snd_es1688), &card); if (error < 0) return error; error = snd_es1688_legacy_create(card, dev, n); if (error < 0) - goto out; + return error; error = snd_es1688_probe(card, n); if (error < 0) - goto out; + return error; dev_set_drvdata(dev, card); return 0; -out: - snd_card_free(card); - return error; -} - -static void snd_es1688_isa_remove(struct device *dev, unsigned int n) -{ - snd_card_free(dev_get_drvdata(dev)); } static struct isa_driver snd_es1688_driver = { .match = snd_es1688_match, .probe = snd_es1688_isa_probe, - .remove = snd_es1688_isa_remove, #if 0 /* FIXME */ .suspend = snd_es1688_suspend, .resume = snd_es1688_resume, @@ -249,22 +240,18 @@ static int snd_es968_pnp_detect(struct pnp_card_link *pcard, if (dev == SNDRV_CARDS) return -ENODEV; - error = snd_card_new(&pcard->card->dev, - index[dev], id[dev], THIS_MODULE, - sizeof(struct snd_es1688), &card); + error = snd_devm_card_new(&pcard->card->dev, + index[dev], id[dev], THIS_MODULE, + sizeof(struct snd_es1688), &card); if (error < 0) return error; error = snd_card_es968_pnp(card, dev, pcard, pid); - if (error < 0) { - snd_card_free(card); + if (error < 0) return error; - } error = snd_es1688_probe(card, dev); - if (error < 0) { - snd_card_free(card); + if (error < 0) return error; - } pnp_set_card_drvdata(pcard, card); snd_es968_pnp_is_probed = 1; return 0; @@ -272,8 +259,6 @@ static int snd_es968_pnp_detect(struct pnp_card_link *pcard, static void snd_es968_pnp_remove(struct pnp_card_link *pcard) { - snd_card_free(pnp_get_card_drvdata(pcard)); - pnp_set_card_drvdata(pcard, NULL); snd_es968_pnp_is_probed = 0; } |