Re: [PATCH 1/1] usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers

From: Greg Kroah-Hartman

Date: Wed Feb 04 2026 - 00:18:16 EST


On Tue, Feb 03, 2026 at 05:10:27PM -0500, Lyude Paul wrote:
> The "Aorus Waterforce" is one of those fancy gaming water coolers that
> comes with fun LEDs and an entire dedicated LCD screen. A minor issue I've
> noticed with this cooler on Linux, is that we fail to actually
> reset the device when coming out of standby, ish:
>
> [ 281.652184] usb 7-10.4: reset high-speed USB device number 7 using xhci_hcd
> [ 287.179843] usb 7-10.4: PM: dpm_run_callback(): usb_dev_resume returns -5
> [ 287.179854] usb 7-10.4: PM: failed to resume async: error -5
>
> Generally this isn't fatal, as even when the water cooler doesn't resume it
> will still reconnect itself moments later:
>
> 15:48:12 GoldenWind kernel: usb 7-10.4: USB disconnect, device number 14
> 15:48:12 GoldenWind kernel: usb 7-10.4: new high-speed USB device number
> 15 using xhci_hcd
> 15:48:14 GoldenWind kernel: usb 7-10.4: New USB device found,
> idVendor=0414, idProduct=7a5e, bcdDevice= 2.00
> 15:48:14 GoldenWind kernel: usb 7-10.4: New USB device strings: Mfr=1,
> Product=2, SerialNumber=0
> 15:48:14 GoldenWind kernel: usb 7-10.4: Product: Castor3
> 15:48:14 GoldenWind kernel: usb 7-10.4: Manufacturer: ITE Tech.
> 15:48:14 GoldenWind kernel: hid-generic 0003:0414:7A5E.000D:
> hiddev98,hidraw2: USB HID v1.01 Device [ITE Tech. Castor3] on
> usb-0000:74:00.0-10.4/input0
>
> My guess here is that the device simply doesn't support resets properly -
> since that seems to be the only quirk I've found that actually works. Note
> that the device still ends up disconnecting and reconnecting after resume,
> but this seems to be normal behavior.
>
> So, let's fix this by adding the USB_QUIRK_RESET quirk for this USB device.
> This seems to work perfectly fine and prevents us from getting the
> aforementioned errors on resume.
>
> Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx>
> ---
> drivers/usb/core/quirks.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index c4d85089d19b1..9a81994ee725b 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -584,6 +584,9 @@ static const struct usb_device_id usb_quirk_list[] = {
> /* INTEL VALUE SSD */
> { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
>
> + /* Gigabyte ITE Tech. Castor3 (Aorus Waterforce X II AIO coolers) */
> + { USB_DEVICE(0x0414, 0x7a5e), .driver_info = USB_QUIRK_RESET },

Please see the comments for this structure on how to place this device
in the list.

thanks,

greg k-h