PROBLEM: UHCI_HCD misses SETUP_TD (First != element) after firmwareupload

From: Giedrius LiubaviÄius
Date: Tue Jul 26 2005 - 03:19:13 EST


Hi there,
I've got to setup D-Link DSL200i
Kernel: 2.6.11.12
Slackware 10.1.0
Aditional software user: eagle-usb.org or atm.eagle-usb.org
Problem: on my own computer, everything works fine (USB HUB 2.0,
Intel chipset, UHCI)
On this one - only when on high load
I tried to play with delays in various functions of uhci_hcd.c -
sometimes it helps
If I change uhci_result_control ending:
td= list_entry(tmp,......) to td=list_entry(head->next,..........) -
setup passes

USB device: 0x1110:0x9010 -> without firmware, 0x1110:0x900f -> with
firmware
eagle usb module uploads firmware and initiates a reset. This is
where I get to the TD selection problem.
More details on dlink.log

hub 1-0:1.0: state 5 ports 2 chg 0000 evt 0002
uhci_hcd 0000:00:14.2: port 1 portsc 0883,00
hub 1-0:1.0: over-current change on port 1
hub 1-0:1.0: port 1, status 0101, change 0009, 12 Mb/s
uhci_hcd 0000:00:14.2: wakeup_hc
hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
usb 1-1: new full speed USB device using uhci_hcd and address 5
uhci_hcd 0000:00:14.2: uhci_result_control: failed with status 440000
[c5102240] link (051021b2) element (04548040)
0: [c4548040] link (04548080) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=0, PID=2d(SETUP) (buf=07d0cce0)
1: [c4548080] link (045480c0) e3 SPD Active Length=0 MaxLen=3f DT1 EndPt=0 Dev=0, PID=69(IN) (buf=071c83e0)
2: [c45480c0] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=0, PID=e1(OUT) (buf=00000000)

usb 1-1: device descriptor read/64, error -71
usb 1-1: new device strings: Mfr=0, Product=0, SerialNumber=0
DEV: registering device: ID = '1-1'
usb 1-1: hotplug
PM: Adding info for usb:1-1
bus usb: add device 1-1
bound device '1-1' to driver 'usb'
usb 1-1: adding 1-1:1.0 (config #1, interface 0)
DEV: registering device: ID = '1-1:1.0'
usb 1-1:1.0: hotplug
PM: Adding info for usb:1-1:1.0
bus usb: add device 1-1:1.0
ueagle-atm 1-1:1.0: usb_probe_interface
ueagle-atm 1-1:1.0: usb_probe_interface - got id
usb 1-1: [ueagle-atm] ADSL device founded vid (0X1110) pid (0X9010)
usb 1-1: reset full speed USB device using uhci_hcd and address 5
usb 1-1: [ueagle-atm] pre-firmware device, uploading firmware
CLASS: registering class device: ID = '1-1'
class_hotplug - name = 1-1
class_hotplug - hotplug() returned -19
class_hotplug - name = 1-1
CLASS: Unregistering class device. ID = '1-1'
class_hotplug - name = 1-1
device class '1-1': release.
usb 1-1: [ueagle-atm] firmware uploaded
bound device '1-1:1.0' to driver 'ueagle-atm'
hub 1-0:1.0: state 5 ports 2 chg 0000 evt 0002
hub 1-0:1.0: state 5 ports 2 chg 0000 evt 0002
uhci_hcd 0000:00:14.2: port 1 portsc 008a,00
hub 1-0:1.0: port 1, status 0100, change 0003, 12 Mb/s
usb 1-1: USB disconnect, address 5
usb 1-1: usb_disable_device nuking all URBs
usb 1-1: unregistering interface 1-1:1.0
bus usb: remove device 1-1:1.0
PM: Removing info for usb:1-1:1.0
usb 1-1:1.0: hotplug
usb 1-1: unregistering device
DEV: Unregistering device. ID = '1-1'
bus usb: remove device 1-1
PM: Removing info for usb:1-1
usb 1-1: hotplug
hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x100
hub 1-0:1.0: state 5 ports 2 chg 0000 evt 0002
uhci_hcd 0000:00:14.2: port 1 portsc 0093,00
hub 1-0:1.0: port 1, status 0101, change 0001, 12 Mb/s
hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
usb 1-1: new full speed USB device using uhci_hcd and address 6
usb 1-1: skipped 2 descriptors after interface
usb 1-1: new device strings: Mfr=0, Product=2, SerialNumber=3
usb 1-1: default language 0x0409
usb 1-1: Product: ADSL-USB Modem
usb 1-1: SerialNumber: 000D88E54893
DEV: registering device: ID = '1-1'
usb 1-1: hotplug
PM: Adding info for usb:1-1
bus usb: add device 1-1
bound device '1-1' to driver 'usb'
uhci_hcd 0000:00:14.2: uhci_result_control: failed with status 440000
[c5102240] link (051021e2) element (04548080)
Element != First TD
0: [c4548040] link (04548080) e3 Length=7 MaxLen=7 DT0 EndPt=0 Dev=6, PID=2d(SETUP) (buf=07752620)
1: [c4548080] link (00000001) e0 IOC Stalled CRC/Timeo Length=7ff MaxLen=7ff DT1 EndPt=0 Dev=6, PID=69(IN) (buf=00000000)

usb 1-1: can't set config #1, error -84
bus usb: remove device 1-1
PM: Removing info for usb:1-1
usb 1-1: hotplug
uhci_hcd 0000:00:14.2: port 1 portsc 0895,00
usb 1-1: new full speed USB device using uhci_hcd and address 7
uhci_hcd 0000:00:14.2: port 1 portsc 0895,00
usb 1-1: skipped 2 descriptors after interface
usb 1-1: new device strings: Mfr=0, Product=2, SerialNumber=3
usb 1-1: default language 0x0409
usb 1-1: Product: ADSL-USB Modem
usb 1-1: SerialNumber: 000D88E54893
DEV: registering device: ID = '1-1'
usb 1-1: hotplug
PM: Adding info for usb:1-1
bus usb: add device 1-1
bound device '1-1' to driver 'usb'
uhci_hcd 0000:00:14.2: uhci_result_control: failed with status 440000
[c5102240] link (051021e2) element (04548080)
Element != First TD
0: [c4548040] link (04548080) e3 Length=7 MaxLen=7 DT0 EndPt=0 Dev=7, PID=2d(SETUP) (buf=07752720)
1: [c4548080] link (00000001) e0 IOC Stalled CRC/Timeo Length=7ff MaxLen=7ff DT1 EndPt=0 Dev=7, PID=69(IN) (buf=00000000)

usb 1-1: can't set config #1, error -84
bus usb: remove device 1-1
PM: Removing info for usb:1-1
usb 1-1: hotplug
hub 1-0:1.0: state 5 ports 2 chg 0000 evt 0002
uhci_hcd 0000:00:14.2: port 1 portsc 0899,00
hub 1-0:1.0: port 1 enable change, status 00000101
hub 1-0:1.0: over-current change on port 1
If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.

Linux mindaugas 2.6.11.12 #19 Tue Jul 26 09:23:15 EEST 2005 i686 unknown unknown GNU/Linux

Gnu C 3.3.6
Gnu make 3.80
binutils 2.15.92.0.2
util-linux 2.12p
mount 2.12p
module-init-tools 3.1
e2fsprogs 1.35
reiserfsprogs line
reiser4progs line
PPP 2.4.2
Linux C Library 2.3.5
Dynamic linker (ldd) 2.3.5
Linux C++ Library 5.0.7
Procps 3.2.3
Net-tools 1.60
Kbd 1.12
Sh-utils 5.2.1
udev 058
Modules Loaded ueagle usbatm uhci_hcd ohci_hcd ehci_hcd usbcore firmware_class atm snd_pcm_oss snd_mixer_oss snd_es18xx snd_pcm snd_page_alloc snd_opl3_lib snd_timer snd_hwdep snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore intel_agp agpgart
00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
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
Region 0: Memory at 44000000 (32-bit, prefetchable) [size=64M]
Capabilities: [a0] AGP version 1.0
Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3- Rate=x1,x2
Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>

00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) (prog-if 00 [Normal decode])
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
Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
I/O behind bridge: 00001000-00001fff
Memory behind bridge: 40000000-400fffff
Prefetchable memory behind bridge: 41000000-41ffffff
BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B+

00:0a.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 05)
Subsystem: Compaq Computer Corporation NC3161 Fast Ethernet NIC (embedded, WOL)
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: 66 (2000ns min, 14000ns max), cache line size 08
Interrupt: pin A routed to IRQ 11
Region 0: Memory at 42100000 (32-bit, prefetchable) [size=4K]
Region 1: I/O ports at 2000 [size=32]
Region 2: Memory at 42000000 (32-bit, non-prefetchable) [size=1M]
Expansion ROM at <unassigned> [disabled] [size=1M]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:14.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
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: 0

00:14.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])
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
Region 4: I/O ports at 2040 [size=16]

00:14.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
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
Interrupt: pin D routed to IRQ 11
Region 4: I/O ports at 2020 [size=32]

00:14.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
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-
Interrupt: pin ? routed to IRQ 9

01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c) (prog-if 00 [VGA])
Subsystem: ATI Technologies Inc Rage Pro Turbo AGP 2X
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: 66 (2000ns min), cache line size 08
Interrupt: pin A routed to IRQ 11
Region 0: Memory at 41000000 (32-bit, prefetchable) [size=16M]
Region 1: I/O ports at 1000 [size=256]
Region 2: Memory at 40000000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: [50] AGP version 1.0
Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3- Rate=x1,x2
Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>

begin:vcard
fn;quoted-printable:Giedrius Liubavi=C4=8Dius
n;quoted-printable:Liubavi=C4=8Dius;Giedrius
org:;Technologijos fak.
adr;quoted-printable:;;;=C5=A0iauliai;;;Lietuva
email;internet:giedrius@xxxxxxxxxxx
title:Studentas, R3
tel;work:+37041595737
tel;cell:+37068450498
x-mozilla-html:TRUE
url:http://galva.su.lt
version:2.1
end:vcard

Attachment: signature.asc
Description: OpenPGP digital signature