diff mbox series

[1/2] ASoC: wm8960: Read initial MCLK rate from clock API

Message ID 20230731-asoc-wm8960-clk-v1-1-69f9ffa2b10a@kernel.org (mailing list archive)
State Accepted
Commit 0169cc3f200cbd737a57592fc478b24ff3cec3c5
Headers show
Series ASoC: wm8960: Clocking tweaks | expand

Commit Message

Mark Brown July 31, 2023, 10:47 a.m. UTC
When we have a MCLK provided by the clock API read the rate at startup
and store it so that there's something set before the machine driver has
done clocking configuration (eg, if it only configures clocking based on
sample rate).

Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/codecs/wm8960.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Charles Keepax July 31, 2023, 3:08 p.m. UTC | #1
On Mon, Jul 31, 2023 at 11:47:02AM +0100, Mark Brown wrote:
> When we have a MCLK provided by the clock API read the rate at startup
> and store it so that there's something set before the machine driver has
> done clocking configuration (eg, if it only configures clocking based on
> sample rate).
> 
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---

Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles
diff mbox series

Patch

diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c
index 366f5d769d6d..c0ce1ef75a74 100644
--- a/sound/soc/codecs/wm8960.c
+++ b/sound/soc/codecs/wm8960.c
@@ -1425,6 +1425,14 @@  static int wm8960_i2c_probe(struct i2c_client *i2c)
 	if (IS_ERR(wm8960->mclk)) {
 		if (PTR_ERR(wm8960->mclk) == -EPROBE_DEFER)
 			return -EPROBE_DEFER;
+	} else {
+		ret = clk_get_rate(wm8960->mclk);
+		if (ret >= 0) {
+			wm8960->freq_in = ret;
+		} else {
+			dev_err(&i2c->dev, "Failed to read MCLK rate: %d\n",
+				ret);
+		}
 	}
 
 	wm8960->regmap = devm_regmap_init_i2c(i2c, &wm8960_regmap);