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>
This commit is contained in:
Родитель
de74763295
Коммит
b072e65aad
|
@ -1712,8 +1712,8 @@ static int loopback_probe(struct platform_device *devptr)
|
||||||
int dev = devptr->id;
|
int dev = devptr->id;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = snd_card_new(&devptr->dev, index[dev], id[dev], THIS_MODULE,
|
err = snd_devm_card_new(&devptr->dev, index[dev], id[dev], THIS_MODULE,
|
||||||
sizeof(struct loopback), &card);
|
sizeof(struct loopback), &card);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
loopback = card->private_data;
|
loopback = card->private_data;
|
||||||
|
@ -1730,13 +1730,13 @@ static int loopback_probe(struct platform_device *devptr)
|
||||||
|
|
||||||
err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]);
|
err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto __nodev;
|
return err;
|
||||||
err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]);
|
err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto __nodev;
|
return err;
|
||||||
err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0);
|
err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto __nodev;
|
return err;
|
||||||
loopback_cable_proc_new(loopback, 0);
|
loopback_cable_proc_new(loopback, 0);
|
||||||
loopback_cable_proc_new(loopback, 1);
|
loopback_cable_proc_new(loopback, 1);
|
||||||
loopback_timer_source_proc_new(loopback);
|
loopback_timer_source_proc_new(loopback);
|
||||||
|
@ -1744,18 +1744,9 @@ static int loopback_probe(struct platform_device *devptr)
|
||||||
strcpy(card->shortname, "Loopback");
|
strcpy(card->shortname, "Loopback");
|
||||||
sprintf(card->longname, "Loopback %i", dev + 1);
|
sprintf(card->longname, "Loopback %i", dev + 1);
|
||||||
err = snd_card_register(card);
|
err = snd_card_register(card);
|
||||||
if (!err) {
|
if (err < 0)
|
||||||
platform_set_drvdata(devptr, card);
|
return err;
|
||||||
return 0;
|
platform_set_drvdata(devptr, card);
|
||||||
}
|
|
||||||
__nodev:
|
|
||||||
snd_card_free(card);
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int loopback_remove(struct platform_device *devptr)
|
|
||||||
{
|
|
||||||
snd_card_free(platform_get_drvdata(devptr));
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1786,7 +1777,6 @@ static SIMPLE_DEV_PM_OPS(loopback_pm, loopback_suspend, loopback_resume);
|
||||||
|
|
||||||
static struct platform_driver loopback_driver = {
|
static struct platform_driver loopback_driver = {
|
||||||
.probe = loopback_probe,
|
.probe = loopback_probe,
|
||||||
.remove = loopback_remove,
|
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = SND_LOOPBACK_DRIVER,
|
.name = SND_LOOPBACK_DRIVER,
|
||||||
.pm = LOOPBACK_PM_OPS,
|
.pm = LOOPBACK_PM_OPS,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче