Re: [PATCH] usb: common: usb-conn-gpio: Set last role to unknown before initial detection

From: Prashanth K
Date: Wed May 24 2023 - 09:38:44 EST




On 24-05-23 03:10 pm, AngeloGioacchino Del Regno wrote:
Il 24/05/23 10:54, Prashanth K ha scritto:
Currently if we bootup a device without cable connected, then
usb-conn-gpio won't call set_role() since last_role is same as
current role. This happens because during probe last_role gets
initialised to zero.

To avoid this, last_role is set to USB_ROLE_UNKNOWN before
performing the initial detection.

Fixes: 4602f3bff266 ("usb: common: add USB GPIO based connection detection driver")
Signed-off-by: Prashanth K <quic_prashk@xxxxxxxxxxx>
---
  drivers/usb/common/usb-conn-gpio.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/usb/common/usb-conn-gpio.c b/drivers/usb/common/usb-conn-gpio.c
index e20874c..00af735 100644
--- a/drivers/usb/common/usb-conn-gpio.c
+++ b/drivers/usb/common/usb-conn-gpio.c
@@ -27,6 +27,8 @@
  #define USB_CONN_IRQF    \
      (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_ONESHOT)
+#define USB_ROLE_UNKNOWN    -1

I would add USB_ROLE_UNKNOWN to `enum usb_role` instead.

enum usb_role {
    USB_ROLE_UNKNOWN = -1,
    USB_ROLE_NONE,
    ....
};

Regards,
Angelo

Thanks for the suggestion Agnelo. Will change it in next patch.

Regards,
Prashanth K