2019-08-09 17:50:30 +00:00
|
|
|
From 3dddc847d2889d096879b81480850ae4de1f3efe Mon Sep 17 00:00:00 2001
|
2019-07-09 18:32:28 +00:00
|
|
|
From: Annaliese McDermond <nh6z@nh6z.net>
|
|
|
|
Date: Thu, 21 Mar 2019 17:58:52 -0700
|
2019-08-09 17:50:30 +00:00
|
|
|
Subject: [PATCH 407/773] ASoC: tlv320aic32x4: Restructure set_dai_sysclk
|
2019-07-09 18:32:28 +00:00
|
|
|
|
|
|
|
commit aa6a60f7be925210d5156f0e8025f3afe1f4f54d upstream.
|
|
|
|
|
|
|
|
The sysclk is now managed by the CCF. Change this function
|
|
|
|
to merely find the system clock and set it using
|
|
|
|
clk_set_rate.
|
|
|
|
|
|
|
|
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
|
|
|
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
|
|
---
|
|
|
|
sound/soc/codecs/tlv320aic32x4.c | 17 ++++++-----------
|
|
|
|
1 file changed, 6 insertions(+), 11 deletions(-)
|
|
|
|
|
|
|
|
--- a/sound/soc/codecs/tlv320aic32x4.c
|
|
|
|
+++ b/sound/soc/codecs/tlv320aic32x4.c
|
|
|
|
@@ -49,7 +49,6 @@
|
|
|
|
|
|
|
|
struct aic32x4_priv {
|
|
|
|
struct regmap *regmap;
|
|
|
|
- u32 sysclk;
|
|
|
|
u32 power_cfg;
|
|
|
|
u32 micpga_routing;
|
|
|
|
bool swapdacs;
|
|
|
|
@@ -569,17 +568,13 @@ static int aic32x4_set_dai_sysclk(struct
|
|
|
|
int clk_id, unsigned int freq, int dir)
|
|
|
|
{
|
|
|
|
struct snd_soc_component *component = codec_dai->component;
|
|
|
|
- struct aic32x4_priv *aic32x4 = snd_soc_component_get_drvdata(component);
|
|
|
|
+ struct clk *mclk;
|
|
|
|
+ struct clk *pll;
|
|
|
|
|
|
|
|
- switch (freq) {
|
|
|
|
- case 12000000:
|
|
|
|
- case 24000000:
|
|
|
|
- case 25000000:
|
|
|
|
- aic32x4->sysclk = freq;
|
|
|
|
- return 0;
|
|
|
|
- }
|
|
|
|
- printk(KERN_ERR "aic32x4: invalid frequency to set DAI system clock\n");
|
|
|
|
- return -EINVAL;
|
|
|
|
+ pll = devm_clk_get(component->dev, "pll");
|
|
|
|
+ mclk = clk_get_parent(pll);
|
|
|
|
+
|
|
|
|
+ return clk_set_rate(mclk, freq);
|
|
|
|
}
|
|
|
|
|
|
|
|
static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
|