mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-13 00:20:06 +00:00
ASoC: dapm: Fix ctl value accesses in a wrong type
snd_soc_dapm_dai_link_get() and _put() access the associated ctl values as value.integer.value[]. However, this is an enum ctl, and it has to be accessed via value.enumerated.item[]. The former is long while the latter is unsigned int, so they don't align. Fixes: c66150824b8a ('ASoC: dapm: add code to configure dai link parameters') Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
92e963f50f
commit
741338f99f
@ -3573,7 +3573,7 @@ static int snd_soc_dapm_dai_link_get(struct snd_kcontrol *kcontrol,
|
||||
{
|
||||
struct snd_soc_dapm_widget *w = snd_kcontrol_chip(kcontrol);
|
||||
|
||||
ucontrol->value.integer.value[0] = w->params_select;
|
||||
ucontrol->value.enumerated.item[0] = w->params_select;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -3587,13 +3587,13 @@ static int snd_soc_dapm_dai_link_put(struct snd_kcontrol *kcontrol,
|
||||
if (w->power)
|
||||
return -EBUSY;
|
||||
|
||||
if (ucontrol->value.integer.value[0] == w->params_select)
|
||||
if (ucontrol->value.enumerated.item[0] == w->params_select)
|
||||
return 0;
|
||||
|
||||
if (ucontrol->value.integer.value[0] >= w->num_params)
|
||||
if (ucontrol->value.enumerated.item[0] >= w->num_params)
|
||||
return -EINVAL;
|
||||
|
||||
w->params_select = ucontrol->value.integer.value[0];
|
||||
w->params_select = ucontrol->value.enumerated.item[0];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user