Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[sfrench/cifs-2.6.git] / drivers / clk / bcm / clk-bcm2835.c
index a07f6451694ae3ff25b65fa02ddd5f78e1caec05..fa0d5c8611a0dc0440464ae8d71a44d5b37a7712 100644 (file)
@@ -602,9 +602,7 @@ static void bcm2835_pll_off(struct clk_hw *hw)
        const struct bcm2835_pll_data *data = pll->data;
 
        spin_lock(&cprman->regs_lock);
-       cprman_write(cprman, data->cm_ctrl_reg,
-                    cprman_read(cprman, data->cm_ctrl_reg) |
-                    CM_PLL_ANARST);
+       cprman_write(cprman, data->cm_ctrl_reg, CM_PLL_ANARST);
        cprman_write(cprman, data->a2w_ctrl_reg,
                     cprman_read(cprman, data->a2w_ctrl_reg) |
                     A2W_PLL_CTRL_PWRDN);
@@ -640,6 +638,10 @@ static int bcm2835_pll_on(struct clk_hw *hw)
                cpu_relax();
        }
 
+       cprman_write(cprman, data->a2w_ctrl_reg,
+                    cprman_read(cprman, data->a2w_ctrl_reg) |
+                    A2W_PLL_CTRL_PRST_DISABLE);
+
        return 0;
 }