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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to