Thread (5 messages) 5 messages, 4 authors, 2022-07-26

Re: [PATCH] phy: rockchip-inno-usb2: Sync initial otg state

From: Peter Geis <hidden>
Date: 2022-06-22 08:32:00
Also in: linux-phy, linux-rockchip, lkml

On Wed, Jun 22, 2022 at 1:16 AM Samuel Holland [off-list ref] wrote:
On 6/21/22 7:31 PM, Peter Geis wrote:
quoted
The initial otg state for the phy defaults to device mode. The actual
state isn't detected until an ID IRQ fires. Fix this by syncing the ID
state during initialization.

Fixes: 51a9b2c03dd3 ("phy: rockchip-inno-usb2: Handle ID IRQ")
Signed-off-by: Peter Geis <redacted>
One comment below. Either way it fixes a bug, so:

Reviewed-by: Samuel Holland <samuel@sholland.org>
Thanks!
quoted
---
 drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
index 6711659f727c..6e44069617df 100644
--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
+++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
@@ -1162,6 +1162,12 @@ static int rockchip_usb2phy_otg_port_init(struct rockchip_usb2phy *rphy,
                                      EXTCON_USB_HOST, &rport->event_nb);
              if (ret)
                      dev_err(rphy->dev, "register USB HOST notifier failed\n");
+
+             if (!of_property_read_bool(rphy->dev->of_node, "extcon")) {
Currently the IRQ handler does not care who created the extcon. We should at
least be consistent between here and there.
We care in this instance because if there is an external extcon it is
responsible for setting the initial state. Our ID pin may or may not
be used in this case and if it isn't we would overwrite the initial
state with an invalid one.
Regards,
Samuel
quoted
+                     /* do initial sync of usb state */
+                     ret = property_enabled(rphy->grf, &rport->port_cfg->utmi_id);
+                     extcon_set_state_sync(rphy->edev, EXTCON_USB_HOST, !ret);
+             }
      }

 out:
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help