Bug 6654
Summary: | USB 2.0 high speed mode (ehci_hcd module) won't work without acpi=noirq | ||
---|---|---|---|
Product: | ACPI | Reporter: | Paul Surgeon (surgpub) |
Component: | Config-Interrupts | Assignee: | ykzhao (yakui.zhao) |
Status: | REJECTED WILL_NOT_FIX | ||
Severity: | normal | CC: | acpi-bugzilla, bjorn.helgaas, bunk, cw, mike.lifeguard, robert, trenn |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.16.18 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
dmesg and irq info
dmesg with acpi=noirq dmesg with noapic dmesg of default/normal boot /proc/acpi/dsdt contents from Thinkpad R50p dmidecode output from ThinkPad R50p |
Description
Paul Surgeon
2006-06-05 11:34:48 UTC
Does booting with pci=routeirq also work? Are you comfortable building kernels if I was to send you a test patch (it probably won't help but it would be good to know all the same). No, booting with pci=routeirq doesn't work correctly. I don't see any IRQ error messages anymore but I only get full speed (12 Mbps) instead of high speed (480Mbps). So far only acpi=noirq allows me to get high speed mode. dmesg ===== rface v0.101 (c) Dave Jones PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12 serio: i8042 AUX port at 0x60,0x64 irq 12 serio: i8042 KBD port at 0x60,0x64 irq 1 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A parport: PnPBIOS parport detected. parport0: PC-style at 0x378, irq 7 [PCSPP(,...)] floppy0: no floppy controllers found loop: loaded (max 8 devices) Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx VP_IDE: IDE controller at PCI slot 0000:00:0f.0 ACPI: PCI Interrupt 0000:00:0f.0[A] -> Link [LNKA] -> GSI 10 (level, low) -> IRQ 10 PCI: VIA IRQ fixup for 0000:00:0f.0, from 255 to 10 VP_IDE: chipset revision 6 VP_IDE: not 100% native mode: will probe irqs later VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.0 ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:DMA, hdd:DMA Probing IDE interface ide0... hda: ST3160021A, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... hdc: HL-DT-ST DVDRAM GSA-4167B, ATAPI CD/DVD-ROM drive hdd: ST340810A, ATA DISK drive ide1 at 0x170-0x177,0x376 on irq 15 hda: max request size: 512KiB hda: 312581808 sectors (160041 MB) w/2048KiB Cache, CHS=19457/255/63, UDMA(100) hda: cache flushes supported hda: hda1 hda2 < hda5 > hdd: max request size: 128KiB hdd: 78165360 sectors (40020 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(100) hdd: cache flushes not supported hdd: hdd1 hdd2 hdd3 hdc: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20 libata version 1.20 loaded. usbmon: debugfs is not available usbcore: registered new driver usbhid drivers/usb/input/hid-core.c: v2.6:USB HID core driver mice: PS/2 mouse device common for all mice Advanced Linux Sound Architecture Driver Version 1.0.11rc2 (Wed Jan 04 08:57:20 2006 UTC). ALSA device list: No soundcards found. oprofile: using timer interrupt. NET: Registered protocol family 2 input: AT Translated Set 2 keyboard as /class/input/input0 IP route cache hash table entries: 8192 (order: 3, 32768 bytes) TCP established hash table entries: 32768 (order: 5, 131072 bytes) TCP bind hash table entries: 32768 (order: 5, 131072 bytes) TCP: Hash tables configured (established 32768 bind 32768) TCP reno registered ip_conntrack version 2.4 (4095 buckets, 32760 max) - 172 bytes per conntrack TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Using IPI Shortcut mode EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 152k freed kjournald starting. Commit interval 5 seconds input: ImPS/2 Generic Wheel Mouse as /class/input/input1 Adding 2096472k swap on /dev/hdd3. Priority:-1 extents:1 across:2096472k EXT3 FS on hda1, internal journal lp0: using parport0 (interrupt-driven). kjournald starting. Commit interval 5 seconds EXT3 FS on hda5, internal journal EXT3-fs: mounted filesystem with ordered data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on hdd2, internal journal EXT3-fs: mounted filesystem with ordered data mode. agpgart: Detected VIA KT400/KT400A/KT600 chipset agpgart: AGP aperture is 128M @ 0xd0000000 ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker http://www.scyld.com/network/ne2k-pci.html ACPI: PCI Interrupt 0000:00:0b.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11 eth0: RealTek RTL-8029 found at 0xd000, IRQ 11, 00:C0:DF:F5:1A:C9. ACPI: PCI Interrupt 0000:00:0c.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10 gameport: ES137x is pci0000:00:0c.0/gameport0, io 0x200, speed 962kHz input: Microsoft SideWinder Force Feedback Pro as /class/input/input2 USB Universal Host Controller Interface driver v2.3 ACPI: PCI Interrupt 0000:00:10.0[A] -> Link [LNKA] -> GSI 10 (level, low) -> IRQ 10 uhci_hcd 0000:00:10.0: UHCI Host Controller uhci_hcd 0000:00:10.0: detected 2 ports uhci_hcd 0000:00:10.0: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:10.0: Performing full reset drivers/usb/core/inode.c: creating file 'devices' drivers/usb/core/inode.c: creating file '001' uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 1 uhci_hcd 0000:00:10.0: irq 10, io base 0x0000dc00 usb usb1: default language 0x0409 usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: UHCI Host Controller usb usb1: Manufacturer: Linux 2.6.16.18 uhci_hcd usb usb1: SerialNumber: 0000:00:10.0 usb usb1: uevent usb usb1: device is self-powered usb usb1: configuration #1 chosen from 1 choice usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: uevent hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: no power switching (usb 1.0) hub 1-0:1.0: individual port over-current protection hub 1-0:1.0: power on to power good time: 2ms hub 1-0:1.0: local power source is good hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000 drivers/usb/core/inode.c: creating file '001' uhci_hcd 0000:00:10.0: port 1 portsc 008a,00 hub 1-0:1.0: port 1, status 0100, change 0003, 12 Mb/s ACPI: PCI Interrupt 0000:00:10.1[A] -> Link [LNKA] -> GSI 10 (level, low) -> IRQ 10 uhci_hcd 0000:00:10.1: UHCI Host Controller uhci_hcd 0000:00:10.1: detected 2 ports uhci_hcd 0000:00:10.1: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:10.1: Performing full reset drivers/usb/core/inode.c: creating file '002' uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:10.1: irq 10, io base 0x0000e000 usb usb2: default language 0x0409 usb usb2: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: UHCI Host Controller usb usb2: Manufacturer: Linux 2.6.16.18 uhci_hcd usb usb2: SerialNumber: 0000:00:10.1 usb usb2: uevent usb usb2: device is self-powered usb usb2: configuration #1 chosen from 1 choice usb usb2: adding 2-0:1.0 (config #1, interface 0) usb 2-0:1.0: uevent hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: no power switching (usb 1.0) hub 2-0:1.0: individual port over-current protection hub 2-0:1.0: power on to power good time: 2ms hub 2-0:1.0: local power source is good drivers/usb/core/inode.c: creating file '001' ACPI: PCI Interrupt 0000:00:10.2[B] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11 uhci_hcd 0000:00:10.2: UHCI Host Controller uhci_hcd 0000:00:10.2: detected 2 ports uhci_hcd 0000:00:10.2: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:10.2: Performing full reset drivers/usb/core/inode.c: creating file '003' uhci_hcd 0000:00:10.2: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:10.2: irq 11, io base 0x0000e400 usb usb3: default language 0x0409 usb usb3: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: Product: UHCI Host Controller usb usb3: Manufacturer: Linux 2.6.16.18 uhci_hcd usb usb3: SerialNumber: 0000:00:10.2 usb usb3: uevent usb usb3: device is self-powered usb usb3: configuration #1 chosen from 1 choice usb usb3: adding 3-0:1.0 (config #1, interface 0) usb 3-0:1.0: uevent hub 3-0:1.0: usb_probe_interface hub 3-0:1.0: usb_probe_interface - got id hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected hub 3-0:1.0: standalone hub hub 3-0:1.0: no power switching (usb 1.0) hub 3-0:1.0: individual port over-current protection hub 3-0:1.0: power on to power good time: 2ms hub 3-0:1.0: local power source is good hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x100 uhci_hcd 0000:00:10.0: port 2 portsc 018a,00 hub 1-0:1.0: port 2, status 0300, change 0003, 1.5 Mb/s drivers/usb/core/inode.c: creating file '001' ACPI: PCI Interrupt 0000:00:10.3[B] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11 uhci_hcd 0000:00:10.3: UHCI Host Controller uhci_hcd 0000:00:10.3: detected 2 ports uhci_hcd 0000:00:10.3: uhci_check_and_reset_hc: cmd = 0x0000 uhci_hcd 0000:00:10.3: Performing full reset drivers/usb/core/inode.c: creating file '004' uhci_hcd 0000:00:10.3: new USB bus registered, assigned bus number 4 uhci_hcd 0000:00:10.3: irq 11, io base 0x0000e800 usb usb4: default language 0x0409 usb usb4: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb4: Product: UHCI Host Controller usb usb4: Manufacturer: Linux 2.6.16.18 uhci_hcd usb usb4: SerialNumber: 0000:00:10.3 usb usb4: uevent usb usb4: device is self-powered usb usb4: configuration #1 chosen from 1 choice usb usb4: adding 4-0:1.0 (config #1, interface 0) usb 4-0:1.0: uevent hub 4-0:1.0: usb_probe_interface hub 4-0:1.0: usb_probe_interface - got id hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected hub 4-0:1.0: standalone hub hub 4-0:1.0: no power switching (usb 1.0) hub 4-0:1.0: individual port over-current protection hub 4-0:1.0: power on to power good time: 2ms hub 4-0:1.0: local power source is good hub 1-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x300 hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000 hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0006 uhci_hcd 0000:00:10.1: port 1 portsc 008a,00 hub 2-0:1.0: port 1, status 0100, change 0003, 12 Mb/s drivers/usb/core/inode.c: creating file '001' hub 2-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x100 uhci_hcd 0000:00:10.1: port 2 portsc 018a,00 hub 2-0:1.0: port 2, status 0300, change 0003, 1.5 Mb/s hub 2-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x300 hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0006 uhci_hcd 0000:00:10.2: port 1 portsc 008a,00 hub 3-0:1.0: port 1, status 0100, change 0003, 12 Mb/s hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x100 uhci_hcd 0000:00:10.2: port 2 portsc 008a,00 hub 3-0:1.0: port 2, status 0100, change 0003, 12 Mb/s ehci_hcd: block sizes: qh 128 qtd 96 itd 192 sitd 96 ACPI: PCI Interrupt 0000:00:10.4[C] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10 ehci_hcd 0000:00:10.4: EHCI Host Controller ehci_hcd 0000:00:10.4: reset hcs_params 0x4208 dbg=0 cc=4 pcc=2 ordered !ppc ports=8 ehci_hcd 0000:00:10.4: reset hcc_params 6872 thresh 7 uframes 256/512/1024 ehci_hcd 0000:00:10.4: MWI active drivers/usb/core/inode.c: creating file '005' ehci_hcd 0000:00:10.4: new USB bus registered, assigned bus number 5 ehci_hcd 0000:00:10.4: irq 10, io mem 0xe2000000 ehci_hcd 0000:00:10.4: reset command 080002 (park)=0 ithresh=8 period=1024 Reset HALT ehci_hcd 0000:00:10.4: init command 010009 (park)=0 ithresh=1 period=256 RUN ehci_hcd 0000:00:10.4: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb5: default language 0x0409 usb usb5: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb5: Product: EHCI Host Controller usb usb5: Manufacturer: Linux 2.6.16.18 ehci_hcd usb usb5: SerialNumber: 0000:00:10.4 usb usb5: uevent usb usb5: device is self-powered usb usb5: configuration #1 chosen from 1 choice usb usb5: adding 5-0:1.0 (config #1, interface 0) usb 5-0:1.0: uevent hub 5-0:1.0: usb_probe_interface hub 5-0:1.0: usb_probe_interface - got id hub 5-0:1.0: USB hub found hub 5-0:1.0: 8 ports detected hub 5-0:1.0: standalone hub hub 5-0:1.0: no power switching (usb 1.0) hub 5-0:1.0: individual port over-current protection hub 5-0:1.0: Single TT hub 5-0:1.0: TT requires at most 8 FS bit times (666 ns) hub 5-0:1.0: power on to power good time: 20ms hub 5-0:1.0: local power source is good hub 3-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x100 hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0006 uhci_hcd 0000:00:10.3: port 1 portsc 008a,00 hub 4-0:1.0: port 1, status 0100, change 0003, 12 Mb/s drivers/usb/core/inode.c: creating file '001' hub 4-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x100 uhci_hcd 0000:00:10.3: port 2 portsc 018a,00 hub 4-0:1.0: port 2, status 0300, change 0003, 1.5 Mb/s hub 4-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x300 hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0000 hub 5-0:1.0: state 7 ports 8 chg 0000 evt 0000 hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0000 uhci_hcd 0000:00:10.0: suspend_rh (auto-stop) uhci_hcd 0000:00:10.1: suspend_rh (auto-stop) uhci_hcd 0000:00:10.2: suspend_rh (auto-stop) uhci_hcd 0000:00:10.3: suspend_rh (auto-stop) ACPI: Power Button (FF) [PWRF] ACPI: Power Button (CM) [PWRB] ACPI: Sleep Button (CM) [SLPB] ACPI: Fan [FAN] (on) nvidia: module license 'NVIDIA' taints kernel. ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKA] -> GSI 10 (level, low) -> IRQ 10 NVRM: loading NVIDIA Linux x86 Kernel Module 1.0-8762 Mon May 15 13:06:38 PDT 2006 agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0. agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode hub 5-0:1.0: state 7 ports 8 chg 0000 evt 0002 ehci_hcd 0000:00:10.4: GetStatus port 1 status 001803 POWER sig=j CSC CONNECT hub 5-0:1.0: port 1, status 0501, change 0001, 480 Mb/s ehci_hcd 0000:00:10.4: GetStatus port 1 status 001002 POWER sig=se0 CSC hub 5-0:1.0: debounce: port 1: total 175ms stable 100ms status 0x100 hub 5-0:1.0: state 7 ports 8 chg 0000 evt 0002 ehci_hcd 0000:00:10.4: GetStatus port 1 status 001803 POWER sig=j CSC CONNECT hub 5-0:1.0: port 1, status 0501, change 0001, 480 Mb/s hub 5-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x501 ehci_hcd 0000:00:10.4: port 1 high speed ehci_hcd 0000:00:10.4: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT usb 5-1: new high speed USB device using ehci_hcd and address 2 ehci_hcd 0000:00:10.4: port 1 high speed ehci_hcd 0000:00:10.4: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT usb 5-1: default language 0x0409 usb 5-1: new device strings: Mfr=1, Product=2, SerialNumber=3 usb 5-1: Product: External HDD usb 5-1: Manufacturer: Western Digital usb 5-1: SerialNumber: 57442D574D414E5531303836373034 usb 5-1: uevent usb 5-1: device is self-powered usb 5-1: configuration #1 chosen from 1 choice usb 5-1: adding 5-1:1.0 (config #1, interface 0) usb 5-1:1.0: uevent drivers/usb/core/inode.c: creating file '002' Initializing USB Mass Storage driver... usb-storage 5-1:1.0: usb_probe_interface usb-storage 5-1:1.0: usb_probe_interface - got id scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning usbcore: registered new driver usb-storage USB Mass Storage support registered. Vendor: WD Model: 4000KS External Rev: 101a Type: Direct-Access ANSI SCSI revision: 04 SCSI device sda: 781422768 512-byte hdwr sectors (400088 MB) sda: Write Protect is off sda: Mode Sense: 11 00 00 00 sda: assuming drive cache: write through SCSI device sda: 781422768 512-byte hdwr sectors (400088 MB) sda: Write Protect is off sda: Mode Sense: 11 00 00 00 sda: assuming drive cache: write through sda: sda1 sd 0:0:0:0: Attached scsi disk sda sd 0:0:0:0: Attached scsi generic sg0 type 0 usb-storage: device scan complete kjournald starting. Commit interval 5 seconds EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. > ACPI: Using PIC for interrupt routing
The "acpi=noirq" success case is running in PIC mode.
Unclear if the default case is trying to us IOAPIC mode,
the dmesg is incomplete.
For these three cases, please _attach_ the output from
dmesg -s64000 and _paste_ the contents of /proc/interrupts
into this bug report.
1. default
2. "acpi=noirq"
3. "noapic"
Created attachment 8276 [details]
dmesg and irq info
I've attached a zip file containing the three requested test cases.
/proc/interrupts is appended to the end of each log.
1. normal.txt = default/normal boot
2. acpi-noirq.txt = boot with acpi=noirq
3. noapic.txt = boot with noapic
Created attachment 13414 [details]
dmesg with acpi=noirq
Created attachment 13415 [details]
dmesg with noapic
Created attachment 13416 [details]
dmesg of default/normal boot
Paul, Are you still interested with this bug? would you please kindly test the latest kernel to see if it fixes your issue? Hi, Paul, Please try the latest kernel release, 2.6.23. Please attach the acpidump output. Please try to boot with irqpoll and attach the dmesg and /proc/interrupts as well. Hi, Paul Will you please try the latest the kernel release(2.6.23) and boot the system with option of acpi_irq_nobalance? Please attach the output of acpidump , dmesg, /proc/interrupts after the system is booted. Thanks That the ehci module can't work is caused by uncorrect PCI interrupt route. a. acpi=noirq IRQ 5 is used for ehci and the ehci module can work well. b. acpi enable OSPM will use the pci interrupt route entry defined in ACPI table and LNKC device is used for ehci and audiopci device. If acpi_irq_balance is used, the new irq number(11) will be programmed into LNKC because the default IRQ number is not in the possible IRQ list. >ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 6 7 10 11 12) *5 Unfortunately the above setting has no effect because the LNKC device is hardrouted to IRQ 5,which means that the interrupt route for ehci is uncorrect. So the ehci can't work well in case of using ACPI PRT table. The bug will be rejected . (Of course the system can work well if it is booted with the option of acpi_irq_nobalance). I like your theory that this is caused by a broken BIOS. However, I would like to try to work around the problem in the kernel rather than just rejecting the bug report. I'm not sure we can tell yet whether a) the LNKC device reports "3 4 6 7 10 11 12" as possible IRQs but is in fact hardwired to IRQ 5, or b) 0000:00:10.4[C] is connected directly to IRQ 5 rather than to LNKC. The kernel thinks Paul's gameport device (0000:00:0c.0[A]) is also connected to LNKC. If /proc/interrupts shows gameport interrupts on IRQ 11, then I think it's more likely that (b) is the problem. Either way, I think it's possible to work around this. Paul, can you boot with no options and try out the gameport to see where its interrupts are going? Please also attach the dmidecode output, so if we write a workaround, we can make it specific to this motherboard. Hi, Paul The log in comment #7 reports that the interrupt of gameport is also IRQ 11 when the system is booted with enabling acpi. The log in comment #5 reports that the interrupt of gameport is IRQ 5 with the boot option of acpi=noirq. From the above two logs it seems that both the gameport and ehci are hardrouted to IRQ 5 through LNKC. So when the new IRQ number is programmed into LNKC device, it will have no effect. Of course the default IRQ number 5 is used for the ehci and gameport if the boot option of acpi_irq_nobalance is used. Will you please attach the dmidecode? Bjorn will help us to write the workaround patch. Thanks. In the default boot (ACPI interrupt routing enabled), I'm not convinced we know where the gameport and ehci interrupts are going. If they're hardwired to IRQ 5, shouldn't we see a non-zero count for IRQ 5 in /proc/interrupts? In any case, we haven't heard from Paul since June, 2006. I'd be glad to write some debug and workaround patches, but I don't want to spend the time unless someone has a machine to test them on. So I'm going to wait until somebody expresses interest. Hi, Bjorn Thank you for caring this problem. From the log in comment #7 we can know that the interrupts of gameport and ehci are routed to IRQ 11 through LNKC device in the default boot. ACPI: PCI Interrupt 0000:00:10.4[C] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11 ehci_hcd 0000:00:10.4: EHCI Host Controller ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11 ACPI: PCI Interrupt 0000:00:0c.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11 Then OSPM will register the ISR of gameport and ehci on IRQ 11. But unfortunately the _SRS setting of LNKC device has no effect(maybe the real interrupt is hardrouted to IRQ5) and OSPM can't receive the interrpts of ehci or gameport. Although they are hardwired to IRQ5, we can't see a non-zero count for IRQ5 in /proc/interrupts if no device registers the ISR on IRQ5.(In the current kernel the IRQ interrupt will be disabled if no one registes the ISR). OK, if somebody volunteers to test them, I'll write some test patches. (In reply to comment #16) > OK, if somebody volunteers to test them, I'll write some test patches. > I have a machine (Thinkpad R50p) with this problem, USB storage devices only works after unloading ehci_hcd, but acpi=noirq does not workaround the problem Currently running 2.6.24.4, If you need more info please tell me, I can help testing the patches Thanks, Robert. Can you attach the output of dmidecode and the contents of /proc/acpi/dsdt? Created attachment 15679 [details]
/proc/acpi/dsdt contents from Thinkpad R50p
Created attachment 15680 [details]
dmidecode output from ThinkPad R50p
I should have noticed this yesterday, but I'm not convinced you're seeing the same problem, Robert. The original report was on a different machine and using acpi=noirq worked around the problem. I think it would be best if you could open a new bugzilla, attach a complete dmesg log, the contents of /proc/interrupts before unloading ehci_hcd (when your USB devices don't work), and /proc/interrupts after unloading ehci_hcd (when they do work). Please add me to the CC list of the new bugzilla. Can you tell which USB controller the non-working storage devices are attached to? Do other, non-storage, USB devices work? (In reply to comment #21) > I should have noticed this yesterday, but I'm not convinced you're seeing the > same problem, Robert. The original report was on a different machine and > using > acpi=noirq worked around the problem. > Finally I got more time to test this and found that my case looks like a hardware problem, Windows revert to USB 1.0 and warns that the device is able to use USB 2.0 speeds (do not use the Windows partition too much so I never noticed). I found a lot of internet reports about thinkpads with the same behavior and were solved with a motherboard replacement |