struct zynqmp_r5_core **r5_cores;
enum rpu_oper_mode fw_reg_val;
struct device **child_devs;
- struct device_node *child;
enum rpu_tcm_comb tcm_mode;
int core_count, ret, i;
struct mbox_info *ipi;
}
i = 0;
- for_each_available_child_of_node(dev_node, child) {
+ for_each_available_child_of_node_scoped(dev_node, child) {
child_pdev = of_find_device_by_node(child);
if (!child_pdev) {
- of_node_put(child);
ret = -ENODEV;
goto release_r5_cores;
}
/* create and add remoteproc instance of type struct rproc */
r5_cores[i] = zynqmp_r5_add_rproc_core(&child_pdev->dev);
if (IS_ERR(r5_cores[i])) {
- of_node_put(child);
ret = PTR_ERR(r5_cores[i]);
r5_cores[i] = NULL;
goto release_r5_cores;
* If two child nodes are available in dts in lockstep mode,
* then ignore second child node.
*/
- if (cluster_mode == LOCKSTEP_MODE) {
- of_node_put(child);
+ if (cluster_mode == LOCKSTEP_MODE)
break;
- }
i++;
}