From: Tormod Volden <debian.tor...@gmail.com> Signed-off-by: Tormod Volden <debian.tor...@gmail.com> ---
Hi, I have some issues with the recent --detach option addition: * It duplicates the existing detach code * It sends requests to an interface without claiming it first * It resets the device without checking bitWillDetach Can't we simply do it like this, use existing code instead? I do not have any devices that do the mode transition correctly, so I can not verify that it works. If the main motivation for this option is to inquire about devices which only show alternate interfaces after switching to DFU mode, then an alternative would be to list those if the user has not specified one of them with the -a option. This way we may avoid adding the -e option altogether. Patch to follow. Regards, Tormod src/main.c | 18 +++++------------- 1 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main.c b/src/main.c index 4c96f88..3624069 100644 --- a/src/main.c +++ b/src/main.c @@ -804,19 +804,6 @@ int main(int argc, char **argv) printf("Run-time device DFU version %04x\n", libusb_le16_to_cpu(func_dfu_rt.bcdDFUVersion)); - if (mode == MODE_DETACH) { - if (dfu_detach(_rt_dif.dev_handle, _rt_dif.interface, 1000) < 0) { - fprintf(stderr, "error detaching\n"); - exit(1); - } - libusb_release_interface(_rt_dif.dev_handle, _rt_dif.interface); - ret = libusb_reset_device(_rt_dif.dev_handle); - if (ret < 0 && ret != LIBUSB_ERROR_NOT_FOUND) - fprintf(stderr, "error resetting " - "after detach\n"); - exit(0); - } - /* Transition from run-Time mode to DFU mode */ if (!(_rt_dif.flags & DFU_IFF_DFU)) { /* In the 'first round' during runtime mode, there can only be one @@ -889,6 +876,11 @@ int main(int argc, char **argv) _rt_dif.interface); libusb_close(_rt_dif.dev_handle); + if (mode == MODE_DETACH) { + libusb_exit(ctx); + exit(0); + } + /* now we need to re-scan the bus and locate our device */ // if (usb_find_devices() < 2) // printf("not at least 2 device changes found ?!?\n"); -- 1.7.5.4 _______________________________________________ devel mailing list devel@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/devel