summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Ginstmark2022-02-07 21:30:40 +0000
committerPetr Štetiar2022-02-24 20:40:51 +0000
commit3c8595a4e75510f58fa231b145d5506768dcafc9 (patch)
tree9e61672e3c257f0819ebfec61aa994c5bd81c62b
parentf40f84c27534159066c94dadc0c08e0b255c3e26 (diff)
downloadusbmode-3c8595a4e75510f58fa231b145d5506768dcafc9.tar.gz
usbmode: add config #0 and delay before actual config
I have a Huawei ME909s-120. When I switch directly from configuration to go via configuration #0, and a short delay, and then to configuration well. So in order to fix it, add config #0 and a 100milliseconds delay before switching to actual config, like in USB_ModeSwitch. References: https://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=4&t=2710&sid=505ed44b4064fef7009f0c26aac085e2&start=15 Signed-off-by: Henrik Ginstmark <henrik@ginstmark.se> Signed-off-by: Petr Štetiar <ynezz@true.cz> [rebased, commit description facelift]
-rw-r--r--switch.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/switch.c b/switch.c
index cc04237..6285c7c 100644
--- a/switch.c
+++ b/switch.c
@@ -520,8 +520,11 @@ void handle_switch(struct usbdev_data *data)
config_new = blobmsg_get_u32(tb[DATA_CONFIG]);
if (libusb_get_configuration(data->devh, &config) ||
- config != config_new)
+ config != config_new) {
+ libusb_set_configuration(data->devh, 0);
+ usleep(100000);
libusb_set_configuration(data->devh, config_new);
+ }
}
if (tb[DATA_ALT]) {