Re: [ACPI] [PATCH][RFC] fix ACPI IRQ routing after S3 suspend
From: Nathan Bryant
Date: Fri Aug 20 2004 - 15:49:27 EST
Oops. Forgot the patch again. See attached.
Nathan Bryant wrote:
Stefan Dösinger wrote:
If I re-programm the IRQ to something else than IRQ10, the device
doesn't resume too. So it's not only a problem of IRQ 11.
Seems like an anything-at-all-other-than-IRQ-10 problem. If the
current thinking is right, your BIOS is assigning IRQ10 during boot,
so moving it anywhere else is what causes problems.
But the current thinking doesn't quite seem right, because it seeems
like we're seeing these problems after the irqrouter is resumed. Can
you verify that with the attached patch? The patch should give us
enough information as long as you've got the proper kernel loglevel set.
Now, I wonder if the only reason it works when you set IRQ 10 is that
some other driver is unconditionally claiming the interrupt...
Nathan
The ipw2100 driver calls pci_disable_device in it's suspend handler.
But I think the ipw2100 maintainers need help with suspend/resume
because James Ketrenos can't test it on his own system.
pci_disable_device() only turns off bus-mastering, it doesn't unmap
the I/O or disable the slot. Maybe we also need to set power state D3
and do a device-specific disable-interrupts, but I think D0 gets
restored for us pretty early during resume anyway...
Anyway, something doesn't quite add up...
Nathan
===== drivers/acpi/pci_link.c 1.32 vs edited =====
--- 1.32/drivers/acpi/pci_link.c 2004-08-18 19:26:48 -04:00
+++ edited/drivers/acpi/pci_link.c 2004-08-20 16:28:40 -04:00
@@ -717,6 +717,8 @@
ACPI_FUNCTION_TRACE("irqrouter_resume");
+ printk(KERN_DEBUG "irqrouter_resume: called.\n");
+
list_for_each(node, &acpi_link.entries) {
link = list_entry(node, struct acpi_pci_link, node);