mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-14 00:24:15 +08:00
ASoC: Start WM8962 FLL if SYSCLK is enabled
Since we have code to automatically manage the start and stop of the FLL based on the SYSCLK widget if SYSCLK is already enabled and the FLL is configured then we need to start it up. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
3ff51c859f
commit
2a761cde31
@ -3394,6 +3394,7 @@ static int wm8962_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
|
|||||||
unsigned long timeout;
|
unsigned long timeout;
|
||||||
int ret;
|
int ret;
|
||||||
int fll1 = snd_soc_read(codec, WM8962_FLL_CONTROL_1) & WM8962_FLL_ENA;
|
int fll1 = snd_soc_read(codec, WM8962_FLL_CONTROL_1) & WM8962_FLL_ENA;
|
||||||
|
int sysclk = snd_soc_read(codec, WM8962_CLOCKING2) & WM8962_SYSCLK_ENA;
|
||||||
|
|
||||||
/* Any change? */
|
/* Any change? */
|
||||||
if (source == wm8962->fll_src && Fref == wm8962->fll_fref &&
|
if (source == wm8962->fll_src && Fref == wm8962->fll_fref &&
|
||||||
@ -3454,6 +3455,9 @@ static int wm8962_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
|
|||||||
|
|
||||||
try_wait_for_completion(&wm8962->fll_lock);
|
try_wait_for_completion(&wm8962->fll_lock);
|
||||||
|
|
||||||
|
if (sysclk)
|
||||||
|
fll1 |= WM8962_FLL_ENA;
|
||||||
|
|
||||||
snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1,
|
snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1,
|
||||||
WM8962_FLL_FRAC | WM8962_FLL_REFCLK_SRC_MASK |
|
WM8962_FLL_FRAC | WM8962_FLL_REFCLK_SRC_MASK |
|
||||||
WM8962_FLL_ENA, fll1);
|
WM8962_FLL_ENA, fll1);
|
||||||
|
Loading…
Reference in New Issue
Block a user