Message ID | 20220321231548.14276-14-ansuelsmth@gmail.com |
---|---|
State | New |
Headers | show |
Series | Modernize rest of the krait drivers | expand |
On 22/03/2022 02:15, Ansuel Smith wrote: > Add enable/disable ops for krait mux. On disable the mux is set to the > safe selection. Why? It it used during system suspend? cpuidle? cpufreq? > > Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> > --- > drivers/clk/qcom/clk-krait.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/clk/qcom/clk-krait.c b/drivers/clk/qcom/clk-krait.c > index 7ba5dbc72bce..061af57b0ec2 100644 > --- a/drivers/clk/qcom/clk-krait.c > +++ b/drivers/clk/qcom/clk-krait.c > @@ -85,7 +85,25 @@ static u8 krait_mux_get_parent(struct clk_hw *hw) > return clk_mux_val_to_index(hw, mux->parent_map, 0, sel); > } > > +static int krait_mux_enable(struct clk_hw *hw) > +{ > + struct krait_mux_clk *mux = to_krait_mux_clk(hw); > + > + __krait_mux_set_sel(mux, mux->en_mask); > + > + return 0; > +} > + > +static void krait_mux_disable(struct clk_hw *hw) > +{ > + struct krait_mux_clk *mux = to_krait_mux_clk(hw); > + > + __krait_mux_set_sel(mux, mux->safe_sel); > +} > + > const struct clk_ops krait_mux_clk_ops = { > + .enable = krait_mux_enable, > + .disable = krait_mux_disable, > .set_parent = krait_mux_set_parent, > .get_parent = krait_mux_get_parent, > .determine_rate = __clk_mux_determine_rate_closest,
diff --git a/drivers/clk/qcom/clk-krait.c b/drivers/clk/qcom/clk-krait.c index 7ba5dbc72bce..061af57b0ec2 100644 --- a/drivers/clk/qcom/clk-krait.c +++ b/drivers/clk/qcom/clk-krait.c @@ -85,7 +85,25 @@ static u8 krait_mux_get_parent(struct clk_hw *hw) return clk_mux_val_to_index(hw, mux->parent_map, 0, sel); } +static int krait_mux_enable(struct clk_hw *hw) +{ + struct krait_mux_clk *mux = to_krait_mux_clk(hw); + + __krait_mux_set_sel(mux, mux->en_mask); + + return 0; +} + +static void krait_mux_disable(struct clk_hw *hw) +{ + struct krait_mux_clk *mux = to_krait_mux_clk(hw); + + __krait_mux_set_sel(mux, mux->safe_sel); +} + const struct clk_ops krait_mux_clk_ops = { + .enable = krait_mux_enable, + .disable = krait_mux_disable, .set_parent = krait_mux_set_parent, .get_parent = krait_mux_get_parent, .determine_rate = __clk_mux_determine_rate_closest,
Add enable/disable ops for krait mux. On disable the mux is set to the safe selection. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> --- drivers/clk/qcom/clk-krait.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)