summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnnaliese McDermond2019-03-22 01:58:52 +0100
committerMark Brown2019-03-25 16:54:56 +0100
commitaa6a60f7be925210d5156f0e8025f3afe1f4f54d (patch)
tree701da0b46f3646facadf572bda3adf8f5fc5875d
parentASoC: tlv320aic32x4: Dynamically Determine Clocking (diff)
downloadkernel-qcow2-linux-aa6a60f7be925210d5156f0e8025f3afe1f4f54d.tar.gz
kernel-qcow2-linux-aa6a60f7be925210d5156f0e8025f3afe1f4f54d.tar.xz
kernel-qcow2-linux-aa6a60f7be925210d5156f0e8025f3afe1f4f54d.zip
ASoC: tlv320aic32x4: Restructure set_dai_sysclk
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>
-rw-r--r--sound/soc/codecs/tlv320aic32x4.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c
index 625528500f8d..289bf411e60e 100644
--- 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;
@@ -567,17 +566,13 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,
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)