From: Kevin O'Connor Date: Thu, 16 Oct 2014 17:40:42 +0000 (-0400) Subject: ehci: Export ehci_realloc_pipe() instead of ehci_alloc_pipe() X-Git-Tag: rel-1.8.0~69 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=277ea6f5d145f77d2374b9425016735c302811a0;p=seabios.git ehci: Export ehci_realloc_pipe() instead of ehci_alloc_pipe() Support alloc, update, and free from the single exported function. Signed-off-by: Kevin O'Connor --- diff --git a/src/hw/usb-ehci.c b/src/hw/usb-ehci.c index 1df7ec8..8938915 100644 --- a/src/hw/usb-ehci.c +++ b/src/hw/usb-ehci.c @@ -445,11 +445,14 @@ fail: } struct usb_pipe * -ehci_alloc_pipe(struct usbdevice_s *usbdev - , struct usb_endpoint_descriptor *epdesc) +ehci_realloc_pipe(struct usbdevice_s *usbdev, struct usb_pipe *upipe + , struct usb_endpoint_descriptor *epdesc) { if (! CONFIG_USB_EHCI) 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 ehci_alloc_intr_pipe(usbdev, epdesc); diff --git a/src/hw/usb-ehci.h b/src/hw/usb-ehci.h index 6346d78..da74438 100644 --- a/src/hw/usb-ehci.h +++ b/src/hw/usb-ehci.h @@ -5,9 +5,10 @@ void ehci_setup(void); struct usbdevice_s; struct usb_endpoint_descriptor; -struct usb_pipe *ehci_alloc_pipe(struct usbdevice_s *usbdev - , struct usb_endpoint_descriptor *epdesc); struct usb_pipe; +struct usb_pipe *ehci_realloc_pipe(struct usbdevice_s *usbdev + , struct usb_pipe *upipe + , struct usb_endpoint_descriptor *epdesc); int ehci_send_control(struct usb_pipe *p, int dir, const void *cmd, int cmdsize , void *data, int datasize); int ehci_send_bulk(struct usb_pipe *p, int dir, void *data, int datasize); diff --git a/src/hw/usb.c b/src/hw/usb.c index 8551c4d..1714968 100644 --- a/src/hw/usb.c +++ b/src/hw/usb.c @@ -38,7 +38,7 @@ usb_alloc_pipe(struct usbdevice_s *usbdev case USB_TYPE_OHCI: return ohci_realloc_pipe(usbdev, NULL, epdesc); case USB_TYPE_EHCI: - return ehci_alloc_pipe(usbdev, epdesc); + return ehci_realloc_pipe(usbdev, NULL, epdesc); case USB_TYPE_XHCI: return xhci_realloc_pipe(usbdev, NULL, epdesc); }