Message ID | 20240325104928.2796868-1-spujar@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ASoC: tegra: Fix DSPK 16-bit playback | expand |
On Mon Mar 25, 2024 at 11:49 AM CET, Sameer Pujar wrote: > DSPK configuration is wrong for 16-bit playback and this happens because > the client config is always fixed at 24-bit in hw_params(). Fix this by > updating the client config to 16-bit for the respective playback. > > Fixes: 327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver") > Cc: stable@vger.kernel.org > Signed-off-by: Sameer Pujar <spujar@nvidia.com> > --- > sound/soc/tegra/tegra186_dspk.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/sound/soc/tegra/tegra186_dspk.c b/sound/soc/tegra/tegra186_dspk.c > index aa37c4ab0adb..3a152e76122b 100644 > --- a/sound/soc/tegra/tegra186_dspk.c > +++ b/sound/soc/tegra/tegra186_dspk.c > @@ -1,8 +1,7 @@ > // SPDX-License-Identifier: GPL-2.0-only > +// SPDX-FileCopyrightText: Copyright (c) 2020-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. > // > // tegra186_dspk.c - Tegra186 DSPK driver > -// > -// Copyright (c) 2020 NVIDIA CORPORATION. All rights reserved. > > #include <linux/clk.h> > #include <linux/device.h> > @@ -246,6 +245,7 @@ static int tegra186_dspk_hw_params(struct snd_pcm_substream *substream, > switch (params_format(params)) { > case SNDRV_PCM_FORMAT_S16_LE: > cif_conf.audio_bits = TEGRA_ACIF_BITS_16; > + cif_conf.client_bits = TEGRA_ACIF_BITS_16; Do we perhaps want to move the common cif_conf.client_bits assignment into the S32_LE case now? It doesn't make much sense to have a common assignment that's overridden for the S16_LE case and only kept for the only other alternative (S32_LE). Thierry
On 25-03-2024 19:11, Thierry Reding wrote: > On Mon Mar 25, 2024 at 11:49 AM CET, Sameer Pujar wrote: >> DSPK configuration is wrong for 16-bit playback and this happens because >> the client config is always fixed at 24-bit in hw_params(). Fix this by >> updating the client config to 16-bit for the respective playback. >> >> Fixes: 327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver") >> Cc: stable@vger.kernel.org >> Signed-off-by: Sameer Pujar <spujar@nvidia.com> >> --- >> sound/soc/tegra/tegra186_dspk.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/sound/soc/tegra/tegra186_dspk.c b/sound/soc/tegra/tegra186_dspk.c >> index aa37c4ab0adb..3a152e76122b 100644 >> --- a/sound/soc/tegra/tegra186_dspk.c >> +++ b/sound/soc/tegra/tegra186_dspk.c >> @@ -1,8 +1,7 @@ >> // SPDX-License-Identifier: GPL-2.0-only >> +// SPDX-FileCopyrightText: Copyright (c) 2020-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. >> // >> // tegra186_dspk.c - Tegra186 DSPK driver >> -// >> -// Copyright (c) 2020 NVIDIA CORPORATION. All rights reserved. >> >> #include <linux/clk.h> >> #include <linux/device.h> >> @@ -246,6 +245,7 @@ static int tegra186_dspk_hw_params(struct snd_pcm_substream *substream, >> switch (params_format(params)) { >> case SNDRV_PCM_FORMAT_S16_LE: >> cif_conf.audio_bits = TEGRA_ACIF_BITS_16; >> + cif_conf.client_bits = TEGRA_ACIF_BITS_16; > Do we perhaps want to move the common cif_conf.client_bits assignment > into the S32_LE case now? It doesn't make much sense to have a common > assignment that's overridden for the S16_LE case and only kept for the > only other alternative (S32_LE). Yes, it makes sense to do so. Will send v2. Thanks.
diff --git a/sound/soc/tegra/tegra186_dspk.c b/sound/soc/tegra/tegra186_dspk.c index aa37c4ab0adb..3a152e76122b 100644 --- a/sound/soc/tegra/tegra186_dspk.c +++ b/sound/soc/tegra/tegra186_dspk.c @@ -1,8 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2020-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // // tegra186_dspk.c - Tegra186 DSPK driver -// -// Copyright (c) 2020 NVIDIA CORPORATION. All rights reserved. #include <linux/clk.h> #include <linux/device.h> @@ -246,6 +245,7 @@ static int tegra186_dspk_hw_params(struct snd_pcm_substream *substream, switch (params_format(params)) { case SNDRV_PCM_FORMAT_S16_LE: cif_conf.audio_bits = TEGRA_ACIF_BITS_16; + cif_conf.client_bits = TEGRA_ACIF_BITS_16; break; case SNDRV_PCM_FORMAT_S32_LE: cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
DSPK configuration is wrong for 16-bit playback and this happens because the client config is always fixed at 24-bit in hw_params(). Fix this by updating the client config to 16-bit for the respective playback. Fixes: 327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver") Cc: stable@vger.kernel.org Signed-off-by: Sameer Pujar <spujar@nvidia.com> --- sound/soc/tegra/tegra186_dspk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)