diff options
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 40f7391bf2aa..8c3e860bfce3 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -686,6 +686,8 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) | |||
686 | /* remote wakeup [4.3.1] */ | 686 | /* remote wakeup [4.3.1] */ |
687 | if (status & STS_PCD) { | 687 | if (status & STS_PCD) { |
688 | unsigned i = HCS_N_PORTS (ehci->hcs_params); | 688 | unsigned i = HCS_N_PORTS (ehci->hcs_params); |
689 | |||
690 | /* kick root hub later */ | ||
689 | pcd_status = status; | 691 | pcd_status = status; |
690 | 692 | ||
691 | /* resume root hub? */ | 693 | /* resume root hub? */ |
@@ -714,8 +716,6 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) | |||
714 | 716 | ||
715 | /* PCI errors [4.15.2.4] */ | 717 | /* PCI errors [4.15.2.4] */ |
716 | if (unlikely ((status & STS_FATAL) != 0)) { | 718 | if (unlikely ((status & STS_FATAL) != 0)) { |
717 | /* bogus "fatal" IRQs appear on some chips... why? */ | ||
718 | status = ehci_readl(ehci, &ehci->regs->status); | ||
719 | dbg_cmd (ehci, "fatal", ehci_readl(ehci, | 719 | dbg_cmd (ehci, "fatal", ehci_readl(ehci, |
720 | &ehci->regs->command)); | 720 | &ehci->regs->command)); |
721 | dbg_status (ehci, "fatal", status); | 721 | dbg_status (ehci, "fatal", status); |
@@ -734,7 +734,7 @@ dead: | |||
734 | if (bh) | 734 | if (bh) |
735 | ehci_work (ehci); | 735 | ehci_work (ehci); |
736 | spin_unlock (&ehci->lock); | 736 | spin_unlock (&ehci->lock); |
737 | if (pcd_status & STS_PCD) | 737 | if (pcd_status) |
738 | usb_hcd_poll_rh_status(hcd); | 738 | usb_hcd_poll_rh_status(hcd); |
739 | return IRQ_HANDLED; | 739 | return IRQ_HANDLED; |
740 | } | 740 | } |