* [PATCH v2] tcpm: switch check for role_sw device with fw_node
@ 2025-10-13 9:43 Michael Grzeschik
2025-10-13 17:24 ` Badhri Jagan Sridharan
2025-10-20 9:02 ` Heikki Krogerus
0 siblings, 2 replies; 3+ messages in thread
From: Michael Grzeschik @ 2025-10-13 9:43 UTC (permalink / raw)
To: Badhri Jagan Sridharan, Heikki Krogerus, Greg Kroah-Hartman
Cc: kernel, linux-usb, linux-kernel, stable, Michael Grzeschik
When there is no port entry in the tcpci entry itself, the driver will
trigger an error message "OF: graph: no port node found in /...../typec" .
It is documented that the dts node should contain an connector entry
with ports and several port pointing to devices with usb-role-switch
property set. Only when those connector entry is missing, it should
check for port entries in the main node.
We switch the search order for looking after ports, which will avoid the
failure message while there are explicit connector entries.
Fixes: d56de8c9a17d ("usb: typec: tcpm: try to get role switch from tcpc fwnode")
Cc: stable@vger.kernel.org
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
Changes in v2:
- fixed typos in the description
- added fixes tag
- added Cc: stable@vger.kernel.org
- Link to v1: https://lore.kernel.org/r/20251003-b4-ml-topic-tcpm-v1-1-3cdd05588acb@pengutronix.de
---
drivers/usb/typec/tcpm/tcpm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
index b2a568a5bc9b0ba5c50b7031d8e21ee09cefa349..cc78770509dbc6460d75816f544173d6ab4ef873 100644
--- a/drivers/usb/typec/tcpm/tcpm.c
+++ b/drivers/usb/typec/tcpm/tcpm.c
@@ -7876,9 +7876,9 @@ struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc)
port->partner_desc.identity = &port->partner_ident;
- port->role_sw = usb_role_switch_get(port->dev);
+ port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode);
if (!port->role_sw)
- port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode);
+ port->role_sw = usb_role_switch_get(port->dev);
if (IS_ERR(port->role_sw)) {
err = PTR_ERR(port->role_sw);
goto out_destroy_wq;
---
base-commit: e406d57be7bd2a4e73ea512c1ae36a40a44e499e
change-id: 20251003-b4-ml-topic-tcpm-27146727d76a
Best regards,
--
Michael Grzeschik <m.grzeschik@pengutronix.de>
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2] tcpm: switch check for role_sw device with fw_node
2025-10-13 9:43 [PATCH v2] tcpm: switch check for role_sw device with fw_node Michael Grzeschik
@ 2025-10-13 17:24 ` Badhri Jagan Sridharan
2025-10-20 9:02 ` Heikki Krogerus
1 sibling, 0 replies; 3+ messages in thread
From: Badhri Jagan Sridharan @ 2025-10-13 17:24 UTC (permalink / raw)
To: Michael Grzeschik
Cc: Heikki Krogerus, Greg Kroah-Hartman, kernel, linux-usb,
linux-kernel, stable
On Mon, Oct 13, 2025 at 2:43 AM Michael Grzeschik
<m.grzeschik@pengutronix.de> wrote:
>
> When there is no port entry in the tcpci entry itself, the driver will
> trigger an error message "OF: graph: no port node found in /...../typec" .
>
> It is documented that the dts node should contain an connector entry
> with ports and several port pointing to devices with usb-role-switch
> property set. Only when those connector entry is missing, it should
> check for port entries in the main node.
>
> We switch the search order for looking after ports, which will avoid the
> failure message while there are explicit connector entries.
>
> Fixes: d56de8c9a17d ("usb: typec: tcpm: try to get role switch from tcpc fwnode")
> Cc: stable@vger.kernel.org
> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Reviewed-by: Badhri Jagan Sridharan <badhri@google.com>
> ---
> Changes in v2:
> - fixed typos in the description
> - added fixes tag
> - added Cc: stable@vger.kernel.org
> - Link to v1: https://lore.kernel.org/r/20251003-b4-ml-topic-tcpm-v1-1-3cdd05588acb@pengutronix.de
> ---
> drivers/usb/typec/tcpm/tcpm.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index b2a568a5bc9b0ba5c50b7031d8e21ee09cefa349..cc78770509dbc6460d75816f544173d6ab4ef873 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -7876,9 +7876,9 @@ struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc)
>
> port->partner_desc.identity = &port->partner_ident;
>
> - port->role_sw = usb_role_switch_get(port->dev);
> + port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode);
> if (!port->role_sw)
> - port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode);
> + port->role_sw = usb_role_switch_get(port->dev);
> if (IS_ERR(port->role_sw)) {
> err = PTR_ERR(port->role_sw);
> goto out_destroy_wq;
>
> ---
> base-commit: e406d57be7bd2a4e73ea512c1ae36a40a44e499e
> change-id: 20251003-b4-ml-topic-tcpm-27146727d76a
>
> Best regards,
> --
> Michael Grzeschik <m.grzeschik@pengutronix.de>
>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v2] tcpm: switch check for role_sw device with fw_node
2025-10-13 9:43 [PATCH v2] tcpm: switch check for role_sw device with fw_node Michael Grzeschik
2025-10-13 17:24 ` Badhri Jagan Sridharan
@ 2025-10-20 9:02 ` Heikki Krogerus
1 sibling, 0 replies; 3+ messages in thread
From: Heikki Krogerus @ 2025-10-20 9:02 UTC (permalink / raw)
To: Michael Grzeschik
Cc: Badhri Jagan Sridharan, Greg Kroah-Hartman, kernel, linux-usb,
linux-kernel, stable
On Mon, Oct 13, 2025 at 11:43:40AM +0200, Michael Grzeschik wrote:
> When there is no port entry in the tcpci entry itself, the driver will
> trigger an error message "OF: graph: no port node found in /...../typec" .
>
> It is documented that the dts node should contain an connector entry
> with ports and several port pointing to devices with usb-role-switch
> property set. Only when those connector entry is missing, it should
> check for port entries in the main node.
>
> We switch the search order for looking after ports, which will avoid the
> failure message while there are explicit connector entries.
>
> Fixes: d56de8c9a17d ("usb: typec: tcpm: try to get role switch from tcpc fwnode")
> Cc: stable@vger.kernel.org
> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> Changes in v2:
> - fixed typos in the description
> - added fixes tag
> - added Cc: stable@vger.kernel.org
> - Link to v1: https://lore.kernel.org/r/20251003-b4-ml-topic-tcpm-v1-1-3cdd05588acb@pengutronix.de
> ---
> drivers/usb/typec/tcpm/tcpm.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
> index b2a568a5bc9b0ba5c50b7031d8e21ee09cefa349..cc78770509dbc6460d75816f544173d6ab4ef873 100644
> --- a/drivers/usb/typec/tcpm/tcpm.c
> +++ b/drivers/usb/typec/tcpm/tcpm.c
> @@ -7876,9 +7876,9 @@ struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc)
>
> port->partner_desc.identity = &port->partner_ident;
>
> - port->role_sw = usb_role_switch_get(port->dev);
> + port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode);
> if (!port->role_sw)
> - port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode);
> + port->role_sw = usb_role_switch_get(port->dev);
> if (IS_ERR(port->role_sw)) {
> err = PTR_ERR(port->role_sw);
> goto out_destroy_wq;
>
--
heikki
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-10-20 9:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-13 9:43 [PATCH v2] tcpm: switch check for role_sw device with fw_node Michael Grzeschik
2025-10-13 17:24 ` Badhri Jagan Sridharan
2025-10-20 9:02 ` Heikki Krogerus
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).