How can I limit full speed transfer to 64 bytes per ms?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

in message.c file I found following comment:

 * That capability is less useful for low or full
 * speed interrupt endpoints, which allow at most one packet per millisecond,
 * of at most 8 or 64 bytes (respectively).

dfu-util transfers 1023 bytes blocks with libusb:

result = usb_control_msg( device,
         /* bmRequestType */ USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
         /* bRequest      */ DFU_UPLOAD,
         /* wValue        */ transaction++,
         /* wIndex        */ interface,
         /* Data          */ data,
         /* wLength       */ length, /* usually 1023 bytes */
                             dfu_timeout );

USB device is:

T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=fe(app. ) Sub=01 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1e96 ProdID=ffff Rev=53.63
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none)

According to USB sniffer it transfers data much faster than 64byte
packet per ms. How can I limit it? Can it be because of data are
transfered between host and interface (not endpoint)?

My device does not work if I transfer data faster than 64bytes/ms. I
sniff Windows and MacOSX:
- MacOSX trasnfers data faster and device does not work
- Windows transfers data at 64b/ms speed and device works ok.

(device does not work means device is disconnected after small amount
of data transfered with -ETIMEDOUT, -ENXIO or some other error)
--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux