diff options
author | 2012-07-17 18:07:10 +0200 | |
---|---|---|
committer | 2012-07-17 18:07:10 +0200 | |
commit | 231e33d5544722d27d08261275332072769e59bc (patch) | |
tree | 9f3f712b23224b26bcf32d94e30e03fc4c905ae9 /src/dfu.c | |
parent | 4e338a3126568ad3995795ea16d9955db8c6e002 (diff) | |
download | idevicerestore-231e33d5544722d27d08261275332072769e59bc.tar.gz idevicerestore-231e33d5544722d27d08261275332072769e59bc.tar.bz2 |
USB: Send a ZLP after mode switches to hopefully increase stability
Sometimes devices do not switch modes, sending a zero length packet
appears to fix this situation and prevents failures during restore.
Diffstat (limited to 'src/dfu.c')
-rw-r--r-- | src/dfu.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -250,6 +250,8 @@ int dfu_enter_recovery(struct idevicerestore_client_t* client, plist_t build_ide return -1; } + irecv_control_transfer(client->dfu->client, 0x21, 1, 0, 0, 0, 0, 5000); + dfu_error = irecv_reset(client->dfu->client); if (dfu_error != IRECV_E_SUCCESS) { error("ERROR: Unable to reset device\n"); @@ -315,6 +317,8 @@ int dfu_enter_recovery(struct idevicerestore_client_t* client, plist_t build_ide return -1; } + irecv_control_transfer(client->dfu->client, 0x21, 1, 0, 0, 0, 0, 5000); + dfu_error = irecv_reset(client->dfu->client); if (dfu_error != IRECV_E_SUCCESS) { error("ERROR: Unable to reset device\n"); |