Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d12cd198 authored by Stephen Warren's avatar Stephen Warren Committed by Mark Brown
Browse files

ASoC: factor out soc_remove_platform()



This change simply factors out part of soc_remove_dai_link() into a
standalone function. This makes platform and CODEC removal much more
similar at the call-sites.

Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 18d75644
Loading
Loading
Loading
Loading
+24 −16
Original line number Diff line number Diff line
@@ -898,6 +898,28 @@ static int soc_bind_dai_link(struct snd_soc_card *card, int num)
	return 0;
}

static int soc_remove_platform(struct snd_soc_platform *platform)
{
	int ret;

	if (platform->driver->remove) {
		ret = platform->driver->remove(platform);
		if (ret < 0)
			pr_err("asoc: failed to remove %s: %d\n",
				platform->name, ret);
	}

	/* Make sure all DAPM widgets are freed */
	snd_soc_dapm_free(&platform->dapm);

	soc_cleanup_platform_debugfs(platform);
	platform->probed = 0;
	list_del(&platform->card_list);
	module_put(platform->dev->driver->owner);

	return 0;
}

static void soc_remove_codec(struct snd_soc_codec *codec)
{
	int err;
@@ -950,22 +972,8 @@ static void soc_remove_dai_link(struct snd_soc_card *card, int num, int order)

	/* remove the platform */
	if (platform && platform->probed &&
			platform->driver->remove_order == order) {
		if (platform->driver->remove) {
			err = platform->driver->remove(platform);
			if (err < 0)
				pr_err("asoc: failed to remove %s: %d\n",
							platform->name, err);
		}

		/* Make sure all DAPM widgets are freed */
		snd_soc_dapm_free(&platform->dapm);

		soc_cleanup_platform_debugfs(platform);
		platform->probed = 0;
		list_del(&platform->card_list);
		module_put(platform->dev->driver->owner);
	}
			platform->driver->remove_order == order)
		soc_remove_platform(platform);

	/* remove the CODEC */
	if (codec && codec->probed &&