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