mirror of https://lore.kernel.org/lkml/
 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

  parent 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
     [not found]   ` <CGME20180205154453epcas1p10046e1103497692c86c0899a5ef11781@epcas1p1.samsung.com>
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
     [not found]   ` <CGME20180205154511epcas1p14dccb00b68fdb688f2c427c56e01c052@epcas1p1.samsung.com>
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
     [not found]   ` <CGME20180205154516epcas1p39c5977145e7b32879b935087ee3865f8@epcas1p3.samsung.com>
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
     [not found]   ` <CGME20180205154520epcas1p4132421a187a4d767a2f75badfef5eec4@epcas1p4.samsung.com>
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
     [not found]   ` <CGME20180205154524epcas1p35874552d9056837a162dc59d847d1930@epcas1p3.samsung.com>
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
     [not found]   ` <CGME20180205154529epcas2p3478546ef61294ac06cd9d8ed3d7e12c9@epcas2p3.samsung.com>
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
     [not found]   ` <CGME20180205154533epcas2p2d0ed58188cf7f29751c08cd804f6fb0d@epcas2p2.samsung.com>
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
     [not found]   ` <CGME20180205154537epcas1p10a9a30a574e3f472358e7dacf3cb0489@epcas1p1.samsung.com>
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

all inboxes | Powered by JetHome®