On Sat, 28 Aug 2004, Laurent Pinchart wrote: > Hi everybody, > > I've been trying to find out why my ACR30U Smart Card reader refuses to work > with the 2.6.7 kernel. I spent a week reading the USB specifications and > digging through the USB stack code (my host controller is a UHCI, using the > alternate (JE) driver with both 2.4 and 2.6 kernels). > > The device is accessed by sending a CONTROL transaction, and reading the > results back using an INTERRUPT endpoint. > > On the 2.4.27 kernel, I can send a request to the device and get a response. > The response doesn't seem to be valid, the device stops responding after the > first request, but at least I get a response.
Here is a dump of the CONTROL transaction, before it gets sent. > [c65950c0] link (00000001) element (065841e4) > Depth traverse Maybe that line is relevant. It's not present under 2.6; do you know why it's there under 2.4? And why is the link field equal to 1? That shouldn't happen... <...> > The only difference I noticed between 2.4.27 and 2.6.7 is that 2.4.27 sets the > SPD (Short Packet Detection) flag in OUT packets, while 2.6.7 doesn't. I > tried forcing 2.6.7 to add the SPD flag. Unfortunately, results are > identical. That's not surprising. According the UHCI spec, SPD is never supposed to be set for OUT packets and the effects of setting it are undefined. But having no effect at all is what I would expect. > I've added debug code to get as much information as possible from the kernel, > and I'm now completely stuck. Both kernels send the same requests to the > device (I've dumped all CONTROL transactions), with the 2.4.27 kernel sending > a few more GET_DESCRIPTOR requests, but that shouldn't be relevant. It shouldn't be, but just maybe it is. Kind of hard to tell... Can you edit those requests out of the 2.4 kernel? > Could anyone point me to something I should investigate ? Why is the behaviour > so different ? > > Thanks in advance for all the help you can provide. > > Laurent Pinchart I can't answer your question. Is it possible that under 2.4 the devices also sends a STALL but for some reason the driver doesn't recognize it? You could modify the driver to have it dump the descriptors each time a Control transfer completes to see what really happened. If you come up with an explanation, I'd really like to hear it. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
