Skip to contentSkip to conversation

USB: add ignore remote wakeup quirk for one of Logitech's receivers

PATCH In review Hamza Mahfooz 2 participants 4 messages Sep 10, 2023 – Sep 11, 2023

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 USB: add ignore remote wakeup quirk for one of Logitech's receivers

This device causes the system to wake up from suspend, as soon as it enters it (even if the device attached to the receiver is powered off). So, ignore remote wakeup events from it.

---
 drivers/usb/core/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/usb/core/quirks.c +4 -0
index 15e9bd180a1d..d2e2a2873f34 100644
@@ -264,6 +264,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	/* Logitech Harmony 700-series */
 	{ USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
 
+	/* Logitech lightspeed receiver (0xc547) */
+	{ USB_DEVICE(0x046d, 0xc547), .driver_info =
+			USB_QUIRK_IGNORE_REMOTE_WAKEUP },
+
 	/* Philips PSC805 audio device */
 	{ USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME },
 
Signature · 1 line
2.42.0
#1 lore raw

Hi Hamza,

Quoted 15 lines · Hamza Mahfooz

This device causes the system to wake up from suspend, as soon as it enters it (even if the device attached to the receiver is powered off). So, ignore remote wakeup events from it.

---
 drivers/usb/core/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/usb/core/quirks.c +0 -0
index 15e9bd180a1d..d2e2a2873f34 100644

drivers/usb/core/quirks.c static const struct usb_device_id usb_quirk_list[] = { · line 273

Quoted 10 lines
drivers/usb/core/quirks.c +4 -0
@@ -264,6 +264,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	/* Logitech Harmony 700-series */
 	{ USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
 
+	/* Logitech lightspeed receiver (0xc547) */
+	{ USB_DEVICE(0x046d, 0xc547), .driver_info =
+			USB_QUIRK_IGNORE_REMOTE_WAKEUP },
+
 	/* Philips PSC805 audio device */
 	{ USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME },
 

If this is a lightspeed receiver then it really should be handled by hid-logitech-dj.c unless this new receiver is using a new protocol ?

I wonder if adding it there also fixes the remote wakeup issue (I doubt it fixes it but worth a try) ?

Regards,

Hans

#2 lore raw

Hey Hans,

Quoted 33 lines · Hans de Goede

Hi Hamza,

Quoted 21 lines · Hamza Mahfooz

This device causes the system to wake up from suspend, as soon as it enters it (even if the device attached to the receiver is powered
off).
So, ignore remote wakeup events from it.

---

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

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c index 15e9bd180a1d..d2e2a2873f34 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -264,6 +264,10 @@ static const struct usb_device_id
usb_quirk_list[] = {
/* Logitech Harmony 700-series */
{ USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT
},

Quoted 8 lines

+ /* Logitech lightspeed receiver (0xc547) */
+ { USB_DEVICE(0x046d, 0xc547), .driver_info =
+ USB_QUIRK_IGNORE_REMOTE_WAKEUP },
+
/* Philips PSC805 audio device */
{ USB_DEVICE(0x0471, 0x0155), .driver_info =
USB_QUIRK_RESET_RESUME },

Quoted 5 lines

If this is a lightspeed receiver then it really should be handled by hid-logitech-dj.c unless this new receiver is using a new protocol ?

I wonder if adding it there also fixes the remote wakeup issue (I doubt it fixes it but worth a try) ?

Seems like the following series does indeed fix this issue:
https://lore.kernel.org/linux-input/[email protected]/T/#u

Quoted 7 lines

Regards,

Hans

#3 lore raw

Hi Hamza,

Quoted 35 lines · Hamza Mahfooz

Hey Hans,

Quoted 32 lines · Hans de Goede

Hi Hamza,

Quoted 18 lines · Hamza Mahfooz

 This device causes the system to wake up from suspend, as soon as it enters it (even if the device attached to the receiver is powered off). So, ignore remote wakeup events from it.

 ---
  drivers/usb/core/quirks.c | 4 ++++

  1 file changed, 4 insertions(+)

 diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c index 15e9bd180a1d..d2e2a2873f34 100644
 --- a/drivers/usb/core/quirks.c
 +++ b/drivers/usb/core/quirks.c
 @@ -264,6 +264,10 @@ static const struct usb_device_id usb_quirk_list[] = { /* Logitech Harmony 700-series */
      { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },

Quoted 7 lines

 +    /* Logitech lightspeed receiver (0xc547) */
 +    { USB_DEVICE(0x046d, 0xc547), .driver_info =
 +            USB_QUIRK_IGNORE_REMOTE_WAKEUP },
 +
      /* Philips PSC805 audio device */
      { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME },

If this is a lightspeed receiver then it really should be handled by hid-logitech-dj.c unless this new receiver is using a new protocol ?

Quoted 6 lines
Quoted 2 lines

I wonder if adding it there also fixes the remote wakeup issue (I doubt it fixes it but worth a try) ?

Seems like the following series does indeed fix this issue:
https://lore.kernel.org/linux-input/[email protected]/T/#u

Great, thank you for letting us know that this is resolved with that patch series.

Regards,

Hans