On 5/10/2014 1:04 AM, Alan Stern wrote:
On Mon, 5 May 2014, Amit Virdi wrote:
Interrupt endpoints behave quite similar to the bulk endpoints with the
difference that the endpoints expect data sending/reception request at
particular intervals till the whole data has not been transmitted.
The interrupt EP support is added to gadget zero. A new alternate setting (=2)
has been added. It has 2 interrupt endpoints. The default parameters are set as:
bInterval: 4
wMaxPacketSize: 1024
The default size should be the maximum allowed for the current speed.
Yes, I understand. I'll modify the code for FS and change this commit
message.
The code is tested for HS and SS on a platform having DWC3 controller.
+static struct usb_endpoint_descriptor fs_int_source_desc = {
+ .bLength = USB_DT_ENDPOINT_SIZE,
+ .bDescriptorType = USB_DT_ENDPOINT,
+
+ .bEndpointAddress = USB_DIR_IN,
+ .bmAttributes = USB_ENDPOINT_XFER_INT,
+ .wMaxPacketSize = cpu_to_le16(1023),
+ .bInterval = 4,
+};
+
+static struct usb_endpoint_descriptor fs_int_sink_desc = {
+ .bLength = USB_DT_ENDPOINT_SIZE,
+ .bDescriptorType = USB_DT_ENDPOINT,
+
+ .bEndpointAddress = USB_DIR_OUT,
+ .bmAttributes = USB_ENDPOINT_XFER_INT,
+ .wMaxPacketSize = cpu_to_le16(1023),
+ .bInterval = 4,
+};
The maximum interrupt packet size for full speed is 64, not 1023.
I missed it, thanks for pointing out. I'll rectify the code.
+ /* sanity check the interrupt module parameters */
+ if (int_interval < 1)
+ int_interval = 1;
+ if (int_interval > 16)
+ int_interval = 16;
Interrupt intervals for full-speed are specified in frames, not in
exponential form. The maximum allowed value is 255.
Agreed. I'll send V2.
Regards
Amit Virdi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html