All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
To: Mark Brown <broonie@kernel.org>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>
Subject: [PATCH v3 19/21] ASoC: codecs: ak*: merge .digital_mute() into .mute_stream()
Date: 09 Jul 2020 10:57:10 +0900	[thread overview]
Message-ID: <87pn95wiwa.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <87h7uhxxk6.wl-kuninori.morimoto.gx@renesas.com>

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

snd_soc_dai_digital_mute() is internally using both
mute_stream() (1) or digital_mute() (2), but the difference between
these 2 are only handling direction.
We can merge digital_mute() into mute_stream

	int snd_soc_dai_digital_mute(xxx, int direction)
	{
		...
		else if (dai->driver->ops->mute_stream)
(1)			return dai->driver->ops->mute_stream(xxx, direction);
		else if (direction == SNDRV_PCM_STREAM_PLAYBACK &&
			 dai->driver->ops->digital_mute)
(2)			return dai->driver->ops->digital_mute(xxx);
		...
	}

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 sound/soc/codecs/ak4458.c | 5 +++--
 sound/soc/codecs/ak4535.c | 6 ++++--
 sound/soc/codecs/ak4641.c | 8 +++++---
 3 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/sound/soc/codecs/ak4458.c b/sound/soc/codecs/ak4458.c
index f180cb5dfe4f..0c51ba8f6072 100644
--- a/sound/soc/codecs/ak4458.c
+++ b/sound/soc/codecs/ak4458.c
@@ -401,7 +401,7 @@ static int ak4458_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 
 static const int att_speed[] = { 4080, 2040, 510, 255 };
 
-static int ak4458_set_dai_mute(struct snd_soc_dai *dai, int mute)
+static int ak4458_set_dai_mute(struct snd_soc_dai *dai, int mute, int direction)
 {
 	struct snd_soc_component *component = dai->component;
 	struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
@@ -495,8 +495,9 @@ static const struct snd_soc_dai_ops ak4458_dai_ops = {
 	.startup        = ak4458_startup,
 	.hw_params	= ak4458_hw_params,
 	.set_fmt	= ak4458_set_dai_fmt,
-	.digital_mute	= ak4458_set_dai_mute,
+	.mute_stream	= ak4458_set_dai_mute,
 	.set_tdm_slot	= ak4458_set_tdm_slot,
+	.no_capture_mute = 1,
 };
 
 static struct snd_soc_dai_driver ak4458_dai = {
diff --git a/sound/soc/codecs/ak4535.c b/sound/soc/codecs/ak4535.c
index f5ad1f59eb46..91e7a57c43da 100644
--- a/sound/soc/codecs/ak4535.c
+++ b/sound/soc/codecs/ak4535.c
@@ -309,10 +309,11 @@ static int ak4535_set_dai_fmt(struct snd_soc_dai *codec_dai,
 	return 0;
 }
 
-static int ak4535_mute(struct snd_soc_dai *dai, int mute)
+static int ak4535_mute(struct snd_soc_dai *dai, int mute, int direction)
 {
 	struct snd_soc_component *component = dai->component;
 	u16 mute_reg = snd_soc_component_read(component, AK4535_DAC);
+
 	if (!mute)
 		snd_soc_component_write(component, AK4535_DAC, mute_reg & ~0x20);
 	else
@@ -348,8 +349,9 @@ static int ak4535_set_bias_level(struct snd_soc_component *component,
 static const struct snd_soc_dai_ops ak4535_dai_ops = {
 	.hw_params	= ak4535_hw_params,
 	.set_fmt	= ak4535_set_dai_fmt,
-	.digital_mute	= ak4535_mute,
+	.mute_stream	= ak4535_mute,
 	.set_sysclk	= ak4535_set_dai_sysclk,
+	.no_capture_mute = 1,
 };
 
 static struct snd_soc_dai_driver ak4535_dai = {
diff --git a/sound/soc/codecs/ak4641.c b/sound/soc/codecs/ak4641.c
index 2d5b640aab58..77004cd7caa3 100644
--- a/sound/soc/codecs/ak4641.c
+++ b/sound/soc/codecs/ak4641.c
@@ -405,7 +405,7 @@ static int ak4641_i2s_set_dai_fmt(struct snd_soc_dai *codec_dai,
 	return snd_soc_component_write(component, AK4641_MODE1, mode1);
 }
 
-static int ak4641_mute(struct snd_soc_dai *dai, int mute)
+static int ak4641_mute(struct snd_soc_dai *dai, int mute, int direction)
 {
 	struct snd_soc_component *component = dai->component;
 
@@ -467,15 +467,17 @@ static int ak4641_set_bias_level(struct snd_soc_component *component,
 static const struct snd_soc_dai_ops ak4641_i2s_dai_ops = {
 	.hw_params    = ak4641_i2s_hw_params,
 	.set_fmt      = ak4641_i2s_set_dai_fmt,
-	.digital_mute = ak4641_mute,
+	.mute_stream  = ak4641_mute,
 	.set_sysclk   = ak4641_set_dai_sysclk,
+	.no_capture_mute = 1,
 };
 
 static const struct snd_soc_dai_ops ak4641_pcm_dai_ops = {
 	.hw_params    = NULL, /* rates are controlled by BT chip */
 	.set_fmt      = ak4641_pcm_set_dai_fmt,
-	.digital_mute = ak4641_mute,
+	.mute_stream  = ak4641_mute,
 	.set_sysclk   = ak4641_set_dai_sysclk,
+	.no_capture_mute = 1,
 };
 
 static struct snd_soc_dai_driver ak4641_dai[] = {
-- 
2.25.1


  parent reply	other threads:[~2020-07-09  2:07 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-09  1:55 [PATCH v3 00/21] ASoC: merge .digital_mute() into .mute_stream() Kuninori Morimoto
2020-07-09  1:55 ` [PATCH v3 01/21] ASoC: hdmi-codec: return -ENOTSUPP for digital_mute Kuninori Morimoto
2020-07-09  1:55 ` [PATCH v3 02/21] ASoC: soc-dai.c: add .no_capture_mute support Kuninori Morimoto
2020-07-09  1:55 ` [PATCH v3 03/21] ASoC: hdmi-codec: merge .digital_mute() into .mute_stream() Kuninori Morimoto
2020-07-09  1:55 ` [PATCH v3 04/21] ASoC: ti: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 05/21] ASoC: spear: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 06/21] ASoC: meson: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 07/21] ASoC: atmel: " Kuninori Morimoto
2020-07-16 20:44   ` Mark Brown
2020-07-16 23:27     ` Kuninori Morimoto
2020-07-16 23:59       ` Mark Brown
2020-07-09  1:56 ` [PATCH v3 08/21] ASoC: codecs: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 09/21] ASoC: codecs: tlv*: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 10/21] ASoC: codecs: tas*: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 11/21] ASoC: codecs: ssm*: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 12/21] ASoC: codecs: pcm*: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 13/21] ASoC: codecs: max*: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 14/21] ASoC: codecs: alc*: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 15/21] ASoC: codecs: wm*: " Kuninori Morimoto
2020-07-09  1:56 ` [PATCH v3 16/21] ASoC: codecs: es*: " Kuninori Morimoto
2020-07-09  1:57 ` [PATCH v3 17/21] ASoC: codecs: da*: " Kuninori Morimoto
2020-07-09  1:57 ` [PATCH v3 18/21] ASoC: codecs: cs*: " Kuninori Morimoto
2020-07-09  1:57 ` Kuninori Morimoto [this message]
2020-07-09  1:57 ` [PATCH v3 20/21] ASoC: soc-dai: remove .digital_mute Kuninori Morimoto
2020-07-09  1:57 ` [PATCH v3 21/21] ASoC: soc-core: snd_soc_dai_digital_mute() for both CPU/Codec Kuninori Morimoto
2020-07-16 23:56 ` [PATCH v3 00/21] ASoC: merge .digital_mute() into .mute_stream() Mark Brown

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=87pn95wiwa.wl-kuninori.morimoto.gx@renesas.com \
    --to=kuninori.morimoto.gx@renesas.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.