aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/uhci-hcd.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 15:20:00 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 15:20:00 -0500
commit74e1a2a39355b2d3ae8c60c78d8add162c6d7183 (patch)
tree1ce09f285c505a774838a95cff7327a750dc85fc /drivers/usb/host/uhci-hcd.c
parentb5c78e04dd061b776978dad61dd85357081147b0 (diff)
parent6166805c3de539a41cfcae39026c5bc273d7c6aa (diff)
Merge tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB patches from Greg Kroah-Hartman: "Here's the big USB merge for 3.9-rc1 Nothing major, lots of gadget fixes, and of course, xhci stuff. All of this has been in linux-next for a while, with the exception of the last 3 patches, which were reverts of patches in the tree that caused problems, they went in yesterday." * tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (190 commits) Revert "USB: EHCI: make ehci-vt8500 a separate driver" Revert "USB: EHCI: make ehci-orion a separate driver" Revert "USB: update host controller Kconfig entries" USB: update host controller Kconfig entries USB: EHCI: make ehci-orion a separate driver USB: EHCI: make ehci-vt8500 a separate driver USB: usb-storage: unusual_devs update for Super TOP SATA bridge USB: ehci-omap: Fix autoloading of module USB: ehci-omap: Don't free gpios that we didn't request USB: option: add Huawei "ACM" devices using protocol = vendor USB: serial: fix null-pointer dereferences on disconnect USB: option: add Yota / Megafon M100-1 4g modem drivers/usb: add missing GENERIC_HARDIRQS dependencies USB: storage: properly handle the endian issues of idProduct testusb: remove all mentions of 'usbfs' usb: gadget: imx_udc: make it depend on BROKEN usb: omap_control_usb: fix compile warning ARM: OMAP: USB: Add phy binding information ARM: OMAP2: MUSB: Specify omap4 has mailbox ARM: OMAP: devices: create device for usb part of control module ...
Diffstat (limited to 'drivers/usb/host/uhci-hcd.c')
-rw-r--r--drivers/usb/host/uhci-hcd.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 4f64d24eebc8..4a86b63745b8 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -453,20 +453,19 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
453 453
454 if (status & ~(USBSTS_USBINT | USBSTS_ERROR | USBSTS_RD)) { 454 if (status & ~(USBSTS_USBINT | USBSTS_ERROR | USBSTS_RD)) {
455 if (status & USBSTS_HSE) 455 if (status & USBSTS_HSE)
456 dev_err(uhci_dev(uhci), "host system error, " 456 dev_err(uhci_dev(uhci),
457 "PCI problems?\n"); 457 "host system error, PCI problems?\n");
458 if (status & USBSTS_HCPE) 458 if (status & USBSTS_HCPE)
459 dev_err(uhci_dev(uhci), "host controller process " 459 dev_err(uhci_dev(uhci),
460 "error, something bad happened!\n"); 460 "host controller process error, something bad happened!\n");
461 if (status & USBSTS_HCH) { 461 if (status & USBSTS_HCH) {
462 if (uhci->rh_state >= UHCI_RH_RUNNING) { 462 if (uhci->rh_state >= UHCI_RH_RUNNING) {
463 dev_err(uhci_dev(uhci), 463 dev_err(uhci_dev(uhci),
464 "host controller halted, " 464 "host controller halted, very bad!\n");
465 "very bad!\n");
466 if (debug > 1 && errbuf) { 465 if (debug > 1 && errbuf) {
467 /* Print the schedule for debugging */ 466 /* Print the schedule for debugging */
468 uhci_sprint_schedule(uhci, 467 uhci_sprint_schedule(uhci, errbuf,
469 errbuf, ERRBUF_LEN); 468 ERRBUF_LEN - EXTRA_SPACE);
470 lprintk(errbuf); 469 lprintk(errbuf);
471 } 470 }
472 uhci_hc_died(uhci); 471 uhci_hc_died(uhci);
@@ -592,8 +591,8 @@ static int uhci_start(struct usb_hcd *hcd)
592 UHCI_NUMFRAMES * sizeof(*uhci->frame), 591 UHCI_NUMFRAMES * sizeof(*uhci->frame),
593 &uhci->frame_dma_handle, 0); 592 &uhci->frame_dma_handle, 0);
594 if (!uhci->frame) { 593 if (!uhci->frame) {
595 dev_err(uhci_dev(uhci), "unable to allocate " 594 dev_err(uhci_dev(uhci),
596 "consistent memory for frame list\n"); 595 "unable to allocate consistent memory for frame list\n");
597 goto err_alloc_frame; 596 goto err_alloc_frame;
598 } 597 }
599 memset(uhci->frame, 0, UHCI_NUMFRAMES * sizeof(*uhci->frame)); 598 memset(uhci->frame, 0, UHCI_NUMFRAMES * sizeof(*uhci->frame));
@@ -601,8 +600,8 @@ static int uhci_start(struct usb_hcd *hcd)
601 uhci->frame_cpu = kcalloc(UHCI_NUMFRAMES, sizeof(*uhci->frame_cpu), 600 uhci->frame_cpu = kcalloc(UHCI_NUMFRAMES, sizeof(*uhci->frame_cpu),
602 GFP_KERNEL); 601 GFP_KERNEL);
603 if (!uhci->frame_cpu) { 602 if (!uhci->frame_cpu) {
604 dev_err(uhci_dev(uhci), "unable to allocate " 603 dev_err(uhci_dev(uhci),
605 "memory for frame pointers\n"); 604 "unable to allocate memory for frame pointers\n");
606 goto err_alloc_frame_cpu; 605 goto err_alloc_frame_cpu;
607 } 606 }
608 607
@@ -737,8 +736,8 @@ static int uhci_rh_suspend(struct usb_hcd *hcd)
737 */ 736 */
738 else if (hcd->self.root_hub->do_remote_wakeup && 737 else if (hcd->self.root_hub->do_remote_wakeup &&
739 uhci->resuming_ports) { 738 uhci->resuming_ports) {
740 dev_dbg(uhci_dev(uhci), "suspend failed because a port " 739 dev_dbg(uhci_dev(uhci),
741 "is resuming\n"); 740 "suspend failed because a port is resuming\n");
742 rc = -EBUSY; 741 rc = -EBUSY;
743 } else 742 } else
744 suspend_rh(uhci, UHCI_RH_SUSPENDED); 743 suspend_rh(uhci, UHCI_RH_SUSPENDED);
@@ -829,8 +828,8 @@ static int uhci_count_ports(struct usb_hcd *hcd)
829 828
830 /* Anything greater than 7 is weird so we'll ignore it. */ 829 /* Anything greater than 7 is weird so we'll ignore it. */
831 if (port > UHCI_RH_MAXCHILD) { 830 if (port > UHCI_RH_MAXCHILD) {
832 dev_info(uhci_dev(uhci), "port count misdetected? " 831 dev_info(uhci_dev(uhci),
833 "forcing to 2 ports\n"); 832 "port count misdetected? forcing to 2 ports\n");
834 port = 2; 833 port = 2;
835 } 834 }
836 835