summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2021-03-19 13:48:02 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-04-07 12:05:40 +0200
commit72edc9d3f83bae3a152402fb8a46bab3c86ece3f (patch)
treea22c1f348981ae0ffe1142d76d00730f9e10f659
parentcf4ab748a0ef6e70cad3878bf31f57ee33bf2d14 (diff)
downloadlinux-stable-72edc9d3f83bae3a152402fb8a46bab3c86ece3f.tar.gz
linux-stable-72edc9d3f83bae3a152402fb8a46bab3c86ece3f.tar.bz2
linux-stable-72edc9d3f83bae3a152402fb8a46bab3c86ece3f.zip
USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem
commit 0bd860493f81eb2a46173f6f5e44cc38331c8dbd upstream. This LTE modem (M.2 card) has a bug in its power management: there is some kind of race condition for U3 wake-up between the host and the device. The modem firmware sometimes crashes/locks when both events happen at the same time and the modem fully drops off the USB bus (and sometimes re-enumerates, sometimes just gets stuck until the next reboot). Tested with the modem wired to the XHCI controller on an AMD 3015Ce platform. Without the patch, the modem dropped of the USB bus 5 times in 3 days. With the quirk, it stayed connected for a week while the 'runtime_suspended_time' counter incremented as excepted. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> Link: https://lore.kernel.org/r/20210319124802.2315195-1-vpalatin@chromium.org Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/core/quirks.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 2fc735efc3dc..cd43e11d74f3 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -321,6 +321,10 @@ static const struct usb_device_id usb_quirk_list[] = {
/* DJI CineSSD */
{ USB_DEVICE(0x2ca3, 0x0031), .driver_info = USB_QUIRK_NO_LPM },
+ /* Fibocom L850-GL LTE Modem */
+ { USB_DEVICE(0x2cb7, 0x0007), .driver_info =
+ USB_QUIRK_IGNORE_REMOTE_WAKEUP },
+
/* INTEL VALUE SSD */
{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },