[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <VI1PR04MB59350F5BC9129F9E0B21773889229@VI1PR04MB5935.eurprd04.prod.outlook.com>
Date: Fri, 28 May 2021 07:26:43 +0000
From: Jun Li <jun.li@....com>
To: Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Hans de Goede <hdegoede@...hat.com>
CC: "linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH 2/2] usb: typec: mux: Remove requirement for the
"orientation-switch" device property
Hi,
> -----Original Message-----
> From: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
> Sent: Wednesday, May 26, 2021 11:36 PM
> To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>; Hans de Goede
> <hdegoede@...hat.com>; Jun Li <jun.li@....com>
> Cc: linux-usb@...r.kernel.org; linux-kernel@...r.kernel.org
> 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@...ux.intel.com>
> ---
> 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
Powered by blists - more mailing lists