OSDN Git Service

ASoC: da7213: move set_sysclk to codec level
authorSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 11 May 2020 13:25:42 +0000 (15:25 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 18 May 2020 13:34:54 +0000 (14:34 +0100)
Move set_sysclk function to component level, so that it can be used at
both component and DAI level.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Link: https://lore.kernel.org/r/20200511132544.82364-4-sebastian.reichel@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/da7213.c

index 0359249..9686948 100644 (file)
@@ -1343,10 +1343,10 @@ static int da7213_mute(struct snd_soc_dai *dai, int mute)
 #define DA7213_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
                        SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
 
-static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai,
-                                int clk_id, unsigned int freq, int dir)
+static int da7213_set_component_sysclk(struct snd_soc_component *component,
+                                      int clk_id, int source,
+                                      unsigned int freq, int dir)
 {
-       struct snd_soc_component *component = codec_dai->component;
        struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
        int ret = 0;
 
@@ -1354,7 +1354,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai,
                return 0;
 
        if (((freq < 5000000) && (freq != 32768)) || (freq > 54000000)) {
-               dev_err(codec_dai->dev, "Unsupported MCLK value %d\n",
+               dev_err(component->dev, "Unsupported MCLK value %d\n",
                        freq);
                return -EINVAL;
        }
@@ -1370,7 +1370,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai,
                                    DA7213_PLL_MCLK_SQR_EN);
                break;
        default:
-               dev_err(codec_dai->dev, "Unknown clock source %d\n", clk_id);
+               dev_err(component->dev, "Unknown clock source %d\n", clk_id);
                return -EINVAL;
        }
 
@@ -1380,7 +1380,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai,
                freq = clk_round_rate(da7213->mclk, freq);
                ret = clk_set_rate(da7213->mclk, freq);
                if (ret) {
-                       dev_err(codec_dai->dev, "Failed to set clock rate %d\n",
+                       dev_err(component->dev, "Failed to set clock rate %d\n",
                                freq);
                        return ret;
                }
@@ -1507,7 +1507,6 @@ static int da7213_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
 static const struct snd_soc_dai_ops da7213_dai_ops = {
        .hw_params      = da7213_hw_params,
        .set_fmt        = da7213_set_dai_fmt,
-       .set_sysclk     = da7213_set_dai_sysclk,
        .set_pll        = da7213_set_dai_pll,
        .digital_mute   = da7213_mute,
 };
@@ -1845,6 +1844,7 @@ static const struct snd_soc_component_driver soc_component_dev_da7213 = {
        .num_dapm_widgets       = ARRAY_SIZE(da7213_dapm_widgets),
        .dapm_routes            = da7213_audio_map,
        .num_dapm_routes        = ARRAY_SIZE(da7213_audio_map),
+       .set_sysclk             = da7213_set_component_sysclk,
        .idle_bias_on           = 1,
        .use_pmdown_time        = 1,
        .endianness             = 1,