Re: [Fwd: Re: long-term regression - Parallel Port broken?]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux