* [PATCH 2/2] ASoC: da7213: Add support for mono, set frame width to 32 when possible
@ 2022-12-14 4:40 David Rau
2022-12-14 14:21 ` Mark Brown
2022-12-27 11:57 ` Mark Brown
0 siblings, 2 replies; 6+ messages in thread
From: David Rau @ 2022-12-14 4:40 UTC (permalink / raw)
To: tiwai, perex, piotr.wojtaszczyk
Cc: support.opensource, lgirdwood, broonie, alsa-devel, linux-kernel,
David Rau
This adds the DAI mono mode support and set the frame width to 32
Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
Tested-by: David Rau <David.Rau.opensource@dm.renesas.com>
Signed-off-by: David Rau <David.Rau.opensource@dm.renesas.com>
---
sound/soc/codecs/da7213.c | 30 ++++++++++++++++++++++++++++--
sound/soc/codecs/da7213.h | 3 +++
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/da7213.c b/sound/soc/codecs/da7213.c
index 544ccbcfc884..0068780fe0a7 100644
--- a/sound/soc/codecs/da7213.c
+++ b/sound/soc/codecs/da7213.c
@@ -1157,13 +1157,31 @@ static int da7213_hw_params(struct snd_pcm_substream *substream,
{
struct snd_soc_component *component = dai->component;
struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
+ u8 dai_clk_mode = DA7213_DAI_BCLKS_PER_WCLK_64;
u8 dai_ctrl = 0;
u8 fs;
+ /* Set channels */
+ switch (params_channels(params)) {
+ case 1:
+ if (da7213->fmt != DA7213_DAI_FORMAT_DSP) {
+ dev_err(component->dev, "Mono supported only in DSP mode\n");
+ return -EINVAL;
+ }
+ dai_ctrl |= DA7213_DAI_MONO_MODE_EN;
+ break;
+ case 2:
+ dai_ctrl &= ~(DA7213_DAI_MONO_MODE_EN);
+ break;
+ default:
+ return -EINVAL;
+ }
+
/* Set DAI format */
switch (params_width(params)) {
case 16:
dai_ctrl |= DA7213_DAI_WORD_LENGTH_S16_LE;
+ dai_clk_mode = DA7213_DAI_BCLKS_PER_WCLK_32; /* 32bit for 1ch and 2ch */
break;
case 20:
dai_ctrl |= DA7213_DAI_WORD_LENGTH_S20_LE;
@@ -1224,8 +1242,11 @@ static int da7213_hw_params(struct snd_pcm_substream *substream,
return -EINVAL;
}
- snd_soc_component_update_bits(component, DA7213_DAI_CTRL, DA7213_DAI_WORD_LENGTH_MASK,
- dai_ctrl);
+ snd_soc_component_update_bits(component, DA7213_DAI_CLK_MODE,
+ DA7213_DAI_BCLKS_PER_WCLK_MASK, dai_clk_mode);
+
+ snd_soc_component_update_bits(component, DA7213_DAI_CTRL,
+ DA7213_DAI_WORD_LENGTH_MASK | DA7213_DAI_MONO_MODE_MASK, dai_ctrl);
snd_soc_component_write(component, DA7213_SR, fs);
return 0;
@@ -1300,19 +1321,24 @@ static int da7213_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
case SND_SOC_DAIFMT_I2S:
dai_ctrl |= DA7213_DAI_FORMAT_I2S_MODE;
+ da7213->fmt = DA7213_DAI_FORMAT_I2S_MODE;
break;
case SND_SOC_DAIFMT_LEFT_J:
dai_ctrl |= DA7213_DAI_FORMAT_LEFT_J;
+ da7213->fmt = DA7213_DAI_FORMAT_LEFT_J;
break;
case SND_SOC_DAIFMT_RIGHT_J:
dai_ctrl |= DA7213_DAI_FORMAT_RIGHT_J;
+ da7213->fmt = DA7213_DAI_FORMAT_RIGHT_J;
break;
case SND_SOC_DAI_FORMAT_DSP_A: /* L data MSB after FRM LRC */
dai_ctrl |= DA7213_DAI_FORMAT_DSP;
dai_offset = 1;
+ da7213->fmt = DA7213_DAI_FORMAT_DSP;
break;
case SND_SOC_DAI_FORMAT_DSP_B: /* L data MSB during FRM LRC */
dai_ctrl |= DA7213_DAI_FORMAT_DSP;
+ da7213->fmt = DA7213_DAI_FORMAT_DSP;
break;
default:
return -EINVAL;
diff --git a/sound/soc/codecs/da7213.h b/sound/soc/codecs/da7213.h
index 97ccf0ddd2be..4ca9cfdea06d 100644
--- a/sound/soc/codecs/da7213.h
+++ b/sound/soc/codecs/da7213.h
@@ -195,6 +195,8 @@
#define DA7213_DAI_WORD_LENGTH_S24_LE (0x2 << 2)
#define DA7213_DAI_WORD_LENGTH_S32_LE (0x3 << 2)
#define DA7213_DAI_WORD_LENGTH_MASK (0x3 << 2)
+#define DA7213_DAI_MONO_MODE_EN (0x1 << 4)
+#define DA7213_DAI_MONO_MODE_MASK (0x1 << 4)
#define DA7213_DAI_EN_SHIFT 7
/* DA7213_DIG_ROUTING_DAI = 0x21 */
@@ -542,6 +544,7 @@ struct da7213_priv {
bool alc_en;
bool fixed_clk_auto_pll;
struct da7213_platform_data *pdata;
+ int fmt;
};
#endif /* _DA7213_H */
--
2.17.1
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 2/2] ASoC: da7213: Add support for mono, set frame width to 32 when possible
2022-12-14 4:40 [PATCH 2/2] ASoC: da7213: Add support for mono, set frame width to 32 when possible David Rau
@ 2022-12-14 14:21 ` Mark Brown
[not found] ` <CAG+cZ07erTzV8Re-xo8GixpsEhK28Q6wHxQeE0co+sWgQAFgGA@mail.gmail.com>
2022-12-27 11:57 ` Mark Brown
1 sibling, 1 reply; 6+ messages in thread
From: Mark Brown @ 2022-12-14 14:21 UTC (permalink / raw)
To: David Rau
Cc: tiwai, perex, piotr.wojtaszczyk, support.opensource, lgirdwood,
alsa-devel, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 394 bytes --]
On Wed, Dec 14, 2022 at 04:40:58AM +0000, David Rau wrote:
> This adds the DAI mono mode support and set the frame width to 32
>
> Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
> Tested-by: David Rau <David.Rau.opensource@dm.renesas.com>
> Signed-off-by: David Rau <David.Rau.opensource@dm.renesas.com>
I only have patch 2 here, what's the story with dependencies?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 2/2] ASoC: da7213: Add support for mono, set frame width to 32 when possible
2022-12-14 4:40 [PATCH 2/2] ASoC: da7213: Add support for mono, set frame width to 32 when possible David Rau
2022-12-14 14:21 ` Mark Brown
@ 2022-12-27 11:57 ` Mark Brown
1 sibling, 0 replies; 6+ messages in thread
From: Mark Brown @ 2022-12-27 11:57 UTC (permalink / raw)
To: tiwai, perex, piotr.wojtaszczyk, David Rau
Cc: support.opensource, lgirdwood, alsa-devel, linux-kernel
On Wed, 14 Dec 2022 04:40:58 +0000, David Rau wrote:
> This adds the DAI mono mode support and set the frame width to 32
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[2/2] ASoC: da7213: Add support for mono, set frame width to 32 when possible
commit: c89e652e84f636354213aae42490c7f77a0eadde
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-12-27 11:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-14 4:40 [PATCH 2/2] ASoC: da7213: Add support for mono, set frame width to 32 when possible David Rau
2022-12-14 14:21 ` Mark Brown
[not found] ` <CAG+cZ07erTzV8Re-xo8GixpsEhK28Q6wHxQeE0co+sWgQAFgGA@mail.gmail.com>
2022-12-14 14:56 ` Mark Brown
2022-12-14 16:24 ` Piotr Wojtaszczyk
[not found] ` <OS3PR01MB66410E087BED80930430F72FCDE59@OS3PR01MB6641.jpnprd01.prod.outlook.com>
2022-12-19 18:12 ` Mark Brown
2022-12-27 11:57 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®