clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk
[firefly-linux-kernel-4.4.55.git] / drivers / clk / bcm / clk-bcm2835.c
index 6029313aa99586b3088de8ca82e66dd0e0752b70..35ab89fe9d7b126a436c992b5f98b15b21c06b4a 100644 (file)
@@ -1082,7 +1082,9 @@ static void bcm2835_pll_divider_off(struct clk_hw *hw)
        cprman_write(cprman, data->cm_reg,
                     (cprman_read(cprman, data->cm_reg) &
                      ~data->load_mask) | data->hold_mask);
-       cprman_write(cprman, data->a2w_reg, A2W_PLL_CHANNEL_DISABLE);
+       cprman_write(cprman, data->a2w_reg,
+                    cprman_read(cprman, data->a2w_reg) |
+                    A2W_PLL_CHANNEL_DISABLE);
        spin_unlock(&cprman->regs_lock);
 }