Skip to content

Commit b072e65

Browse files
committed
ALSA: aloop: Allocate resources with device-managed APIs
Use the new snd_devm_card_new() for the card object allocation, and clean up the superfluous remove callback. Link: https://lore.kernel.org/r/20210715075941.23332-78-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent de74763 commit b072e65

1 file changed

Lines changed: 8 additions & 18 deletions

File tree

sound/drivers/aloop.c

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1712,8 +1712,8 @@ static int loopback_probe(struct platform_device *devptr)
17121712
int dev = devptr->id;
17131713
int err;
17141714

1715-
err = snd_card_new(&devptr->dev, index[dev], id[dev], THIS_MODULE,
1716-
sizeof(struct loopback), &card);
1715+
err = snd_devm_card_new(&devptr->dev, index[dev], id[dev], THIS_MODULE,
1716+
sizeof(struct loopback), &card);
17171717
if (err < 0)
17181718
return err;
17191719
loopback = card->private_data;
@@ -1730,32 +1730,23 @@ static int loopback_probe(struct platform_device *devptr)
17301730

17311731
err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]);
17321732
if (err < 0)
1733-
goto __nodev;
1733+
return err;
17341734
err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]);
17351735
if (err < 0)
1736-
goto __nodev;
1736+
return err;
17371737
err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0);
17381738
if (err < 0)
1739-
goto __nodev;
1739+
return err;
17401740
loopback_cable_proc_new(loopback, 0);
17411741
loopback_cable_proc_new(loopback, 1);
17421742
loopback_timer_source_proc_new(loopback);
17431743
strcpy(card->driver, "Loopback");
17441744
strcpy(card->shortname, "Loopback");
17451745
sprintf(card->longname, "Loopback %i", dev + 1);
17461746
err = snd_card_register(card);
1747-
if (!err) {
1748-
platform_set_drvdata(devptr, card);
1749-
return 0;
1750-
}
1751-
__nodev:
1752-
snd_card_free(card);
1753-
return err;
1754-
}
1755-
1756-
static int loopback_remove(struct platform_device *devptr)
1757-
{
1758-
snd_card_free(platform_get_drvdata(devptr));
1747+
if (err < 0)
1748+
return err;
1749+
platform_set_drvdata(devptr, card);
17591750
return 0;
17601751
}
17611752

@@ -1786,7 +1777,6 @@ static SIMPLE_DEV_PM_OPS(loopback_pm, loopback_suspend, loopback_resume);
17861777

17871778
static struct platform_driver loopback_driver = {
17881779
.probe = loopback_probe,
1789-
.remove = loopback_remove,
17901780
.driver = {
17911781
.name = SND_LOOPBACK_DRIVER,
17921782
.pm = LOOPBACK_PM_OPS,

0 commit comments

Comments
 (0)