506d8269fb
commit ad87e03213b552a5c33d5e1e7a19a73768397010 upstream. Some USB device / host controller combinations seem to have problems with Link Power Management. For example, Steinar found that his xHCI controller wouldn't handle bandwidth calculations correctly for two video cards simultaneously when LPM was enabled, even though the bus had plenty of bandwidth available. This patch introduces a new quirk flag for devices that should remain disabled for LPM, and creates quirk entries for Steinar's devices. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Reported-by: Steinar H. Gunderson <sgunderson@bigfoot.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
/*
|
|
* This file holds the definitions of quirks found in USB devices.
|
|
* Only quirks that affect the whole device, not an interface,
|
|
* belong here.
|
|
*/
|
|
|
|
#ifndef __LINUX_USB_QUIRKS_H
|
|
#define __LINUX_USB_QUIRKS_H
|
|
|
|
/* string descriptors must not be fetched using a 255-byte read */
|
|
#define USB_QUIRK_STRING_FETCH_255 0x00000001
|
|
|
|
/* device can't resume correctly so reset it instead */
|
|
#define USB_QUIRK_RESET_RESUME 0x00000002
|
|
|
|
/* device can't handle Set-Interface requests */
|
|
#define USB_QUIRK_NO_SET_INTF 0x00000004
|
|
|
|
/* device can't handle its Configuration or Interface strings */
|
|
#define USB_QUIRK_CONFIG_INTF_STRINGS 0x00000008
|
|
|
|
/* device can't be reset(e.g morph devices), don't use reset */
|
|
#define USB_QUIRK_RESET 0x00000010
|
|
|
|
/* device has more interface descriptions than the bNumInterfaces count,
|
|
and can't handle talking to these interfaces */
|
|
#define USB_QUIRK_HONOR_BNUMINTERFACES 0x00000020
|
|
|
|
/* device needs a pause during initialization, after we read the device
|
|
descriptor */
|
|
#define USB_QUIRK_DELAY_INIT 0x00000040
|
|
|
|
/* device generates spurious wakeup, ignore remote wakeup capability */
|
|
#define USB_QUIRK_IGNORE_REMOTE_WAKEUP 0x00000200
|
|
|
|
/* device can't handle Link Power Management */
|
|
#define USB_QUIRK_NO_LPM BIT(10)
|
|
|
|
#endif /* __LINUX_USB_QUIRKS_H */
|