summaryrefslogtreecommitdiffstats
path: root/drivers/clk/sunxi/clk-sunxi.c
diff options
context:
space:
mode:
authorRob Herring2014-05-12 18:24:31 +0200
committerRob Herring2014-05-20 21:25:22 +0200
commitcb7d5f425fd1c5f2295770c3ee36c950a0b6714b (patch)
treeb5e0260255c770c68f25f459b0577a78821530a2 /drivers/clk/sunxi/clk-sunxi.c
parentclk: rockchip: fix function type for CLK_OF_DECLARE (diff)
downloadkernel-qcow2-linux-cb7d5f425fd1c5f2295770c3ee36c950a0b6714b.tar.gz
kernel-qcow2-linux-cb7d5f425fd1c5f2295770c3ee36c950a0b6714b.tar.xz
kernel-qcow2-linux-cb7d5f425fd1c5f2295770c3ee36c950a0b6714b.zip
clk: sunxi: avoid double DT matching
Use for_each_matching_node_and_match instead of for_each_matching_node plus of_match_node to avoid searching the DT twice for each node. The sunxi DT scanning code should really be re-worked rather than have its own private matching infrastructure. It is working around needing a function pointer and a data pointer for each compatible match. Signed-off-by: Rob Herring <robh@kernel.org> Cc: "Emilio López" <emilio@elopez.com.ar> Acked-by: Mike Turquette <mturquette@linaro.org> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'drivers/clk/sunxi/clk-sunxi.c')
-rw-r--r--drivers/clk/sunxi/clk-sunxi.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
index bd7dc733c1ca..ef5e2d8096d8 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -1278,8 +1278,7 @@ static void __init of_sunxi_table_clock_setup(const struct of_device_id *clk_mat
const struct of_device_id *match;
void (*setup_function)(struct device_node *, const void *) = function;
- for_each_matching_node(np, clk_match) {
- match = of_match_node(clk_match, np);
+ for_each_matching_node_and_match(np, clk_match, &match) {
data = match->data;
setup_function(np, data);
}