diff options
| author | Bard Liao <bardliao@realtek.com> | 2016-03-07 02:09:37 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2016-03-07 02:39:38 -0500 |
| commit | c467fc0e010b66069c0d5bb3e8e869adf267115f (patch) | |
| tree | b47a331193cdd284b557bd6c2238490b6ce551f4 | |
| parent | 6049af00fc2fac8d27f8bd064ff68b16991a80f7 (diff) | |
ASoC: rt5640: Set PLL src according to source
rt5640_set_dai_pll set pll source according to given source and
dai id. However, the pll source should be set according to given
source only.
Signed-off-by: Jack Yu <jack.yu@realtek.com>
Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/codecs/rt5640.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c index 6cd84fb2196a..863c190c5076 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c | |||
| @@ -1902,21 +1902,12 @@ static int rt5640_set_dai_pll(struct snd_soc_dai *dai, int pll_id, int source, | |||
| 1902 | RT5640_PLL1_SRC_MASK, RT5640_PLL1_SRC_MCLK); | 1902 | RT5640_PLL1_SRC_MASK, RT5640_PLL1_SRC_MCLK); |
| 1903 | break; | 1903 | break; |
| 1904 | case RT5640_PLL1_S_BCLK1: | 1904 | case RT5640_PLL1_S_BCLK1: |
| 1905 | snd_soc_update_bits(codec, RT5640_GLB_CLK, | ||
| 1906 | RT5640_PLL1_SRC_MASK, RT5640_PLL1_SRC_BCLK1); | ||
| 1907 | break; | ||
| 1905 | case RT5640_PLL1_S_BCLK2: | 1908 | case RT5640_PLL1_S_BCLK2: |
| 1906 | dai_sel = get_sdp_info(codec, dai->id); | 1909 | snd_soc_update_bits(codec, RT5640_GLB_CLK, |
| 1907 | if (dai_sel < 0) { | 1910 | RT5640_PLL1_SRC_MASK, RT5640_PLL1_SRC_BCLK2); |
| 1908 | dev_err(codec->dev, | ||
| 1909 | "Failed to get sdp info: %d\n", dai_sel); | ||
| 1910 | return -EINVAL; | ||
| 1911 | } | ||
| 1912 | if (dai_sel & RT5640_U_IF1) { | ||
| 1913 | snd_soc_update_bits(codec, RT5640_GLB_CLK, | ||
| 1914 | RT5640_PLL1_SRC_MASK, RT5640_PLL1_SRC_BCLK1); | ||
| 1915 | } | ||
| 1916 | if (dai_sel & RT5640_U_IF2) { | ||
| 1917 | snd_soc_update_bits(codec, RT5640_GLB_CLK, | ||
| 1918 | RT5640_PLL1_SRC_MASK, RT5640_PLL1_SRC_BCLK2); | ||
| 1919 | } | ||
| 1920 | break; | 1911 | break; |
| 1921 | default: | 1912 | default: |
| 1922 | dev_err(codec->dev, "Unknown PLL source %d\n", source); | 1913 | dev_err(codec->dev, "Unknown PLL source %d\n", source); |
