ASoC: dapm: Setup private_free callback for dapm kcontrols
The private data containing the widget list that is a assigned to a DAPM kcontrol is never freed. Setup the private_free for DAPM kcontrols to take care of this. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
317ddd256b
commit
6b75bf0c5b
@ -504,6 +504,11 @@ static int dapm_is_shared_kcontrol(struct snd_soc_dapm_context *dapm,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void dapm_kcontrol_free(struct snd_kcontrol *kctl)
|
||||||
|
{
|
||||||
|
kfree(kctl->private_data);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Determine if a kcontrol is shared. If it is, look it up. If it isn't,
|
* Determine if a kcontrol is shared. If it is, look it up. If it isn't,
|
||||||
* create it. Either way, add the widget into the control's widget list
|
* create it. Either way, add the widget into the control's widget list
|
||||||
@ -617,6 +622,7 @@ static int dapm_create_or_share_mixmux_kcontrol(struct snd_soc_dapm_widget *w,
|
|||||||
|
|
||||||
kcontrol = snd_soc_cnew(&w->kcontrol_news[kci], wlist, name,
|
kcontrol = snd_soc_cnew(&w->kcontrol_news[kci], wlist, name,
|
||||||
prefix);
|
prefix);
|
||||||
|
kcontrol->private_free = dapm_kcontrol_free;
|
||||||
ret = snd_ctl_add(card, kcontrol);
|
ret = snd_ctl_add(card, kcontrol);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dapm->dev,
|
dev_err(dapm->dev,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user