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

Reply via email to