|
21 | 21 | #define BULK_TRANSFER_TIMEOUT 2500 |
22 | 22 | #define HASH_VALUE_SIZE 16 |
23 | 23 | #define MAX_RETRIES 5 |
| 24 | +#define MAX_SETUP_RETRIES 50 |
24 | 25 | #define MAX_WAIT_COUNT 150 |
25 | 26 | #define POST_INSTALL_SLEEP_DURATION 80 * 1000 /* ms */ |
26 | 27 |
|
@@ -860,7 +861,7 @@ fu_logitech_bulkcontroller_device_ensure_info(FuLogitechBulkcontrollerDevice *se |
860 | 861 | { |
861 | 862 | return fu_device_retry(FU_DEVICE(self), |
862 | 863 | fu_logitech_bulkcontroller_device_ensure_info_cb, |
863 | | - MAX_RETRIES, |
| 864 | + MAX_SETUP_RETRIES, |
864 | 865 | &send_req, |
865 | 866 | error); |
866 | 867 | } |
@@ -1157,7 +1158,7 @@ fu_logitech_bulkcontroller_device_set_time(FuLogitechBulkcontrollerDevice *self, |
1157 | 1158 | { |
1158 | 1159 | return fu_device_retry(FU_DEVICE(self), |
1159 | 1160 | fu_logitech_bulkcontroller_device_set_time_cb, |
1160 | | - MAX_RETRIES, |
| 1161 | + MAX_SETUP_RETRIES, |
1161 | 1162 | NULL, |
1162 | 1163 | error); |
1163 | 1164 | } |
@@ -1206,7 +1207,7 @@ fu_logitech_bulkcontroller_device_transition_to_device_mode(FuLogitechBulkcontro |
1206 | 1207 | { |
1207 | 1208 | return fu_device_retry(FU_DEVICE(self), |
1208 | 1209 | fu_logitech_bulkcontroller_device_transition_to_device_mode_cb, |
1209 | | - MAX_RETRIES, |
| 1210 | + MAX_SETUP_RETRIES, |
1210 | 1211 | NULL, |
1211 | 1212 | error); |
1212 | 1213 | } |
@@ -1288,6 +1289,14 @@ fu_logitech_bulkcontroller_device_setup(FuDevice *device, GError **error) |
1288 | 1289 | { |
1289 | 1290 | FuLogitechBulkcontrollerDevice *self = FU_LOGITECH_BULKCONTROLLER_DEVICE(device); |
1290 | 1291 |
|
| 1292 | + /* the hardware is unable to handle requests -- firmware issue */ |
| 1293 | + if (fu_device_has_private_flag(device, |
| 1294 | + FU_LOGITECH_BULKCONTROLLER_DEVICE_FLAG_POST_INSTALL)) { |
| 1295 | + fu_device_sleep(device, POST_INSTALL_SLEEP_DURATION); |
| 1296 | + fu_device_remove_private_flag(device, |
| 1297 | + FU_LOGITECH_BULKCONTROLLER_DEVICE_FLAG_POST_INSTALL); |
| 1298 | + } |
| 1299 | + |
1291 | 1300 | /* FuUsbDevice->setup */ |
1292 | 1301 | if (!FU_DEVICE_CLASS(fu_logitech_bulkcontroller_device_parent_class) |
1293 | 1302 | ->setup(device, error)) { |
@@ -1316,14 +1325,6 @@ fu_logitech_bulkcontroller_device_setup(FuDevice *device, GError **error) |
1316 | 1325 | return FALSE; |
1317 | 1326 | } |
1318 | 1327 |
|
1319 | | - /* the hardware is unable to handle requests -- firmware issue */ |
1320 | | - if (fu_device_has_private_flag(device, |
1321 | | - FU_LOGITECH_BULKCONTROLLER_DEVICE_FLAG_POST_INSTALL)) { |
1322 | | - fu_device_sleep(device, POST_INSTALL_SLEEP_DURATION); |
1323 | | - fu_device_remove_private_flag(device, |
1324 | | - FU_LOGITECH_BULKCONTROLLER_DEVICE_FLAG_POST_INSTALL); |
1325 | | - } |
1326 | | - |
1327 | 1328 | /* set device time */ |
1328 | 1329 | if (!fu_logitech_bulkcontroller_device_set_time(self, error)) { |
1329 | 1330 | g_prefix_error(error, "failed to set time: "); |
|
0 commit comments