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]

 



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.

Li Jun

>  	dev = class_find_device(&typec_mux_class, NULL, fwnode,
>  				switch_fwnode_match);
> 
> --
> 2.30.2





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

  Powered by Linux