On Sat, 12 Nov 2005, Oliver Neukum wrote:

> Am Freitag, 11. November 2005 22:56 schrieb Alan Stern:
> > It looks like the problem is in mts_command_done.  It doesn't expect to 
> > deal with an sg list containing only one element.
> 
> OK, you are right. I am rewriting it to use usbcore's sg primitives.
> Expect a patch tomorrow.

That won't be entirely straightforward.  The sg library in usbcore expects 
to run in process context, but the microtek driver needs to use it in 
interrupt context.

Some time back Pete Z. posted an update for the sg routines to make them
work in interrupt context.  I don't have a pointer to it, but maybe you
can get it from Pete.  It will involve more work than just changing the
driver, though.

For now, you might instead try making a simple adjustment to
mts_command_done.  It could be enough to change

        context->srb->use_sg ? mts_do_sg : mts_data_done);

to

        context->srb->use_sg > 1 ? mts_do_sg : mts_data_done);

Alan Stern



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to