diff options
author | Zhang Zekun <[email protected]> | 2024-08-21 11:40:21 +0800 |
---|---|---|
committer | Ulf Hansson <[email protected]> | 2024-09-13 11:56:33 +0200 |
commit | f253f6d922da29d0d7091801cbc9b4166c3959fe (patch) | |
tree | bf4b5ae3918039504b833cfc52e577692a43d3c1 | |
parent | 9e5eb7403cb6023642e48fc293f519ce5e8e8d8d (diff) |
pmdomain: qcom-cpr: Use helper function for_each_available_child_of_node()
for_each_available_child_of_node() can help to iterate through the
device_node, and we don't need to use while loop. Besides, the purpose
of the while loop is to find a device_node which fits the condition
"child_req_np == ref_np", we can just read the property of "child_np"
directly in for_each_available_child_of_node(). No functional change
with such conversion.
Signed-off-by: Zhang Zekun <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Ulf Hansson <[email protected]>
-rw-r--r-- | drivers/pmdomain/qcom/cpr.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/pmdomain/qcom/cpr.c b/drivers/pmdomain/qcom/cpr.c index c64e84a27cc7..1834b3861232 100644 --- a/drivers/pmdomain/qcom/cpr.c +++ b/drivers/pmdomain/qcom/cpr.c @@ -1054,14 +1054,14 @@ static unsigned long cpr_get_opp_hz_for_req(struct dev_pm_opp *ref, if (!ref_np) goto out_ref; - do { + for_each_available_child_of_node(desc_np, child_np) { of_node_put(child_req_np); - child_np = of_get_next_available_child(desc_np, child_np); child_req_np = of_parse_phandle(child_np, "required-opps", 0); - } while (child_np && child_req_np != ref_np); - - if (child_np && child_req_np == ref_np) - of_property_read_u64(child_np, "opp-hz", &rate); + if (child_req_np == ref_np) { + of_property_read_u64(child_np, "opp-hz", &rate); + break; + } + } of_node_put(child_req_np); of_node_put(child_np); |