Hi all,
we use linux 2.4.25. Our device has 2 endpoint (bulk in/bulk out). I am writing
a device driver which serves the bulk endpoints periodically.
Exactly i start a timer. If this timer expires the timer service will send a
write urb to the device. Immediately after the write access i have to read out
some datas of the device over the bulk in endpoint.
If the driver calls the "usb_bulk_msg()" function the whole system hangs
without return.
But this code has to work because the functions are successful if they are
called manually over ioctl.
Are ther any known problems with generally usb transfers and timers?
Thanks in advance
Marco
attach:
The timer function calls this transfer function:
static int transfer(struct file *file){
.
.
FILL_BULK_URB(dev->bulk_write_urb, dev->usb_dev,
usb_sndbulkpipe(dev->usb_dev, dev->bulk_write_address),
dev->bulk_write_urb->transfer_buffer,
dev->bulk_write_size, NULL, dev);
retval = usb_submit_urb(dev->bulk_write_urb);
if (retval){
return retval;
}
retval = usb_bulk_msg(dev->usb_dev, usb_rcvbulkpipe(dev->usb_dev,
dev->bulk_read_address),
dev->bulk_read_buffer,
dev->bulk_read_size, &count, HZ*2);
.
.
.
}
--
---------
Marco Schramel
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel