[PATCH dfu-util] main: Move DFU state transition blocks together
Tormod Volden
lists.tormod at gmail.com
Mon Sep 19 19:43:30 CEST 2011
From: Tormod Volden <debian.tormod at gmail.com>
There is an extra DFU state check after the transfer size has been
determined. The order should not matter so move it around.
Signed-off-by: Tormod Volden <debian.tormod at gmail.com>
---
This is just to make the code cleaner and better structured.
It has been like this since the start of the git history,
but I do not think there is any reason for having this check
/after/ requesting the functional descriptor. If someone can
test it on sam7DFU device that would be nice. I think the
early code was made for this device.
Tormod
src/main.c | 30 +++++++++++++++---------------
1 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/src/main.c b/src/main.c
index e03ec3f..39a3bcd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -905,6 +905,21 @@ status_again:
break;
}
+ if (DFU_STATUS_OK != status.bStatus ) {
+ printf("WARNING: DFU Status: '%s'\n",
+ dfu_status_to_string(status.bStatus));
+ /* Clear our status & try again. */
+ dfu_clear_status(dif->dev_handle, dif->interface);
+ dfu_get_status(dif->dev_handle, dif->interface, &status);
+
+ if (DFU_STATUS_OK != status.bStatus) {
+ fprintf(stderr, "Error: %d\n", status.bStatus);
+ exit(1);
+ }
+ if (!(quirks & QUIRK_POLLTIMEOUT))
+ usleep(status.bwPollTimeout * 1000);
+ }
+
/* Retrieve DFU mode DFU functional descriptor */
ret = usb_get_extra_descriptor(dif, USB_DT_DFU, dif->interface,
&func_dfu, sizeof(func_dfu));
@@ -948,21 +963,6 @@ status_again:
printf("Adjusted transfer size to %i\n", transfer_size);
}
- if (DFU_STATUS_OK != status.bStatus ) {
- printf("WARNING: DFU Status: '%s'\n",
- dfu_status_to_string(status.bStatus));
- /* Clear our status & try again. */
- dfu_clear_status(dif->dev_handle, dif->interface);
- dfu_get_status(dif->dev_handle, dif->interface, &status);
-
- if (DFU_STATUS_OK != status.bStatus) {
- fprintf(stderr, "Error: %d\n", status.bStatus);
- exit(1);
- }
- if (!(quirks & QUIRK_POLLTIMEOUT))
- usleep(status.bwPollTimeout * 1000);
- }
-
switch (mode) {
case MODE_UPLOAD:
file.fd = open(file.name, O_WRONLY|O_CREAT|O_EXCL, 0644);
--
1.7.5.4
More information about the devel
mailing list