On Thu, 31 Jan 2008, Robert Spitzenpfeil wrote:

> this mp3 stick has always worked with windows xp. it used to work with 
> older kernels (e.g. 2.4.21-144, suse 9.0)
> but I could never make it work with any 2.6.xx before I found that patch.
> 
> find attached: snoopypro log (binary + xml) : plugin/xp 
> autoplay..../safely remove...

Thank you.  This is indeed strange.

Since the trace wasn't posted to the mailing list, I'll summarize what
it contained.  Just as with Linux, the Get-Max-LUN request failed
(presumably with a STALL; it's hard to tell from the trace).  Unlike
Linux, Windows tried the request 3 times, with the same result each
time.  Following that, the INQUIRY command succeeded: Correct data was
returned with no error status.

The interesting difference lay in what Windows did when the Get-Max-LUN 
stalled.  It sent a Clear-Halt request to endpoint 0!

So Robert, this suggests an experiment for you to try.  First remove
the US_FL_FIX_INQUIRY flag in your unusual_devs entry, of course.  But
then edit transport.c, and in usb_stor_Bulk_max_lun() replace the two
lines saying

        usb_stor_clear_halt(us, us->recv_bulk_pipe);
        usb_stor_clear_halt(us, us->send_bulk_pipe);

with a single line saying

        usb_stor_clear_halt(us, us->send_ctrl_pipe);

This should duplicate Windows' actions, except for the two retries.  
Maybe then the device will work...

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to