ASoC: dapm: Fix ctl value accesses in a wrong type
commit 741338f99f16dc24d2d01ac777b0798ae9d10a90 upstream.
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: c66150824b
('ASoC: dapm: add code to configure dai link parameters')
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
3c92cc68a1
commit
21a397c8ec
1 changed files with 4 additions and 4 deletions
|
@ -3568,7 +3568,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;
|
||||
}
|
||||
|
@ -3582,13 +3582,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…
Add table
Reference in a new issue