From: Nicolin Chen <nicoleotsuka@gmail.com>
To: timur@tabi.org, broonie@kernel.org, mail@maciej.szmigiero.name
Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
alsa-devel@alsa-project.org, lgirdwood@gmail.com,
fabio.estevam@nxp.com, caleb@crome.org,
arnaud.mouiche@invoxia.com, lukma@denx.de, kernel@pengutronix.de
Subject: [PATCH v2 12/16] ASoC: fsl_ssi: Setup AC97 in fsl_ssi_hw_init()
Date: Wed, 10 Jan 2018 22:43:11 -0800 [thread overview]
Message-ID: <1515652995-15996-13-git-send-email-nicoleotsuka@gmail.com> (raw)
In-Reply-To: <1515652995-15996-1-git-send-email-nicoleotsuka@gmail.com>
AC97 configures most of registers earlier to start a communication
with CODECs in order to successfully initialize CODEC. Currently,
_fsl_ssi_set_dai_fmt() and fsl_ssi_setup_ac97() are called to get
all SSI registers properly set.
Since now the driver has a fsl_ssi_hw_init() to handle all register
initial settings, this patch moves those register settings of AC97
to the fsl_ssi_hw_init() as well.
Meanwhile it applies _fsl_ssi_set_dai_fmt() call to AC97 only since
other formats would be configured via normal set_dai_fmt() directly.
This patch also adds fsl_ssi_hw_clean() to cleanup control bits for
AC97 in the platform remote() function.
Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
Tested-by: Caleb Crome <caleb@crome.org>
---
sound/soc/fsl/fsl_ssi.c | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
index 36e370e..178c192 100644
--- a/sound/soc/fsl/fsl_ssi.c
+++ b/sound/soc/fsl/fsl_ssi.c
@@ -982,9 +982,6 @@ static int _fsl_ssi_set_dai_fmt(struct device *dev,
regmap_write(regs, REG_SSI_SRCR, srcr);
regmap_write(regs, REG_SSI_SCR, scr);
- if ((fmt & SND_SOC_DAIFMT_FORMAT_MASK) == SND_SOC_DAIFMT_AC97)
- fsl_ssi_setup_ac97(ssi);
-
return 0;
}
@@ -1250,10 +1247,28 @@ static int fsl_ssi_hw_init(struct fsl_ssi *ssi)
regmap_update_bits(ssi->regs, REG_SSI_SCR,
SSI_SCR_TCH_EN, SSI_SCR_TCH_EN);
+ /* AC97 should start earlier to communicate with CODECs */
+ if (fsl_ssi_is_ac97(ssi)) {
+ _fsl_ssi_set_dai_fmt(ssi->dev, ssi, ssi->dai_fmt);
+ fsl_ssi_setup_ac97(ssi);
+ }
+
return 0;
}
/**
+ * Clear SSI registers
+ */
+static void fsl_ssi_hw_clean(struct fsl_ssi *ssi)
+{
+ /* Disable registers for AC97 */
+ if (fsl_ssi_is_ac97(ssi)) {
+ regmap_write(ssi->regs, REG_SSI_SCR, 0);
+ regmap_write(ssi->regs, REG_SSI_SACNT, 0);
+ regmap_write(ssi->regs, REG_SSI_SOR, 0);
+ }
+}
+/**
* Make every character in a string lower-case
*/
static void make_lowercase(char *s)
@@ -1535,9 +1550,6 @@ static int fsl_ssi_probe(struct platform_device *pdev)
}
done:
- if (ssi->dai_fmt)
- _fsl_ssi_set_dai_fmt(dev, ssi, ssi->dai_fmt);
-
/* Initially configures SSI registers */
fsl_ssi_hw_init(ssi);
@@ -1582,6 +1594,8 @@ static int fsl_ssi_remove(struct platform_device *pdev)
{
struct fsl_ssi *ssi = dev_get_drvdata(&pdev->dev);
+ fsl_ssi_hw_clean(ssi);
+
fsl_ssi_debugfs_remove(&ssi->dbg_stats);
if (ssi->pdev)
--
2.7.4
next prev parent reply other threads:[~2018-01-11 6:44 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-11 6:42 [PATCH v2 00/16] ASoC: fsl_ssi: Clean up - program flow level Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 01/16] ASoC: fsl_ssi: Keep ssi->i2s_net updated Nicolin Chen
2018-02-22 13:17 ` Applied "ASoC: fsl_ssi: Keep ssi->i2s_net updated" to the asoc tree Mark Brown
2018-01-11 6:43 ` [PATCH v2 02/16] ASoC: fsl_ssi: Clean up set_dai_tdm_slot() Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 03/16] ASoC: fsl_ssi: Maintain a mask of active streams Nicolin Chen
2018-01-14 22:34 ` Maciej S. Szmigiero
2018-01-14 23:57 ` Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 04/16] ASoC: fsl_ssi: Rename fsl_ssi_disable_val macro Nicolin Chen
2018-01-14 22:34 ` Maciej S. Szmigiero
2018-01-15 0:03 ` Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 05/16] ASoC: fsl_ssi: Clear FIFO directly in fsl_ssi_config() Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 06/16] ASoC: fsl_ssi: Clean up helper functions of trigger() Nicolin Chen
2018-01-14 22:37 ` Maciej S. Szmigiero
2018-01-11 6:43 ` [PATCH v2 07/16] ASoC: fsl_ssi: Add DAIFMT define for AC97 Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 08/16] ASoC: fsl_ssi: Clean up fsl_ssi_setup_regvals() Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 09/16] ASoC: fsl_ssi: Set xFEN0 and xFEN1 together Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 10/16] ASoC: fsl_ssi: Use snd_soc_init_dma_data instead Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 11/16] ASoC: fsl_ssi: Move one-time configurations to probe() Nicolin Chen
2018-01-11 6:43 ` Nicolin Chen [this message]
2018-01-11 6:43 ` [PATCH v2 13/16] ASoC: fsl_ssi: Clean up _fsl_ssi_set_dai_fmt() Nicolin Chen
2018-01-14 22:40 ` Maciej S. Szmigiero
2018-01-15 0:11 ` Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 14/16] ASoC: fsl_ssi: Remove cpu_dai_drv from fsl_ssi structure Nicolin Chen
2018-01-14 22:42 ` Maciej S. Szmigiero
2018-01-15 0:13 ` Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 15/16] ASoC: fsl_ssi: Move DT related code to a separate probe() Nicolin Chen
2018-01-11 6:43 ` [PATCH v2 16/16] ASoC: fsl_ssi: Use ssi->streams instead of reading register Nicolin Chen
2018-02-22 13:16 ` Applied "ASoC: fsl_ssi: Use ssi->streams instead of reading register" to the asoc tree Mark Brown
2018-01-12 17:35 ` [PATCH v2 00/16] ASoC: fsl_ssi: Clean up - program flow level Caleb Crome
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=1515652995-15996-13-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 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).