Re: [PATCH 2/2] usb: typec: mux: Remove requirement for the "orientation-switch" device property

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 28, 2021 at 07:26:43AM +0000, Jun Li wrote:
> Hi,
> > -----Original Message-----
> > From: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>
> > Sent: Wednesday, May 26, 2021 11:36 PM
> > To: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>; Hans de Goede
> > <hdegoede@xxxxxxxxxx>; Jun Li <jun.li@xxxxxxx>
> > Cc: linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> > Subject: [PATCH 2/2] usb: typec: mux: Remove requirement for the
> > "orientation-switch" device property
> > 
> > The additional boolean device property "orientation-switch"
> > is not needed when the connection is described with device graph, so removing
> > the check and the requirement for it.
> > 
> > Signed-off-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>
> > ---
> >  drivers/usb/typec/mux.c | 3 ---
> >  1 file changed, 3 deletions(-)
> > 
> > diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c index
> > e40a555724fb6..603f3e698cc0b 100644
> > --- a/drivers/usb/typec/mux.c
> > +++ b/drivers/usb/typec/mux.c
> > @@ -30,9 +30,6 @@ static void *typec_switch_match(struct fwnode_handle
> > *fwnode, const char *id,  {
> >  	struct device *dev;
> > 
> > -	if (id && !fwnode_property_present(fwnode, id))
> > -		return NULL;
> > -
> 
> May this change the result of fwnode_connection_find_match()
> if there are multiple remote-endpoint node?
> 
> After the 2 patches change, typec_switch_match() will never
> return NULL, so
> 
>   17 static void *
>   18 fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id,
>   19                           void *data, devcon_match_fn_t match)
>   20 {               
>   21         struct fwnode_handle *node;
>   22         struct fwnode_handle *ep;
>   23         void *ret;
>   24                         
>   25         fwnode_graph_for_each_endpoint(fwnode, ep) {
>   26                 node = fwnode_graph_get_remote_port_parent(ep);
>   27                 if (!fwnode_device_is_available(node))
>   28                         continue;
>   29 
>   30                 ret = match(node, con_id, data);// ret can't be NULL;
>   31                 fwnode_handle_put(node); 
>   32                 if (ret) {
> 							 /*
> 							  * So loop will go to here and stop
> 							  * checking next ep, even this ep
> 							  * actually is not for typec_switch
> 							  */
>   33                         fwnode_handle_put(ep);
>   34                         return ret;
>   35                 }
>   36         }
>   37         return NULL;
>   38 }
> 
> fwnode_graph_devcon_match() Will return ERR_PTR(-EPROBE_DEFER)
> even this ep's remote parent already probed but it's not for
> typec_switch.

You are correct. With device graph I guess we really always need the
extra device property after all.

So let's forget about this one.


thanks,

-- 
heikki



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux