diff --git a/libdfu/dfu-device.c b/libdfu/dfu-device.c index 5bca9867e..ffee8e930 100644 --- a/libdfu/dfu-device.c +++ b/libdfu/dfu-device.c @@ -822,6 +822,13 @@ dfu_device_download (DfuDevice *device, g_debug ("booting to runtime to set auto-boot"); if (!dfu_device_wait_for_replug (device, 2000, cancellable, error)) return FALSE; + target_default = dfu_device_get_target_default (device, error); + if (target_default == NULL) + return FALSE; + if (!dfu_target_open (target_default, + DFU_TARGET_OPEN_FLAG_NONE, + NULL, error)) + return FALSE; } /* auto-close */ diff --git a/libdfu/dfu-tool.c b/libdfu/dfu-tool.c index 5b114500f..3c7554160 100644 --- a/libdfu/dfu-tool.c +++ b/libdfu/dfu-tool.c @@ -1088,6 +1088,7 @@ dfu_tool_download (DfuToolPrivate *priv, gchar **values, GError **error) /* optional reset */ if (priv->reset) { + flags |= DFU_TARGET_TRANSFER_FLAG_DETACH; flags |= DFU_TARGET_TRANSFER_FLAG_HOST_RESET; flags |= DFU_TARGET_TRANSFER_FLAG_BOOT_RUNTIME; }