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

Commit 773da9b3 authored by Charles Keepax's avatar Charles Keepax Committed by Mark Brown
Browse files

ASoC: dapm: Append "Autodisable" to autodisable widget names



This makes it a little easier to follow what is happening in debugfs.
Additionally is also useful in facilitating work to add autodisable
muxes because the control name is already used for the mux widget and
thus shouldn't be reused for the autodisable widget.

Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Reviewed-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Tested-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5967cb3d
Loading
Loading
Loading
Loading
+20 −3
Original line number Original line Diff line number Diff line
@@ -308,6 +308,8 @@ static int dapm_kcontrol_data_alloc(struct snd_soc_dapm_widget *widget,
{
{
	struct dapm_kcontrol_data *data;
	struct dapm_kcontrol_data *data;
	struct soc_mixer_control *mc;
	struct soc_mixer_control *mc;
	const char *name;
	int ret;


	data = kzalloc(sizeof(*data), GFP_KERNEL);
	data = kzalloc(sizeof(*data), GFP_KERNEL);
	if (!data)
	if (!data)
@@ -324,6 +326,13 @@ static int dapm_kcontrol_data_alloc(struct snd_soc_dapm_widget *widget,
		if (mc->autodisable) {
		if (mc->autodisable) {
			struct snd_soc_dapm_widget template;
			struct snd_soc_dapm_widget template;


			name = kasprintf(GFP_KERNEL, "%s %s", kcontrol->id.name,
					 "Autodisable");
			if (!name) {
				ret = -ENOMEM;
				goto err_data;
			}

			memset(&template, 0, sizeof(template));
			memset(&template, 0, sizeof(template));
			template.reg = mc->reg;
			template.reg = mc->reg;
			template.mask = (1 << fls(mc->max)) - 1;
			template.mask = (1 << fls(mc->max)) - 1;
@@ -334,15 +343,15 @@ static int dapm_kcontrol_data_alloc(struct snd_soc_dapm_widget *widget,
				template.off_val = 0;
				template.off_val = 0;
			template.on_val = template.off_val;
			template.on_val = template.off_val;
			template.id = snd_soc_dapm_kcontrol;
			template.id = snd_soc_dapm_kcontrol;
			template.name = kcontrol->id.name;
			template.name = name;


			data->value = template.on_val;
			data->value = template.on_val;


			data->widget = snd_soc_dapm_new_control(widget->dapm,
			data->widget = snd_soc_dapm_new_control(widget->dapm,
				&template);
				&template);
			if (!data->widget) {
			if (!data->widget) {
				kfree(data);
				ret = -ENOMEM;
				return -ENOMEM;
				goto err_name;
			}
			}
		}
		}
		break;
		break;
@@ -353,11 +362,19 @@ static int dapm_kcontrol_data_alloc(struct snd_soc_dapm_widget *widget,
	kcontrol->private_data = data;
	kcontrol->private_data = data;


	return 0;
	return 0;

err_name:
	kfree(name);
err_data:
	kfree(data);
	return ret;
}
}


static void dapm_kcontrol_free(struct snd_kcontrol *kctl)
static void dapm_kcontrol_free(struct snd_kcontrol *kctl)
{
{
	struct dapm_kcontrol_data *data = snd_kcontrol_chip(kctl);
	struct dapm_kcontrol_data *data = snd_kcontrol_chip(kctl);
	if (data->widget)
		kfree(data->widget->name);
	kfree(data->wlist);
	kfree(data->wlist);
	kfree(data);
	kfree(data);
}
}