Merge branch 'msm-fix' of git://codeaurora.org/quic/kernel/davidb/linux-msm into...
[pandora-kernel.git] / sound / soc / codecs / wm8962.c
index 32d931f..91d3c6d 100644 (file)
@@ -2366,15 +2366,14 @@ static int sysclk_event(struct snd_soc_dapm_widget *w,
 
                        snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1,
                                            WM8962_FLL_ENA, WM8962_FLL_ENA);
-                       if (wm8962->irq) {
-                               timeout = msecs_to_jiffies(5);
-                               timeout = wait_for_completion_timeout(&wm8962->fll_lock,
-                                                                     timeout);
-
-                               if (timeout == 0)
-                                       dev_err(codec->dev,
-                                               "Timed out starting FLL\n");
-                       }
+
+                       timeout = msecs_to_jiffies(5);
+                       timeout = wait_for_completion_timeout(&wm8962->fll_lock,
+                                                             timeout);
+
+                       if (wm8962->irq && timeout == 0)
+                               dev_err(codec->dev,
+                                       "Timed out starting FLL\n");
                }
                break;
 
@@ -4035,6 +4034,11 @@ static int wm8962_probe(struct snd_soc_codec *codec)
        snd_soc_update_bits(codec, WM8962_CLOCKING2,
                            WM8962_CLKREG_OVD, WM8962_CLKREG_OVD);
 
+       /* Ensure that the oscillator and PLLs are disabled */
+       snd_soc_update_bits(codec, WM8962_PLL2,
+                           WM8962_OSC_ENA | WM8962_PLL2_ENA | WM8962_PLL3_ENA,
+                           0);
+
        regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies);
 
        if (pdata) {