diff options
Diffstat (limited to 'drivers/usb/core/config.c')
| -rw-r--r-- | drivers/usb/core/config.c | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c index 25dbd8c7aec7..4be52c602e9b 100644 --- a/drivers/usb/core/config.c +++ b/drivers/usb/core/config.c @@ -280,6 +280,16 @@ static int usb_parse_endpoint(struct device *ddev, int cfgno, int inum,  			/*  			 * Adjust bInterval for quirked devices. +			 */ +			/* +			 * This quirk fixes bIntervals reported in ms. +			 */ +			if (to_usb_device(ddev)->quirks & +				USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL) { +				n = clamp(fls(d->bInterval) + 3, i, j); +				i = j = n; +			} +			/*  			 * This quirk fixes bIntervals reported in  			 * linear microframes.  			 */ |