Skip to content
Snippets Groups Projects
Commit d563e62c authored by Hans de Goede's avatar Hans de Goede Committed by Simon Glass
Browse files

usb: ohci: Add an ohci_alloc_urb() function


Add an ohci_alloc_urb() function, this is a preparation patch for adding
interrupt queue support.

Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Reviewed-by: default avatarMarek Vasut <marex@denx.de>
parent 44dbc330
No related branches found
No related tags found
No related merge requests found
......@@ -1505,6 +1505,26 @@ static ohci_dev_t *ohci_get_ohci_dev(ohci_t *ohci, int devnum, int intr)
/* common code for handling submit messages - used for all but root hub */
/* accesses. */
static urb_priv_t *ohci_alloc_urb(struct usb_device *dev, unsigned long pipe,
void *buffer, int transfer_len, int interval)
{
urb_priv_t *urb;
urb = calloc(1, sizeof(urb_priv_t));
if (!urb) {
printf("ohci: Error out of memory allocating urb\n");
return NULL;
}
urb->dev = dev;
urb->pipe = pipe;
urb->transfer_buffer = buffer;
urb->transfer_buffer_length = transfer_len;
urb->interval = interval;
return urb;
}
static int submit_common_msg(ohci_t *ohci, struct usb_device *dev,
unsigned long pipe, void *buffer, int transfer_len,
struct devrequest *setup, int interval)
......@@ -1515,14 +1535,9 @@ static int submit_common_msg(ohci_t *ohci, struct usb_device *dev,
urb_priv_t *urb;
ohci_dev_t *ohci_dev;
urb = malloc(sizeof(urb_priv_t));
memset(urb, 0, sizeof(urb_priv_t));
urb->dev = dev;
urb->pipe = pipe;
urb->transfer_buffer = buffer;
urb->transfer_buffer_length = transfer_len;
urb->interval = interval;
urb = ohci_alloc_urb(dev, pipe, buffer, transfer_len, interval);
if (!urb)
return -ENOMEM;
#ifdef DEBUG
urb->actual_length = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment