Merge "clk: Add support to set custom flags with clk_set_flags" into msm-4.8

This commit is contained in:
Kyle Yan 2016-10-11 04:00:06 -07:00 • committed by Gerrit - the friendly Code Review server
commit 7e4fa652ce
3 changed files with 25 additions and 0 deletions

View file

@ -1982,6 +1982,18 @@ bool clk_is_match(const struct clk *p, const struct clk *q)
}
EXPORT_SYMBOL_GPL(clk_is_match);
int clk_set_flags(struct clk *clk, unsigned long flags)
{
if (!clk)
return 0;
if (!clk->core->ops->set_flags)
return -EINVAL;
return clk->core->ops->set_flags(clk->core->hw, flags);
}
EXPORT_SYMBOL_GPL(clk_set_flags);
/*** debugfs support ***/
#ifdef CONFIG_DEBUG_FS

View file

@ -177,6 +177,8 @@ struct clk_rate_request {
* directory is provided as an argument. Called with
* prepare_lock held. Returns 0 on success, -EERROR otherwise.
*
* @set_flags: Set custom flags which deal with hardware specifics. Returns 0
* on success, -EERROR otherwise.
*
* The clk_enable/clk_disable and clk_prepare/clk_unprepare pairs allow
* implementations to split any work between atomic (enable) and sleepable
@ -217,6 +219,7 @@ struct clk_ops {
int (*set_phase)(struct clk_hw *hw, int degrees);
void (*init)(struct clk_hw *hw);
int (*debug_init)(struct clk_hw *hw, struct dentry *dentry);
int (*set_flags)(struct clk_hw *hw, unsigned int flags);
};
/**

View file

@ -420,6 +420,16 @@ struct clk *clk_get_parent(struct clk *clk);
*/
struct clk *clk_get_sys(const char *dev_id, const char *con_id);
/**
* clk_set_flags - set the custom HW specific flags for this clock
* @clk: clock source
* @flags: custom flags which would be hardware specific, defined for specific
* hardware.
*
* Returns success 0 or negative errno.
*/
int clk_set_flags(struct clk *clk, unsigned long flags);
#else /* !CONFIG_HAVE_CLK */
static inline struct clk *clk_get(struct device *dev, const char *id)