ASoC: wm8904: Fix enum ctl accesses in a wrong type
"DRC Mode" and "EQ Mode" ctls in wm8904 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
92e963f50f
commit
c41a024c4e
|
@ -396,7 +396,7 @@ static int wm8904_put_drc_enum(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
|
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
|
||||||
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
|
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
|
||||||
struct wm8904_pdata *pdata = wm8904->pdata;
|
struct wm8904_pdata *pdata = wm8904->pdata;
|
||||||
int value = ucontrol->value.integer.value[0];
|
int value = ucontrol->value.enumerated.item[0];
|
||||||
|
|
||||||
if (value >= pdata->num_drc_cfgs)
|
if (value >= pdata->num_drc_cfgs)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -467,7 +467,7 @@ static int wm8904_put_retune_mobile_enum(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
|
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
|
||||||
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
|
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
|
||||||
struct wm8904_pdata *pdata = wm8904->pdata;
|
struct wm8904_pdata *pdata = wm8904->pdata;
|
||||||
int value = ucontrol->value.integer.value[0];
|
int value = ucontrol->value.enumerated.item[0];
|
||||||
|
|
||||||
if (value >= pdata->num_retune_mobile_cfgs)
|
if (value >= pdata->num_retune_mobile_cfgs)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Loading…
Reference in New Issue