Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx> --- drivers/usb/gadget/udc/dummy_hcd.c | 65 +++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 15 deletions(-) diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c index 181112c..69fd29a 100644 --- a/drivers/usb/gadget/udc/dummy_hcd.c +++ b/drivers/usb/gadget/udc/dummy_hcd.c @@ -127,23 +127,57 @@ static inline struct dummy_request *usb_request_to_dummy_request static const char ep0name[] = "ep0"; -static const char *const ep_name[] = { - ep0name, /* everyone has ep0 */ +static const struct { + const char *name; + const struct usb_ep_caps caps; +} ep_info[] = { +#define EP_INFO(_name, _type, _dir) \ + { \ + .name = _name, \ + .caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \ + USB_EP_CAPS_DIR_ ## _dir), \ + } + /* everyone has ep0 */ + EP_INFO(ep0name, CONTROL, ALL), /* act like a pxa250: fifteen fixed function endpoints */ - "ep1in-bulk", "ep2out-bulk", "ep3in-iso", "ep4out-iso", "ep5in-int", - "ep6in-bulk", "ep7out-bulk", "ep8in-iso", "ep9out-iso", "ep10in-int", - "ep11in-bulk", "ep12out-bulk", "ep13in-iso", "ep14out-iso", - "ep15in-int", - + EP_INFO("ep1in-bulk", BULK, IN), + EP_INFO("ep2out-bulk", BULK, OUT), + EP_INFO("ep3in-iso", ISO, IN), + EP_INFO("ep4out-iso", ISO, OUT), + EP_INFO("ep5in-int", INT, IN), + EP_INFO("ep6in-bulk", BULK, IN), + EP_INFO("ep7out-bulk", BULK, OUT), + EP_INFO("ep8in-iso", ISO, IN), + EP_INFO("ep9out-iso", ISO, OUT), + EP_INFO("ep10in-int", INT, IN), + EP_INFO("ep11in-bulk", BULK, IN), + EP_INFO("ep12out-bulk", BULK, OUT), + EP_INFO("ep13in-iso", ISO, IN), + EP_INFO("ep14out-iso", ISO, OUT), + EP_INFO("ep15in-int", INT, IN), /* or like sa1100: two fixed function endpoints */ - "ep1out-bulk", "ep2in-bulk", - + EP_INFO("ep1out-bulk", BULK, OUT), + EP_INFO("ep2in-bulk", BULK, IN), /* and now some generic EPs so we have enough in multi config */ - "ep3out", "ep4in", "ep5out", "ep6out", "ep7in", "ep8out", "ep9in", - "ep10out", "ep11out", "ep12in", "ep13out", "ep14in", "ep15out", + EP_INFO("ep3out", ALL, OUT), + EP_INFO("ep4in", ALL, IN), + EP_INFO("ep5out", ALL, OUT), + EP_INFO("ep6out", ALL, OUT), + EP_INFO("ep7in", ALL, IN), + EP_INFO("ep8out", ALL, OUT), + EP_INFO("ep9in", ALL, IN), + EP_INFO("ep10out", ALL, OUT), + EP_INFO("ep11out", ALL, OUT), + EP_INFO("ep12in", ALL, IN), + EP_INFO("ep13out", ALL, OUT), + EP_INFO("ep14in", ALL, IN), + EP_INFO("ep15out", ALL, OUT), + +#undef EP_INFO }; -#define DUMMY_ENDPOINTS ARRAY_SIZE(ep_name) + +#define DUMMY_ENDPOINTS ARRAY_SIZE(ep_info) /*-------------------------------------------------------------------------*/ @@ -938,9 +972,10 @@ static void init_dummy_udc_hw(struct dummy *dum) for (i = 0; i < DUMMY_ENDPOINTS; i++) { struct dummy_ep *ep = &dum->ep[i]; - if (!ep_name[i]) + if (!ep_info[i].name) break; - ep->ep.name = ep_name[i]; + ep->ep.name = ep_info[i].name; + ep->ep.caps = ep_info[i].caps; ep->ep.ops = &dummy_ep_ops; list_add_tail(&ep->ep.ep_list, &dum->gadget.ep_list); ep->halted = ep->wedged = ep->already_seen = @@ -1684,7 +1719,7 @@ static void dummy_timer(unsigned long _dum_hcd) } for (i = 0; i < DUMMY_ENDPOINTS; i++) { - if (!ep_name[i]) + if (!ep_info[i].name) break; dum->ep[i].already_seen = 0; } -- 1.9.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel