Commit b072e65a authored by Takashi Iwai's avatar Takashi Iwai
Browse files

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: default avatarTakashi Iwai <tiwai@suse.de>
parent de747632
Loading
Loading
Loading
Loading
+8 −18
Original line number Diff line number Diff line
@@ -1712,7 +1712,7 @@ static int loopback_probe(struct platform_device *devptr)
	int dev = devptr->id;
	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);
	if (err < 0)
		return err;
@@ -1730,13 +1730,13 @@ static int loopback_probe(struct platform_device *devptr)

	err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]);
	if (err < 0)
		goto __nodev;
		return err;
	err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]);
	if (err < 0)
		goto __nodev;
		return err;
	err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0);
	if (err < 0)
		goto __nodev;
		return err;
	loopback_cable_proc_new(loopback, 0);
	loopback_cable_proc_new(loopback, 1);
	loopback_timer_source_proc_new(loopback);
@@ -1744,18 +1744,9 @@ static int loopback_probe(struct platform_device *devptr)
	strcpy(card->shortname, "Loopback");
	sprintf(card->longname, "Loopback %i", dev + 1);
	err = snd_card_register(card);
	if (!err) {
		platform_set_drvdata(devptr, card);
		return 0;
	}
      __nodev:
	snd_card_free(card);
	if (err < 0)
		return err;
}

static int loopback_remove(struct platform_device *devptr)
{
	snd_card_free(platform_get_drvdata(devptr));
	platform_set_drvdata(devptr, card);
	return 0;
}

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

static struct platform_driver loopback_driver = {
	.probe		= loopback_probe,
	.remove		= loopback_remove,
	.driver		= {
		.name	= SND_LOOPBACK_DRIVER,
		.pm	= LOOPBACK_PM_OPS,