Hi David I sent this to Greg initially, but it occurs to me that this may be an ohci problem and not a usbserial problem. I'm hoping you can offer some direction. We're trying to use Fedora Core 4 with the Kyocera Passport 1xEV-DO PC Card KPC650, which is capable of data speeds of up to 2.4 Mbps on EV-DO services. We've also tried the 2.6.15-rc7 kernel. With both kernels, we see a problem, with, for instance, ping packets coming back to the card but then not passing through between the usbserial driver and the pppd ppp0 interface, but only after attempting downloads of multi-megabyte files with higher speeds - averaging around 400-500kbps. We've tried this both with the anydata driver and the usbserial driver alone, with the same results. This is in an HP Vectra with a 650MHz PIII. The lower speed upload always seems to work, and the download seems to always work until downloading a large file and reaching higher download speeds. Then, the download path fails, with packets continuing to reach the usbserial driver, but nothing coming out the pppd ppp0 interface. Even when the download path fails, the upload path continues to work normally. I have to wonder if the upload path would lock up if the upload speed were higher, but that is not a problem here. The Kyocera card contains a Qualcomm MSM6500 - which contains the USB slave interface - and an NEC USB to PCCard adapter - I don't know the chip part number - "NEC Corporation USB (rev 43)". This is connected to a PCCard to PCI adapter card, with the "Ricoh Co Ltd RL5c475 (rev 81)" chip. I'm hoping you might have some suggestions about where to look for the problem. Please tell me if you think this is actually a problem with the pcmcia drivers. One thing that concerns me is a comment in linux-2.6.15/Documentation/usb/usb-serial.txt Generic Serial driver If your device is not one of the above listed devices, compatible with the above models, you can try out the "generic" interface. This interface does not provide any type of control messages sent to the device, and does not support any kind of device flow control. All that is required of your device is that it has at least one bulk in endpoint, or one bulk out endpoint. The USB connection speed should be 12Mbps, and the maximum data speed 2.4Mbps. Is lack of flow control going to be a problem? Software flow control can be set up between the DCE and pppd, but, as I understand, XON/XOFF flow control is limited to text transmission. It cannot be used with binary data. In this state where packets do not reach the ppp0 interface, killing pppd and then attaching to /dev/ttyUSB0 with cu produces "garbage" characters: $ sudo cu -l/dev/ttyUSB0 dir Connected. [ typed in "at<return>", but nothing echoed ] Eªªªªªªªª~[localhost]. Disconnected. Perhaps pppd was not able to properly shut-down its connection? Or maybe the USB drivers are now in a corrupted state? If I unload and reload the usbserial driver, and then connect with cu, the /dev/ttyUSB0 interface is still in the same state, producing "garbage" characters. Perhaps the ohci_hcd driver is now in a corrupted state? If I unload and reload the ohci_hcd driver, leaving the usbserial driver loaded, and then connect with cu, the /dev/ttyUSB0 interface is again functioning normally. Does this suggest some problem with the ohci_hcd driver when operating at high speed? Or some interaction between the usbserial driver and the ohci_hcd driver when operating at high speed? Or with the ohci_hcd driver interacting with the pcmcia drivers? I've included some usb listing info and log file info below. Please let me know what I might do next to debug this problem. Thanks James ------------------------------------------------------------------------------ Turning on debugging in the usbserial driver, we continue to see activity in response to a ping, with things like: Dec 28 12:20:37 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_read_bulk_callback - port 0 Dec 28 12:20:37 localhost kernel: generic ttyUSB0: usb_serial_generic_read_bulk_callback - length = 28, data = 8e 08 00 f6 c8 b3 12 00 18 83 e 5 b2 43 29 e0 03 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 Dec 28 12:20:38 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_read_bulk_callback - port 0 Dec 28 12:20:38 localhost kernel: generic ttyUSB0: usb_serial_generic_read_bulk_callback - length = 64, data = 37 eb ed 7e 7e ff 03 00 21 45 0 0 00 54 00 18 40 00 32 01 d9 00 32 01 d9 e4 c7 2d 9b 15 46 da c5 8e 08 00 15 c8 b3 12 00 7e ff 03 00 21 45 00 00 54 00 19 40 00 32 01 d9 e4 c7 2d 9b 15 46 da c5 or occasionally things like: Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/usb-serial.c: usb_serial_port_softint - port 0 Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/usb-serial.c: serial_write - port 0, 28 byte(s) Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_write - port 0 Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_write - already writing Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_write_bulk_callback - port 0 Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/usb-serial.c: usb_serial_port_softint - port 0 Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/usb-serial.c: serial_write - port 0, 28 byte(s) Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_write - port 0 Dec 28 12:20:18 localhost kernel: generic ttyUSB0: usb_serial_generic_write - length = 28, data = 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 4a b0 7e Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/usb-serial.c: usb_serial_port_softint - port 0 Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_write_bulk_callback - port 0 Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/usb-serial.c: usb_serial_port_softint - port 0 Dec 28 12:20:18 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/usb-serial.c: usb_serial_port_softint - port 0 Dec 28 12:20:19 localhost kernel: /home/linux-2.6.15/drivers/usb/serial/generic.c: usb_serial_generic_read_bulk_callback - port 0 Dec 28 12:20:19 localhost kernel: generic ttyUSB0: usb_serial_generic_read_bulk_callback - length = 64, data = 23 24 25 26 27 28 29 2a 2b 2c 2 d 2e 2f 30 31 32 33 34 35 36 37 4b e3 7e 80 00 13 c5 8e c7 2d 9b 15 00 00 0c ec b3 12 00 7e ff 03 00 21 45 00 00 54 00 06 40 00 32 01 d9 f7 c7 2d 9b 15 46 da c5 but, in the problem state, nothing comes out of the ppp0 interface. $ cu -l/dev/ttyUSB0 dir ... ati0 Manufacturer: Kyocera Wireless Corp. Model: Catalina Revision: CG1.0.06 1 [Apr 06 2005 08:50:45] ESN: 0x373AC9C7 +GCAP: +CIS707-A, CIS-856, +MS, +ES, +DS, +FCLASS OK at$qcdmr? $QCDMR: 115200 OK at+ipr? +IPR: 115200 OK $ ./usbtree /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/1p, 12M |__ Port 1: Dev 2, If 0, Class=vend., Driver=usbserial_generic, 12M |__ Port 1: Dev 2, If 1, Class=vend., Driver=usbserial_generic, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M $ lspci -vv 00:12.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 81) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 168 Interrupt: pin A routed to IRQ 11 Region 0: Memory at 24040000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=02, subordinate=05, sec-latency=176 Memory window 0: 20000000-21fff000 (prefetchable) Memory window 1: 22000000-23fff000 I/O window 0: 00001800-000018ff I/O window 1: 00001c00-00001cff BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+ 16-bit legacy interface ports at 0001 02:00.0 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI]) Subsystem: Unknown device 0c88:17da Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (250ns min, 10500ns max) Interrupt: pin A routed to IRQ 11 Region 0: Memory at 22000000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 02:00.1 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI]) Subsystem: Unknown device 0c88:17da Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (250ns min, 10500ns max) Interrupt: pin B routed to IRQ 11 Region 0: Memory at 22001000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- $ cat /proc/bus/usb/devices T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 1 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.15-rc7 ohci_hcd S: Product=OHCI Host Controller S: SerialNumber=0000:02:00.0 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0c88 ProdID=17da Rev= 0.00 S: Manufacturer=Qualcomm, Incorporated S: Product=Qualcomm CDMA Technologies MSM C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms $ lsusb -v Bus 002 Device 002: ID 0c88:17da Kyocera Wireless Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0c88 Kyocera Wireless Corp. idProduct 0x17da bcdDevice 0.00 iManufacturer 1 Qualcomm, Incorporated iProduct 2 Qualcomm CDMA Technologies MSM iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 62 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 3 Data Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 128 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 3 Data Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Bus 002 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.15-rc7 ohci_hcd iProduct 2 OHCI Host Controller iSerial 1 0000:02:00.0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 1 wHubCharacteristic 0x0002 No power switching (usb 1.0) Ganged overcurrent protection bPwrOn2PwrGood 15 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xe0 Hub Port Status: Port 1: 0000.0103 power enable connect ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ Linux-usb-users@xxxxxxxxxxxxxxxxxxxxx To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users