On 20-10-20 13:02:30, Jun Li wrote: > > > > -----Original Message----- > > From: Peter Chen <peter.chen@xxxxxxx> > > Sent: Tuesday, October 20, 2020 2:05 PM > > To: Jun Li <jun.li@xxxxxxx> > > Cc: heikki.krogerus@xxxxxxxxxxxxxxx; robh+dt@xxxxxxxxxx; > > rafael@xxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; > > andriy.shevchenko@xxxxxxxxxxxxxxx; hdegoede@xxxxxxxxxx; > > lee.jones@xxxxxxxxxx; mika.westerberg@xxxxxxxxxxxxxxx; > > dmitry.torokhov@xxxxxxxxx; prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx; > > laurent.pinchart+renesas@xxxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; > > devicetree@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx> > > Subject: Re: [PATCH v4 3/4] usb: typec: mux: add "compatible" property for > > switch match > > > > On 20-10-19 17:03:14, Li Jun wrote: > > > For those need a dedicated typec switch simple solution driver, use > > > compatible property for matching. > > > > > > Signed-off-by: Li Jun <jun.li@xxxxxxx> > > > --- > > > New patch for v4. > > > > > > drivers/usb/typec/mux.c | 7 ++++--- > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c index > > > 52ad277..3da17d1 100644 > > > --- a/drivers/usb/typec/mux.c > > > +++ b/drivers/usb/typec/mux.c > > > @@ -39,7 +39,8 @@ static void *typec_switch_match(struct > > > device_connection *con, int ep, { > > > struct device *dev; > > > > > > - if (con->id && !fwnode_property_present(con->fwnode, con->id)) > > > + if (con->id && !fwnode_is_compatible(con->fwnode, con->id) && > > > + !fwnode_property_present(con->fwnode, con->id)) > > > return NULL; > > > > If property is not present, should not fwnode_is_compatible return NULL? > > Do you want to say: > > If property is not present, should not *typec_switch_match* return NULL? If fwnode_is_compatible returns true, it should mean the fwnode_property_present is true too. But if fwnode_is_compatible is false, the fwnode_property_present may return true, the code does not return NULL. Then, with this new patch, what changes compared to original logic? Peter > > > > > > > > dev = class_find_device(&typec_mux_class, NULL, con->fwnode, @@ > > > -61,8 +62,8 @@ struct typec_switch *fwnode_typec_switch_get(struct > > > fwnode_handle *fwnode) { > > > struct typec_switch *sw; > > > > > > - sw = fwnode_connection_find_match(fwnode, "orientation-switch", NULL, > > > - typec_switch_match); > > > + sw = fwnode_connection_find_match(fwnode, "typec-orientation-switch", > > > + NULL, typec_switch_match); > > > if (!IS_ERR_OR_NULL(sw)) > > > WARN_ON(!try_module_get(sw->dev.parent->driver->owner)); > > > > > > -- > > > 2.7.4 > > > > > > > -- > > > > Thanks, > > Peter Chen -- Thanks, Peter Chen