On Tue, 24 Jul 2007, Bjorn Helgaas wrote:
On Saturday 21 July 2007 08:09:11 pm david@xxxxxxx wrote:
On Fri, 6 Jul 2007, Bjorn Helgaas wrote:
Ultimately, you should have CONFIG_ACPI=y and CONFIG_PNPACPI=y, and you
should not have to boot with "noisapnp" or "pnpacpi=off". My guess is
that you only need "pnpacpi=off" to work around the current problem.
these two options are enabled and pnpacpi=off does solve the problem.
...
there's now a dmesg.pnpacpi_off which works, and you are correct that the
dmesg that's there is the non working one.
Thanks. Here's what I glean from that. With no arguments, it doesn't work:
parport_pc 00:0a: reported by Plug and Play ACPI
parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
parport0: Printer, Brother HL-5040 series
lp0: using parport0 (interrupt-driven).
With pnpacpi=off, it works:
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
parport0: irq 7 detected
parport0: Printer, Brother HL-5040 series
lp0: using parport0 (polling).
With pnpacpi=off, or a kernel without PNPACPI, we just probe at 0x378
and use the port in polling mode, and it works.
PNPACPI claims the device supports interrupts, so we try to use it in
interrupt mode, and it doesn't work. It's possible that ACPI is lying
to us, and the interrupt really doesn't work. Or maybe the interrupt
*does* work, but the BIOS left it half-configured.
Could you try the attached patch and collect the dmesg log and contents
of /proc/interrupts?
done, see the files
2.6.22-rc4.interrupts
2.6.22-rc4.dmesg.test
at http://lang.hm/linux
David Lang
Thanks,
Bjorn
Index: w/drivers/pnp/pnpacpi/core.c
===================================================================
--- w.orig/drivers/pnp/pnpacpi/core.c 2007-07-24 15:05:25.000000000 -0600
+++ w/drivers/pnp/pnpacpi/core.c 2007-07-24 15:29:50.000000000 -0600
@@ -216,6 +216,13 @@
pnp_add_device(dev);
num ++;
+ if (dev->active) {
+ printk("%s: configuring %s (%s)\n", __FUNCTION__, dev->dev.bus_id, dev_id->id);
+ pnp_disable_dev(dev);
+ pnp_init_resource_table(&dev->res);
+ pnp_activate_dev(dev);
+ }
+
return AE_OK;
err1:
kfree(dev_id);
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html