USB: xhci: BIOS handoff and HW initialization.
[cascardo/linux.git] / drivers / usb / host / ohci-q.c
index 9b54740..c2d80f8 100644 (file)
@@ -49,6 +49,9 @@ __acquires(ohci->lock)
        switch (usb_pipetype (urb->pipe)) {
        case PIPE_ISOCHRONOUS:
                ohci_to_hcd(ohci)->self.bandwidth_isoc_reqs--;
+               if (ohci_to_hcd(ohci)->self.bandwidth_isoc_reqs == 0
+                               && quirk_amdiso(ohci))
+                       quirk_amd_pll(1);
                break;
        case PIPE_INTERRUPT:
                ohci_to_hcd(ohci)->self.bandwidth_int_reqs--;
@@ -159,9 +162,6 @@ static int ed_schedule (struct ohci_hcd *ohci, struct ed *ed)
 {
        int     branch;
 
-       if (ohci_to_hcd(ohci)->state == HC_STATE_QUIESCING)
-               return -EAGAIN;
-
        ed->state = ED_OPER;
        ed->ed_prev = NULL;
        ed->ed_next = NULL;
@@ -680,6 +680,9 @@ static void td_submit_urb (
                                data + urb->iso_frame_desc [cnt].offset,
                                urb->iso_frame_desc [cnt].length, urb, cnt);
                }
+               if (ohci_to_hcd(ohci)->self.bandwidth_isoc_reqs == 0
+                               && quirk_amdiso(ohci))
+                       quirk_amd_pll(0);
                periodic = ohci_to_hcd(ohci)->self.bandwidth_isoc_reqs++ == 0
                        && ohci_to_hcd(ohci)->self.bandwidth_int_reqs == 0;
                break;