Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e06bcac authored by Robert Baldyga's avatar Robert Baldyga Committed by Felipe Balbi
Browse files

usb: gadget: at91_udc: fix ep maxpacket initialisation



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: default avatarRobert Baldyga <r.baldyga@samsung.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 3f83e538
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -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));