Bug 5832
Summary: | Enabling ACPI Plug and Play in kernels >2.6.9 kills Parallel support | ||
---|---|---|---|
Product: | ACPI | Reporter: | Dane Mutters (dmutters) |
Component: | Config-Other | Assignee: | Bjorn Helgaas (bjorn.helgaas) |
Status: | CLOSED CODE_FIX | ||
Severity: | high | CC: | acpi-bugzilla, akpm, ambx1, andi-bz, bjorn.helgaas, cjia, dmitry.torokhov, shaohua.li, trenn |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.14-r5 (gentoo) | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: |
disable PNP IRQ info
disable PNP DMA info dmesg log dmesg with both patches applied dump AML byte stream and ACPI resources Dmesg output after using the commands in comment #25. acpidump of 2.6.23-1 .config of 2.6.23-1 Debug patch - 2.6.24-rc2 (might have slight offsets, but should patch...) Disable pnpacpi on BIOSes older than 2004 Output of dmidecode test patch for ACPI CA problem PNPACPI: use _CRS IRQ descriptor length for _SRS |
Description
Dane Mutters
2006-01-05 03:49:10 UTC
Here is my dmesg for a working kernel (2.6.9-r9 [Gentoo]): 398000000 size 32 MB Aperture from northbridge cpu 0 too small (32 MB) No AGP bridge found Built 1 zonelists Kernel command line: root=/dev/ram0 init=linuxrc ramdisk=8192 real_root=/dev/hda2 udev vga=0x317 video=vesafb:mtrr,ywrap console=tty0 Initializing CPU#0 PID hash table entries: 4096 (order: 12, 131072 bytes) time.c: Using 1.193182 MHz PIT timer. time.c: Detected 2100.495 MHz processor. Console: colour dummy device 80x25 Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes) Memory: 1023716k/1048512k available (3071k kernel code, 24064k reserved, 1346k data, 172k init) Calibrating delay loop... 4161.53 BogoMIPS (lpj=2080768) Mount-cache hash table entries: 256 (order: 0, 4096 bytes) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 512K (64 bytes/line) CPU: AMD Athlon(tm) 64 Processor 3200+ stepping 00 ACPI: IRQ9 SCI: Edge set to Level Trigger. Using local APIC NMI watchdog using perfctr0 Using local APIC timer interrupts. Detected 13.128 MHz APIC timer. checking if image is initramfs... it is NET: Registered protocol family 16 PCI: Using configuration type 1 PCI: Using MMCONFIG at e0000000 mtrr: v2.0 (20020519) ACPI: Subsystem revision 20040816 ACPI: Interpreter enabled ACPI: Using PIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (00:00) PCI: Probing PCI hardware (bus 00) PCI: Transparent bridge - 0000:00:09.0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT] ACPI: PCI Interrupt Link [LNK1] (IRQs *3 4 5 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LMAC] (IRQs *3 4 5 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 *5 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LSID] (IRQs 3 4 5 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LFID] (IRQs 3 4 *5 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LPCA] (IRQs 3 4 5 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [APC1] (IRQs 16) *0, disabled. ACPI: PCI Interrupt Link [APC2] (IRQs 17) *0, disabled. ACPI: PCI Interrupt Link [APC3] (IRQs 18) *0, disabled. ACPI: PCI Interrupt Link [APC4] (IRQs 19) *0, disabled. ACPI: PCI Interrupt Link [APC5] (IRQs *16), disabled. ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCS] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APSI] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APSJ] (IRQs 20 21 22 23) *0, disabled. ACPI: PCI Interrupt Link [APCP] (IRQs 20 21 22 23) *0, disabled. SCSI subsystem initialized usbcore: registered new driver usbfs usbcore: registered new driver hub PCI: Using ACPI for IRQ routing ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 11 ACPI: PCI interrupt 0000:00:01.1[A] -> GSI 11 (level, low) -> IRQ 11 ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 10 ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 10 (level, low) -> IRQ 10 ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 11 ACPI: PCI interrupt 0000:00:02.1[B] -> GSI 11 (level, low) -> IRQ 11 ACPI: PCI Interrupt Link [LACI] enabled at IRQ 5 ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 5 (level, low) -> IRQ 5 ACPI: PCI Interrupt Link [LSID] enabled at IRQ 11 ACPI: PCI interrupt 0000:00:07.0[A] -> GSI 11 (level, low) -> IRQ 11 ACPI: PCI Interrupt Link [LFID] enabled at IRQ 5 ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 5 (level, low) -> IRQ 5 ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 3 ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 3 (level, low) -> IRQ 3 ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 3 ACPI: PCI interrupt 0000:05:06.0[A] -> GSI 3 (level, low) -> IRQ 3 ACPI: PCI Interrupt Link [LNK2] enabled at IRQ 10 ACPI: PCI interrupt 0000:05:07.0[A] -> GSI 10 (level, low) -> IRQ 10 ACPI: PCI interrupt 0000:05:0b.0[A] -> GSI 3 (level, low) -> IRQ 3 ACPI: PCI Interrupt Link [LNK3] enabled at IRQ 11 ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11 TC classifier action (bugs to netdev@oss.sgi.com cc hadi@cyberus.ca) PCI-DMA: Disabling IOMMU. IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $ Total HugeTLB memory allocated, 0 devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au) devfs: boot_options: 0x0 SGI XFS with ACLs, large block/inode numbers, no debug enabled Initializing Cryptographic API pci_hotplug: PCI Hot Plug PCI Core version: 0.5 acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.4 pciehp: PCI Express Hot Plug Controller Driver version: 0.4 inotify init: minor=63 Real Time Clock Driver v1.12 Non-volatile memory driver v1.2 Linux agpgart interface v0.100 (c) Dave Jones vesafb: framebuffer at 0xc0000000, mapped to 0xffffff0010100000, size 3072k vesafb: mode is 1024x768x16, linelength=2048, pages=1 vesafb: scrolling: redraw vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0 Console: switching to colour frame buffer device 128x48 fb0: VESA VGA frame buffer device ACPI: Power Button (FF) [PWRF] ACPI: Fan [FAN] (on) ACPI: Processor [CPU0] (supports C1) ACPI: Thermal Zone [THRM] (40 C) 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 $ 8 ports, IRQ sharing disabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ACPI: PCI interrupt 0000:05:07.0[A] -> GSI 10 (level, low) -> IRQ 10 ttyS4 at I/O 0xa400 (irq = 10) is a 16550A mice: PS/2 mouse device common for all mice input: AT Translated Set 2 keyboard on isa0060/serio0 input: ImExPS/2 Generic Explorer Mouse on isa0060/serio1 RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize 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 NFORCE-CK804: IDE controller at PCI slot 0000:00:06.0 NFORCE-CK804: chipset revision 242 NFORCE-CK804: not 100% native mode: will probe irqs later NFORCE-CK804: 0000:00:06.0 (rev f2) UDMA133 controller ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA Probing IDE interface ide0... hda: WDC WD2500JB-22GVC0, ATA DISK drive hdb: SONY CD-RW CRX220E1, ATAPI CD/DVD-ROM drive Using anticipatory io scheduler ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... hdc: WDC WD205BA, ATA DISK drive hdd: PIONEER DVD-RW DVR-109, ATAPI CD/DVD-ROM drive ide1 at 0x170-0x177,0x376 on irq 15 PDC20269: IDE controller at PCI slot 0000:05:06.0 ACPI: PCI interrupt 0000:05:06.0[A] -> GSI 3 (level, low) -> IRQ 3 PDC20269: chipset revision 2 PDC20269: ROM enabled at 0xd0000000 PDC20269: 100% native mode on irq 3 ide2: BM-DMA at 0xa000-0xa007, BIOS settings: hde:pio, hdf:pio ide3: BM-DMA at 0xa008-0xa00f, BIOS settings: hdg:pio, hdh:pio Probing IDE interface ide2... hde: WDC WD800JB-00FMA0, ATA DISK drive hdf: SAMSUNG SP0411N, ATA DISK drive ide2 at 0x9000-0x9007,0x9402 on irq 3 Probing IDE interface ide3... Probing IDE interface ide3... Probing IDE interface ide4... ide4: Wait for ready failed before probe ! Probing IDE interface ide5... ide5: Wait for ready failed before probe ! hda: max request size: 1024KiB hda: 488397168 sectors (250059 MB) w/8192KiB Cache, CHS=30401/255/63, UDMA(100) hda: cache flushes supported /dev/ide/host0/bus0/target0/lun0: p1 p2 p3 p4 hdc: max request size: 128KiB hdc: 40088160 sectors (20525 MB) w/2048KiB Cache, CHS=39770/16/63, UDMA(33) hdc: cache flushes not supported /dev/ide/host0/bus1/target0/lun0: p1 hde: max request size: 128KiB hde: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100) hde: cache flushes supported /dev/ide/host2/bus0/target0/lun0: p1 hdf: max request size: 1024KiB hdf: 78242976 sectors (40060 MB) w/2048KiB Cache, CHS=16383/255/63, UDMA(100) hdf: cache flushes supported /dev/ide/host2/bus0/target1/lun0: p1 hdb: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20 hdd: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2000kB Cache, UDMA(33) md: linear personality registered as nr 1 md: raid0 personality registered as nr 2 md: raid1 personality registered as nr 3 md: raid5 personality registered as nr 4 raid5: automatically using best checksumming function: generic_sse generic_sse: 6384.000 MB/sec raid5: using function: generic_sse (6384.000 MB/sec) raid6: int64x1 1351 MB/s raid6: int64x2 2265 MB/s raid6: int64x4 2707 MB/s raid6: int64x8 1808 MB/s raid6: sse2x1 871 MB/s raid6: sse2x2 1492 MB/s raid6: sse2x4 2109 MB/s raid6: using algorithm sse2x4 (2109 MB/s) md: raid6 personality registered as nr 8 md: multipath personality registered as nr 7 md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27 device-mapper: 4.3.0-ioctl (2004-09-30) initialised: dm-devel@redhat.com NET: Registered protocol family 2 IP: routing cache hash table of 8192 buckets, 64Kbytes TCP: Hash tables configured (established 262144 bind 65536) NET: Registered protocol family 1 NET: Registered protocol family 10 IPv6 over IPv4 tunneling driver NET: Registered protocol family 17 NET: Registered protocol family 15 powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.00.09b) powernow-k8: BIOS error - no PSB ACPI wakeup devices: HUB0 XVR0 XVR1 XVR2 XVR3 USB0 USB2 MMAC MMCI UAR1 ACPI: (supports S0 S1 S3 S4 S5) BIOS EDD facility v0.16 2004-Jun-25, 4 devices found Freeing unused kernel memory: 172k freed ACPI: PCI interrupt 0000:00:02.1[B] -> GSI 11 (level, low) -> IRQ 11 ehci_hcd 0000:00:02.1: PCI device 10de:005b (nVidia Corporation) PCI: Setting latency timer of device 0000:00:02.1 to 64 ehci_hcd 0000:00:02.1: irq 11, pci mem ffffff0000006000 ehci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 1 PCI: cache line size of 64 is not supported by device 0000:00:02.1 ehci_hcd 0000:00:02.1: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10 hub 1-0:1.0: USB hub found hub 1-0:1.0: 10 ports detected usbcore: registered new driver hiddev usbcore: registered new driver usbhid drivers/usb/input/hid-core.c: v2.0:USB HID core driver Initializing USB Mass Storage driver... usbcore: registered new driver usb-storage USB Mass Storage support registered. USB Universal Host Controller Interface driver v2.2 ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 10 (level, low) -> IRQ 10 ohci_hcd 0000:00:02.0: PCI device 10de:005a (nVidia Corporation) PCI: Setting latency timer of device 0000:00:02.0 to 64 ohci_hcd 0000:00:02.0: irq 10, pci mem ffffff000004a000 ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2 hub 2-0:1.0: USB hub found hub 2-0:1.0: 10 ports detected ieee1394: Initialized config rom entry `ip1394' ohci1394: $Rev: 1223 $ Ben Collins <bcollins@debian.org> ACPI: PCI interrupt 0000:05:0b.0[A] -> GSI 3 (level, low) -> IRQ 3 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[3] MMIO=[d1008000-d10087ff] Max Packet=[2048] sbp2: $Rev: 1219 $ Ben Collins <bcollins@debian.org> libata version 1.02 loaded. sata_nv version 0.03 ACPI: PCI interrupt 0000:00:07.0[A] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:00:07.0 to 64 ata1: SATA max UDMA/133 cmd 0x9F0 ctl 0xBF2 bmdma 0xD800 irq 11 ata2: SATA max UDMA/133 cmd 0x970 ctl 0xB72 bmdma 0xD808 irq 11 ata1: no device found (phy stat 00000000) scsi0 : sata_nv usb 2-1: new low speed USB device using address 2 input: USB HID v1.10 Joystick [Microsoft SideWinder Precision 2 Joystick] on usb-0000:00:02.0-1 ata2: no device found (phy stat 00000000) scsi1 : sata_nv ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 5 (level, low) -> IRQ 5 PCI: Setting latency timer of device 0000:00:08.0 to 64 ata3: SATA max UDMA/133 cmd 0x9E0 ctl 0xBE2 bmdma 0xC400 irq 5 ata4: SATA max UDMA/133 cmd 0x960 ctl 0xB62 bmdma 0xC408 irq 5 usb 2-2: new low speed USB device using address 3 input: USB HID v1.00 Gamepad [Microsoft SideWinder Game Pad Pro USB version 1.0] on usb-0000:00:02.0-2 ata3: no device found (phy stat 00000000) scsi2 : sata_nv ata4: no device found (phy stat 00000000) scsi3 : sata_nv ReiserFS: hda2: found reiserfs format "3.6" with standard journal ieee1394: Host added: ID:BUS[0-00:1023] GUID[0011d800004b13a5] ReiserFS: hda2: using ordered data mode ReiserFS: hda2: journal params: device hda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 ReiserFS: hda2: checking transaction log (hda2) ReiserFS: hda2: Using r5 hash to sort names Adding 538168k swap on /dev/hda4. Priority:-1 extents:1 ReiserFS: hda1: found reiserfs format "3.6" with standard journal ReiserFS: hda1: using ordered data mode ReiserFS: hda1: journal params: device hda1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 ReiserFS: hda1: checking transaction log (hda1) ReiserFS: hda1: Using r5 hash to sort names ReiserFS: hda3: found reiserfs format "3.6" with standard journal ReiserFS: hda3: using ordered data mode ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 ReiserFS: hda3: checking transaction log (hda3) ReiserFS: hda3: Using r5 hash to sort names NTFS driver 2.1.20 [Flags: R/O MODULE]. NTFS volume version 3.1. ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 5 (level, low) -> IRQ 5 PCI: Setting latency timer of device 0000:00:04.0 to 64 intel8x0_measure_ac97_clock: measured 49514 usecs intel8x0: clocking to 46755 forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.29. ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 3 (level, low) -> IRQ 3 PCI: Setting latency timer of device 0000:00:0a.0 to 64 eth0: forcedeth.c: subsystem: 01043:8141 bound to 0000:00:0a.0 nvidia: module license 'NVIDIA' taints kernel. ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:01:00.0 to 64 NVRM: loading NVIDIA Linux x86_64 NVIDIA Kernel Module 1.0-6629 Wed Nov 3 11:43:48 PST 2004 Disabled Privacy Extensions on device ffffffff804fbd00(lo) parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE] parport0: irq 7 detected parport0: Printer, Hewlett-Packard HP LaserJet 5P lp0: using parport0 (polling). eth0: no IPv6 routers present NVRM: client does not support versioning!! NVRM: aborting to avoid catastrophe! --Dane I've recompiled my 2.6.14-gentoo-r5 kernel with PnP debugging and ACPI PnP. Here's the dmesg output. Hope that helps; I'm really shooting in the dark. P0700 pnp: ACPI device : hid PNP0501 pnp: ACPI device : hid PNP0401 pnp: ACPI device : hid PNP0F13 pnp: ACPI device : hid PNP0303 pnp: ACPI device : hid PNPB006 pnp: ACPI device : hid PNPB02F pnp: ACPI device : hid PNP0C02 pnp: ACPI device : hid PNP0C01 pnp: PnP ACPI: found 16 devices SCSI subsystem initialized usbcore: registered new driver usbfs usbcore: registered new driver hub PCI: Using ACPI for IRQ routing PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report TC classifier action (bugs to netdev@vger.kernel.org cc hadi@cyberus.ca) PCI-DMA: Disabling IOMMU. pnp: the driver 'system' has been registered pnp: match found with the PnP device '00:00' and the driver 'system' pnp: 00:00: ioport range 0x4000-0x407f could not be reserved pnp: 00:00: ioport range 0x4080-0x40ff has been reserved pnp: 00:00: ioport range 0x4400-0x447f has been reserved pnp: 00:00: ioport range 0x4480-0x44ff could not be reserved pnp: 00:00: ioport range 0x4800-0x487f has been reserved pnp: 00:00: ioport range 0x4880-0x48ff has been reserved pnp: match found with the PnP device '00:02' and the driver 'system' pnp: match found with the PnP device '00:0e' and the driver 'system' pnp: match found with the PnP device '00:0f' and the driver 'system' PCI: Bridge: 0000:00:09.0 IO window: 9000-afff MEM window: d0000000-d1ffffff PREFETCH window: 50000000-500fffff PCI: Bridge: 0000:00:0b.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:00:0c.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:00:0d.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:00:0e.0 IO window: disabled. MEM window: c8000000-cfffffff PREFETCH window: c0000000-c7ffffff PCI: Setting latency timer of device 0000:00:09.0 to 64 PCI: Setting latency timer of device 0000:00:0b.0 to 64 PCI: Setting latency timer of device 0000:00:0c.0 to 64 PCI: Setting latency timer of device 0000:00:0d.0 to 64 PCI: Setting latency timer of device 0000:00:0e.0 to 64 IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $ Total HugeTLB memory allocated, 0 Squashfs 2.2 (released 2005/07/03) (C) 2002-2005 Phillip Lougher NTFS driver 2.1.24 [Flags: R/O]. JFS: nTxBlock = 7997, nTxLock = 63980 SGI XFS with ACLs, large block/inode numbers, no debug enabled Initializing Cryptographic API PCI: Setting latency timer of device 0000:00:0b.0 to 64 pcie_portdrv_probe->Dev[005d:10de] has invalid IRQ. Check vendor BIOS assign_interrupt_mode Found MSI capability Allocate Port Service[pcie00] Allocate Port Service[pcie03] PCI: Setting latency timer of device 0000:00:0c.0 to 64 pcie_portdrv_probe->Dev[005d:10de] has invalid IRQ. Check vendor BIOS assign_interrupt_mode Found MSI capability Allocate Port Service[pcie00] Allocate Port Service[pcie03] PCI: Setting latency timer of device 0000:00:0d.0 to 64 pcie_portdrv_probe->Dev[005d:10de] has invalid IRQ. Check vendor BIOS assign_interrupt_mode Found MSI capability Allocate Port Service[pcie00] Allocate Port Service[pcie03] PCI: Setting latency timer of device 0000:00:0e.0 to 64 pcie_portdrv_probe->Dev[005d:10de] has invalid IRQ. Check vendor BIOS assign_interrupt_mode Found MSI capability Allocate Port Service[pcie00] Allocate Port Service[pcie03] Real Time Clock Driver v1.12 Non-volatile memory driver v1.2 Linux agpgart interface v0.101 (c) Dave Jones [drm] Initialized drm 1.0.0 20040925 vesafb: framebuffer at 0xc0000000, mapped to 0xffffc20010680000, using 3072k, total 131072k vesafb: mode is 1024x768x16, linelength=2048, pages=1 vesafb: scrolling: redraw vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0 vesafb: Mode is not VGA compatible Console: switching to colour frame buffer device 128x48 fb0: VESA VGA frame buffer device ACPI: Power Button (FF) [PWRF] ACPI: Power Button (CM) [PWRB] ACPI: Fan [FAN] (on) ACPI: CPU0 (power states: C1[C1]) ACPI: Thermal Zone [THRM] (40 C) ibm_acpi: ec object not found pnp: the driver 'i8042 kbd' has been registered pnp: match found with the PnP device '00:0b' and the driver 'i8042 kbd' pnp: the driver 'i8042 aux' has been registered pnp: match found with the PnP device '00:0a' and the driver 'i8042 aux' 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 ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A pnp: the driver 'serial' has been registered pnp: match found with the PnP device '00:08' and the driver 'serial' ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17 ACPI: PCI Interrupt 0000:05:07.0[A] -> Link [APC2] -> GSI 17 (level, low) -> IRQ 16 ttyS1 at I/O 0xa400 (irq = 16) is a 16550A mice: PS/2 mouse device common for all mice io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize 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 NFORCE-CK804: IDE controller at PCI slot 0000:00:06.0 NFORCE-CK804: chipset revision 242 NFORCE-CK804: not 100% native mode: will probe irqs later NFORCE-CK804: 0000:00:06.0 (rev f2) UDMA133 controller ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA Probing IDE interface ide0... input: AT Translated Set 2 keyboard on isa0060/serio0 hda: WDC WD2500JB-22GVC0, ATA DISK drive input: ImExPS/2 Generic Explorer Mouse on isa0060/serio1 hdb: SONY CD-RW CRX220E1, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... hdc: WDC WD205BA, ATA DISK drive hdd: PIONEER DVD-RW DVR-109, ATAPI CD/DVD-ROM drive ide1 at 0x170-0x177,0x376 on irq 15 PDC20269: IDE controller at PCI slot 0000:05:06.0 ACPI: PCI Interrupt Link [APC1] enabled at IRQ 16 ACPI: PCI Interrupt 0000:05:06.0[A] -> Link [APC1] -> GSI 16 (level, low) -> IRQ 17 PDC20269: chipset revision 2 PDC20269: ROM enabled at 0x50000000 PDC20269: 100% native mode on irq 17 ide2: BM-DMA at 0xa000-0xa007, BIOS settings: hde:pio, hdf:pio ide3: BM-DMA at 0xa008-0xa00f, BIOS settings: hdg:pio, hdh:pio Probing IDE interface ide2... hde: WDC WD800JB-00FMA0, ATA DISK drive hdf: SAMSUNG SP0411N, ATA DISK drive ide2 at 0x9000-0x9007,0x9402 on irq 17 Probing IDE interface ide3... Probing IDE interface ide3... hda: max request size: 1024KiB hda: 488397168 sectors (250059 MB) w/8192KiB Cache, CHS=30401/255/63, UDMA(100) hda: cache flushes supported hda: hda1 hda2 hda3 hda4 hdc: max request size: 128KiB hdc: 40088160 sectors (20525 MB) w/2048KiB Cache, CHS=39770/16/63, UDMA(33) hdc: cache flushes not supported hdc: hdc1 hde: max request size: 128KiB hde: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100) hde: cache flushes supported hde: hde1 hdf: max request size: 1024KiB hdf: 78242976 sectors (40060 MB) w/2048KiB Cache, CHS=16383/255/63, UDMA(100) hdf: cache flushes supported hdf: hdf1 hdb: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20 hdd: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2000kB Cache, UDMA(33) usbmon: debugfs is not available md: linear personality registered as nr 1 md: raid0 personality registered as nr 2 md: raid1 personality registered as nr 3 md: raid5 personality registered as nr 4 raid5: automatically using best checksumming function: generic_sse generic_sse: 6432.000 MB/sec raid5: using function: generic_sse (6432.000 MB/sec) raid6: int64x1 1954 MB/s raid6: int64x2 2803 MB/s raid6: int64x4 2751 MB/s raid6: int64x8 1828 MB/s raid6: sse2x1 1063 MB/s raid6: sse2x2 1824 MB/s raid6: sse2x4 2569 MB/s raid6: using algorithm sse2x4 (2569 MB/s) md: raid6 personality registered as nr 8 md: multipath personality registered as nr 7 md: md driver 0.90.2 MAX_MD_DEVS=256, MD_SB_DISKS=27 md: bitmap version 3.39 device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com Advanced Linux Sound Architecture Driver Version 1.0.10rc1 (Mon Sep 12 08:13:09 2005 UTC). ALSA device list: No soundcards found. NET: Registered protocol family 2 IP route cache hash table entries: 65536 (order: 7, 524288 bytes) TCP established hash table entries: 262144 (order: 9, 2097152 bytes) TCP bind hash table entries: 65536 (order: 7, 524288 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP reno registered TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 10 Disabled Privacy Extensions on device ffffffff8053f0c0(lo) IPv6 over IPv4 tunneling driver NET: Registered protocol family 17 NET: Registered protocol family 15 powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.50.4) powernow-k8: BIOS error - no PSB or ACPI _PSS objects ACPI wakeup devices: HUB0 XVR0 XVR1 XVR2 XVR3 USB0 USB2 MMAC MMCI UAR1 ACPI: (supports S0 S1 S3 S4 S5) BIOS EDD facility v0.16 2004-Jun-25, 4 devices found Freeing unused kernel memory: 200k freed ACPI: PCI Interrupt Link [APCL] enabled at IRQ 23 ACPI: PCI Interrupt 0000:00:02.1[B] -> Link [APCL] -> GSI 23 (level, low) -> IRQ 18 PCI: Setting latency timer of device 0000:00:02.1 to 64 ehci_hcd 0000:00:02.1: EHCI Host Controller ehci_hcd 0000:00:02.1: debug port 1 ehci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:02.1: irq 18, io mem 0xfeb00000 PCI: cache line size of 64 is not supported by device 0000:00:02.1 ehci_hcd 0000:00:02.1: park 0 ehci_hcd 0000:00:02.1: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004 hub 1-0:1.0: USB hub found hub 1-0:1.0: 10 ports detected usbcore: registered new driver hiddev usbcore: registered new driver usbhid drivers/usb/input/hid-core.c: v2.6:USB HID core driver Initializing USB Mass Storage driver... usbcore: registered new driver usb-storage USB Mass Storage support registered. USB Universal Host Controller Interface driver v2.3 ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ACPI: PCI Interrupt Link [APCF] enabled at IRQ 22 ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [APCF] -> GSI 22 (level, low) -> IRQ 19 PCI: Setting latency timer of device 0000:00:02.0 to 64 ohci_hcd 0000:00:02.0: OHCI Host Controller ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2 ohci_hcd 0000:00:02.0: irq 19, io mem 0xd2004000 hub 2-0:1.0: USB hub found hub 2-0:1.0: 10 ports detected ieee1394: Initialized config rom entry `ip1394' ohci1394: $Rev: 1313 $ Ben Collins <bcollins@debian.org> ACPI: PCI Interrupt 0000:05:0b.0[A] -> Link [APC1] -> GSI 16 (level, low) -> IRQ 17 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[17] MMIO=[d1008000-d10087ff] Max Packet=[2048] sbp2: $Rev: 1306 $ Ben Collins <bcollins@debian.org> ieee1394: sbp2: Driver forced to serialize I/O (serialize_io=1) ieee1394: sbp2: Try serialize_io=0 for better performance libata version 1.12 loaded. sata_nv version 0.8 ACPI: PCI Interrupt Link [APSI] enabled at IRQ 21 ACPI: PCI Interrupt 0000:00:07.0[A] -> Link [APSI] -> GSI 21 (level, low) -> IRQ 20 PCI: Setting latency timer of device 0000:00:07.0 to 64 ata1: SATA max UDMA/133 cmd 0x9F0 ctl 0xBF2 bmdma 0xD800 irq 20 ata2: SATA max UDMA/133 cmd 0x970 ctl 0xB72 bmdma 0xD808 irq 20 usb 2-1: new low speed USB device using ohci_hcd and address 2 ata1: no device found (phy stat 00000000) scsi0 : sata_nv input: USB HID v1.10 Joystick [Microsoft SideWinder Precision 2 Joystick] on usb-0000:00:02.0-1 ata2: no device found (phy stat 00000000) scsi1 : sata_nv ACPI: PCI Interrupt Link [APSJ] enabled at IRQ 20 ACPI: PCI Interrupt 0000:00:08.0[A] -> Link [APSJ] -> GSI 20 (level, low) -> IRQ 21 PCI: Setting latency timer of device 0000:00:08.0 to 64 ata3: SATA max UDMA/133 cmd 0x9E0 ctl 0xBE2 bmdma 0xC400 irq 21 ata4: SATA max UDMA/133 cmd 0x960 ctl 0xB62 bmdma 0xC408 irq 21 usb 2-2: new low speed USB device using ohci_hcd and address 3 ata3: no device found (phy stat 00000000) scsi2 : sata_nv input: USB HID v1.00 Gamepad [Microsoft SideWinder Game Pad Pro USB version 1.0] on usb-0000:00:02.0-2 ata4: no device found (phy stat 00000000) scsi3 : sata_nv ieee1394: Host added: ID:BUS[0-00:1023] GUID[0011d800004b13a5] ReiserFS: hda2: found reiserfs format "3.6" with standard journal ReiserFS: hda2: using ordered data mode ReiserFS: hda2: journal params: device hda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 ReiserFS: hda2: checking transaction log (hda2) ReiserFS: hda2: replayed 7 transactions in 0 seconds ReiserFS: hda2: Using r5 hash to sort names Adding 538168k swap on /dev/hda4. Priority:-1 extents:1 across:538168k ReiserFS: hda1: found reiserfs format "3.6" with standard journal ReiserFS: hda1: using ordered data mode ReiserFS: hda1: journal params: device hda1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 ReiserFS: hda1: checking transaction log (hda1) ReiserFS: hda1: Using r5 hash to sort names ReiserFS: hda3: found reiserfs format "3.6" with standard journal ReiserFS: hda3: using ordered data mode ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 ReiserFS: hda3: checking transaction log (hda3) ReiserFS: hda3: Using r5 hash to sort names NTFS volume version 3.1. i2c_adapter i2c-0: nForce2 SMBus adapter at 0x4c00 i2c_adapter i2c-1: nForce2 SMBus adapter at 0x4c40 ACPI: PCI Interrupt Link [APCJ] enabled at IRQ 23 ACPI: PCI Interrupt 0000:00:04.0[A] -> Link [APCJ] -> GSI 23 (level, low) -> IRQ 18 PCI: Setting latency timer of device 0000:00:04.0 to 64 intel8x0_measure_ac97_clock: measured 54845 usecs intel8x0: clocking to 46871 forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.41. ACPI: PCI Interrupt Link [APCH] enabled at IRQ 22 ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [APCH] -> GSI 22 (level, low) -> IRQ 19 PCI: Setting latency timer of device 0000:00:0a.0 to 64 eth0: forcedeth.c: subsystem: 01043:8141 bound to 0000:00:0a.0 nvidia: module license 'NVIDIA' taints kernel. ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18 ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 22 PCI: Setting latency timer of device 0000:01:00.0 to 64 NVRM: loading NVIDIA Linux x86_64 NVIDIA Kernel Module 1.0-8178 Wed Dec 14 16:58:07 PST 2005 pnp: the driver 'parport_pc' has been registered pnp: match found with the PnP device '00:09' and the driver 'parport_pc' parport: PnPBIOS parport detected. parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA] pnp: the driver 'mpu401' has been registered pnp: match found with the PnP device '00:0c' and the driver 'mpu401' lp0: using parport0 (interrupt-driven). ip_tables: (C) 2000-2002 Netfilter core team ip_conntrack version 2.3 (4095 buckets, 32760 max) - 296 bytes per conntrack ipt_recent v0.3.1: Stephen Frost <sfrost@snowman.net>. http://snowman.net/projects/ipt_recent/ ip6_tables: (C) 2000-2002 Netfilter core team eth0: no IPv6 routers present A few questions: Does your parallel port work if you disable PnP ACPI and enable PnPBIOS? I noticed PnPACPI doesn't appear to be enabled in the first dmesg posted, was this an example of the parport working correctly? Thanks, Adam first dmesg: > parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE] > parport0: irq 7 detected > parport0: Printer, Hewlett-Packard HP LaserJet 5P second dmesg: > pnp: the driver 'parport_pc' has been registered > pnp: match found with the PnP device '00:09' and the driver 'parport_pc' > parport: PnPBIOS parport detected. > parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA] > pnp: the driver 'mpu401' has been registered > pnp: match found with the PnP device '00:0c' and the driver 'mpu401' > lp0: using parport0 (interrupt-driven). This might be a problem with the parport probe code rather than ACPI. > Does your parallel port work if you disable PnP ACPI and enable PnPBIOS? Odd...PnP BIOS doesn't show up in menuconfig, and is grayed-out in xconfig. It won't let me enable it. Any idea what I need to do? > I noticed PnPACPI doesn't appear to be enabled in the first dmesg posted, was > this an example of the parport working correctly? Yes, that is correct; sorry I didn't make that more clear. The first post is the 2.6.14-gentoo-r5 kernel with ACPI disabled and parallel printing working. The second post is the 2.6.9-gentoo-r9 kernel with ACPI enabled and parallel printing working. The third post is the 2.6.14-gentoo-r5 kernel with ACPI enabled and parallel printing broken. > This might be a problem with the parport probe code rather than ACPI. Entirely possible. Need any other info to test that theory? --Dane bugme-daemon@bugzilla.kernel.org wrote: > > Odd...PnP BIOS doesn't show up in menuconfig, and is grayed-out in xconfig. It > won't let me enable it. Any idea what I need to do? Dontcha hate that? In `make menuconfig' you can search for config items. Do "/pnpbios". It says: Symbol: PNPBIOS [=y] Prompt: Plug and Play BIOS support (EXPERIMENTAL) Defined at drivers/pnp/pnpbios/Kconfig:4 Depends on: PNP && ISA && X86 && EXPERIMENTAL Location: -> Device Drivers -> Plug and Play support -> Plug and Play support (PNP [=y]) So it needs PNP && ISA && X86 && EXPERIMENTAL I have PNP and Experimental selected, but for some reason I can't find anywhere to enable x86 or ISA. Perhaps this is because I'm using an AMD64 processor. I googled a bit for some more info and found this: Bus options (PCI, PCMCIA, EISA, MCA, ISA) * [*] PCI support * [*] ISA support (not needed anymore since 2.6.2-rc1) (http://secure.netroedge.com/~lm78/kernel26.html) Has ISA support been taken out of the kernel or disabled on x64 systems, or am I just not finding it? --Dane Oh, you're using x86_64. arch/x86_64/Kconfig says: # Note: ISA is disabled and will hopefully never be enabled. # If you managed to buy an ISA x86-64 box you'll have to fix all the # ISA drivers you need yourself. As I say, the search command in `make menuconfig' is neat. On x86_64 it says: Symbol: PNPBIOS [=n] Prompt: Plug and Play BIOS support (EXPERIMENTAL) Defined at drivers/pnp/pnpbios/Kconfig:4 Depends on: PNP && ISA && X86 && EXPERIMENTAL Location: -> Device Drivers -> Plug and Play support So whoops, it doesn't seem possible to enable pnpbios on x86_64. Andi, is that sane? yes. pnpbios is a 32bit BIOS service and can't be called from 64bit kernels. But newer ACPI has a special emulation where it tries to emulate pnpbios using ACPI motherboard resources description. That should work under 64bit in theory too. But I don't know details about that - the ACPI maintainers should know. This bug persists in kernel 2.6.15-gentoo-r4. --Dane This has been fixed in Ubuntu kernel 2.6.15-17-amd64-generic with ACPI loaded as modules. I'll take a crack at the latest Gentoo kernel and report my findings. --Dane I was unable to compile ACPI support as modules, so I compiled them into the kernel. Now the printer lights flash a few times as normal, then stay lit and don't print anything. :-( --Dane The bug is back in Ubuntu kernel 2.6.15-20-amd64-generic. Since I don't print much from ubuntu, the bug may also be there in the previous couple of releases as well. Try boot param pnpacpi=off. Helps for me in apparently similar problem. (bugs.debian.org bug #406056) Anyway, this is a temp-hack, not a SOLUTION On the latest kernel (2.6.20-rc6-g5263bf65), with Fedora Core 3 distribution, the bug is also there when using lp0 to debug ARM board through JTAG. When disable the CONFIG_PNPACPI, everything works well just like on kernel 2.6.9. I would like to dig this problem more since it blocks my work now ... :) This looks similar to http://bugzilla.kernel.org/show_bug.cgi?id=7492 > (#10): This has been fixed in Ubuntu kernel 2.6.15-17-amd64-generic ... > (#12): The bug is back in Ubuntu kernel 2.6.15-20-amd64-generic. Can someone verify that the problem really went away in Ubuntu 2.6.15-17-amd64 and, if so, attach the complete dmesg? I suspect the problem is related to either the IRQ or the DMA channel reported by ACPI. The working dmesg logs show no IRQ (polling mode) and no DMA, while the non-working log shows interrupt mode and DMA channel 3. I'll attach patches to disable the PNP IRQ info and the PNP DMA info. Please try both (separately) and see whether one makes the port work. Created attachment 12190 [details]
disable PNP IRQ info
If this patch makes the port work, please attach the dmesg log.
Please make sure you have these in your .config:
CONFIG_PNP=y
CONFIG_PNPACPI=y
Created attachment 12191 [details]
disable PNP DMA info
If this patch makes the port work, please attach the dmesg log.
Created attachment 12211 [details]
dmesg log
I have tested the IRQ patch with kernels 2.6.20-gentoo-r7 and 2.6.20-gentoo-r8, and in both cases, applying the patch fixed the problem. I now have CONFIG_PNP=y and CONFIG_PNPACPI=y, and I am able to print just fine! Attached is the dmesg log. Looks like I spoke too soon. When trying to print multiple pages, or multiple documents, I find that the printer will just "hang" until I "killall -KILL parallel" (as root), cancel all print jobs, recycle the printer, and then start the printer via cups. The good news: some preliminary testing with BOTH patches applied seems to have fixed it completely. I'll let you know later how further testing goes. Attached is a dmesg log. Created attachment 12250 [details]
dmesg with both patches applied
Thanks for trying those. But I'm afraid I wasted your time. This tells us what we already knew: the port works when we run it with interrupts and DMA disabled. The question for me is whether the problem is in PNPACPI (where I might be able to fix it) or in the parport driver (where I don't have any clue what to look for). PNPACPI tells us the device uses IRQ 7 and DMA channel 3. Without PNPACPI, the probe found IRQ 7 (but didn't use the IRQ) and didn't look for the DMA channel. So I think PNPACPI is probably telling us the right thing. You don't have Windows on this box also, do you? If we could tell that Windows uses IRQ 7 and DMA channel 3, I'd be even more confident that the PNPACPI info is correct. I suspect this is really a parport_pc driver problem. I don't have any good ideas about how to explore that. Maybe dmitry can help or add someone who can? comment #22 summarizes the problem... Thanks for your continued work on this bug. I have booted into my Windows XP SP2 installation, and I was unable to find anything in the device manager (using the "resources by connection" view) that used IRQ 7. I could not find the parallel port listed at all in that view (under IRQ). The ECP printer port was, indeed, using DMA 3. Perhaps of note (and perhaps not...), the ACPI controller was using IRQ 9 in both BIOS and in Win. XP. I hope this helps. Please let me know if you need any more information. It looks like PNPACPI is getting the right information. I scrounged up a parallel printer and found that it does actually work with my laptop, where PNPACPI gives an IRQ and DMA channel, so parport_pc *can* use IRQ and DMA, at least sometimes. Here's your log (non-working case): pnp: match found with the PnP device '00:09' and the driver 'parport_pc' parport: PnPBIOS parport detected. parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA] Does it make any difference if you try this: - unload parport-related modules (lp, parport, parport_pc, etc) # cd /sys/bus/pnp/devices/00:09/ # echo disable > resources # echo clear > resources # echo activate > resources - reload parport modules It's a long shot, but sometimes the BIOS doesn't actually configure the device until we call _SRS, which we don't do by default. Created attachment 12396 [details] dump AML byte stream and ACPI resources Does the printer work with any kernel that has PNPACPI enabled? Apparently it worked in 2.6.14-r5, but I think PNPACPI was disabled there so we were just using the legacy probe. If it worked with PNPACPI once, we must have broken it. I just came across this patch: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ccc4c7bbd6a2d47bf5899c2c8cf2e0d176a4dc0f I don't think it has anything to do with your problem (it only affects the pnpacpi_encode_dma path, which is used when we tell the BIOS to configure the device), but it does remind me that the BIOS tells us other DMA attributes besides the channel. I can't find any drivers that actually look at the other attributes, but maybe we'd learn something interesting by looking at the actual resources from the BIOS and the way PNPACPI interprets them. If you collect the dmesg output with this patch (pnpacpi-debug) applied, I'll decode the parport resources by hand and see what they look like. Created attachment 12414 [details] Dmesg output after using the commands in comment #25. I tried using the commands from comment #25, but it didn't seem to fix anything. It did, however, create some seemingly interesting dmesg output (attached). I also tried using the patch from the next comment, but I was unable to make the patch command work. Below is the output of the command: [root@Orchestrator linux]# patch -p1 < pnpacpi-debug.diff patching file drivers/pnp/pnpacpi/core.c Hunk #1 FAILED at 205. 1 out of 1 hunk FAILED -- saving rejects to file drivers/pnp/pnpacpi/core.c.rej patching file drivers/pnp/pnpacpi/rsparser.c Hunk #1 succeeded at 189 with fuzz 2 (offset -53 lines). patching file drivers/acpi/resources/rscreate.c ...and here is the rejected piece: [root@Orchestrator linux]# cat drivers/pnp/pnpacpi/core.c.rej *************** *** 205,210 **** if (dev->active) { /* parse allocated resource */ status = pnpacpi_parse_allocated_resource(device->handle, &dev->res); if (ACPI_FAILURE(status) && (status != AE_NOT_FOUND)) { --- 205,211 ---- if (dev->active) { /* parse allocated resource */ + dev_err(&dev->dev, "(%s) get resources\n", acpi_device_hid(device)); status = pnpacpi_parse_allocated_resource(device->handle, &dev->res); if (ACPI_FAILURE(status) && (status != AE_NOT_FOUND)) { I was trying to patch kernel 2.6.20-gentoo-r8. Any ideas? As for whether PNPACPI worked in one of the kernels, I'm no longer sure. It would seem that it was disabled after all in the kernels mentioned above; I looked at my kernel .config and was unable to find any reference to it being enabled in either kernels 2.6.9-r9 or 2.6.14-r5, although it's possible (as I haven't used those kernels in quite some time) that the last time I compiled them, they were without the option enabled, whereas it was enabled, and working at some point. Is it possible the IRQ edge/level is wrong in the _CRS? We did find such buggy BIOS. please attach the acpidump output, so we can check it. What should I type to get the desired output? Should I do this while running a working kernel, or one displaying the bug? (I've since changed to Ubuntu Gutsy, but I'm willing to compile the kernel source to continue work on this bug.) Thanks. try pmtools at http://www.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/. Better do this when the bug exists. Attached is the output of acpidump. Oddly enough, after compiling the kernel (2.6.23-1) with pnpacpi=y, the bug is not being manifested; I'm not sure why. I have also attached my .config file for verification that I used the right options. Created attachment 13467 [details]
acpidump of 2.6.23-1
Created attachment 13468 [details]
.config of 2.6.23-1
Created attachment 13469 [details] Debug patch - 2.6.24-rc2 (might have slight offsets, but should patch...) Could you try this debug patch, pls. I expect this is the same bug like: https://bugzilla.novell.com/show_bug.cgi?id=180390 There the DSDT has two devices matching for parport_pc(both accessing the same IO ports!). The one has DMA enabled (PNP0401), the other one not (PNP0400). I could imagine the status (whether device is present or not) is not checked and the first of the two devices is just used. This patch prints out (possibly a bit too much, pls attach dmesg...) status of ACPIPNP checked ACPI devices. It also provides a module parameter for parport_pc: probe_ecp=0 will only check for PNP0400 device and should work? probe_ecp=1 will check for both devices and should not work. probe_ecp=2 will check for PNP0401 device and could work. I assume ECP/EPP could be configured via BIOS and the _STA func of either of the two devices should return not present and must be ignored. Can you also try to rmmod parport_pc, load it with all three, above parameters and also provide each dmesg (just the additional info). In a WinXP, device manager has an option for parport to disable interrupt, and this option is enabled by default, this suggests winxp doesn't use interrupt. Could it be that PNPACPI does not check _STA when a device registers? This would explain everything... I recompiled the kernel after applying the provided patch, but when I tried to modprobe the parport_pc module with the specified parameters (after first rmmod-ing it), I get this: dane@Orchestrator:~$ sudo modprobe parport_pc probe_ecp=0 FATAL: Error inserting parport_pc (/lib/modules/2.6.23.1-custom/kernel/drivers/parport/parport_pc.ko): Unknown symbol in module, or unknown parameter (see dmesg) Any ideas? Reply-To: akpm@linux-foundation.org what was in dmesg? [16418.046778] parport_pc: Unknown parameter `probe_ecp' [16453.967575] parport_pc: Unknown parameter `probe_ecp' [16457.777193] parport_pc: Unknown parameter `probe_ecp' This is after trying to modprobe with each of the above options. The rest of dmesg was there before the modprobe commands, so I'm not posting it (unless you want me to). Sorry it is ecp_probe (modinfo should show you): ecp_probe= Another test revealed that it's probably not that easy -> the correct ACPI device seem to get used. You could also add: CONFIG_PNP_DEBUG=y and add a #define DEBUG 1 in drivers/parport/parport_pc.c between: #undef DEBUG and #ifdef DEBUG and a: #define DEBUG_PARPORT 1 in include/linux/parport_pc.h after: #include <asm/io.h> If you run this with PNPBIOS and PNPACPI, I think we should have a all debug info that could be "quickly" fetched for the parallel device. But this might also not bring us further... PNPACPI BIOS parts export different settings than PNPBIOS parts and I am pretty sure the parsing etc. is correct. Maybe this machine is only supported with PNPBIOS and PNPACPI simply returns copy and pasted, wrong ACPI code that never was tested (supported Windows OS did only use PNPBIOS code in old times?). In this case pnpacpi=off is the only workaround that makes sense, maybe a blacklist could be added to activate this on all machines, which BIOS is older than xy like we do with acpi in general? Created attachment 13496 [details]
Disable pnpacpi on BIOSes older than 2004
2004 is just random for now.
If this could get a solution, as much as dmidecode info of affected machines should get collected and possibly set this to a lower value...
What do you think?
In case it might be helpful, here are the results of the modprobe commands: ecp_probe=0 - prints fine ecp_probe=1 - does not print at all ecp_probe=2 - does not print at all Let me know if there's anything else I can help you with. Re comment #43, this suggests Thomas's guess is right, but I'm really confused about this. pnpacpi should already check device's present bit. pnpacpi uses acpi_bus_get_device to get a device, if the device isn't present, the routine should fail. But anyway, can you try 'cat /sys/devices/pnp0/*/id', and attach the output? This should tell us which pnp devices are existed. Here you go: dane@Orchestrator:~$ cat /sys/devices/pnp0/*/id PNP0a08 PNP0a03 PNP0c02 PNP0c02 PNP0200 PNP0b00 PNP0800 PNP0c04 PNP0700 PNP0501 PNP0401 PNP0f13 PNP0303 PNP030b PNPb006 PNPb02f PNP0c02 PNP0c01 I was wrong, it's not the status. I just tried on a machine with parallel port. Switching to EPP in BIOS shows a PNP0400 device switching to ECP shows a PNP0401 device in /sys/devices/pnp0/*/id How pnpacpi devices are registered is rather complicated :) I need to have a more detailed look somewhen, I think I at least half way got it now... I expect now, that the ACPI parallel port BIOS implementation is just a template used by vendors for a lot of machines without any testing. I could imagine vendors disabled (e.g. in this case DMA) on broken machines in PNPBIOS tables, but not in ACPI BIOS tables in order to make it work. Therefore IMO patch in comment #42 should be preferred (maybe this should be embedded into i386 define only, or does it make sense to disable pnpacpi on IA64 or x86_64?). Dane, could you also attach dmidecode output, pls. Created attachment 13513 [details]
Output of dmidecode
Is it possible parport driver can always not use DMA, considering Winxp not use DMA? Or can it detect if DMA is working, and disable it if not? Yes, I expect (at least some) people do not see a pnp bug, but parport_pc driver problem. AFAIK there exist some strange workarounds like reloading the driver in SUSE or similar. The driver also seem to sometimes try to use dma == 7, which it makes up on its own (asking some superIO chip, don't know) and is obviously wrong. Using dma=none as default parameter should fix the parallel port for some more people... Also according to Tim Waugh who's address is stated in the driver nobody will (and probably should not take the risk of modify the resource guessing magic) look at the driver any more: ----------- Thomas, I'm afraid no-one maintains the parport stuff any more. Tim. ------------ IMO we should close this one (or is the policy to let such "sleeper" bugs open for reference?) thomas, do you plan to push the patch in comments #42 upstream? Blacklisting BIOSes older than 2004 to use pnpbios as default instead of pnpacpi? Not because of this one. If more machines pop up where this makes sense. I expect Bjorn knows more broken PNP machines and whether this could help. He should have a final word on this. For the parport_pc device/driver..., I expect the driver itself is rather broken (some reported dma channel 7 was used, there exist loading un- and reloading driver workarounds, the author answered: don't touch it it's ugly, old and unmaintained, etc.). IMO the blacklisting should better not be done because of this one. You might want to reopen and close it as won't fix, workaround available (boot or driver params) or similar... Workaround patch available in comment#42. Created attachment 16246 [details] test patch for ACPI CA problem Dane, I think this problem is likely a symptom of an ACPI CA bug that I outlined here: http://marc.info/?l=linux-acpi&m=121141248600755&w=2 The patch I'm attaching here is definitely not the final fix, but if you still have the machine, it would be very helpful to know whether this patch fixes the problem you're seeing. Thanks for the patch, Bjorn. Sadly, I no longer have that motherboard; I upgraded (selling my old motherboard/CPU/RAM/video card) just last month; otherwise I would gladly try this new patch and report back. I took a brief look at your outline, and at least it looks like you've managed to fix (or point out) some other problems in the process. Thanks for all your work. If #53 is correct, then this is the same problem as bugzilla 9487. Created attachment 16261 [details]
PNPACPI: use _CRS IRQ descriptor length for _SRS
This patch should fix the bug. Dane or Zhang, would you mind re-opening this so we can resolve it properly?
Re-opened, per Bjorn's request. A patch similar to the one in comment #56 is in 2.6.26-rc6. If anybody can test it and report the results, that would be great. Bjorn, can we close this bug as the patch is already upstream? This bug was fixed by this commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=36d872a370d3d10e5a7faa9dcacce744260fb13b which appeared in 2.6.26. |