Commit 8d3b2fa8 authored by Andrei Emeltchenko's avatar Andrei Emeltchenko Committed by Anas Nashif
Browse files

usb: usb_dc_dw: Fix incorrect MPS return



Because of incorrectly set MPS we always got 0 returned for WRITE
transfers and ZLP were always generated for every packet.

Signed-off-by: default avatarAndrei Emeltchenko <andrei.emeltchenko@intel.com>
parent 50b69fbb
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -1187,5 +1187,15 @@ int usb_dc_set_status_callback(const usb_dc_status_callback cb)

int usb_dc_ep_mps(const u8_t ep)
{
	return usb_dw_ctrl.out_ep_ctrl[USB_DW_EP_ADDR2IDX(ep)].mps;
	enum usb_dw_out_ep_idx ep_idx = USB_DW_EP_ADDR2IDX(ep);

	switch (USB_DW_EP_ADDR2DIR(ep)) {
	case USB_EP_DIR_OUT:
		return usb_dw_ctrl.out_ep_ctrl[ep_idx].mps;
	case USB_EP_DIR_IN:
		return usb_dw_ctrl.in_ep_ctrl[ep_idx].mps;
	}

	/* Should not happen */
	return 0;
}