From 41ddd624448154042129ffe185775de79757c534 Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Mon, 11 Mar 2024 11:30:17 +0000 Subject: [PATCH] Do not probe the BOS descriptors of the Nostromo n52 gamepad Fixes https://github.com/fwupd/fwupd/issues/6871 --- data/ds20.quirk | 3 +++ data/meson.build | 1 + libfwupdplugin/fu-usb-device.c | 6 ++++++ 3 files changed, 10 insertions(+) create mode 100644 data/ds20.quirk diff --git a/data/ds20.quirk b/data/ds20.quirk new file mode 100644 index 00000000000..0c0f0ea95f8 --- /dev/null +++ b/data/ds20.quirk @@ -0,0 +1,3 @@ +# Nostromo n52 gamepad +[USB\VID_050D&PID_0815] +Flags = no-probe diff --git a/data/meson.build b/data/meson.build index eef39bda33d..0be43df77a1 100644 --- a/data/meson.build +++ b/data/meson.build @@ -30,6 +30,7 @@ if build_standalone install_mode: 'rw-r-----', ) plugin_quirks += files([ + 'ds20.quirk', 'power.quirk', 'cfi.quirk', ]) diff --git a/libfwupdplugin/fu-usb-device.c b/libfwupdplugin/fu-usb-device.c index 9debffad62e..52c8f5273db 100644 --- a/libfwupdplugin/fu-usb-device.c +++ b/libfwupdplugin/fu-usb-device.c @@ -689,6 +689,12 @@ fu_usb_device_probe_bos_descriptors(FuUsbDevice *self, GError **error) g_autoptr(GError) error_local = NULL; g_autoptr(GPtrArray) bos_descriptors = NULL; + /* already matched a quirk entry */ + if (fu_device_has_internal_flag(FU_DEVICE(self), FU_DEVICE_INTERNAL_FLAG_NO_PROBE)) { + g_set_error_literal(error, FWUPD_ERROR, FWUPD_ERROR_NOT_SUPPORTED, "not probing"); + return FALSE; + } + /* not supported, so there is no point opening */ if (g_usb_device_get_spec(priv->usb_device) <= 0x0200) { g_set_error(error,