|
@@ -111,10 +111,13 @@ static int ccu_mult_set_rate(struct clk_hw *hw, unsigned long rate,
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
u32 reg;
|
|
u32 reg;
|
|
|
|
|
|
- if (ccu_frac_helper_has_rate(&cm->common, &cm->frac, rate))
|
|
|
|
|
|
+ if (ccu_frac_helper_has_rate(&cm->common, &cm->frac, rate)) {
|
|
|
|
+ ccu_frac_helper_enable(&cm->common, &cm->frac);
|
|
|
|
+
|
|
return ccu_frac_helper_set_rate(&cm->common, &cm->frac, rate);
|
|
return ccu_frac_helper_set_rate(&cm->common, &cm->frac, rate);
|
|
- else
|
|
|
|
|
|
+ } else {
|
|
ccu_frac_helper_disable(&cm->common, &cm->frac);
|
|
ccu_frac_helper_disable(&cm->common, &cm->frac);
|
|
|
|
+ }
|
|
|
|
|
|
parent_rate = ccu_mux_helper_apply_prediv(&cm->common, &cm->mux, -1,
|
|
parent_rate = ccu_mux_helper_apply_prediv(&cm->common, &cm->mux, -1,
|
|
parent_rate);
|
|
parent_rate);
|