Commit ed16a22b authored by Takashi Iwai's avatar Takashi Iwai

ALSA: dummy: 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-79-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent b072e65a
...@@ -1025,8 +1025,8 @@ static int snd_dummy_probe(struct platform_device *devptr) ...@@ -1025,8 +1025,8 @@ static int snd_dummy_probe(struct platform_device *devptr)
int idx, err; int idx, err;
int dev = devptr->id; int dev = devptr->id;
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 snd_dummy), &card); sizeof(struct snd_dummy), &card);
if (err < 0) if (err < 0)
return err; return err;
dummy = card->private_data; dummy = card->private_data;
...@@ -1047,7 +1047,7 @@ static int snd_dummy_probe(struct platform_device *devptr) ...@@ -1047,7 +1047,7 @@ static int snd_dummy_probe(struct platform_device *devptr)
pcm_substreams[dev] = MAX_PCM_SUBSTREAMS; pcm_substreams[dev] = MAX_PCM_SUBSTREAMS;
err = snd_card_dummy_pcm(dummy, idx, pcm_substreams[dev]); err = snd_card_dummy_pcm(dummy, idx, pcm_substreams[dev]);
if (err < 0) if (err < 0)
goto __nodev; return err;
} }
dummy->pcm_hw = dummy_pcm_hardware; dummy->pcm_hw = dummy_pcm_hardware;
...@@ -1078,7 +1078,7 @@ static int snd_dummy_probe(struct platform_device *devptr) ...@@ -1078,7 +1078,7 @@ static int snd_dummy_probe(struct platform_device *devptr)
err = snd_card_dummy_new_mixer(dummy); err = snd_card_dummy_new_mixer(dummy);
if (err < 0) if (err < 0)
goto __nodev; return err;
strcpy(card->driver, "Dummy"); strcpy(card->driver, "Dummy");
strcpy(card->shortname, "Dummy"); strcpy(card->shortname, "Dummy");
sprintf(card->longname, "Dummy %i", dev + 1); sprintf(card->longname, "Dummy %i", dev + 1);
...@@ -1086,18 +1086,9 @@ static int snd_dummy_probe(struct platform_device *devptr) ...@@ -1086,18 +1086,9 @@ static int snd_dummy_probe(struct platform_device *devptr)
dummy_proc_init(dummy); dummy_proc_init(dummy);
err = snd_card_register(card); err = snd_card_register(card);
if (err == 0) { 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 snd_dummy_remove(struct platform_device *devptr)
{
snd_card_free(platform_get_drvdata(devptr));
return 0; return 0;
} }
...@@ -1128,7 +1119,6 @@ static SIMPLE_DEV_PM_OPS(snd_dummy_pm, snd_dummy_suspend, snd_dummy_resume); ...@@ -1128,7 +1119,6 @@ static SIMPLE_DEV_PM_OPS(snd_dummy_pm, snd_dummy_suspend, snd_dummy_resume);
static struct platform_driver snd_dummy_driver = { static struct platform_driver snd_dummy_driver = {
.probe = snd_dummy_probe, .probe = snd_dummy_probe,
.remove = snd_dummy_remove,
.driver = { .driver = {
.name = SND_DUMMY_DRIVER, .name = SND_DUMMY_DRIVER,
.pm = SND_DUMMY_PM_OPS, .pm = SND_DUMMY_PM_OPS,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment