]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/host/ohci-hub.c
USB: OHCI: redesign the TD done list
[karo-tx-linux.git] / drivers / usb / host / ohci-hub.c
index cd871b89501325407af3ab3ebf0eb56ab0814a79..dccb90edd66efaed6423ad56e2e88daac5403a99 100644 (file)
@@ -39,7 +39,8 @@
 #define OHCI_SCHED_ENABLES \
        (OHCI_CTRL_CLE|OHCI_CTRL_BLE|OHCI_CTRL_PLE|OHCI_CTRL_IE)
 
-static void dl_done_list (struct ohci_hcd *);
+static void update_done_list(struct ohci_hcd *);
+static void process_done_list(struct ohci_hcd *);
 static void finish_unlinks (struct ohci_hcd *, u16);
 
 #ifdef CONFIG_PM
@@ -87,7 +88,8 @@ __acquires(ohci->lock)
                msleep (8);
                spin_lock_irq (&ohci->lock);
        }
-       dl_done_list (ohci);
+       update_done_list(ohci);
+       process_done_list(ohci);
        finish_unlinks (ohci, ohci_frame_no(ohci));
 
        /*
@@ -456,8 +458,7 @@ static int ohci_root_hub_state_changes(struct ohci_hcd *ohci, int changed,
 
 /* build "status change" packet (one or two bytes) from HC registers */
 
-static int
-ohci_hub_status_data (struct usb_hcd *hcd, char *buf)
+int ohci_hub_status_data(struct usb_hcd *hcd, char *buf)
 {
        struct ohci_hcd *ohci = hcd_to_ohci (hcd);
        int             i, changed = 0, length = 1;
@@ -522,6 +523,7 @@ done:
 
        return changed ? length : 0;
 }
+EXPORT_SYMBOL_GPL(ohci_hub_status_data);
 
 /*-------------------------------------------------------------------------*/
 
@@ -664,7 +666,7 @@ static inline int root_port_reset (struct ohci_hcd *ohci, unsigned port)
        return 0;
 }
 
-static int ohci_hub_control (
+int ohci_hub_control(
        struct usb_hcd  *hcd,
        u16             typeReq,
        u16             wValue,
@@ -790,4 +792,4 @@ error:
        }
        return retval;
 }
-
+EXPORT_SYMBOL_GPL(ohci_hub_control);