From: Ben Dooks <ben.dooks@codethink.co.uk> To: linux-tegra@vger.kernel.org, alsa-devel@alsa-project.org, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>, Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>, Thierry Reding <thierry.reding@gmail.com>, Jonathan Hunter <jonathanh@nvidia.com> Cc: linux-kernel@lists.codethink.co.uk, Ben Dooks <ben.dooks@codethink.co.uk>, Edward Cragg <edward.cragg@codethink.co.uk> Subject: [alsa-devel] [PATCH v5 2/7] ASoC: tegra: Allow 24bit and 32bit samples Date: Fri, 18 Oct 2019 16:48:28 +0100 Message-ID: <20191018154833.7560-3-ben.dooks@codethink.co.uk> (raw) In-Reply-To: <20191018154833.7560-1-ben.dooks@codethink.co.uk> From: Edward Cragg <edward.cragg@codethink.co.uk> The tegra3 audio can support 24 and 32 bit sample sizes so add the option to the tegra30_i2s_hw_params to configure the S24_LE or S32_LE formats when requested. Signed-off-by: Edward Cragg <edward.cragg@codethink.co.uk> [ben.dooks@codethink.co.uk: fixup merge of 24 and 32bit] [ben.dooks@codethink.co.uk: add pm calls around ytdm config] [ben.dooks@codethink.co.uk: drop debug printing to dev_dbg] Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> --- squash 5aeca5a055fd ASoC: tegra: i2s: pm_runtime_get_sync() is needed in tdm code ASoC: tegra: i2s: pm_runtime_get_sync() is needed in tdm code --- sound/soc/tegra/tegra30_i2s.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/sound/soc/tegra/tegra30_i2s.c b/sound/soc/tegra/tegra30_i2s.c index 73f0dddeaef3..063f34c882af 100644 --- a/sound/soc/tegra/tegra30_i2s.c +++ b/sound/soc/tegra/tegra30_i2s.c @@ -127,7 +127,7 @@ static int tegra30_i2s_hw_params(struct snd_pcm_substream *substream, struct device *dev = dai->dev; struct tegra30_i2s *i2s = snd_soc_dai_get_drvdata(dai); unsigned int mask, val, reg; - int ret, sample_size, srate, i2sclock, bitcnt; + int ret, sample_size, srate, i2sclock, bitcnt, audio_bits; struct tegra30_ahub_cif_conf cif_conf; if (params_channels(params) != 2) @@ -137,8 +137,19 @@ static int tegra30_i2s_hw_params(struct snd_pcm_substream *substream, switch (params_format(params)) { case SNDRV_PCM_FORMAT_S16_LE: val = TEGRA30_I2S_CTRL_BIT_SIZE_16; + audio_bits = TEGRA30_AUDIOCIF_BITS_16; sample_size = 16; break; + case SNDRV_PCM_FORMAT_S24_LE: + val = TEGRA30_I2S_CTRL_BIT_SIZE_24; + audio_bits = TEGRA30_AUDIOCIF_BITS_24; + sample_size = 24; + break; + case SNDRV_PCM_FORMAT_S32_LE: + val = TEGRA30_I2S_CTRL_BIT_SIZE_32; + audio_bits = TEGRA30_AUDIOCIF_BITS_32; + sample_size = 32; + break; default: return -EINVAL; } @@ -170,8 +181,8 @@ static int tegra30_i2s_hw_params(struct snd_pcm_substream *substream, cif_conf.threshold = 0; cif_conf.audio_channels = 2; cif_conf.client_channels = 2; - cif_conf.audio_bits = TEGRA30_AUDIOCIF_BITS_16; - cif_conf.client_bits = TEGRA30_AUDIOCIF_BITS_16; + cif_conf.audio_bits = audio_bits; + cif_conf.client_bits = audio_bits; cif_conf.expand = 0; cif_conf.stereo_conv = 0; cif_conf.replicate = 0; @@ -306,14 +317,18 @@ static const struct snd_soc_dai_driver tegra30_i2s_dai_template = { .channels_min = 2, .channels_max = 2, .rates = SNDRV_PCM_RATE_8000_96000, - .formats = SNDRV_PCM_FMTBIT_S16_LE, + .formats = SNDRV_PCM_FMTBIT_S32_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S16_LE, }, .capture = { .stream_name = "Capture", .channels_min = 2, .channels_max = 2, .rates = SNDRV_PCM_RATE_8000_96000, - .formats = SNDRV_PCM_FMTBIT_S16_LE, + .formats = SNDRV_PCM_FMTBIT_S32_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S16_LE, }, .ops = &tegra30_i2s_dai_ops, .symmetric_rates = 1, -- 2.23.0 _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply index Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-18 15:48 [alsa-devel] tegra30 tdm audio support Ben Dooks 2019-10-18 15:48 ` [alsa-devel] [PATCH v5 1/7] ASoC: tegra: add a TDM configuration callback Ben Dooks 2019-10-24 15:50 ` Jon Hunter 2019-10-25 10:12 ` [alsa-devel] Applied "ASoC: tegra: add a TDM configuration callback" to the asoc tree Mark Brown 2019-10-18 15:48 ` Ben Dooks [this message] 2019-10-24 15:54 ` [alsa-devel] [PATCH v5 2/7] ASoC: tegra: Allow 24bit and 32bit samples Jon Hunter 2019-10-25 10:12 ` [alsa-devel] Applied "ASoC: tegra: Allow 24bit and 32bit samples" to the asoc tree Mark Brown 2019-11-23 21:09 ` [alsa-devel] [PATCH v5 2/7] ASoC: tegra: Allow 24bit and 32bit samples Dmitry Osipenko 2019-11-25 10:37 ` Ben Dooks 2019-11-25 17:22 ` Dmitry Osipenko 2019-11-25 17:28 ` Dmitry Osipenko 2019-12-19 21:21 ` Dmitry Osipenko 2019-12-20 10:56 ` Ben Dooks 2019-12-20 11:30 ` Jon Hunter 2019-12-20 11:38 ` Ben Dooks 2019-12-20 13:57 ` Jon Hunter 2019-12-20 14:43 ` Dmitry Osipenko 2019-12-20 14:56 ` Ben Dooks 2019-12-20 15:02 ` Dmitry Osipenko 2019-12-20 15:25 ` Ben Dooks 2019-12-20 16:40 ` Dmitry Osipenko 2019-12-20 17:06 ` Ben Dooks 2019-12-22 17:08 ` Dmitry Osipenko 2020-01-05 0:04 ` Ben Dooks 2020-01-05 1:48 ` Dmitry Osipenko 2020-01-05 10:53 ` Ben Dooks 2020-01-06 19:00 ` [alsa-devel] [Linux-kernel] " Ben Dooks 2020-01-07 1:39 ` Dmitry Osipenko 2020-01-08 11:37 ` Jon Hunter 2020-01-20 16:50 ` Dmitry Osipenko 2020-01-20 17:36 ` Ben Dooks 2020-01-23 19:38 ` Ben Dooks 2020-01-23 21:59 ` Ben Dooks 2020-01-23 22:11 ` Dmitry Osipenko 2020-01-24 4:31 ` Dmitry Osipenko 2020-01-24 16:56 ` Jon Hunter 2020-01-24 17:00 ` Mark Brown 2020-01-24 17:03 ` Ben Dooks 2020-01-24 16:50 ` Jon Hunter 2020-01-24 17:00 ` Ben Dooks 2020-01-28 7:49 ` Ricard Wanderlof 2020-01-24 17:06 ` Ben Dooks 2020-01-27 19:20 ` Dmitry Osipenko 2020-01-27 19:23 ` Dmitry Osipenko 2020-01-28 8:59 ` Ben Dooks 2020-01-28 13:19 ` Jon Hunter 2020-01-28 15:25 ` Dmitry Osipenko 2020-01-28 15:26 ` Mark Brown 2020-01-28 17:45 ` Dmitry Osipenko 2020-01-28 18:42 ` Jon Hunter 2020-01-30 8:04 ` Ben Dooks 2020-01-28 8:58 ` Ben Dooks 2020-01-28 12:13 ` Mark Brown 2020-01-28 17:42 ` Dmitry Osipenko 2020-01-28 18:19 ` Jon Hunter 2020-01-29 0:17 ` Dmitry Osipenko 2020-01-30 8:05 ` [alsa-devel] (no subject) Ben Dooks 2020-01-30 9:31 ` Clemens Ladisch 2020-01-30 9:39 ` Ben Dooks 2020-01-30 14:58 ` Clemens Ladisch 2020-01-31 10:50 ` Ben Dooks 2020-01-31 11:03 ` Clemens Ladisch 2020-01-29 10:49 ` [alsa-devel] [Linux-kernel] [PATCH v5 2/7] ASoC: tegra: Allow 24bit and 32bit samples Jon Hunter 2020-01-29 14:33 ` Jon Hunter 2020-01-29 15:22 ` Dmitry Osipenko 2020-01-30 8:17 ` Ben Dooks 2020-01-30 12:05 ` Jon Hunter 2020-01-30 12:07 ` Ben Dooks 2020-01-30 13:09 ` Jon Hunter 2020-01-30 13:10 ` Mark Brown 2020-03-19 15:32 ` Ben Dooks 2020-03-20 14:18 ` Dmitry Osipenko 2020-01-30 8:06 ` Ben Dooks 2020-01-29 17:52 ` Ben Dooks 2020-01-07 10:29 ` [alsa-devel] " Jon Hunter 2020-01-07 10:35 ` Ben Dooks 2020-01-21 18:15 ` Ben Dooks 2020-01-21 18:54 ` Dmitry Osipenko 2019-10-18 15:48 ` [alsa-devel] [PATCH v5 3/7] ASoC: tegra: i2s: Add support for more than 2 channels Ben Dooks 2019-10-24 16:12 ` Jon Hunter 2019-10-24 19:18 ` Mark Brown 2019-10-25 7:48 ` Jon Hunter 2019-10-18 15:48 ` [alsa-devel] [PATCH v5 4/7] ASoC: tegra: disable rx_fifo after disable stream Ben Dooks 2019-10-24 16:12 ` Jon Hunter 2019-10-25 10:12 ` [alsa-devel] Applied "ASoC: tegra: disable rx_fifo after disable stream" to the asoc tree Mark Brown 2019-10-18 15:48 ` [alsa-devel] [PATCH v5 5/7] ASoC: tegra: set i2s_offset to 0 for tdm Ben Dooks 2019-10-25 7:58 ` Jon Hunter 2019-10-18 15:48 ` [alsa-devel] [PATCH v5 6/7] ASoC: tegra: config fifos on hw_param changes Ben Dooks 2019-10-25 8:18 ` Jon Hunter 2019-10-18 15:48 ` [alsa-devel] [PATCH v5 7/7] ASoC: tegra: take packing settings from the audio cif_config Ben Dooks 2019-10-25 8:47 ` Jon Hunter
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191018154833.7560-3-ben.dooks@codethink.co.uk \ --to=ben.dooks@codethink.co.uk \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=edward.cragg@codethink.co.uk \ --cc=jonathanh@nvidia.com \ --cc=lgirdwood@gmail.com \ --cc=linux-kernel@lists.codethink.co.uk \ --cc=linux-tegra@vger.kernel.org \ --cc=perex@perex.cz \ --cc=thierry.reding@gmail.com \ --cc=tiwai@suse.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Alsa-Devel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/alsa-devel/0 alsa-devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 alsa-devel alsa-devel/ https://lore.kernel.org/alsa-devel \ alsa-devel@alsa-project.org public-inbox-index alsa-devel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.alsa-project.alsa-devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git