OSDN Git Service

ASoC: tlv320aic32x4: Restructure set_dai_sysclk
authorAnnaliese McDermond <nh6z@nh6z.net>
Fri, 22 Mar 2019 00:58:52 +0000 (17:58 -0700)
committerMark Brown <broonie@kernel.org>
Mon, 25 Mar 2019 15:54:56 +0000 (15:54 +0000)
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

index 6255285..289bf41 100644 (file)
@@ -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)