diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2012-05-14 13:48:16 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-05-14 15:50:22 -0400 |
commit | 1996e6c572969a8cf6d7fa97eef621219acd94a9 (patch) | |
tree | 4a6bcdd32202438d6f8a4671a936319c0292dbf3 /drivers/usb/host/ehci-hcd.c | |
parent | 65b8e5cbdddc86474372bdb48dc233b06710a576 (diff) |
USB: EHCI: work around bug in the Philips ISP1562 controller
This patch (as1556) works around a bug in the Philips ISP1562 EHCI
controller. Although the controller claims to support frame-list
lengths smaller than the default of 1024 for its periodic schedule, in
fact smaller values don't work. A new quirk flag is added to indicate
when the bug is present, and if it is then the schedule size is left
at the default value.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 5cb775b1802d..f644ba9529ed 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -639,7 +639,7 @@ static int ehci_init(struct usb_hcd *hcd) | |||
639 | INIT_LIST_HEAD(&ehci->cached_itd_list); | 639 | INIT_LIST_HEAD(&ehci->cached_itd_list); |
640 | INIT_LIST_HEAD(&ehci->cached_sitd_list); | 640 | INIT_LIST_HEAD(&ehci->cached_sitd_list); |
641 | 641 | ||
642 | if (HCC_PGM_FRAMELISTLEN(hcc_params)) { | 642 | if (HCC_PGM_FRAMELISTLEN(hcc_params) && !ehci->sched_size_bug) { |
643 | /* periodic schedule size can be smaller than default */ | 643 | /* periodic schedule size can be smaller than default */ |
644 | switch (EHCI_TUNE_FLS) { | 644 | switch (EHCI_TUNE_FLS) { |
645 | case 0: ehci->periodic_size = 1024; break; | 645 | case 0: ehci->periodic_size = 1024; break; |