aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/uhci-hcd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/uhci-hcd.c')
-rw-r--r--drivers/usb/host/uhci-hcd.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 15e0a511069b..79efaf7d86a3 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -717,6 +717,8 @@ static int uhci_suspend(struct usb_hcd *hcd, pm_message_t message)
717 * at the source, so we must turn off PIRQ. 717 * at the source, so we must turn off PIRQ.
718 */ 718 */
719 pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, 0); 719 pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, 0);
720 mb();
721 clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
720 uhci->hc_inaccessible = 1; 722 uhci->hc_inaccessible = 1;
721 hcd->poll_rh = 0; 723 hcd->poll_rh = 0;
722 724
@@ -733,6 +735,12 @@ static int uhci_resume(struct usb_hcd *hcd)
733 735
734 dev_dbg(uhci_dev(uhci), "%s\n", __FUNCTION__); 736 dev_dbg(uhci_dev(uhci), "%s\n", __FUNCTION__);
735 737
738 /* We aren't in D3 state anymore, we do that even if dead as I
739 * really don't want to keep a stale HCD_FLAG_HW_ACCESSIBLE=0
740 */
741 set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
742 mb();
743
736 if (uhci->rh_state == UHCI_RH_RESET) /* Dead */ 744 if (uhci->rh_state == UHCI_RH_RESET) /* Dead */
737 return 0; 745 return 0;
738 spin_lock_irq(&uhci->lock); 746 spin_lock_irq(&uhci->lock);
@@ -831,7 +839,6 @@ MODULE_DEVICE_TABLE(pci, uhci_pci_ids);
831static struct pci_driver uhci_pci_driver = { 839static struct pci_driver uhci_pci_driver = {
832 .name = (char *)hcd_name, 840 .name = (char *)hcd_name,
833 .id_table = uhci_pci_ids, 841 .id_table = uhci_pci_ids,
834 .owner = THIS_MODULE,
835 842
836 .probe = usb_hcd_pci_probe, 843 .probe = usb_hcd_pci_probe,
837 .remove = usb_hcd_pci_remove, 844 .remove = usb_hcd_pci_remove,