All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolin Chen <nicoleotsuka@gmail.com>
To: broonie@kernel.org, timur@tabi.org
Cc: caleb@crome.org, mail@maciej.szmigiero.name,
	fabio.estevam@nxp.com, alsa-devel@alsa-project.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	lgirdwood@gmail.com, arnaud.mouiche@invoxia.com, lukma@denx.de,
	kernel@pengutronix.de
Subject: [PATCH v6 02/17] ASoC: fsl_ssi: Keep ssi->i2s_net updated
Date: Mon, 12 Feb 2018 14:03:10 -0800	[thread overview]
Message-ID: <1518473005-14090-3-git-send-email-nicoleotsuka@gmail.com> (raw)
In-Reply-To: <1518473005-14090-1-git-send-email-nicoleotsuka@gmail.com>

The hw_params() overwrites i2s_net settings for special cases like
mono-channel support, however, it doesn't update ssi->i2s_net as
set_dai_fmt() does.

This patch removes the local i2s_net variable and directly updates
ssi->i2s_net in the hw_params() so that the driver can simply look
up the ssi->i2s_net instead of reading the register.

Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
Tested-by: Caleb Crome <caleb@crome.org>
Tested-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Reviewed-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
---
 sound/soc/fsl/fsl_ssi.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
index 3c8dd60..d4f1f0d 100644
--- a/sound/soc/fsl/fsl_ssi.c
+++ b/sound/soc/fsl/fsl_ssi.c
@@ -838,16 +838,16 @@ static int fsl_ssi_hw_params(struct snd_pcm_substream *substream,
 	}
 
 	if (!fsl_ssi_is_ac97(ssi)) {
-		u8 i2s_net;
 		/* Normal + Network mode to send 16-bit data in 32-bit frames */
 		if (fsl_ssi_is_i2s_cbm_cfs(ssi) && sample_size == 16)
-			i2s_net = SSI_SCR_I2S_MODE_NORMAL | SSI_SCR_NET;
-		else
-			i2s_net = ssi->i2s_net;
+			ssi->i2s_net = SSI_SCR_I2S_MODE_NORMAL | SSI_SCR_NET;
+
+		/* Use Normal mode to send mono data at 1st slot of 2 slots */
+		if (channels == 1)
+			ssi->i2s_net = SSI_SCR_I2S_MODE_NORMAL;
 
 		regmap_update_bits(regs, REG_SSI_SCR,
-				   SSI_SCR_I2S_NET_MASK,
-				   channels == 1 ? 0 : i2s_net);
+				   SSI_SCR_I2S_NET_MASK, ssi->i2s_net);
 	}
 
 	/* In synchronous mode, the SSI uses STCCR for capture */
-- 
2.1.4

  parent reply	other threads:[~2018-02-12 22:02 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-12 22:03 [PATCH v6 00/17] ASoC: fsl_ssi: Clean up - program flow level Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 01/17] ASoC: fsl_ssi: Redefine RX and TX macros Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` Nicolin Chen [this message]
2018-02-12 22:03 ` [PATCH v6 03/17] ASoC: fsl_ssi: Clean up set_dai_tdm_slot() Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 04/17] ASoC: fsl_ssi: Maintain a mask of active streams Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 05/17] ASoC: fsl_ssi: Rename fsl_ssi_disable_val macro Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 06/17] ASoC: fsl_ssi: Clear FIFO directly in fsl_ssi_config() Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 07/17] ASoC: fsl_ssi: Clean up helper functions of trigger() Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 08/17] ASoC: fsl_ssi: Add DAIFMT define for AC97 Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 09/17] ASoC: fsl_ssi: Clean up fsl_ssi_setup_regvals() Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 10/17] ASoC: fsl_ssi: Set xFEN0 and xFEN1 together Nicolin Chen
2018-02-12 22:03   ` Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 11/17] ASoC: fsl_ssi: Use snd_soc_init_dma_data instead Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 12/17] ASoC: fsl_ssi: Move one-time configurations to probe() Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 13/17] ASoC: fsl_ssi: Setup AC97 in fsl_ssi_hw_init() Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 14/17] ASoC: fsl_ssi: Clean up _fsl_ssi_set_dai_fmt() Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 15/17] ASoC: fsl_ssi: Add bool synchronous to mark synchronous mode Nicolin Chen
2018-02-12 22:03 ` [PATCH v6 16/17] ASoC: fsl_ssi: Move DT related code to a separate probe() Nicolin Chen
2018-02-22 13:16   ` Applied "ASoC: fsl_ssi: Move DT related code to a separate probe()" to the asoc tree Mark Brown
2018-02-22 13:16     ` Mark Brown
2018-02-12 22:03 ` [PATCH v6 17/17] ASoC: fsl_ssi: Use ssi->streams instead of reading register Nicolin Chen

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=1518473005-14090-3-git-send-email-nicoleotsuka@gmail.com \
    --to=nicoleotsuka@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnaud.mouiche@invoxia.com \
    --cc=broonie@kernel.org \
    --cc=caleb@crome.org \
    --cc=fabio.estevam@nxp.com \
    --cc=kernel@pengutronix.de \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lukma@denx.de \
    --cc=mail@maciej.szmigiero.name \
    --cc=timur@tabi.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.