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