From: Russell King <rmk+kernel@arm.linux.org.uk>
To: Mark Brown <broonie@kernel.org>
Cc: Takashi Iwai <tiwai@suse.de>,
alsa-devel@alsa-project.org, Liam Girdwood <lgirdwood@gmail.com>,
linux-arm-kernel@lists.infradead.org,
Jaroslav Kysela <perex@perex.cz>
Subject: [PATCH 4/7] ASoC: kirkwood-i2s: fix mute handling
Date: Thu, 26 Jun 2014 15:23:05 +0100 [thread overview]
Message-ID: <E1X0AZt-0003iM-B0@rmk-PC.arm.linux.org.uk> (raw)
In-Reply-To: <20140626142231.GR32514@n2100.arm.linux.org.uk>
The spec requires that the mute bits must be set while the channel
is disabled. Ensure that this is the case by providing a helper
which ensures that the appropriate mute bit is set while the enable
bit is clear.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
sound/soc/kirkwood/kirkwood-i2s.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c
index ef1a164d8703..b601ad680d7b 100644
--- a/sound/soc/kirkwood/kirkwood-i2s.c
+++ b/sound/soc/kirkwood/kirkwood-i2s.c
@@ -222,6 +222,15 @@ static int kirkwood_i2s_hw_params(struct snd_pcm_substream *substream,
return 0;
}
+static unsigned kirkwood_i2s_play_mute(unsigned ctl)
+{
+ if (!(ctl & KIRKWOOD_PLAYCTL_I2S_EN))
+ ctl |= KIRKWOOD_PLAYCTL_I2S_MUTE;
+ if (!(ctl & KIRKWOOD_PLAYCTL_SPDIF_EN))
+ ctl |= KIRKWOOD_PLAYCTL_SPDIF_MUTE;
+ return ctl;
+}
+
static int kirkwood_i2s_play_trigger(struct snd_pcm_substream *substream,
int cmd, struct snd_soc_dai *dai)
{
@@ -257,7 +266,7 @@ static int kirkwood_i2s_play_trigger(struct snd_pcm_substream *substream,
ctl &= ~KIRKWOOD_PLAYCTL_SPDIF_EN; /* i2s */
else
ctl &= ~KIRKWOOD_PLAYCTL_I2S_EN; /* spdif */
-
+ ctl = kirkwood_i2s_play_mute(ctl);
value = ctl & ~KIRKWOOD_PLAYCTL_ENABLE_MASK;
writel(value, priv->io + KIRKWOOD_PLAYCTL);
@@ -296,6 +305,7 @@ static int kirkwood_i2s_play_trigger(struct snd_pcm_substream *substream,
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
ctl &= ~(KIRKWOOD_PLAYCTL_PAUSE | KIRKWOOD_PLAYCTL_I2S_MUTE |
KIRKWOOD_PLAYCTL_SPDIF_MUTE);
+ ctl = kirkwood_i2s_play_mute(ctl);
writel(ctl, priv->io + KIRKWOOD_PLAYCTL);
break;
--
1.8.3.1
next prev parent reply other threads:[~2014-06-26 14:23 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-26 14:22 [PATCH 0/7] Kirkwood ASoC updates Russell King - ARM Linux
2014-06-26 14:22 ` [PATCH 1/7] ASoC: fix debugfs directory creation bug Russell King
2014-06-27 2:45 ` Lars-Peter Clausen
2014-06-28 12:46 ` Mark Brown
2014-06-26 14:22 ` [PATCH 2/7] ASoC: kirkwood-i2s: provide helper KIRKWOOD_RECCTL_ENABLE_MASK definition Russell King
2014-06-26 14:23 ` [PATCH 3/7] ASoC: kirkwood-i2s: fix RECCTL masking Russell King
2014-06-26 14:23 ` Russell King [this message]
2014-06-26 14:23 ` [PATCH 5/7] ASoC: kirkwood-i2s: fix pause handling some more Russell King
2014-06-26 14:23 ` [PATCH 6/7] ASoC: kirkwood: allow smaller audio periods and smaller number of periods Russell King
2014-06-26 14:23 ` [PATCH 7/7] ASoC: kirkwood: implement NO_PERIOD_WAKEUP support Russell King
2014-06-26 18:10 ` [PATCH 0/7] Kirkwood ASoC updates Andrew Lunn
2014-06-26 18:22 ` Russell King - ARM Linux
2014-06-28 12:47 ` 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=E1X0AZt-0003iM-B0@rmk-PC.arm.linux.org.uk \
--to=rmk+kernel@arm.linux.org.uk \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=perex@perex.cz \
--cc=tiwai@suse.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox