Hi all! I'm working on a usb-storage driver for the MaxTech Moveman SSP100 mp3 player, similar to the Lexar Jumpshot driver in that it uses an extremely simple read/write block interface to access the flash.
The firmware seems to be using some demo code from STMicroelectronics since the device identifies itself as: ... idVendor 0x0483 SGS Thomson Microelectronics idProduct 0x163d bcdDevice 1.00 iManufacturer 4 STMicroelectronics iProduct 42 ST92163 MP3 USB Download Demo iSerial 88 ... It uses the (as I understand it) somewhat unusual configuration of 2 read/write bulk endpoint pairs - one to send commands to the device and one for data transfers. Basically, I have the driver up and running. Unfortunately, I'm a total newbie to usb hacking and there's a few problems/questions I have that I was hoping that someone on the list could help me sort out: 1) Lockups About 4 out of 5 times when I connect the device, it "locks up". It seems like its USB engine is still running fine (it responds to standard control messages on EP 0), while the application firmware has gone into never-neverland - every attempt to send a command to it times out (NAK). I get the exact same behaviour if I send it an invalid command, use the wrong transfer size, etc. Bottom line is that the firmware seems to be _extremely_ flaky. Unfortunately, there's obviously no way out of this state (apart from disconnecting it and trying again) - I've tried to reset the ep, interface and device, but nothing helps. Also, the Windoze software shipped with the device doesn't seem to contain any recovery stuff at all, so that doesn't help me. So, it seems like the best I can do is to _avoid_ this from happening in the first place. What I think might be happening is that I try to talk to the device before it has finished its internal initialization. Again, there seems to be no way of probing the device to see if it's ready to accept commands or not. Is there any simple way I could enforce a delay after device registration? Any other insights? Perhaps even someone has access to the docs for the SGMicroelectronics demo firmware/driver? 2) Disconnect/reconnect If I disconnect the device, the corresponding SCSI device disappears after a while. But when I reconnect it, it doesn't reappear. Why? It seems to have something to do with usb-storage keeping track of devices that are reconnected? 3) Kernel panics If I disconnect the device _before_ I try to unload the usb-storage module, it will fail to unload, and furthermore cause a kernel panic on reboot. If I leave it connected while unloading, everything is fine and dandy. Is this a known problem with usb-storage itself, or is it my driver doing something wrong? Btw, I'm on 2.5.26. Cheers, -- Christer Palm ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
