Skip to content

Commit

Permalink
USB: gadget: use ep5 for bulk-in and ep6 for bulk-out for Blackfin MUSB
Browse files Browse the repository at this point in the history
Normally, the musb uses ep1 as the bidirectional bulk endpoint.  This won't
work on the Blackfin musb as all endpoints (except ep0) are unidirectional.
Further, ep1-ep4 have a small 128 byte FIFO which makes them undesirable
for bulk endpoints (which need more like a 512 byte FIFO).  This leaves us
with ep5-ep7 which have 1024 byte FIFOs and can be configured as either
in/out and bulk/interrupt/iso on the fly.

Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Bryan Wu authored and Greg Kroah-Hartman committed Mar 2, 2010
1 parent ca0e948 commit 3a8a3b1
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/usb/gadget/epautoconf.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,20 @@ struct usb_ep * __init usb_ep_autoconfig (
ep = find_ep (gadget, "ep1-bulk");
if (ep && ep_matches (gadget, ep, desc))
return ep;

#ifdef CONFIG_BLACKFIN
} else if (gadget_is_musbhsfc(gadget) || gadget_is_musbhdrc(gadget)) {
if ((USB_ENDPOINT_XFER_BULK == type) ||
(USB_ENDPOINT_XFER_ISOC == type)) {
if (USB_DIR_IN & desc->bEndpointAddress)
ep = find_ep (gadget, "ep5in");
else
ep = find_ep (gadget, "ep6out");
} else
ep = NULL;
if (ep && ep_matches (gadget, ep, desc))
return ep;
#endif
}

/* Second, look at endpoints until an unclaimed one looks usable */
Expand Down

0 comments on commit 3a8a3b1

Please sign in to comment.