summaryrefslogtreecommitdiff
path: root/drivers/clk/sunxi/clk-sun8i-mbus.c
diff options
context:
space:
mode:
authorChen-Yu Tsai <wens@csie.org>2016-01-25 21:15:42 +0800
committerMaxime Ripard <maxime.ripard@free-electrons.com>2016-01-27 18:57:37 +0100
commitcfa63688603398e8de4315cd626f81516c88a4c4 (patch)
tree7d843d522ef2ff0046b99cd1b46f8cd1be57f1b9 /drivers/clk/sunxi/clk-sun8i-mbus.c
parent4cbeaebb8af1c86691d1a2d3328d82a01f4380a5 (diff)
clk: sunxi: factors: Consolidate get_factors parameters into a struct
The .get_factors callback of factors_clk has 6 parameters. To extend factors_clk in any way that requires adding parameters to .get_factors would make that list even longer, not to mention changing all the function declarations. Do this once now and consolidate all the parameters into a struct. Also drop the space before function pointer arguments, since checkpatch complains. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'drivers/clk/sunxi/clk-sun8i-mbus.c')
-rw-r--r--drivers/clk/sunxi/clk-sun8i-mbus.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/clk/sunxi/clk-sun8i-mbus.c b/drivers/clk/sunxi/clk-sun8i-mbus.c
index bf117a636d23..78683f02a37d 100644
--- a/drivers/clk/sunxi/clk-sun8i-mbus.c
+++ b/drivers/clk/sunxi/clk-sun8i-mbus.c
@@ -26,8 +26,7 @@
* rate = parent_rate / (m + 1);
*/
-static void sun8i_a23_get_mbus_factors(u32 *freq, u32 parent_rate,
- u8 *n, u8 *k, u8 *m, u8 *p)
+static void sun8i_a23_get_mbus_factors(struct factors_request *req)
{
u8 div;
@@ -35,21 +34,16 @@ static void sun8i_a23_get_mbus_factors(u32 *freq, u32 parent_rate,
* These clocks can only divide, so we will never be able to
* achieve frequencies higher than the parent frequency
*/
- if (*freq > parent_rate)
- *freq = parent_rate;
+ if (req->rate > req->parent_rate)
+ req->rate = req->parent_rate;
- div = DIV_ROUND_UP(parent_rate, *freq);
+ div = DIV_ROUND_UP(req->parent_rate, req->rate);
if (div > 8)
div = 8;
- *freq = parent_rate / div;
-
- /* we were called to round the frequency, we can now return */
- if (m == NULL)
- return;
-
- *m = div - 1;
+ req->rate = req->parent_rate / div;
+ req->m = div - 1;
}
static struct clk_factors_config sun8i_a23_mbus_config = {