u32 val;
 
        dev_priv->cdclk_pll.ref = 24000;
+       dev_priv->cdclk_pll.vco = 0;
 
        val = I915_READ(LCPLL1_CTL);
-       if ((val & LCPLL_PLL_ENABLE) == 0) {
-               dev_priv->cdclk_pll.vco = 0;
+       if ((val & LCPLL_PLL_ENABLE) == 0)
                return;
-       }
 
-       WARN_ON((val & LCPLL_PLL_LOCK) == 0);
+       if (WARN_ON((val & LCPLL_PLL_LOCK) == 0))
+               return;
 
        val = I915_READ(DPLL_CTRL1);
 
-       WARN_ON((val & (DPLL_CTRL1_HDMI_MODE(SKL_DPLL0) |
-                       DPLL_CTRL1_SSC(SKL_DPLL0) |
-                       DPLL_CTRL1_OVERRIDE(SKL_DPLL0))) !=
-               DPLL_CTRL1_OVERRIDE(SKL_DPLL0));
+       if (WARN_ON((val & (DPLL_CTRL1_HDMI_MODE(SKL_DPLL0) |
+                           DPLL_CTRL1_SSC(SKL_DPLL0) |
+                           DPLL_CTRL1_OVERRIDE(SKL_DPLL0))) !=
+                   DPLL_CTRL1_OVERRIDE(SKL_DPLL0)))
+               return;
 
        switch (val & DPLL_CTRL1_LINK_RATE_MASK(SKL_DPLL0)) {
        case DPLL_CTRL1_LINK_RATE(DPLL_CTRL1_LINK_RATE_810, SKL_DPLL0):
                break;
        default:
                MISSING_CASE(val & DPLL_CTRL1_LINK_RATE_MASK(SKL_DPLL0));
-               dev_priv->cdclk_pll.vco = 0;
                break;
        }
 }
        if ((I915_READ(SWF_ILK(0x18)) & 0x00FFFFFF) == 0)
                goto sanitize;
 
+       intel_update_cdclk(dev_priv->dev);
        /* Is PLL enabled and locked ? */
-       if ((I915_READ(LCPLL1_CTL) & (LCPLL_PLL_ENABLE | LCPLL_PLL_LOCK)) !=
-           (LCPLL_PLL_ENABLE | LCPLL_PLL_LOCK))
-               goto sanitize;
-
-       if ((I915_READ(DPLL_CTRL1) & (DPLL_CTRL1_HDMI_MODE(SKL_DPLL0) |
-                                     DPLL_CTRL1_SSC(SKL_DPLL0) |
-                                     DPLL_CTRL1_OVERRIDE(SKL_DPLL0))) !=
-           DPLL_CTRL1_OVERRIDE(SKL_DPLL0))
+       if (dev_priv->cdclk_pll.vco == 0 ||
+           dev_priv->cdclk_freq == dev_priv->cdclk_pll.ref)
                goto sanitize;
 
-       intel_update_cdclk(dev_priv->dev);
-
        /* DPLL okay; verify the cdclock
         *
         * Noticed in some instances that the freq selection is correct but
        u32 val;
 
        dev_priv->cdclk_pll.ref = 19200;
+       dev_priv->cdclk_pll.vco = 0;
 
        val = I915_READ(BXT_DE_PLL_ENABLE);
-       if ((val & BXT_DE_PLL_PLL_ENABLE) == 0) {
-               dev_priv->cdclk_pll.vco = 0;
+       if ((val & BXT_DE_PLL_PLL_ENABLE) == 0)
                return;
-       }
 
-       WARN_ON((val & BXT_DE_PLL_LOCK) == 0);
+       if (WARN_ON((val & BXT_DE_PLL_LOCK) == 0))
+               return;
 
        val = I915_READ(BXT_DE_PLL_CTL);
        dev_priv->cdclk_pll.vco = (val & BXT_DE_PLL_RATIO_MASK) *