mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
ASoC: tegra: Add support for S24_LE format
Add support for S24_LE format for all internal and IO AHUB modules. - Make the data to be S32_LE internal to AHUB modules. - Conversion from 24 to 32 or vise-versa will happen at ADMAIF, or at the IO modules CIF to maintain consistency across modules. Bug 200755886 Change-Id: I175e4177ec76baf7ead9b89276a70a4b454756fa Signed-off-by: Mohan Kumar <mkumard@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2578280 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com> Reviewed-by: Viswanath L <viswanathl@nvidia.com> Reviewed-by: Sameer Pujar <spujar@nvidia.com> Reviewed-by: Sharad Gupta <sharadg@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
Sameer Pujar
parent
d3352a5e41
commit
85258fddea
@@ -226,8 +226,6 @@ static int tegra186_asrc_set_audio_cif(struct tegra186_asrc *asrc,
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_24;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -159,6 +159,7 @@ static int tegra186_dspk_hw_params(struct snd_pcm_substream *substream,
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_16;
|
||||
cif_conf.client_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// tegra210_admaif.c - Tegra ADMAIF driver
|
||||
//
|
||||
// Copyright (c) 2020 NVIDIA CORPORATION. All rights reserved.
|
||||
// Copyright (c) 2020-2021 NVIDIA CORPORATION. All rights reserved.
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/device.h>
|
||||
@@ -301,7 +301,7 @@ static int tegra_admaif_hw_params(struct snd_pcm_substream *substream,
|
||||
valid_bit = DATA_16BIT;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_24;
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
||||
cif_conf.client_bits = TEGRA_ACIF_BITS_24;
|
||||
valid_bit = DATA_32BIT;
|
||||
break;
|
||||
|
||||
@@ -247,8 +247,6 @@ static int tegra210_adx_set_audio_cif(struct snd_soc_dai *dai,
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_24;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -296,6 +296,7 @@ static int tegra210_afc_set_audio_cif(struct tegra210_afc *afc,
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -282,8 +282,6 @@ static int tegra210_amx_set_audio_cif(struct snd_soc_dai *dai,
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_24;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -149,6 +149,7 @@ static int tegra210_dmic_hw_params(struct snd_pcm_substream *substream,
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// tegra210_i2s.c - Tegra210 I2S driver
|
||||
//
|
||||
// Copyright (c) 2020 NVIDIA CORPORATION. All rights reserved.
|
||||
// Copyright (c) 2020-2021 NVIDIA CORPORATION. All rights reserved.
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/device.h>
|
||||
@@ -554,7 +554,7 @@ static int tegra210_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||
*/
|
||||
sample_size = 32;
|
||||
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_24;
|
||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
||||
cif_conf.client_bits = TEGRA_ACIF_BITS_24;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
|
||||
@@ -77,6 +77,7 @@ static int tegra210_iqc_set_audio_cif(struct tegra210_iqc *iqc,
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -220,6 +220,7 @@ static int tegra210_mixer_set_audio_cif(struct tegra210_mixer *mixer,
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -387,6 +387,7 @@ static int tegra210_mvc_set_audio_cif(struct tegra210_mvc *mvc,
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -78,6 +78,7 @@ static int tegra210_ope_set_audio_cif(struct tegra210_ope *ope,
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
@@ -2964,6 +2964,7 @@ static int tegra210_sfc_set_audio_cif(struct tegra210_sfc *sfc,
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_16;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
audio_bits = TEGRA_ACIF_BITS_32;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user