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;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
case SNDRV_PCM_FORMAT_S24_LE:
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_24;
|
|
||||||
break;
|
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
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.audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
cif_conf.client_bits = TEGRA_ACIF_BITS_16;
|
cif_conf.client_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// tegra210_admaif.c - Tegra ADMAIF driver
|
// 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/clk.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
@@ -301,7 +301,7 @@ static int tegra_admaif_hw_params(struct snd_pcm_substream *substream,
|
|||||||
valid_bit = DATA_16BIT;
|
valid_bit = DATA_16BIT;
|
||||||
break;
|
break;
|
||||||
case SNDRV_PCM_FORMAT_S24_LE:
|
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;
|
cif_conf.client_bits = TEGRA_ACIF_BITS_24;
|
||||||
valid_bit = DATA_32BIT;
|
valid_bit = DATA_32BIT;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -247,8 +247,6 @@ static int tegra210_adx_set_audio_cif(struct snd_soc_dai *dai,
|
|||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
case SNDRV_PCM_FORMAT_S24_LE:
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_24;
|
|
||||||
break;
|
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -296,6 +296,7 @@ static int tegra210_afc_set_audio_cif(struct tegra210_afc *afc,
|
|||||||
case SNDRV_PCM_FORMAT_S16_LE:
|
case SNDRV_PCM_FORMAT_S16_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -282,8 +282,6 @@ static int tegra210_amx_set_audio_cif(struct snd_soc_dai *dai,
|
|||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
case SNDRV_PCM_FORMAT_S24_LE:
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_24;
|
|
||||||
break;
|
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ static int tegra210_dmic_hw_params(struct snd_pcm_substream *substream,
|
|||||||
case SNDRV_PCM_FORMAT_S16_LE:
|
case SNDRV_PCM_FORMAT_S16_LE:
|
||||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_16;
|
cif_conf.audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
cif_conf.audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// tegra210_i2s.c - Tegra210 I2S driver
|
// 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/clk.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
@@ -554,7 +554,7 @@ static int tegra210_i2s_hw_params(struct snd_pcm_substream *substream,
|
|||||||
*/
|
*/
|
||||||
sample_size = 32;
|
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;
|
cif_conf.client_bits = TEGRA_ACIF_BITS_24;
|
||||||
break;
|
break;
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
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:
|
case SNDRV_PCM_FORMAT_S16_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -220,6 +220,7 @@ static int tegra210_mixer_set_audio_cif(struct tegra210_mixer *mixer,
|
|||||||
case SNDRV_PCM_FORMAT_S16_LE:
|
case SNDRV_PCM_FORMAT_S16_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -387,6 +387,7 @@ static int tegra210_mvc_set_audio_cif(struct tegra210_mvc *mvc,
|
|||||||
case SNDRV_PCM_FORMAT_S16_LE:
|
case SNDRV_PCM_FORMAT_S16_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ static int tegra210_ope_set_audio_cif(struct tegra210_ope *ope,
|
|||||||
case SNDRV_PCM_FORMAT_S16_LE:
|
case SNDRV_PCM_FORMAT_S16_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2964,6 +2964,7 @@ static int tegra210_sfc_set_audio_cif(struct tegra210_sfc *sfc,
|
|||||||
case SNDRV_PCM_FORMAT_S16_LE:
|
case SNDRV_PCM_FORMAT_S16_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_16;
|
audio_bits = TEGRA_ACIF_BITS_16;
|
||||||
break;
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
case SNDRV_PCM_FORMAT_S32_LE:
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
audio_bits = TEGRA_ACIF_BITS_32;
|
audio_bits = TEGRA_ACIF_BITS_32;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user