All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais
@ 2021-10-06 17:27 Srinivas Kandagatla
  2021-10-06 17:27 ` [PATCH 1/2] " Srinivas Kandagatla
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Srinivas Kandagatla @ 2021-10-06 17:27 UTC (permalink / raw)
  To: broonie
  Cc: alsa-devel, bgoswami, tiwai, plai, lgirdwood, pierre-louis.bossart

This patchset adds support for testing WCD938X connected via TX and RX Macros
on SM8250 MTP.

Srinivas Kandagatla (2):
  ASoC: qcom: sm8250: add support for TX and RX Macro dais
  ASoC: qcom: sm8250: Add Jack support

 sound/soc/qcom/sm8250.c | 79 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

-- 
2.21.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais
  2021-10-06 17:27 [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais Srinivas Kandagatla
@ 2021-10-06 17:27 ` Srinivas Kandagatla
  2021-10-06 17:27 ` [PATCH 2/2] ASoC: qcom: sm8250: Add Jack support Srinivas Kandagatla
  2021-10-21 13:00 ` [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Srinivas Kandagatla @ 2021-10-06 17:27 UTC (permalink / raw)
  To: broonie
  Cc: alsa-devel, bgoswami, tiwai, plai, lgirdwood, pierre-louis.bossart

On SM8250 MTP boards WCD938x codec is connected via TX and RX Macros,
so add support for this dais in the soundcard driver.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/sm8250.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c
index fe8fd7367e21..9f2f0598a222 100644
--- a/sound/soc/qcom/sm8250.c
+++ b/sound/soc/qcom/sm8250.c
@@ -69,6 +69,12 @@ static int sm8250_snd_hw_params(struct snd_pcm_substream *substream,
 
 	switch (cpu_dai->id) {
 	case WSA_CODEC_DMA_RX_0:
+	case RX_CODEC_DMA_RX_0:
+	case RX_CODEC_DMA_RX_1:
+	case TX_CODEC_DMA_TX_0:
+	case TX_CODEC_DMA_TX_1:
+	case TX_CODEC_DMA_TX_2:
+	case TX_CODEC_DMA_TX_3:
 		for_each_rtd_codec_dais(rtd, i, codec_dai) {
 			sruntime = snd_soc_dai_get_sdw_stream(codec_dai,
 						      substream->stream);
@@ -129,6 +135,12 @@ static int sm8250_snd_prepare(struct snd_pcm_substream *substream)
 	switch (cpu_dai->id) {
 	case WSA_CODEC_DMA_RX_0:
 	case WSA_CODEC_DMA_RX_1:
+	case RX_CODEC_DMA_RX_0:
+	case RX_CODEC_DMA_RX_1:
+	case TX_CODEC_DMA_TX_0:
+	case TX_CODEC_DMA_TX_1:
+	case TX_CODEC_DMA_TX_2:
+	case TX_CODEC_DMA_TX_3:
 		return sm8250_snd_wsa_dma_prepare(substream);
 	default:
 		break;
@@ -147,6 +159,12 @@ static int sm8250_snd_hw_free(struct snd_pcm_substream *substream)
 	switch (cpu_dai->id) {
 	case WSA_CODEC_DMA_RX_0:
 	case WSA_CODEC_DMA_RX_1:
+	case RX_CODEC_DMA_RX_0:
+	case RX_CODEC_DMA_RX_1:
+	case TX_CODEC_DMA_TX_0:
+	case TX_CODEC_DMA_TX_1:
+	case TX_CODEC_DMA_TX_2:
+	case TX_CODEC_DMA_TX_3:
 		if (sruntime && data->stream_prepared[cpu_dai->id]) {
 			sdw_disable_stream(sruntime);
 			sdw_deprepare_stream(sruntime);
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] ASoC: qcom: sm8250: Add Jack support
  2021-10-06 17:27 [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais Srinivas Kandagatla
  2021-10-06 17:27 ` [PATCH 1/2] " Srinivas Kandagatla
@ 2021-10-06 17:27 ` Srinivas Kandagatla
  2021-10-21 13:00 ` [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Srinivas Kandagatla @ 2021-10-06 17:27 UTC (permalink / raw)
  To: broonie
  Cc: alsa-devel, bgoswami, tiwai, plai, lgirdwood, pierre-louis.bossart

WCD938X on SM8250 MTP is connected via TX macro which has MBHC support,
So add this jack support in the soundcard driver too.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/sm8250.c | 61 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c
index 9f2f0598a222..b2ca2579810b 100644
--- a/sound/soc/qcom/sm8250.c
+++ b/sound/soc/qcom/sm8250.c
@@ -8,6 +8,8 @@
 #include <sound/soc-dapm.h>
 #include <sound/pcm.h>
 #include <linux/soundwire/sdw.h>
+#include <sound/jack.h>
+#include <linux/input-event-codes.h>
 #include "qdsp6/q6afe.h"
 #include "common.h"
 
@@ -18,8 +20,66 @@ struct sm8250_snd_data {
 	bool stream_prepared[AFE_PORT_MAX];
 	struct snd_soc_card *card;
 	struct sdw_stream_runtime *sruntime[AFE_PORT_MAX];
+	struct snd_soc_jack jack;
+	bool jack_setup;
 };
 
+static int sm8250_snd_init(struct snd_soc_pcm_runtime *rtd)
+{
+	struct sm8250_snd_data *data = snd_soc_card_get_drvdata(rtd->card);
+	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
+	struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
+	struct snd_soc_card *card = rtd->card;
+	int rval, i;
+
+	if (!data->jack_setup) {
+		struct snd_jack *jack;
+
+		rval = snd_soc_card_jack_new(card, "Headset Jack",
+					     SND_JACK_HEADSET | SND_JACK_LINEOUT |
+					     SND_JACK_MECHANICAL |
+					     SND_JACK_BTN_0 | SND_JACK_BTN_1 |
+					     SND_JACK_BTN_2 | SND_JACK_BTN_3 |
+					     SND_JACK_BTN_4 | SND_JACK_BTN_5,
+					     &data->jack, NULL, 0);
+
+		if (rval < 0) {
+			dev_err(card->dev, "Unable to add Headphone Jack\n");
+			return rval;
+		}
+
+		jack = data->jack.jack;
+
+		snd_jack_set_key(jack, SND_JACK_BTN_0, KEY_MEDIA);
+		snd_jack_set_key(jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
+		snd_jack_set_key(jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
+		snd_jack_set_key(jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
+		data->jack_setup = true;
+	}
+
+	switch (cpu_dai->id) {
+	case TX_CODEC_DMA_TX_0:
+	case TX_CODEC_DMA_TX_1:
+	case TX_CODEC_DMA_TX_2:
+	case TX_CODEC_DMA_TX_3:
+		for_each_rtd_codec_dais(rtd, i, codec_dai) {
+			rval = snd_soc_component_set_jack(codec_dai->component,
+							  &data->jack, NULL);
+			if (rval != 0 && rval != -ENOTSUPP) {
+				dev_warn(card->dev, "Failed to set jack: %d\n", rval);
+				return rval;
+			}
+		}
+
+		break;
+	default:
+		break;
+	}
+
+
+	return 0;
+}
+
 static int sm8250_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 				     struct snd_pcm_hw_params *params)
 {
@@ -192,6 +252,7 @@ static void sm8250_add_be_ops(struct snd_soc_card *card)
 
 	for_each_card_prelinks(card, i, link) {
 		if (link->no_pcm == 1) {
+			link->init = sm8250_snd_init;
 			link->be_hw_params_fixup = sm8250_be_hw_params_fixup;
 			link->ops = &sm8250_be_ops;
 		}
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais
  2021-10-06 17:27 [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais Srinivas Kandagatla
  2021-10-06 17:27 ` [PATCH 1/2] " Srinivas Kandagatla
  2021-10-06 17:27 ` [PATCH 2/2] ASoC: qcom: sm8250: Add Jack support Srinivas Kandagatla
@ 2021-10-21 13:00 ` Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2021-10-21 13:00 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: alsa-devel, bgoswami, tiwai, plai, pierre-louis.bossart,
	lgirdwood, Mark Brown

On Wed, 6 Oct 2021 18:27:43 +0100, Srinivas Kandagatla wrote:
> This patchset adds support for testing WCD938X connected via TX and RX Macros
> on SM8250 MTP.
> 
> Srinivas Kandagatla (2):
>   ASoC: qcom: sm8250: add support for TX and RX Macro dais
>   ASoC: qcom: sm8250: Add Jack support
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais
      commit: 961e7ba550c7a1f51012713afb75fb8d86a636eb
[2/2] ASoC: qcom: sm8250: Add Jack support
      commit: 810532e7392e764be5ee1b85603585065fa3e86b

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] 4+ messages in thread

end of thread, other threads:[~2021-10-21 13:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-06 17:27 [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais Srinivas Kandagatla
2021-10-06 17:27 ` [PATCH 1/2] " Srinivas Kandagatla
2021-10-06 17:27 ` [PATCH 2/2] ASoC: qcom: sm8250: Add Jack support Srinivas Kandagatla
2021-10-21 13:00 ` [PATCH 0/2] ASoC: qcom: sm8250: add support for TX and RX Macro dais Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.