usb: gadget: at91_udc: fix ep maxpacket initialisation
authorRobert Baldyga <r.baldyga@samsung.com>
Thu, 20 Feb 2014 08:26:25 +0000 (09:26 +0100)
committerFelipe Balbi <balbi@ti.com>
Wed, 5 Mar 2014 15:44:49 +0000 (09:44 -0600)
This patch fixes problem with unnecessary usb_ep_set_maxpacket_limit() usage.
It should not be used in at91udc_probe() function, where maxpacket values are
set for field "maxpacket" of struct at91_ep, which is representation of
endpoint in driver internals. Function usb_ep_set_maxpacket_limit() is called
in udc_reinit() function, where struct usb_ep instances are initialised with
values set previously in struct at91_ep instances. So it's very important to
initialise it properly.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/at91_udc.c

index cea8c20a142555af1a1c01c5c9a8b9ef1ce11b65..f605ad8c1902fc775cffc39dcd53be8d65fe3a8f 100644 (file)
@@ -1758,15 +1758,15 @@ static int at91udc_probe(struct platform_device *pdev)
 
        /* newer chips have more FIFO memory than rm9200 */
        if (cpu_is_at91sam9260() || cpu_is_at91sam9g20()) {
-               usb_ep_set_maxpacket_limit(&udc->ep[0].ep, 64);
-               usb_ep_set_maxpacket_limit(&udc->ep[3].ep, 64);
-               usb_ep_set_maxpacket_limit(&udc->ep[4].ep, 512);
-               usb_ep_set_maxpacket_limit(&udc->ep[5].ep, 512);
+               udc->ep[0].maxpacket = 64;
+               udc->ep[3].maxpacket = 64;
+               udc->ep[4].maxpacket = 512;
+               udc->ep[5].maxpacket = 512;
        } else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
-               usb_ep_set_maxpacket_limit(&udc->ep[3].ep, 64);
+               udc->ep[3].maxpacket = 64;
        } else if (cpu_is_at91sam9263()) {
-               usb_ep_set_maxpacket_limit(&udc->ep[0].ep, 64);
-               usb_ep_set_maxpacket_limit(&udc->ep[3].ep, 64);
+               udc->ep[0].maxpacket = 64;
+               udc->ep[3].maxpacket = 64;
        }
 
        udc->udp_baseaddr = ioremap(res->start, resource_size(res));