summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2022-02-24 16:23:11 +0800
committersakumisu <[email protected]>2022-02-24 16:23:11 +0800
commit948b2c39d945c0fb3cb29bf1087bf3427702d683 (patch)
tree049671f715f816d6d4b1eb0293223a6b59fd18f9
parentba8c528918e0f2896f4f5ad656a116c2f1750caa (diff)
add macros for high speed iso and intr transfer with additional transaction
-rw-r--r--common/usb_def.h9
-rw-r--r--core/usbd_core.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/common/usb_def.h b/common/usb_def.h
index ae5a468f..e84a189a 100644
--- a/common/usb_def.h
+++ b/common/usb_def.h
@@ -224,6 +224,15 @@
#define USB_ENDPOINT_MAX_ADJUSTABLE (1 << 7)
+/* wMaxPacketSize in Endpoint Descriptor */
+#define USB_MAXPACKETSIZE_SHIFT 0
+#define USB_MAXPACKETSIZE_MASK (0x400 << USB_MAXPACKETSIZE_SHIFT)
+#define USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_SHIFT 11
+#define USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_NONE (0 << USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_SHIFT)
+#define USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_ONE (1 << USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_SHIFT)
+#define USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_TWO (2 << USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_SHIFT)
+#define USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_MASK (3 << USB_MAXPACKETSIZE_ADDITIONAL_TRANSCATION_SHIFT)
+
/* bDevCapabilityType in Device Capability Descriptor */
#define USB_DEVICE_CAPABILITY_WIRELESS_USB 1
#define USB_DEVICE_CAPABILITY_USB_2_0_EXTENSION 2
diff --git a/core/usbd_core.c b/core/usbd_core.c
index 2e2a6cc8..c5e0a5bd 100644
--- a/core/usbd_core.c
+++ b/core/usbd_core.c
@@ -196,7 +196,7 @@ static bool usbd_set_endpoint(const struct usb_endpoint_descriptor *ep_desc)
struct usbd_endpoint_cfg ep_cfg;
ep_cfg.ep_addr = ep_desc->bEndpointAddress;
- ep_cfg.ep_mps = ep_desc->wMaxPacketSize;
+ ep_cfg.ep_mps = ep_desc->wMaxPacketSize & USB_MAXPACKETSIZE_MASK;
ep_cfg.ep_type = ep_desc->bmAttributes & USBD_EP_TYPE_MASK;
USB_LOG_INFO("Open endpoint:0x%x type:%u mps:%u\r\n",