On 07/20, Rajendra Nayak wrote: > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c > index fc58c52..c9bbfb3 100644 > --- a/drivers/clk/clk.c > +++ b/drivers/clk/clk.c > @@ -186,6 +186,45 @@ const char *clk_hw_get_name(const struct clk_hw *hw) > } > EXPORT_SYMBOL_GPL(clk_hw_get_name); > > +struct clk *clk_hw_get_clk(struct clk_hw *hw, const char *dev_id, > + const char *con_id) > +{ > + return __clk_create_clk(hw, dev_id, con_id); > +} > +EXPORT_SYMBOL_GPL(clk_hw_get_clk); > + > +void clk_hw_put_clk(struct clk *clk) > +{ > + __clk_free_clk(clk); > +} > +EXPORT_SYMBOL_GPL(clk_hw_put_clk); Isn't this just clk_put()? Not sure why we need this API. > + > +static void devm_clk_hw_put(struct device *dev, void *res) > +{ > + clk_hw_put_clk(*(struct clk **)res); > +} Same comment. > + > +struct clk *devm_clk_hw_get_clk(struct device *dev, struct clk_hw *hw, > + const char *con_id) > +{ > + struct clk **ptr, *clk; > + > + ptr = devres_alloc(devm_clk_hw_put, sizeof(*ptr), GFP_KERNEL); > + if (!ptr) > + return ERR_PTR(-ENOMEM); > + > + clk = clk_hw_get_clk(hw, dev_name(dev), con_id); > + if (!IS_ERR(clk)) { > + *ptr = clk; > + devres_add(dev, ptr); > + } else { > + devres_free(ptr); > + } > + > + return clk; > +} > +EXPORT_SYMBOL_GPL(devm_clk_hw_get_clk); Hm.. ok. Wasn't expecting us to need this API, but I guess it is needed. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html