On 07/04/2025 19:31, Ivan Vecera wrote:
> +
> +     if (zl3073x_dpll_is_input_pin(pin))
> +             node_name = "input-pins";
> +     else
> +             node_name = "output-pins";
> +
> +     /* Get node containing input or output pins */
> +     pins_node = device_get_named_child_node(zldpll->mfd->dev, node_name);
> +     if (!pins_node) {
> +             dev_dbg(zldpll->mfd->dev, "'%s' sub-node is missing\n",
> +                     node_name);
> +             return NULL;
> +     }
> +
> +     /* Get pin HW index */
> +     idx = zl3073x_dpll_pin_index_get(pin);
> +
> +     /* Enumerate pin nodes and find the requested one */
> +     fwnode_for_each_child_node(pins_node, pin_node) {
> +             u32 reg;
> +
> +             if (fwnode_property_read_u32(pin_node, "reg", &reg))
> +                     continue;
> +
> +             if (idx == reg)
> +                     break;

Where do you drop the reference to pin_node?

> +     }
> +
> +     /* Release pin parent node */
> +     fwnode_handle_put(pins_node);
> +



Best regards,
Krzysztof

Reply via email to