Re: [PATCH v1 07/12] usb: roles: Find the usb role switch by also matching against the device node

From: Heikki Krogerus
Date: Mon Dec 03 2018 - 07:25:41 EST


Hi,

On Mon, Dec 03, 2018 at 10:17:20AM +0200, Andy Shevchenko wrote:
> On Mon, Dec 3, 2018 at 5:45 AM Yu Chen <chenyu56@xxxxxxxxxx> wrote:
> >
> > This patch adds code for supporting find usb role switch by matching against
> > the device node described using of_graph.
>
> > #include <linux/module.h>
> > #include <linux/mutex.h>
> > #include <linux/slab.h>
> > +#include <linux/of.h>
> > +#include <linux/of_graph.h>
>
> Keep it ordered.
>
> > +static int __switch_match_by_of_node(struct device *dev, const void *name)
> > +{
> > + if (!dev->parent || !dev->parent->of_node)
> > + return 0;
> > +
> > + return of_node_name_eq(dev->parent->of_node, (const char *)name);
> > +}
>
> I think Heikki has introduced some more generic function for this.

Yes, for this I'm proposing a new function fwnode_get_name() that
should allow us to support ACPI as well as OF platforms:
https://lkml.org/lkml/2018/11/28/784

> > sw = device_connection_find_match(dev, "usb-role-switch", NULL,
> > usb_role_switch_match);
>
> > + sw = of_graph_find_match_by_type(dev, "usb-role-switch");
>
> Why this is here?! device_connection_find_match() should take care for OF case.

Exactly. device_connection_find_match() needs to parse the graph (OF
and ACPI), and I already made proposal (RFC) for that:
https://lkml.org/lkml/2018/10/24/619

I have prepared a more finalized version of those patches. I've been
waiting for that fwnode_get_name() to be accepted before sending it
out since we are going to need that function, but I'll send a new RFC
if nothing happens soon with that fwnode_get_name() series.


Br,

--
heikki