Hi, I am working on porting the Lothar's isp1362 driver to support isp1160. The driver can communicate with devices under 2.6.9-rc3 (sets device address and gets descriptors). I have tested it with mice, keyboards, and memory sticks, but with all of these, the configuration process fails. Configuration for each device fails always the same way, though for different devices it happens differently. All these devices work perfectly with ohci on x86.
A failure scenario is that the usb system requests info about a device descriptor, learns its length, requests the descriptor of strictly that length and gets less bytes from the device than requested. The question is: may this be a HC hardware/configuration problem? Help would be much appreciated. Here is an example failure with the following keyboard (line from lsusb under x86): Bus 003 Device 006: ID 04f2:0110 Chicony Electronics Co., Ltd KU-2971 Keyboard [skipped info about attachment] set-address (OK) MPS=8 FA=0 DIR=0 EP=0 SPD=1 LEN=8 --out-> 00 05 02 00 00 00 00 00 MPS=8 FA=0 DIR=2 EP=0 SPD=1 LEN=0 # status Get 8 bytes of the device descriptor (OK) MPS=8 FA=2 DIR=0 EP=0 SPD=1 LEN=8 --out-> 80 06 00 01 00 00 08 00 MPS=8 FA=2 DIR=2 EP=0 SPD=1 LEN=8 COUNT=8 <--in-- 12 01 10 01 00 00 00 08 MPS=8 FA=2 DIR=1 EP=0 SPD=1 LEN=0 Get full device descriptor (OK) MPS=8 FA=2 DIR=0 EP=0 SPD=1 LEN=8 --out-> 80 06 00 01 00 00 12 00 MPS=8 FA=2 DIR=2 EP=0 SPD=1 LEN=18 COUNT=18 <--in-- 12 01 10 01 00 00 00 08 f2 04 10 01 00 01 04 14 00 01 MPS=8 FA=2 DIR=1 EP=0 SPD=1 LEN=0 Get configuration (OK. Note that the device reports the length of the configuration to be 34 (0x0022; bytes 2,3 in the arrived data)) MPS=8 FA=2 DIR=0 EP=0 SPD=1 LEN=8 --out-> 80 06 00 02 00 00 09 00 MPS=8 FA=2 DIR=2 EP=0 SPD=1 LEN=9 COUNT=9 <--in-- 09 02 22 00 01 01 00 a0 32 MPS=8 FA=2 DIR=1 EP=0 SPD=1 LEN=0 Get configuration (Fails. For some reason, we get only 32 bytes back instead of 34.) MPS=8 FA=2 DIR=0 EP=0 SPD=1 LEN=8 --out-> 80 06 00 02 00 00 22 00 MPS=8 FA=2 DIR=2 EP=0 SPD=1 LEN=34 COUNT=32 <--in-- 09 02 22 00 01 01 00 a0 32 09 04 00 00 01 03 01 01 00 09 21 10 01 00 01 22 41 00 07 05 81 03 08 00 00 No status transaction follows, as the buffer rounding bit in the TD is clear. (Lothar, I added the buffer rounding bit handling to update_td_status()). Then timeout follows: usb 1-1: unable to read config index 0 descriptor/all usb 1-1: can't read configurations, error -110 and the usb system starts over again with set-address. With one device, I have seen another type of weirdness. The device is Trendnet's TMR-61U2 card reader (which, again, works perfectly if attached to my x86 box). For that device, the failure seems to be that HC just does not send off the IN transaction. Like here: set address (OK) MPS=8 FA=0 DIR=0 EP=0 SPD=0 LEN=8 --out-> 00 05 02 00 00 00 00 00 MPS=8 FA=0 DIR=2 EP=0 SPD=0 LEN=0 get device descriptor (Fails, IN transaction not performed) MPS=8 FA=2 DIR=0 EP=0 SPD=0 LEN=8 --out-> 80 06 00 01 00 00 08 00 MPS=8 FA=2 DIR=2 EP=0 SPD=0 LEN=8 COUNT=0 The Philips transfer descriptor for this last IN transaction, read back from the device AFTER HC has reported via ATLInt that the buffer is processed and ready, is the following: fc00 0808 0808 0002 where the leftmost nibble f shows that the HC has not even tried to perform the IN transaction. I put here the register dump obtained after writing the last IN transaction header and data to HC: HCREVISION [00]: 00000010 HCCONTROL [01]: 00000080 HCCMDSTAT [02]: 00000000 HCINTSTAT [03]: 00000084 HCINTENB [04]: 8000001c HCFMINTVL [0d]: 27782edf HCFMREM [0e]: 00000ddc HCFMNUM [0f]: 0000044b HCLSTHRESH [11]: 00000628 HCRHDESCA [12]: 05000202 HCRHDESCB [13]: 00000000 HCRHSTATUS [14]: 00008000 HCRHPORT2 [16]: 00000100 HCHWCFG [20]: 1029 HCDMACFG [21]: 0022 HCXFERCTR [22]: 0010 HCuPINT [24]: 0017 # ATLInt is asserted HCuPINTENB [25]: 0033 HCCHIPID [27]: 6122 HCSCRATCH [28]: 1ad5 HCITLBUFLEN [2a]: 0000 HCATLBUFLEN [2b]: 07e0 HCBUFSTAT [2c]: 0024 # ATL buffer is done HCRDITL0LEN [2d]: 0000 HCRDITL1LEN [2e]: 0000 Has anyone an idea, what is wrong? Thank you in advance, Olav ------------------------------------------------------- This SF.Net email is sponsored by: Sybase ASE Linux Express Edition - download now for FREE LinuxWorld Reader's Choice Award Winner for best database on Linux. http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel