Skip to content

Commit 159daf1

Browse files
matnymangregkh
authored andcommitted
USB: Add USB_QUIRK_NO_LPM quirk for sony xperia xz1 smartphone
The fastboot tool for communicating with Android bootloaders does not work reliably with this device if USB 2 Link Power Management (LPM) is enabled. Various fastboot commands are affected, including the following, which usually reproduces the problem within two tries: fastboot getvar kernel getvar:kernel FAILED (remote: 'GetVar Variable Not found') This issue was hidden on many systems up until commit 63a1f84 ("xhci: stored cached port capability values in one place") as the xhci driver failed to detect USB 2 LPM support if USB 3 ports were listed before USB 2 ports in the "supported protocol capabilities". Adding the quirk resolves the issue. No drawbacks are expected since the device uses different USB product IDs outside of fastboot mode, and since fastboot commands worked before, until LPM was enabled on the tested system by the aforementioned commit. Based on a patch from Forest <forestix@nom.one> from which most of the code and commit message is taken. Cc: stable <stable@kernel.org> Reported-by: Forest <forestix@nom.one> Closes: https://lore.kernel.org/hk8umj9lv4l4qguftdq1luqtdrpa1gks5l@sonic.net Tested-by: Forest <forestix@nom.one> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Link: https://lore.kernel.org/r/20250206151836.51742-1-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 7284922 commit 159daf1

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/usb/core/quirks.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,9 @@ static const struct usb_device_id usb_quirk_list[] = {
435435
{ USB_DEVICE(0x0c45, 0x7056), .driver_info =
436436
USB_QUIRK_IGNORE_REMOTE_WAKEUP },
437437

438+
/* Sony Xperia XZ1 Compact (lilac) smartphone in fastboot mode */
439+
{ USB_DEVICE(0x0fce, 0x0dde), .driver_info = USB_QUIRK_NO_LPM },
440+
438441
/* Action Semiconductor flash disk */
439442
{ USB_DEVICE(0x10d6, 0x2200), .driver_info =
440443
USB_QUIRK_STRING_FETCH_255 },

0 commit comments

Comments
 (0)