Hello list,
the kobil_sct driver requires interrupt-out transfers to write the data
to the device. This works fine with the ochi hcd, but fails with the
uhci hcd. I attached the output from /var/log/messages.
usb_submit_urb returns -22 (-EINVAL).
I tested it on a centrino notebook, but it should fail with all PC with
uhci host controller.
So what must I do to fix the driver?
(Or is it a bug in the uhci hcd?)
Why do the ohci and uhci behave different?
Kernel is 2.6.4-52 (SuSE 9.1 dist)
I'm not in the office until 19th of May. So it could take some time
until I can response.
Many thanks in advance
Thomas Wahrenbruch
May 14 16:44:09 linux kernel: drivers/usb/serial/usb-serial.c: USB Serial support
registered for KOBIL USB smart card terminal
May 14 16:44:09 linux kernel: drivers/usb/core/usb.c: registered new driver kobil
May 14 16:44:09 linux kernel: drivers/usb/serial/kobil_sct.c: 14/05/2004 KOBIL Systems
GmbH - http://www.kobil.com
May 14 16:44:09 linux kernel: drivers/usb/serial/kobil_sct.c: KOBIL USB Smart Card
Terminal Driver (experimental)
May 14 16:44:18 linux kernel: usb 2-2: new low speed USB device using address 7
May 14 16:44:18 linux kernel: usb 2-2: Product: USB Adapter B
May 14 16:44:18 linux kernel: usb 2-2: Manufacturer: KOBIL
May 14 16:44:18 linux kernel: usb 2-2: SerialNumber: Prod.# FFFFFF2F
May 14 16:44:18 linux kernel: usbserial 2-2:1.0: KOBIL USB smart card terminal
converter detected
May 14 16:44:18 linux kernel: KOBIL B1 PRO / KAAN PRO detected
May 14 16:44:18 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_startup Found
interrupt out endpoint. Address: 1
May 14 16:44:18 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_startup Found
interrupt in endpoint. Address: 129
May 14 16:44:18 linux kernel: usb 2-2: KOBIL USB smart card terminal converter now
attached to ttyUSB0 (or usb/tts/0 for devfs)
May 14 16:44:18 linux /etc/hotplug/usb.agent[25702]: need a device for this command
May 14 16:44:19 linux /etc/hotplug/tty.agent[25704]: add tty device /class/tty/ttyUSB0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0
Allocating port->write_urb
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
get_HW_version URB returns: 8
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: Harware version: 1.1.6
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
get_FW_version URB returns: 8
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: Firmware version: 1.1.9
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
set_baudrate URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
reset_all_queues URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
read URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_close - port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Read int status not zero: -2
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0
Allocating port->write_urb
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
get_HW_version URB returns: 8
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: Harware version: 1.1.6
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
get_FW_version URB returns: 8
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: Firmware version: 1.1.9
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
set_baudrate URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
reset_all_queues URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_open - port 0 Send
read URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_ioctl - port 0
setting port to: 9600 1 StopBit Even Parity
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_ioctl - port 0
Send set_baudrate URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_ioctl - port 0
setting port to: 9600 1 StopBit Even Parity
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_ioctl - port 0
Send set_baudrate URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_tiocmget - port 0
Send get_status_line_state URB returns: 8. Statusline: 15
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_tiocmset - port 0
Setting DTR
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_tiocmset - port 0
Send set_status_line URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:46 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_tiocmget - port 0
Send get_status_line_state URB returns: 8. Statusline: 15
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_tiocmset - port 0
Clearing DTR
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_tiocmset - port 0
Send set_status_line URB returns: 0
May 14 16:44:47 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
....
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_write - length =
4, data = 00 c0 00 c0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Read int status not zero: -2
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_write - port 0
Send write URB returns: -22
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_write - port 0
Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0
May 14 16:44:51 linux kernel: drivers/usb/serial/kobil_sct.c: kobil_read_int_callback
- port 0 Send read URB returns: 0
0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 03)
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, fast devsel, latency 0
Memory at e0000000 (32-bit, prefetchable)
Capabilities: [e4] #09 [f104]
Capabilities: [a0] AGP version 2.0
0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 03)
(prog-if 00 [Normal decode])
Flags: bus master, 66Mhz, fast devsel, latency 96
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
I/O behind bridge: 00003000-00003fff
Memory behind bridge: d0100000-d01fffff
Prefetchable memory behind bridge: d8000000-dfffffff
Expansion ROM at 00003000 [disabled] [size=4K]
0000:00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 03) (prog-if 00
[UHCI])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, medium devsel, latency 0, IRQ 10
I/O ports at 1800 [size=32]
0000:00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 03) (prog-if 00
[UHCI])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, medium devsel, latency 0, IRQ 5
I/O ports at 1820 [size=32]
0000:00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 03) (prog-if 00
[UHCI])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, medium devsel, latency 0, IRQ 10
I/O ports at 1840 [size=32]
0000:00:1d.7 USB Controller: Intel Corp. 82801DB USB2 (rev 03) (prog-if 20 [EHCI])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, medium devsel, latency 0, IRQ 10
Memory at d0000000 (32-bit, non-prefetchable)
Capabilities: [50] Power Management version 2
Capabilities: [58] #0a [2080]
0000:00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 83) (prog-if 00
[Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=64
I/O behind bridge: 00004000-00004fff
Memory behind bridge: d0200000-d05fffff
0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 03)
Flags: bus master, medium devsel, latency 0
0000:00:1f.1 IDE interface: Intel Corp. 82801DBM Ultra ATA Storage Controller (rev 03)
(prog-if 8a [Master SecP PriP])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, medium devsel, latency 0, IRQ 10
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at 1860 [size=16]
Memory at 20000000 (32-bit, non-prefetchable) [size=1K]
0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBM SMBus Controller (rev 03)
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: medium devsel, IRQ 10
I/O ports at 1880 [size=32]
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB AC'97 Audio Controller
(rev 03)
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, medium devsel, latency 0, IRQ 10
I/O ports at 1c00
I/O ports at 18c0 [size=64]
Memory at d0000c00 (32-bit, non-prefetchable) [size=512]
Memory at d0000800 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
0000:00:1f.6 Modem: Intel Corp. 82801DB AC'97 Modem Controller (rev 03) (prog-if 00
[Generic])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: medium devsel, IRQ 10
I/O ports at 2400
I/O ports at 2000 [size=128]
Capabilities: [50] Power Management version 2
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [Radeon
Mobility 9000 M9] (rev 02) (prog-if 00 [VGA])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, stepping, fast Back2Back, 66Mhz, medium devsel, latency 66,
IRQ 10
Memory at d8000000 (32-bit, prefetchable)
I/O ports at 3000 [size=256]
Memory at d0100000 (32-bit, non-prefetchable) [size=64K]
Capabilities: [58] AGP version 2.0
Capabilities: [50] Power Management version 2
0000:02:02.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, fast devsel, latency 64, IRQ 5
Memory at d0204000 (32-bit, non-prefetchable)
Capabilities: [40] Power Management version 2
0000:02:04.0 Network controller: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter
(rev 04)
Subsystem: Intel Corp.: Unknown device 2527
Flags: bus master, medium devsel, latency 64, IRQ 10
Memory at d0206000 (32-bit, non-prefetchable)
Capabilities: [dc] Power Management version 2
0000:02:06.0 CardBus bridge: O2 Micro, Inc.: Unknown device 7114 (rev 20)
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, stepping, slow devsel, latency 168, IRQ 10
Memory at d0207000 (32-bit, non-prefetchable)
Bus: primary=02, secondary=03, subordinate=06, sec-latency=176
Memory window 0: d0400000-d04ff000 (prefetchable)
Memory window 1: d0300000-d03ff000
I/O window 0: 00004400-000044ff
I/O window 1: 00004000-000040ff
16-bit legacy interface ports at 0001
0000:02:06.1 CardBus bridge: O2 Micro, Inc.: Unknown device 7114 (rev 20)
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, stepping, slow devsel, latency 168, IRQ 10
Memory at 20001000 (32-bit, non-prefetchable)
Bus: primary=02, secondary=07, subordinate=0a, sec-latency=176
Memory window 0: 20400000-207ff000 (prefetchable)
Memory window 1: 20800000-20bff000
I/O window 0: 00004800-000048ff
I/O window 1: 00004c00-00004cff
16-bit legacy interface ports at 0001
0000:02:06.2 System peripheral: O2 Micro, Inc.: Unknown device 7110
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: slow devsel, IRQ 10
Memory at d0208000 (32-bit, non-prefetchable)
Capabilities: [a0] Power Management version 2
0000:02:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000
Controller (PHY/Link) (prog-if 10 [OHCI])
Subsystem: Acer Incorporated [ALI]: Unknown device 001f
Flags: bus master, medium devsel, latency 64, IRQ 10
Memory at d0209000 (32-bit, non-prefetchable)
Memory at d0200000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [44] Power Management version 2