| From 3aa0d5c8bb3f5ef622ec2764823f551a1f630711 Mon Sep 17 00:00:00 2001 |
| From: Sameer Pujar <spujar@nvidia.com> |
| Date: Thu, 18 Nov 2021 12:36:59 +0530 |
| Subject: ASoC: tegra: Fix wrong value type in DSPK |
| |
| From: Sameer Pujar <spujar@nvidia.com> |
| |
| commit 3aa0d5c8bb3f5ef622ec2764823f551a1f630711 upstream. |
| |
| The enum controls are expected to use enumerated value type. |
| Update relevant references in control get/put callbacks. |
| |
| Fixes: 327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver") |
| Suggested-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Sameer Pujar <spujar@nvidia.com> |
| Reviewed-by: Takashi Iwai <tiwai@suse.de> |
| Link: https://lore.kernel.org/r/1637219231-406-5-git-send-email-spujar@nvidia.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/soc/tegra/tegra186_dspk.c | 23 +++++++++++------------ |
| 1 file changed, 11 insertions(+), 12 deletions(-) |
| |
| --- a/sound/soc/tegra/tegra186_dspk.c |
| +++ b/sound/soc/tegra/tegra186_dspk.c |
| @@ -35,15 +35,15 @@ static int tegra186_dspk_get_control(str |
| if (strstr(kcontrol->id.name, "FIFO Threshold")) |
| ucontrol->value.integer.value[0] = dspk->rx_fifo_th; |
| else if (strstr(kcontrol->id.name, "OSR Value")) |
| - ucontrol->value.integer.value[0] = dspk->osr_val; |
| + ucontrol->value.enumerated.item[0] = dspk->osr_val; |
| else if (strstr(kcontrol->id.name, "LR Polarity Select")) |
| - ucontrol->value.integer.value[0] = dspk->lrsel; |
| + ucontrol->value.enumerated.item[0] = dspk->lrsel; |
| else if (strstr(kcontrol->id.name, "Channel Select")) |
| - ucontrol->value.integer.value[0] = dspk->ch_sel; |
| + ucontrol->value.enumerated.item[0] = dspk->ch_sel; |
| else if (strstr(kcontrol->id.name, "Mono To Stereo")) |
| - ucontrol->value.integer.value[0] = dspk->mono_to_stereo; |
| + ucontrol->value.enumerated.item[0] = dspk->mono_to_stereo; |
| else if (strstr(kcontrol->id.name, "Stereo To Mono")) |
| - ucontrol->value.integer.value[0] = dspk->stereo_to_mono; |
| + ucontrol->value.enumerated.item[0] = dspk->stereo_to_mono; |
| |
| return 0; |
| } |
| @@ -53,20 +53,19 @@ static int tegra186_dspk_put_control(str |
| { |
| struct snd_soc_component *codec = snd_soc_kcontrol_component(kcontrol); |
| struct tegra186_dspk *dspk = snd_soc_component_get_drvdata(codec); |
| - int val = ucontrol->value.integer.value[0]; |
| |
| if (strstr(kcontrol->id.name, "FIFO Threshold")) |
| - dspk->rx_fifo_th = val; |
| + dspk->rx_fifo_th = ucontrol->value.integer.value[0]; |
| else if (strstr(kcontrol->id.name, "OSR Value")) |
| - dspk->osr_val = val; |
| + dspk->osr_val = ucontrol->value.enumerated.item[0]; |
| else if (strstr(kcontrol->id.name, "LR Polarity Select")) |
| - dspk->lrsel = val; |
| + dspk->lrsel = ucontrol->value.enumerated.item[0]; |
| else if (strstr(kcontrol->id.name, "Channel Select")) |
| - dspk->ch_sel = val; |
| + dspk->ch_sel = ucontrol->value.enumerated.item[0]; |
| else if (strstr(kcontrol->id.name, "Mono To Stereo")) |
| - dspk->mono_to_stereo = val; |
| + dspk->mono_to_stereo = ucontrol->value.enumerated.item[0]; |
| else if (strstr(kcontrol->id.name, "Stereo To Mono")) |
| - dspk->stereo_to_mono = val; |
| + dspk->stereo_to_mono = ucontrol->value.enumerated.item[0]; |
| |
| return 0; |
| } |