Improve USB data transfers

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

 



Dear All,

My name is Joaquim Duran, I've just subscribed to this mailing list.

In my company, we're developing a board to capture data from several
sensors, the board is managed by a microcontroler. It is connected to
a device with an ARM based OMAP3730 processor from LogicPD using an
USB interface. DM3730 board runs Linux 3.0.0 and acts as host, while
the capture board acts as client. Currently, capture board is
identified as a modem, it is managed by USB ACM driver, and the host
interface is managed by the isp1760 driver. The capture board should
send 200 Kbytes/second to the host. The transfer mode is bulk. The
host, to read the data, consumes 66% of CPU: 30% of the application to
read the data to user space, and 36% for the kworker thread.
Currently, the CPU load is too high for our purposes. So:

- From the USB perspective, is it possible to change the transfer mode
from bulk to isochronous? The kernel could identify the device?

- From the kernel side, how can I check if an USB device is using DMA
or not? How can I activate DMA for the previous drivers (ACM and
isp1760), if the DMA is not enabled? Can I reserve memory for DMA
transfers?

- From user application, currently it is reading the data with the
'read' system call. Could 'mmap' or 'relayfs' be used to improve the
data transfer between kernel and application?

Thanks and Best Regards,
Joaquim Duran
--
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