Re: [PATCH v2 2/3] usb: roles: intel_xhci: Supplying software node for the role mux

From: Andy Shevchenko
Date: Fri Aug 16 2019 - 09:46:05 EST


On Fri, Aug 16, 2019 at 1:45 PM Heikki Krogerus
<heikki.krogerus@xxxxxxxxxxxxxxx> wrote:
>
> The primary purpose for this node will be to allow linking
> the users of the switch to it. The users will be for example
> USB Type-C connectors. By supplying a reference to this
> node in the software nodes representing the USB Type-C
> controllers or connectors, the drivers for those devices can
> access the switch.

> + ret = software_node_register(&intel_xhci_usb_node);
> + if (ret)
> + return ret;
> +
> + sw_desc.set = intel_xhci_usb_set_role,
> + sw_desc.get = intel_xhci_usb_get_role,
> + sw_desc.allow_userspace_control = true,
> + sw_desc.fwnode = software_node_fwnode(&intel_xhci_usb_node);
> +
> data->role_sw = usb_role_switch_register(dev, &sw_desc);
> if (IS_ERR(data->role_sw))
> return PTR_ERR(data->role_sw);

Sounds to me like more fwnode_handle_put() calls are missed.

> @@ -164,6 +173,8 @@ static int intel_xhci_usb_remove(struct platform_device *pdev)
> pm_runtime_disable(&pdev->dev);
>
> usb_role_switch_unregister(data->role_sw);
> + fwnode_handle_put(software_node_fwnode(&intel_xhci_usb_node));


--
With Best Regards,
Andy Shevchenko