From e121332c975399509eeb8e3c2f35991cb3d0a62e Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Fri, 19 Nov 2021 13:50:32 +0000 Subject: [PATCH] dfu: Do not wait for a USB runtime if will-disappear is set Fixes https://github.com/fwupd/fwupd/issues/4000 --- plugins/dfu/dfu.quirk | 5 +++-- plugins/dfu/fu-dfu-device.c | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/dfu/dfu.quirk b/plugins/dfu/dfu.quirk index 3239506cd..8c1d2bcea 100644 --- a/plugins/dfu/dfu.quirk +++ b/plugins/dfu/dfu.quirk @@ -4,7 +4,8 @@ Plugin = dfu # GD32VF103 Rev1 [USB\VID_28E9&PID_0189] -Flags = gd32,force-dfu-mode +Flags = gd32,force-dfu-mode,will-disappear +Name = GD32VF103 Vendor = GDMicroelectronics # Realtek USB camera @@ -330,7 +331,7 @@ DfuAltName = @Flash/0x0/1*32Kg # STM32F745 dfuse bootloader [USB\VID_0483&PID_DF11] -Flags = absent-sector-size +Flags = absent-sector-size,will-disappear Plugin = dfu DfuForceVersion = 011a DfuForceTimeout = 5000 diff --git a/plugins/dfu/fu-dfu-device.c b/plugins/dfu/fu-dfu-device.c index b43e3006b..b4c308ce0 100644 --- a/plugins/dfu/fu-dfu-device.c +++ b/plugins/dfu/fu-dfu-device.c @@ -1400,6 +1400,10 @@ fu_dfu_device_attach(FuDevice *device, FuProgress *progress, GError **error) return FALSE; } + /* there is no USB runtime whatsoever */ + if (fu_device_has_flag(device, FWUPD_DEVICE_FLAG_WILL_DISAPPEAR)) + return TRUE; + /* success */ priv->force_version = 0x0; fu_device_add_flag(device, FWUPD_DEVICE_FLAG_WAIT_FOR_REPLUG);