The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: broonie@kernel.org
Cc: lgirdwood@gmail.com, alsa-devel@alsa-project.org,
	robh+dt@kernel.org, devicetree@vger.kernel.org,
	linux-samsung-soc@vger.kernel.org, krzk@kernel.org,
	jcsing.lee@samsung.com, sbkim73@samsung.com,
	linux-kernel@vger.kernel.org, b.zolnierkie@samsung.com,
	m.szyprowski@samsung.com,
	Sylwester Nawrocki <s.nawrocki@samsung.com>
Subject: [PATCH 1/8] ASoC: samsung: i2s: Ensure the RCLK rate is properly determined
Date: Mon, 05 Feb 2018 16:43:56 +0100	[thread overview]
Message-ID: <20180205154403.13520-2-s.nawrocki@samsung.com> (raw)
In-Reply-To: <20180205154403.13520-1-s.nawrocki@samsung.com>

If the RCLK mux clock configuration is specified in DT and no set_sysclk()
callback is used in the sound card driver the sclk_srcrate field will remain
set to 0, leading to an incorrect PSR divider setting.
To fix this the frequency value is retrieved from the CLK_I2S_RCLK_SRC clock,
so the actual RCLK mux selection is taken into account.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
---
 sound/soc/samsung/i2s.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index 233f1c9a4b6c..aeba0ae890ea 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -656,8 +656,12 @@ static int i2s_set_fmt(struct snd_soc_dai *dai,
 		tmp |= mod_slave;
 		break;
 	case SND_SOC_DAIFMT_CBS_CFS:
-		/* Set default source clock in Master mode */
-		if (i2s->rclk_srcrate == 0)
+		/*
+		 * Set default source clock in Master mode, only when the
+		 * CLK_I2S_RCLK_SRC clock is not exposed so we ensure any
+		 * clock configuration assigned in DT is not overwritten.
+		 */
+		if (i2s->rclk_srcrate == 0 && i2s->clk_data.clks == NULL)
 			i2s_set_sysclk(dai, SAMSUNG_I2S_RCLKSRC_0,
 							0, SND_SOC_CLOCK_IN);
 		break;
@@ -881,6 +885,11 @@ static int config_setup(struct i2s_dai *i2s)
 		return 0;
 
 	if (!(i2s->quirks & QUIRK_NO_MUXPSR)) {
+		struct clk *rclksrc = i2s->clk_table[CLK_I2S_RCLK_SRC];
+
+		if (i2s->rclk_srcrate == 0 && rclksrc && !IS_ERR(rclksrc))
+			i2s->rclk_srcrate = clk_get_rate(rclksrc);
+
 		psr = i2s->rclk_srcrate / i2s->frmclk / rfs;
 		writel(((psr - 1) << 8) | PSR_PSREN, i2s->addr + I2SPSR);
 		dev_dbg(&i2s->pdev->dev,
-- 
2.14.2

  reply	other threads:[~2018-02-05 15:45 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20180205154421epcas2p16072f713ea81f72b3f8230f6a9d412cf@epcas2p1.samsung.com>
2018-02-05 15:43 ` [PATCH 0/8] ASoC: samsung: Add HDMI sound support for tm2 board Sylwester Nawrocki
2018-02-05 15:43   ` Sylwester Nawrocki [this message]
2018-02-06 12:15     ` [PATCH 1/8] ASoC: samsung: i2s: Ensure the RCLK rate is properly determined Krzysztof Kozlowski
2018-02-12 12:52     ` Applied "ASoC: samsung: i2s: Ensure the RCLK rate is properly determined" to the asoc tree Mark Brown
2018-02-05 15:43   ` [PATCH 2/8] ASoC: samsung: i2s: Ensure names of supplied clocks are unique Sylwester Nawrocki
2018-02-06 12:20     ` Krzysztof Kozlowski
2018-02-07 15:20       ` Sylwester Nawrocki
2018-02-05 15:43   ` [PATCH 3/8] ASoC: samsung: i2s: Prevent external abort on exynos5433 I2S1 access Sylwester Nawrocki
2018-02-06 12:22     ` Krzysztof Kozlowski
2018-02-05 15:43   ` [PATCH 4/8] ASoC: samsung: i2s: Define the parameters list for SAMSUNG_I2S_OPCLK Sylwester Nawrocki
2018-02-06 12:26     ` Krzysztof Kozlowski
2018-02-07 16:23       ` Sylwester Nawrocki
2018-02-12 10:00         ` Krzysztof Kozlowski
2018-02-14 13:29     ` Applied "ASoC: samsung: i2s: Define the parameters list for SAMSUNG_I2S_OPCLK" to the asoc tree Mark Brown
2018-02-05 15:44   ` [PATCH 5/8] ASoC: samsung: Add support for HDMI audio on TM2 board Sylwester Nawrocki
2018-02-06 12:57     ` Krzysztof Kozlowski
2018-02-05 15:44   ` [PATCH 6/8] ASoC: samsung: i2s: Update clock-output-names property documentation Sylwester Nawrocki
2018-02-06 12:59     ` Krzysztof Kozlowski
2018-02-06 12:59       ` Krzysztof Kozlowski
2018-02-09  2:36     ` Rob Herring
2018-02-05 15:44   ` [PATCH 7/8] ASoC: samsung: Add missing #sound-dai-cells " Sylwester Nawrocki
2018-02-06 13:02     ` Krzysztof Kozlowski
2018-02-07 16:37       ` Sylwester Nawrocki
2018-02-05 15:44   ` [PATCH 8/8] ASoC: samsung,tm2-audio DT binding documentation update Sylwester Nawrocki
2018-02-06 13:05     ` Krzysztof Kozlowski
2018-02-07 16:31       ` Sylwester Nawrocki
2018-02-12  9:19         ` Krzysztof Kozlowski
2018-02-09  2:39     ` Rob Herring
2018-02-14 13:29     ` Applied "ASoC: samsung,tm2-audio DT binding documentation update" to the asoc tree 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=20180205154403.13520-2-s.nawrocki@samsung.com \
    --to=s.nawrocki@samsung.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jcsing.lee@samsung.com \
    --cc=krzk@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=robh+dt@kernel.org \
    --cc=sbkim73@samsung.com \
    /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