diff options
author | Mike Turquette <mturquette@linaro.org> | 2014-09-03 19:07:14 +0200 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2014-09-03 19:07:14 +0200 |
commit | 7cd4375117c0d60e8277e61a853e51c21a83063c (patch) | |
tree | a12b838e4042bc24d5b969d5df0fc498b91d9ab9 /drivers/clk | |
parent | clk: qcom: Fix sdc 144kHz frequency entry (diff) | |
parent | clk: ti: dra7-atl: Provide error check for incoming parameters in set_rate (diff) | |
download | linux-7cd4375117c0d60e8277e61a853e51c21a83063c.tar.xz linux-7cd4375117c0d60e8277e61a853e51c21a83063c.zip |
Merge branch 'for-v3.17-rc/ti-clk-driver' of github.com:t-kristo/linux-pm into clk-fixes
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/ti/clk-dra7-atl.c | 6 | ||||
-rw-r--r-- | drivers/clk/ti/divider.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/clk/ti/clk-dra7-atl.c b/drivers/clk/ti/clk-dra7-atl.c index 4a65b410e4d5..af29359677da 100644 --- a/drivers/clk/ti/clk-dra7-atl.c +++ b/drivers/clk/ti/clk-dra7-atl.c @@ -139,9 +139,13 @@ static long atl_clk_round_rate(struct clk_hw *hw, unsigned long rate, static int atl_clk_set_rate(struct clk_hw *hw, unsigned long rate, unsigned long parent_rate) { - struct dra7_atl_desc *cdesc = to_atl_desc(hw); + struct dra7_atl_desc *cdesc; u32 divider; + if (!hw || !rate) + return -EINVAL; + + cdesc = to_atl_desc(hw); divider = ((parent_rate + rate / 2) / rate) - 1; if (divider > DRA7_ATL_DIVIDER_MASK) divider = DRA7_ATL_DIVIDER_MASK; diff --git a/drivers/clk/ti/divider.c b/drivers/clk/ti/divider.c index e6aa10db7bba..a837f703be65 100644 --- a/drivers/clk/ti/divider.c +++ b/drivers/clk/ti/divider.c @@ -211,11 +211,16 @@ static long ti_clk_divider_round_rate(struct clk_hw *hw, unsigned long rate, static int ti_clk_divider_set_rate(struct clk_hw *hw, unsigned long rate, unsigned long parent_rate) { - struct clk_divider *divider = to_clk_divider(hw); + struct clk_divider *divider; unsigned int div, value; unsigned long flags = 0; u32 val; + if (!hw || !rate) + return -EINVAL; + + divider = to_clk_divider(hw); + div = DIV_ROUND_UP(parent_rate, rate); value = _get_val(divider, div); |