public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers
@ 2026-02-03 22:10 Lyude Paul
  2026-02-03 22:10 ` [PATCH 1/1] " Lyude Paul
  0 siblings, 1 reply; 4+ messages in thread
From: Lyude Paul @ 2026-02-03 22:10 UTC (permalink / raw)
  To: linux-kernel, linux-usb
  Cc: Jiayi Li, Mathias Nyman, Oliver Neukum, Miao Li,
	Johannes Brüderl, Lei Huang, Lyude Paul, Greg Kroah-Hartman

This appears to be the final bug that I've discovered on my newly built
desktop - the liquid cooler I installed doesn't appear to reset properly
during resume, and causes the kernel to print some errors (see the
commit message for more info). As far as I can tell, it seems to just be
a simple case of not supporting resets.

It's worth mentioning what the USB topology for this device actually
looks like:

/:  Bus 007.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 010: Dev 006, If 0, Class=Hub, Driver=hub/4p, 480M
        ID 05e3:0608 Genesys Logic, Inc. Hub
        |__ Port 004: Dev 015, If 0, Class=Human Interface Device, Driver=usbhid, 480M
            ID 0414:7a5e Giga-Byte Technology Co., Ltd

To be clear, I believe the second hub (Genesys Logic) is built into the
liquid cooler itself. Since there seem to be a number of known issues
with Genesys Logic hubs (at least according to our quirks file) I did
give a try at applying various quirks to it, but none of them seemed to
make any difference.

Of course, if anyone thinks there's more things I should try here feel
free to let me know :).

Lyude Paul (1):
  usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers

 drivers/usb/core/quirks.c | 3 +++
 1 file changed, 3 insertions(+)


base-commit: de0674d9bc69699c497477d45172493393ae9007
-- 
2.52.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/1] usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers
  2026-02-03 22:10 [PATCH 0/1] usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers Lyude Paul
@ 2026-02-03 22:10 ` Lyude Paul
  2026-02-04  5:16   ` Greg Kroah-Hartman
  0 siblings, 1 reply; 4+ messages in thread
From: Lyude Paul @ 2026-02-03 22:10 UTC (permalink / raw)
  To: linux-kernel, linux-usb
  Cc: Jiayi Li, Mathias Nyman, Oliver Neukum, Miao Li,
	Johannes Brüderl, Lei Huang, Lyude Paul, Greg Kroah-Hartman

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@redhat.com>
---
 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 },
+
 	{ }  /* terminating entry must be last */
 };
 
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers
  2026-02-03 22:10 ` [PATCH 1/1] " Lyude Paul
@ 2026-02-04  5:16   ` Greg Kroah-Hartman
  2026-02-05 20:19     ` lyude
  0 siblings, 1 reply; 4+ messages in thread
From: Greg Kroah-Hartman @ 2026-02-04  5:16 UTC (permalink / raw)
  To: Lyude Paul
  Cc: linux-kernel, linux-usb, Jiayi Li, Mathias Nyman, Oliver Neukum,
	Miao Li, Johannes Brüderl, Lei Huang

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@redhat.com>
> ---
>  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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers
  2026-02-04  5:16   ` Greg Kroah-Hartman
@ 2026-02-05 20:19     ` lyude
  0 siblings, 0 replies; 4+ messages in thread
From: lyude @ 2026-02-05 20:19 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, linux-usb, Jiayi Li, Mathias Nyman, Oliver Neukum,
	Miao Li, Johannes Brüderl, Lei Huang

On Wed, 2026-02-04 at 06:16 +0100, Greg Kroah-Hartman wrote:
> >  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.

aha-whoops, my bad :). I'll respin a new version in a bit
> 
> thanks,
> 
> greg k-h


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-02-05 20:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-03 22:10 [PATCH 0/1] usb: core: Add quirk for Gigabyte Aorus Waterforce X II AIO coolers Lyude Paul
2026-02-03 22:10 ` [PATCH 1/1] " Lyude Paul
2026-02-04  5:16   ` Greg Kroah-Hartman
2026-02-05 20:19     ` lyude

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox