linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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 related	[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
       [not found]   ` <CAG+cZ07erTzV8Re-xo8GixpsEhK28Q6wHxQeE0co+sWgQAFgGA@mail.gmail.com>
@ 2022-12-14 14:56     ` Mark Brown
  2022-12-14 16:24       ` Piotr Wojtaszczyk
  0 siblings, 1 reply; 6+ messages in thread
From: Mark Brown @ 2022-12-14 14:56 UTC (permalink / raw)
  To: Piotr Wojtaszczyk
  Cc: David Rau, tiwai, perex, support.opensource, lgirdwood,
	alsa-devel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 464 bytes --]

On Wed, Dec 14, 2022 at 03:31:26PM +0100, Piotr Wojtaszczyk wrote:
> It was a single patch, with no deps.
> 

It's flagged as patch 2/2?

> On Wed, Dec 14, 2022 at 3:21 PM Mark Brown <broonie@kernel.org> wrote:

Please don't top post, reply in line with needed context.  This allows
readers to readily follow the flow of conversation and understand what
you are talking about and also helps ensure that everything in the
discussion is being addressed.

[-- 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 14:56     ` Mark Brown
@ 2022-12-14 16:24       ` Piotr Wojtaszczyk
       [not found]         ` <OS3PR01MB66410E087BED80930430F72FCDE59@OS3PR01MB6641.jpnprd01.prod.outlook.com>
  0 siblings, 1 reply; 6+ messages in thread
From: Piotr Wojtaszczyk @ 2022-12-14 16:24 UTC (permalink / raw)
  To: Mark Brown
  Cc: David Rau, tiwai, perex, support.opensource, lgirdwood,
	alsa-devel, linux-kernel

On Wed, Dec 14, 2022 at 3:56 PM Mark Brown <broonie@kernel.org> wrote:
>
> On Wed, Dec 14, 2022 at 03:31:26PM +0100, Piotr Wojtaszczyk wrote:
> > It was a single patch, with no deps.
> >
>
> It's flagged as patch 2/2?

That's wrong tag, initially I submitted this as a single patch to
`support.opensource@diasemi.com` and now it comes on LKML after
testing by David Rau.

--
Piotr Wojtaszczyk
Timesys

^ 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
       [not found]         ` <OS3PR01MB66410E087BED80930430F72FCDE59@OS3PR01MB6641.jpnprd01.prod.outlook.com>
@ 2022-12-19 18:12           ` Mark Brown
  0 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2022-12-19 18:12 UTC (permalink / raw)
  To: David.Rau.opensource
  Cc: Piotr Wojtaszczyk, tiwai, perex, support.opensource, lgirdwood,
	alsa-devel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 538 bytes --]

On Mon, Dec 19, 2022 at 03:52:52AM +0000, David.Rau.opensource wrote:

> Is there anything I should modify or correct to make this commit move forward?

This is a new feature and we're in the merge window so no new features
will be applied at the minute.  Please wait till after the merge window.

Please don't top post, reply in line with needed context.  This allows
readers to readily follow the flow of conversation and understand what
you are talking about and also helps ensure that everything in the
discussion is being addressed.

[-- 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;
as well as URLs for NNTP newsgroup(s).