]> xenbits.xensource.com Git - seabios.git/commitdiff
ohci: Export ohci_realloc_pipe() instead of ohci_alloc_pipe()
authorKevin O'Connor <kevin@koconnor.net>
Thu, 16 Oct 2014 17:36:41 +0000 (13:36 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Thu, 16 Oct 2014 20:30:15 +0000 (16:30 -0400)
Support alloc, update, and free from the single exported function.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/hw/usb-ohci.c
src/hw/usb-ohci.h
src/hw/usb.c

index d19b667d053eaab6c5b0dd07042150b510026585..478976880d243fc58f4d70316626e88f84380d0d 100644 (file)
@@ -387,11 +387,14 @@ err:
 }
 
 struct usb_pipe *
-ohci_alloc_pipe(struct usbdevice_s *usbdev
-                , struct usb_endpoint_descriptor *epdesc)
+ohci_realloc_pipe(struct usbdevice_s *usbdev, struct usb_pipe *upipe
+                  , struct usb_endpoint_descriptor *epdesc)
 {
     if (! CONFIG_USB_OHCI)
         return NULL;
+    usb_add_freelist(upipe);
+    if (!epdesc)
+        return NULL;
     u8 eptype = epdesc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
     if (eptype == USB_ENDPOINT_XFER_INT)
         return ohci_alloc_intr_pipe(usbdev, epdesc);
index 14d2b1ab0a491051a0b92d2ec7637c4b60e08a9c..56995234b5e9a4685edf40ea82ba3d16e7352033 100644 (file)
@@ -5,9 +5,10 @@
 void ohci_setup(void);
 struct usbdevice_s;
 struct usb_endpoint_descriptor;
-struct usb_pipe *ohci_alloc_pipe(struct usbdevice_s *usbdev
-                                 , struct usb_endpoint_descriptor *epdesc);
 struct usb_pipe;
+struct usb_pipe *ohci_realloc_pipe(struct usbdevice_s *usbdev
+                                   , struct usb_pipe *upipe
+                                   , struct usb_endpoint_descriptor *epdesc);
 int ohci_send_control(struct usb_pipe *p, int dir, const void *cmd, int cmdsize
                       , void *data, int datasize);
 int ohci_send_bulk(struct usb_pipe *p, int dir, void *data, int datasize);
index 51100539bfb3854af1068831af017b2fe5a80fbf..8551c4da4f9307b9a30c4ced1c1f1249b940e61a 100644 (file)
@@ -36,7 +36,7 @@ usb_alloc_pipe(struct usbdevice_s *usbdev
     case USB_TYPE_UHCI:
         return uhci_realloc_pipe(usbdev, NULL, epdesc);
     case USB_TYPE_OHCI:
-        return ohci_alloc_pipe(usbdev, epdesc);
+        return ohci_realloc_pipe(usbdev, NULL, epdesc);
     case USB_TYPE_EHCI:
         return ehci_alloc_pipe(usbdev, epdesc);
     case USB_TYPE_XHCI: