Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e4fa652 authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

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

parents bf6a1740 63c20c7c
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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);
};

/**
+10 −0
Original line number Diff line number Diff line
@@ -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)