fix ACPI IRQ routing after S3 suspend
RFC PATCH 1/1 fix ACPI IRQ routing after S3 suspend
This patch should fix multiple user-visible problems with the ACPI IRQ routing after S3 resume:
"irq x: nobody cared"
"my interrupts are gone"
It probably applies to multiple bugzilla entries and mailing list posts.
Tested on my machine, which is experiencing similar problems. Seems to work - although I get some non-fatal "nobody cared" messages that might be caused by the i8042 driver.
Comments?
Stefan, can you test this?
# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/03 19:37:56-04:00 [email protected]
# drivers/acpi/pci_link.c: use device_initcall(irqrouter_init_sysfs);
#
# drivers/acpi/pci_link.c # 2004/08/03 19:37:47-04:00 [email protected] +13 -3 # use device_initcall(irqrouter_init_sysfs); # # ChangeSet # 2004/08/03 18:09:20-04:00 [email protected] # fix ACPI_FUNCTION_TRACE("irqrouter_resume"); # # drivers/acpi/pci_link.c # 2004/08/03 18:09:12-04:00 [email protected] +1 -1 # fix ACPI_FUNCTION_TRACE("irqrouter_resume"); # # ChangeSet # 2004/08/03 18:03:39-04:00 [email protected] # drivers/acpi/pci_link.c: register us as a sys_device so that we can get # resume callbacks and restore interrupt state. Fixes interrupt problems # reported on the mailing lists: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # drivers/acpi/pci_link.c # 2004/08/03 18:03:31-04:00 [email protected] +51 -14 # drivers/acpi/pci_link.c: register us as a sys_device so that we can get # resume callbacks and restore interrupt state. Fixes interrupt problems # reported on the mailing lists: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # ChangeSet # 2004/08/02 20:41:54-04:00 [email protected] # [ACPI] drivers/acpi/pci_link.c: add acpi_pci_link_resume(), which will be # called when resuming from a suspend state that needs IRQ routing to be # restored. This fixes issues reported on the mailing lists, e.g.: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # drivers/acpi/pci_link.c # 2004/08/02 20:41:45-04:00 [email protected] +23 -0 # [ACPI] drivers/acpi/pci_link.c: add acpi_pci_link_resume(), which will be # called when resuming from a suspend state that needs IRQ routing to be # restored. This fixes issues reported on the mailing lists, e.g.: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # BitKeeper/etc/ignore # 2004/08/02 20:41:45-04:00 [email protected] +2 -0 # Added Module.symvers drivers/acpi/pci_link.c~ to the ignore list # diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c --- a/drivers/acpi/pci_link.c 2004-08-03 19:41:29 -04:00 +++ b/drivers/acpi/pci_link.c 2004-08-03 19:41:29 -04:00 @@ -29,6 +29,7 @@ * for IRQ management (e.g. start()->_SRS). */
+#include <linux/sysdev.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -84,6 +85,8 @@
struct acpi_pci_link_irq irq;
};
+static int acpi_pci_link_resume (struct acpi_pci_link *link); +
static struct {
int count;
struct list_head entries;
@@ -695,6 +698,42 @@
static int
+acpi_pci_link_resume (
+ struct acpi_pci_link *link)
+{
+ ACPI_FUNCTION_TRACE("acpi_pci_link_resume");
+
+ if (link->irq.active && link->irq.setonboot)
+ return_VALUE(acpi_pci_link_set(link, link->irq.active));
+ else
+ return_VALUE(0);
+}
+
+
+static int
+irqrouter_resume(
+ struct sys_device *dev)
+{
+ struct list_head *node = NULL;
+ struct acpi_pci_link *link = NULL;
+
+ ACPI_FUNCTION_TRACE("irqrouter_resume");
+
+ list_for_each(node, &acpi_link.entries) {
+
+ link = list_entry(node, struct acpi_pci_link, node);
+ if (!link) {
+ ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid link context\n"));
+ continue;
+ }
+
+ acpi_pci_link_resume(link);
+ }
+ return_VALUE(0);
+}
+
+
+static int
acpi_pci_link_remove (
struct acpi_device *device,
int type)
@@ -786,11 +825,42 @@
__setup("acpi_irq_balance", acpi_irq_balance_set);
+static struct sysdev_class irqrouter_sysdev_class = {
+ set_kset_name("irqrouter"),
+ .resume = irqrouter_resume,
+};
+
+
+static struct sys_device device_irqrouter = {
+ .id = 0,
+ .cls = &irqrouter_sysdev_class,
+};
+
+
+static int __init irqrouter_init_sysfs(void) +{
+ int error;
+
+ ACPI_FUNCTION_TRACE("irqrouter_init_sysfs");
+
+ if (acpi_disabled || acpi_noirq)
+ return_VALUE(0);
+
+ error = sysdev_class_register(&irqrouter_sysdev_class); + if (!error) + error = sysdev_register(&device_irqrouter);
+
+ return_VALUE(error);
+}
+
+device_initcall(irqrouter_init_sysfs);
+
+
static int __init acpi_pci_link_init (void) {
ACPI_FUNCTION_TRACE("acpi_pci_link_init");
- if (acpi_pci_disabled)
+ if (acpi_disabled || acpi_noirq)
return_VALUE(0);
acpi_link.count = 0;
@@ -798,7 +868,7 @@
if (acpi_bus_register_driver(&acpi_pci_link_driver) < 0)
return_VALUE(-ENODEV);
-
+
return_VALUE(0);
}
Well done Nathan!
Quoted 5 lines · Nathan Bryant
This patch should fix multiple user-visible problems with the ACPI IRQ routing after S3 resume:
"irq x: nobody cared"
"my interrupts are gone"
I was under the (apparently false) impression that devices would call eg. pci_enable_device() upon .resume, which would bubble down to pcibios_enable_irq()/acpi_pci_irq_enable() which would handle this.
But not all do this this, and
for those that do, the link->irq.setonboot test in acpi_pci_link_allocate would prevent the hardware from being reprogrammed anyway -- so I guess I hadn't thought this path through.
And so I think we do need this patch for chipsets that clear the IRQ routers upon suspend. Indeed, it is likely that we'd have this problem in S4 in addition to S3, yes?
Quoted 12 lines
diff -Nru
a/drivers/acpi/pci_link.cb/drivers/acpi/pci_link.cdrivers/acpi/pci_link.c +1
-0@@ -29,6 +29,7 @@* for IRQ management (e.g. start()->_SRS). */ +#include <linux/sysdev.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h>
drivers/acpi/pci_link.c line 89
Quoted 5 lines
drivers/acpi/pci_link.c +2
-0@@ -84,6 +85,8 @@struct acpi_pci_link_irq irq; }; +static int acpi_pci_link_resume (struct acpi_pci_link *link); +
This declaration isn't necessary b/c the definition (below) is above where the function is first used, yes?
drivers/acpi/pci_link.c line 706
Quoted 13 lines
drivers/acpi/pci_link.c +6
-0static struct { int count; struct list_head entries;@@ -695,6 +698,42 @@static int +acpi_pci_link_resume ( +struct acpi_pci_link *link) +{ +ACPI_FUNCTION_TRACE ("acpi_pci_link_resume" ); + +if (link->irq.active && link->irq.setonboot)
I think that before this change, irq.setonboot was a NOP and a candidate for being deleted. However, it does seem to have a use here, where we want to re-program only those links that were programmed. ("setonboot" would probably be better called "initialized" or "programmed").
Since irq.active is set for all links from probe time whether or not we program them, it isn't sufficient, as we've found from experience that it is a bad idea to program links that are not explicitly requested by actual devices -- so I agree we need setonboot here.
Quoted 64 lines
drivers/acpi/pci_link.c +57
-0+return_VALUE (acpi_pci_link_set (link, link->irq.active)); + else + return_VALUE(0); +} + + +static int +irqrouter_resume ( +struct sys_device *dev) +{ +struct list_head *node =NULL ; +struct acpi_pci_link *link =NULL ; + +ACPI_FUNCTION_TRACE ("irqrouter_resume" ); + +list_for_each (node, &acpi_link.entries) { + + link = list_entry(node, struct acpi_pci_link, node); +if (!link) { +ACPI_DEBUG_PRINT ((ACPI_DB_ERROR ,"Invalid link context\n" )); +continue ; + } + +acpi_pci_link_resume (link); + } +return_VALUE (0 ); +} + + +static int acpi_pci_link_remove (struct acpi_device *device,int type)@@ -786,11 +825,42 @@__setup ("acpi_irq_balance" , acpi_irq_balance_set); +static struct sysdev_class irqrouter_sysdev_class = { +set_kset_name ("irqrouter" ), + .resume = irqrouter_resume, +}; + + +static struct sys_device device_irqrouter = { + .id =0 , + .cls = &irqrouter_sysdev_class, +}; + + +static int __init irqrouter_init_sysfs (void ) +{ +int error; + +ACPI_FUNCTION_TRACE ("irqrouter_init_sysfs" ); + +if (acpi_disabled || acpi_noirq) +return_VALUE (0 ); + + error =sysdev_class_register (&irqrouter_sysdev_class); +if (!error) + error =sysdev_register (&device_irqrouter); + +return_VALUE (error); +}
drivers/acpi/pci_link.c line 863
Quoted 10 lines
drivers/acpi/pci_link.c +5
-1+ +device_initcall (irqrouter_init_sysfs); + +static int __init acpi_pci_link_init (void ) {ACPI_FUNCTION_TRACE ("acpi_pci_link_init" ); -if (acpi_pci_disabled) +if (acpi_disabled || acpi_noirq)
I think that testing acpi_noirq is sufficient here.
drivers/acpi/pci_link.c line 874
Quoted 12 lines
drivers/acpi/pci_link.c +1
-1return_VALUE (0 ); acpi_link.count =0 ;@@ -798,7 +868,7 @@if (acpi_bus_register_driver (&acpi_pci_link_driver) <0 )return_VALUE (-ENODEV ); - +return_VALUE (0 ); }
-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now, one more big change to announce. We are now OSTG- Open Source Technology Group. Come see the changes on the new OSTG site. www.ostg.com
Len-
Attached is a respin based on your comments.
Quoted 7 lines · Len Brown
Quoted 7 lines
static int
(quoted diff) +6
-0+acpi_pci_link_resume ( + struct acpi_pci_link *link) +{ + ACPI_FUNCTION_TRACE("acpi_pci_link_resume"); + + if (link->irq.active && link->irq.setonboot)
Quoted 10 lines
Quoted 2 lines
I think that before this change, irq.setonboot was a NOP and a candidate for being deleted. However, it does seem to have a use here, where we want to re-program only those links that were programmed. ("setonboot" would probably be better called "initialized" or "programmed").
Agree, changed to "initialized"
Quoted 4 lines
Quoted 4 lines
static int
__initacpi_pci_link_init(void){ ACPI_FUNCTION_TRACE("acpi_pci_link_init");
Quoted 8 lines
Review
Quoted 4 lines
(quoted diff) +1
-1- if (acpi_pci_disabled) + if (acpi_disabled || acpi_noirq)I think that testing
acpi_noirqis sufficient here.
I'll take your word for it. changed.
# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/04 11:32:42-04:00 [email protected]
# [ACPI] drivers/acpi/pci_link.c: misc cleanups per suggestions
#
# drivers/acpi/pci_link.c # 2004/08/04 11:32:33-04:00 [email protected] +6 -8 # [ACPI] drivers/acpi/pci_link.c: misc cleanups per suggestions # # ChangeSet # 2004/08/04 10:53:42-04:00 [email protected] # Merge optonline.net:/home/nathan/linux-acpi-test-2.6.8 # into optonline.net:/home/nathan/acpi-fixes # # BitKeeper/etc/ignore # 2004/08/04 10:53:30-04:00 [email protected] +1 -2 # auto-union # # ChangeSet # 2004/08/03 19:37:56-04:00 [email protected] # drivers/acpi/pci_link.c: use device_initcall(irqrouter_init_sysfs); # # drivers/acpi/pci_link.c # 2004/08/03 19:37:47-04:00 [email protected] +13 -3 # use device_initcall(irqrouter_init_sysfs); # # ChangeSet # 2004/08/03 18:09:20-04:00 [email protected] # fix ACPI_FUNCTION_TRACE("irqrouter_resume"); # # drivers/acpi/pci_link.c # 2004/08/03 18:09:12-04:00 [email protected] +1 -1 # fix ACPI_FUNCTION_TRACE("irqrouter_resume"); # # ChangeSet # 2004/08/03 18:03:39-04:00 [email protected] # drivers/acpi/pci_link.c: register us as a sys_device so that we can get # resume callbacks and restore interrupt state. Fixes interrupt problems # reported on the mailing lists: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # drivers/acpi/pci_link.c # 2004/08/03 18:03:31-04:00 [email protected] +51 -14 # drivers/acpi/pci_link.c: register us as a sys_device so that we can get # resume callbacks and restore interrupt state. Fixes interrupt problems # reported on the mailing lists: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # ChangeSet # 2004/08/02 20:41:54-04:00 [email protected] # [ACPI] drivers/acpi/pci_link.c: add acpi_pci_link_resume(), which will be # called when resuming from a suspend state that needs IRQ routing to be # restored. This fixes issues reported on the mailing lists, e.g.: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # drivers/acpi/pci_link.c # 2004/08/02 20:41:45-04:00 [email protected] +23 -0 # [ACPI] drivers/acpi/pci_link.c: add acpi_pci_link_resume(), which will be # called when resuming from a suspend state that needs IRQ routing to be # restored. This fixes issues reported on the mailing lists, e.g.: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # BitKeeper/etc/ignore # 2004/08/02 20:41:45-04:00 [email protected] +2 -0 # Added Module.symvers drivers/acpi/pci_link.c~ to the ignore list # diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c --- a/drivers/acpi/pci_link.c 2004-08-04 11:33:50 -04:00 +++ b/drivers/acpi/pci_link.c 2004-08-04 11:33:50 -04:00 @@ -29,6 +29,7 @@ * for IRQ management (e.g. start()->_SRS). */
+#include <linux/sysdev.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -71,7 +72,7 @@
u8 active; /* Current IRQ */
u8 edge_level; /* All IRQs */
u8 active_high_low; /* All IRQs */
- u8 setonboot;
+ u8 initialized;
u8 resource_type;
u8 possible_count;
u8 possible[ACPI_PCI_LINK_MAX_POSSIBLE];
@@ -517,7 +518,7 @@
ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
- if (link->irq.setonboot)
+ if (link->irq.initialized)
return_VALUE(0);
/*
@@ -571,7 +572,7 @@
acpi_device_bid(link->device), link->irq.active);
}
- link->irq.setonboot = 1;
+ link->irq.initialized = 1;
return_VALUE(0);
}
@@ -695,6 +696,42 @@
static int
+acpi_pci_link_resume (
+ struct acpi_pci_link *link)
+{
+ ACPI_FUNCTION_TRACE("acpi_pci_link_resume");
+
+ if (link->irq.active && link->irq.initialized)
+ return_VALUE(acpi_pci_link_set(link, link->irq.active));
+ else
+ return_VALUE(0);
+}
+
+
+static int
+irqrouter_resume(
+ struct sys_device *dev)
+{
+ struct list_head *node = NULL;
+ struct acpi_pci_link *link = NULL;
+
+ ACPI_FUNCTION_TRACE("irqrouter_resume");
+
+ list_for_each(node, &acpi_link.entries) {
+
+ link = list_entry(node, struct acpi_pci_link, node);
+ if (!link) {
+ ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid link context\n"));
+ continue;
+ }
+
+ acpi_pci_link_resume(link);
+ }
+ return_VALUE(0);
+}
+
+
+static int
acpi_pci_link_remove (
struct acpi_device *device,
int type)
@@ -786,11 +823,42 @@
__setup("acpi_irq_balance", acpi_irq_balance_set);
+static struct sysdev_class irqrouter_sysdev_class = {
+ set_kset_name("irqrouter"),
+ .resume = irqrouter_resume,
+};
+
+
+static struct sys_device device_irqrouter = {
+ .id = 0,
+ .cls = &irqrouter_sysdev_class,
+};
+
+
+static int __init irqrouter_init_sysfs(void) +{
+ int error;
+
+ ACPI_FUNCTION_TRACE("irqrouter_init_sysfs");
+
+ if (acpi_disabled || acpi_noirq)
+ return_VALUE(0);
+
+ error = sysdev_class_register(&irqrouter_sysdev_class); + if (!error) + error = sysdev_register(&device_irqrouter);
+
+ return_VALUE(error);
+}
+
+device_initcall(irqrouter_init_sysfs);
+
+
static int __init acpi_pci_link_init (void) {
ACPI_FUNCTION_TRACE("acpi_pci_link_init");
- if (acpi_pci_disabled)
+ if (acpi_noirq)
return_VALUE(0);
acpi_link.count = 0;
Quoted 4 lines · Nathan Bryant
Len-
Attached is a respin based on your comments.
One more respin, this just cleans whitespace.
# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/04 12:05:55-04:00 [email protected]
# [ACPI] drivers/acpi/pci_link.c: consistify whitespace
#
# drivers/acpi/pci_link.c # 2004/08/04 12:05:47-04:00 [email protected] +4 -4 # [ACPI] drivers/acpi/pci_link.c: consistify whitespace # # ChangeSet # 2004/08/04 11:32:42-04:00 [email protected] # [ACPI] drivers/acpi/pci_link.c: misc cleanups per suggestions # # drivers/acpi/pci_link.c # 2004/08/04 11:32:33-04:00 [email protected] +6 -8 # [ACPI] drivers/acpi/pci_link.c: misc cleanups per suggestions # # ChangeSet # 2004/08/04 10:53:42-04:00 [email protected] # Merge optonline.net:/home/nathan/linux-acpi-test-2.6.8 # into optonline.net:/home/nathan/acpi-fixes # # BitKeeper/etc/ignore # 2004/08/04 10:53:30-04:00 [email protected] +1 -2 # auto-union # # ChangeSet # 2004/08/03 19:37:56-04:00 [email protected] # drivers/acpi/pci_link.c: use device_initcall(irqrouter_init_sysfs); # # drivers/acpi/pci_link.c # 2004/08/03 19:37:47-04:00 [email protected] +13 -3 # use device_initcall(irqrouter_init_sysfs); # # ChangeSet # 2004/08/03 18:09:20-04:00 [email protected] # fix ACPI_FUNCTION_TRACE("irqrouter_resume"); # # drivers/acpi/pci_link.c # 2004/08/03 18:09:12-04:00 [email protected] +1 -1 # fix ACPI_FUNCTION_TRACE("irqrouter_resume"); # # ChangeSet # 2004/08/03 18:03:39-04:00 [email protected] # drivers/acpi/pci_link.c: register us as a sys_device so that we can get # resume callbacks and restore interrupt state. Fixes interrupt problems # reported on the mailing lists: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # drivers/acpi/pci_link.c # 2004/08/03 18:03:31-04:00 [email protected] +51 -14 # drivers/acpi/pci_link.c: register us as a sys_device so that we can get # resume callbacks and restore interrupt state. Fixes interrupt problems # reported on the mailing lists: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # ChangeSet # 2004/08/02 20:41:54-04:00 [email protected] # [ACPI] drivers/acpi/pci_link.c: add acpi_pci_link_resume(), which will be # called when resuming from a suspend state that needs IRQ routing to be # restored. This fixes issues reported on the mailing lists, e.g.: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # drivers/acpi/pci_link.c # 2004/08/02 20:41:45-04:00 [email protected] +23 -0 # [ACPI] drivers/acpi/pci_link.c: add acpi_pci_link_resume(), which will be # called when resuming from a suspend state that needs IRQ routing to be # restored. This fixes issues reported on the mailing lists, e.g.: # # http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 # # BitKeeper/etc/ignore # 2004/08/02 20:41:45-04:00 [email protected] +2 -0 # Added Module.symvers drivers/acpi/pci_link.c~ to the ignore list # diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c --- a/drivers/acpi/pci_link.c 2004-08-04 12:06:33 -04:00 +++ b/drivers/acpi/pci_link.c 2004-08-04 12:06:33 -04:00 @@ -29,6 +29,7 @@ * for IRQ management (e.g. start()->_SRS). */
+#include <linux/sysdev.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -71,7 +72,7 @@
u8 active; /* Current IRQ */
u8 edge_level; /* All IRQs */
u8 active_high_low; /* All IRQs */
- u8 setonboot;
+ u8 initialized;
u8 resource_type;
u8 possible_count;
u8 possible[ACPI_PCI_LINK_MAX_POSSIBLE];
@@ -517,7 +518,7 @@
ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
- if (link->irq.setonboot)
+ if (link->irq.initialized)
return_VALUE(0);
/*
@@ -571,7 +572,7 @@
acpi_device_bid(link->device), link->irq.active);
}
- link->irq.setonboot = 1;
+ link->irq.initialized = 1;
return_VALUE(0);
}
@@ -695,6 +696,42 @@
static int
+acpi_pci_link_resume (
+ struct acpi_pci_link *link)
+{
+ ACPI_FUNCTION_TRACE("acpi_pci_link_resume");
+
+ if (link->irq.active && link->irq.initialized)
+ return_VALUE(acpi_pci_link_set(link, link->irq.active));
+ else
+ return_VALUE(0);
+}
+
+
+static int
+irqrouter_resume(
+ struct sys_device *dev)
+{
+ struct list_head *node = NULL;
+ struct acpi_pci_link *link = NULL;
+
+ ACPI_FUNCTION_TRACE("irqrouter_resume");
+
+ list_for_each(node, &acpi_link.entries) {
+
+ link = list_entry(node, struct acpi_pci_link, node);
+ if (!link) {
+ ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid link context\n"));
+ continue;
+ }
+
+ acpi_pci_link_resume(link);
+ }
+ return_VALUE(0);
+}
+
+
+static int
acpi_pci_link_remove (
struct acpi_device *device,
int type)
@@ -786,11 +823,42 @@
__setup("acpi_irq_balance", acpi_irq_balance_set);
+static struct sysdev_class irqrouter_sysdev_class = {
+ set_kset_name("irqrouter"),
+ .resume = irqrouter_resume,
+};
+
+
+static struct sys_device device_irqrouter = {
+ .id = 0,
+ .cls = &irqrouter_sysdev_class,
+};
+
+
+static int __init irqrouter_init_sysfs(void) +{
+ int error;
+
+ ACPI_FUNCTION_TRACE("irqrouter_init_sysfs");
+
+ if (acpi_disabled || acpi_noirq)
+ return_VALUE(0);
+
+ error = sysdev_class_register(&irqrouter_sysdev_class);
+ if (!error)
+ error = sysdev_register(&device_irqrouter);
+
+ return_VALUE(error);
+}
+
+device_initcall(irqrouter_init_sysfs);
+
+
static int __init acpi_pci_link_init (void) {
ACPI_FUNCTION_TRACE("acpi_pci_link_init");
- if (acpi_pci_disabled)
+ if (acpi_noirq)
return_VALUE(0);
acpi_link.count = 0;
Quoted 6 lines
This patch should fix multiple user-visible problems with the ACPI IRQ routing after S3 resume:
"irq x: nobody cared"
"my interrupts are gone"
Quoted 8 lines
It probably applies to multiple bugzilla entries and mailing list posts.
Tested on my machine, which is experiencing similar problems. Seems to work - although I get some non-fatal "nobody cared" messages that might be caused by the i8042 driver.
Comments?
Stefan, can you test this?
Sorry for the very late reply.
I tested with 2.6.8.1(I think your patch it included there) with strange results.
*It works fine if I unload ipw2100 before suspend and load it later *In single user mode with ipw2100 loaded while S3, IRQ 11 is disabled on resume, IRQ is not disabled
*When the system is fully booted up, everything seems to work fine.
I'll test a little bit more and report the results.
Cheers,
Stefan
Quoted 12 lines · Stefan Dösinger
Quoted 12 lines
This patch should fix multiple user-visible problems with the ACPI IRQ routing after S3 resume:
"irq x: nobody cared"
"my interrupts are gone"It probably applies to multiple bugzilla entries and mailing list posts.
Tested on my machine, which is experiencing similar problems. Seems to work - although I get some non-fatal "nobody cared" messages that might be caused by the i8042 driver.
Quoted 8 lines
Quoted 2 lines
Comments?
Stefan, can you test this?Sorry for the very late reply.
I tested with 2.6.8.1(I think your patch it included there) with strange results.
*It works fine if I unload ipw2100 before suspend and load it later
I can't find anything named "ipw2100" in my kernel source tree...
Quoted 1 line
*In single user mode with ipw2100 loaded while S3, IRQ 11 is disabled on resume, IRQ is not disabled
Huh? IRQ(what) is not disabled?
Please attach dmesg.
Quoted 1 line
*When the system is fully booted up, everything seems to work fine.
What do you mean by this? If you suspend when more drivers are loaded, things work fine, but don't work when less drivers are loaded?
Quoted 2 lines
I'll test a little bit more and report the results.
Thanks for testing.
Nathan
Quoted 5 lines
Cheers,
Stefan
Quoted 10 lines
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Acpi-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-devel
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Quoted 1 line
I can't find anything named "ipw2100" in my kernel source tree...
The driver for the Intel wlan card. See ipw2100.sf.net
Quoted 5 lines
Quoted 3 lines
*In single user mode with ipw2100 loaded while S3, IRQ 11 is disabled on resume, IRQ is not disabled
Huh? IRQ(what) is not disabled?
Ooops, I forgot the number.
IRQ 10 is not disabled any more. I verified that it works fine.
Quoted 7 lines
Please attach dmesg.
Quoted 1 line
*When the system is fully booted up, everything seems to work fine.
What do you mean by this? If you suspend when more drivers are loaded, things work fine, but don't work when less drivers are loaded?
Yes, I meant this. But it looks like another once-and-never-again success. I recompiled my kernel and now the ipw2100 resume also fails when all drivers are loaded.
Is it possible that the IRQ routing is restored too late? ipw2100 reports a lot of unhandled irqs.
A dmesg is attached.
Stefan
Linux version 2.6.8.1 (root@laptop) (gcc version 3.3.3 20040412 (Gentoo Linux 3.3.3-r6, ssp-3.3.2-2, pie-8.7.6)) #4 Fri Aug 20 12:08:26 CEST 2004 BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000001ff70000 (usable)
BIOS-e820: 000000001ff70000 - 000000001ff7b000 (ACPI data)
BIOS-e820: 000000001ff7b000 - 000000001ff80000 (ACPI NVS)
BIOS-e820: 000000001ff80000 - 0000000020000000 (reserved)
BIOS-e820: 00000000ff800000 - 00000000ffc00000 (reserved)
BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
511MB LOWMEM available.
On node 0 totalpages: 130928
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 126832 pages, LIFO batch:16
HighMem zone: 0 pages, LIFO batch:1
DMI present.
ACPI: RSDP (v000 ACER ) @ 0x000f60c0
ACPI: RSDT (v001 ACER Cardinal 0x20020302 LTP 0x00000000) @ 0x1ff74c20
ACPI: FADT (v001 ACER Cardinal 0x20020302 PTL 0x0000001e) @ 0x1ff7af64
ACPI: BOOT (v001 ACER Cardinal 0x20020302 LTP 0x00000001) @ 0x1ff7afd8
ACPI: DSDT (v001 ACER Cardinal 0x20020302 MSFT 0x0100000d) @ 0x00000000
ACPI: PM-Timer IO Port: 0x1008
Built 1 zonelists
Kernel command line: root=/dev/hda8 rootfstype=ext3 resume=/dev/hda5 s
Local APIC disabled by BIOS -- reenabling.
Found and enabled local APIC!
Initializing CPU#0
PID hash table entries: 2048 (order 11: 16384 bytes)
Detected 1598.835 MHz processor.
Using pmtmr for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 515504k/523712k available (1522k kernel code, 7464k reserved, 671k data, 140k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3170.30 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: a7e9fbbf 00000000 00000000 00000000
CPU: After vendor identify, caps: a7e9fbbf 00000000 00000000 00000000
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 1024K
CPU: After all inits, caps: a7e9fbbf 00000000 00000000 00000040
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel(R) Pentium(R) M processor 1600MHz stepping 05
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
ACPI: IRQ9 SCI: Edge set to Level Trigger.
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 1598.0418 MHz.
..... host bus clock speed is 99.0901 MHz.
checking if image is initramfs...it isn't (ungzip failed); looks like an initrd
ACPI: Looking for DSDT in initrd ... found (at offset 20)!
found customized DSDT with 23378 bytes!
Freeing initrd memory: 22k freed
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfd732, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040715
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs *10)
ACPI: PCI Interrupt Link [LNKB] (IRQs *10)
ACPI: PCI Interrupt Link [LNKC] (IRQs *10)
ACPI: PCI Interrupt Link [LNKD] (IRQs *5)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 9 11 12) *10
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 9 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs *10)
ACPI: Embedded Controller [EC0] (gpe 29)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB_._PRT]
ACPI: Power Resource [PFN0] (off)
ACPI: Power Resource [PFN1] (off)
PCI: Using ACPI for IRQ routing
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 5
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1f.3[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:02.0[A] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 11
ACPI: PCI interrupt 0000:02:04.0[A] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI interrupt 0000:02:06.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:06.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:06.2[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:07.0[A] -> GSI 10 (level, low) -> IRQ 10
Simple Boot Flag at 0x37 set to 0x1
Machine check exception polling timer started.
devfs: 2004-01-31 Richard Gooch ([email protected])
devfs: boot_options: 0x0
Initializing Cryptographic API
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH4: IDE controller at PCI slot 0000:00:1f.1
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
ICH4: chipset revision 3
ICH4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:piohda: IC25N040ATCS04-0, ATA DISK drive
Using anticipatory io scheduler
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: UJDA740 DVD/CDRW, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 78140160 sectors (40007 MB) w/1768KiB Cache, CHS=65535/16/63, UDMA(100)
/dev/ide/host0/bus0/target0/lun0: p1 p3 < p5 p6 p7 p8 p9 >
mice: PS/2 mouse device common for all mice
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 65536)
speedstep-centrino: found "Intel(R) Pentium(R) M processor 1600MHz": max frequency: 1600000kHz Resume Machine: resuming from /dev/hda5
Resuming from device unknown-block(3,5)
Resume Machine: This is normal swap space
ACPI: (supports S0 S3 S4 S5)
ACPI wakeup devices:
MDM0 GLAN USB1 USB2 USB3
RAMDISK: Couldn't find valid RAM disk image starting at 0.
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 140k freed
NET: Registered protocol family 1
Adding 1052216k swap on /dev/hda5. Priority:-1 extents:1
EXT3 FS on hda8, internal journal
SCSI subsystem initialized
hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected an Intel 855PM Chipset.
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: AGP aperture is 256M @ 0xe0000000
Synaptics Touchpad, model: 1
Firmware: 5.8
180 degree mounted touchpad
Sensor: 29
new absolute packet format
Touchpad has extended capability bits
-> 4 multi-buttons, i.e. besides standard buttons
-> multifinger detection
-> palm detection
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda9, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda6, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda7, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
usbcore: registered new driver usbfs
usbcore: registered new driver hubieee80211_crypt: registered algorithm 'NULL'
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.53
ipw2100: Copyright(c) 2003-2004 Intel Corporation
ACPI: PCI interrupt 0000:02:04.0[A] -> GSI 11 (level, low) -> IRQ 11
ipw2100: 0000:02:04.0: Detected at mem: 0xD0206000-0xD0206FFF -> e0931000, irq: 11
wlan0: Using hotplug firmware load.
wlan0: Bound to 0000:02:04.0
NET: Registered protocol family 17
PM: Preparing system for suspend
Stopping tasks: ==========|
wlan0: Going into suspend...
PM: Entering state.
Back to C!
--Here is a uncountable number of "IRQ ignored" messages from the ipw2100 driver-- --I removed the debug line from the driver because it would have overwritten the-- --lines above--
irq 11: nobody cared!
[<c010851a>] __report_bad_irq+0x2a/0x90 [<c0108610>] note_interrupt+0x70/0xb0 [<c01088f0>] do_IRQ+0x120/0x130 [<c0106b40>] common_interrupt+0x18/0x20 [<c012119e>] __do_softirq+0x2e/0x80 [<c0121217>] do_softirq+0x27/0x30 [<c01088cb>] do_IRQ+0xfb/0x130 [<c010c8e0>] time_resume+0x0/0x50 [<c0106b40>] common_interrupt+0x18/0x20 [<c010c8e0>] time_resume+0x0/0x50 [<c010c91d>] time_resume+0x3d/0x50 [<c01f8493>] sysdev_resume+0x103/0x108 [<c01fbf85>] device_power_up+0x5/0xa [<c01352f6>] suspend_enter+0x36/0x50 [<c01353d9>] enter_state+0x69/0xb0 [<c01dc085>] acpi_suspend+0x3e/0x4d [<c01dc434>] acpi_system_write_sleep+0x60/0x8b [<c01dc449>] acpi_system_write_sleep+0x75/0x8b [<c0156298>] vfs_write+0xb8/0x130 [<c0155839>] filp_close+0x59/0x90 [<c01563e1>] sys_write+0x51/0x80 [<c010615b>] syscall_call+0x7/0xb
handlers:
[<e095b340>] (ipw2100_interrupt+0x0/0xe0 [ipw2100])
Disabling IRQ #11
MCE: The hardware reports a non fatal, correctable incident occurred on CPU 0. Bank 1: f200000000000135
PM: Finishing up.psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1
ACPI-0286: *** Error: No installed handler for fixed event [00000002]
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
wlan0: Coming out of suspend...
wlan0: Using hotplug firmware load.
wlan0: ipw2100_hw_send_command timed out.
wlan0: Failed to start the card.
Restarting tasks... done
wlan0: Hardware fatal error detected.
wlan0: Scheduling firmware restart (0s).
ipw2100: wlan0: Restarting adapter.
wlan0: Using hotplug firmware load.
wlan0: ipw2100_hw_send_command timed out.
wlan0: Failed to start the card.
wlan0: Hardware fatal error detected.
wlan0: Scheduling firmware restart (0s).
ipw2100: wlan0: Restarting adapter.
wlan0: Using hotplug firmware load.
wlan0: ipw2100_hw_send_command timed out.
wlan0: Failed to start the card.
wlan0: Hardware fatal error detected.
wlan0: Scheduling firmware restart (0s).
ipw2100: wlan0: Restarting adapter.
wlan0: Using hotplug firmware load.
Stefan -
Can you please attach 'cat /proc/interrupts' from a system that has all possible drivers for your hardware loaded. From before suspend.
Also - did suspend/resume for the ipw2100 ever work under any kernel version?
Thanks.
Nathan
Quoted 291 lines · Stefan Dösinger
Quoted 3 lines
I can't find anything named "ipw2100" in my kernel source tree...
The driver for the Intel wlan card. See ipw2100.sf.net
Quoted 7 lines
Quoted 4 lines
*In single user mode with ipw2100 loaded while S3, IRQ 11 is disabled on resume, IRQ is not disabled
Huh? IRQ(what) is not disabled?
Ooops, I forgot the number.
IRQ 10 is not disabled any more. I verified that it works fine.Quoted 11 lines
Please attach dmesg.
Quoted 3 lines
*When the system is fully booted up, everything seems to work fine.
What do you mean by this? If you suspend when more drivers are loaded, things work fine, but don't work when less drivers are loaded?
Yes, I meant this. But it looks like another once-and-never-again success. I recompiled my kernel and now the ipw2100 resume also fails when all drivers are loaded.
Is it possible that the IRQ routing is restored too late? ipw2100 reports a lot of unhandled irqs.
A dmesg is attached.
Stefan
------------------------------------------------------------------------
Linux version 2.6.8.1 (root@laptop) (gcc version 3.3.3 20040412 (Gentoo Linux 3.3.3-r6, ssp-3.3.2-2, pie-8.7.6)) #4 Fri Aug 20 12:08:26 CEST 2004 BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 -000000000009f800(usable)
BIOS-e820:000000000009f800-00000000000a0000(reserved)
BIOS-e820:00000000000e0000- 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 -000000001ff70000(usable)
BIOS-e820:000000001ff70000-000000001ff7b000(ACPI data)
BIOS-e820:000000001ff7b000-000000001ff80000(ACPI NVS)
BIOS-e820:000000001ff80000- 0000000020000000 (reserved)
BIOS-e820:00000000ff800000-00000000ffc00000(reserved)
BIOS-e820:00000000fff00000- 0000000100000000 (reserved)
511MB LOWMEM available.
On node 0 totalpages: 130928
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 126832 pages, LIFO batch:16
HighMem zone: 0 pages, LIFO batch:1
DMI present.
ACPI: RSDP (v000 ACER ) @0x000f60c0
ACPI: RSDT (v001 ACER Cardinal0x20020302LTP0x00000000) @0x1ff74c20
ACPI: FADT (v001 ACER Cardinal0x20020302PTL0x0000001e) @0x1ff7af64
ACPI: BOOT (v001 ACER Cardinal0x20020302LTP0x00000001) @0x1ff7afd8
ACPI: DSDT (v001 ACER Cardinal0x20020302MSFT0x0100000d) @0x00000000
ACPI: PM-Timer IO Port:0x1008
Built 1 zonelists
Kernel command line: root=/dev/hda8 rootfstype=ext3 resume=/dev/hda5 s
Local APIC disabled by BIOS -- reenabling.
Found and enabled local APIC!
Initializing CPU#0
PID hash table entries: 2048 (order 11: 16384 bytes)
Detected 1598.835 MHz processor.
Using pmtmr for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 515504k/523712k available (1522k kernel code, 7464k reserved, 671k data, 140k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3170.30 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps:a7e9fbbf00000000 00000000 00000000
CPU: After vendor identify, caps:a7e9fbbf00000000 00000000 00000000
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 1024K
CPU: After all inits, caps:a7e9fbbf00000000 00000000 00000040
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel(R) Pentium(R) M processor 1600MHz stepping 05
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
ACPI: IRQ9 SCI: Edge set to Level Trigger.
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 1598.0418 MHz.
..... host bus clock speed is 99.0901 MHz.
checking if image is initramfs...it isn't (ungzip failed); looks like an initrd
ACPI: Looking for DSDT in initrd ... found (at offset 20)!
found customized DSDT with 23378 bytes!
Freeing initrd memory: 22k freed
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at0xfd732, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040715
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs *10)
ACPI: PCI Interrupt Link [LNKB] (IRQs *10)
ACPI: PCI Interrupt Link [LNKC] (IRQs *10)
ACPI: PCI Interrupt Link [LNKD] (IRQs *5)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 9 11 12) *10
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 9 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs *10)
ACPI: Embedded Controller [EC0] (gpe 29)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB_._PRT]
ACPI: Power Resource [PFN0] (off)
ACPI: Power Resource [PFN1] (off)
PCI: Using ACPI for IRQ routing
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 5
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1f.3[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:02.0[A] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 11
ACPI: PCI interrupt 0000:02:04.0[A] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI interrupt 0000:02:06.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:06.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:06.2[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:07.0[A] -> GSI 10 (level, low) -> IRQ 10
Simple Boot Flag at0x37set to0x1
Machine check exception polling timer started.
devfs: 2004-01-31 Richard Gooch ([email protected])
devfs:boot_options:0x0
Initializing Cryptographic API
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH4: IDE controller at PCI slot 0000:00:1f.1
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
ICH4: chipset revision 3
ICH4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:pio
hda: IC25N040ATCS04-0, ATA DISK drive
Using anticipatory io scheduler
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: UJDA740 DVD/CDRW, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 78140160 sectors (40007 MB) w/1768KiB Cache, CHS=65535/16/63, UDMA(100)/dev/ide/host0/bus0/target0/lun0: p1 p3 < p5 p6 p7 p8 p9 >
mice: PS/2 mouse device common for all mice
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 65536)
speedstep-centrino: found "Intel(R) Pentium(R) M processor 1600MHz": max frequency: 1600000kHz
Resume Machine: resuming from/dev/hda5
Resuming from device unknown-block(3,5)
Resume Machine: This is normal swap space
ACPI: (supports S0 S3 S4 S5)
ACPI wakeup devices: MDM0 GLAN USB1 USB2 USB3 RAMDISK: Couldn't find valid RAM disk image starting at 0.
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 140k freed
NET: Registered protocol family 1
Adding 1052216k swap on/dev/hda5. Priority:-1 extents:1
EXT3 FS on hda8, internal journal
SCSI subsystem initialized
hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected an Intel 855PM Chipset.
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: AGP aperture is 256M @0xe0000000
Synaptics Touchpad, model: 1
Firmware: 5.8
180 degree mounted touchpad
Sensor: 29
new absolute packet format
Touchpad has extended capability bits
-> 4 multi-buttons, i.e. besides standard buttons
-> multifinger detection
-> palm detection
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda9, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda6, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda7, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
usbcore: registered new driver usbfs
usbcore: registered new driver hubieee80211_crypt: registered algorithm 'NULL'
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.53
ipw2100: Copyright(c) 2003-2004 Intel Corporation
ACPI: PCI interrupt 0000:02:04.0[A] -> GSI 11 (level, low) -> IRQ 11
ipw2100: 0000:02:04.0: Detected at mem: 0xD0206000-0xD0206FFF ->e0931000, irq: 11
wlan0: Using hotplug firmware load.
wlan0: Bound to 0000:02:04.0
NET: Registered protocol family 17
PM: Preparing system for suspend
Stopping tasks: ==========|
wlan0: Going into suspend...
PM: Entering state.
Back to C!--Here is a uncountable number of "IRQ ignored" messages from the ipw2100 driver-- --I removed the debug line from the driver because it would have overwritten the-- --lines above--
irq 11: nobody cared!
[<c010851a>] __report_bad_irq+0x2a/0x90 [<c0108610>] note_interrupt+0x70/0xb0 [<c01088f0>] do_IRQ+0x120/0x130 [<c0106b40>] common_interrupt+0x18/0x20 [<c012119e>] __do_softirq+0x2e/0x80 [<c0121217>] do_softirq+0x27/0x30 [<c01088cb>] do_IRQ+0xfb/0x130 [<c010c8e0>] time_resume+0x0/0x50 [<c0106b40>] common_interrupt+0x18/0x20 [<c010c8e0>] time_resume+0x0/0x50 [<c010c91d>] time_resume+0x3d/0x50 [<c01f8493>] sysdev_resume+0x103/0x108 [<c01fbf85>] device_power_up+0x5/0xa [<c01352f6>] suspend_enter+0x36/0x50 [<c01353d9>] enter_state+0x69/0xb0 [<c01dc085>] acpi_suspend+0x3e/0x4d [<c01dc434>] acpi_system_write_sleep+0x60/0x8b [<c01dc449>] acpi_system_write_sleep+0x75/0x8b [<c0156298>] vfs_write+0xb8/0x130 [<c0155839>] filp_close+0x59/0x90 [<c01563e1>] sys_write+0x51/0x80 [<c010615b>] syscall_call+0x7/0xbhandlers:
[<e095b340>] (ipw2100_interrupt+0x0/0xe0[ipw2100])
Disabling IRQ #11
MCE: The hardware reports a non fatal, correctable incident occurred on CPU 0. Bank 1:f200000000000135
PM: Finishing up.psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1
ACPI-0286: *** Error: No installed handler for fixed event [00000002]
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
wlan0: Coming out of suspend...
wlan0: Using hotplug firmware load.
wlan0:ipw2100_hw_send_commandtimed out.
wlan0: Failed to start the card.
Restarting tasks... done
wlan0: Hardware fatal error detected.
wlan0: Scheduling firmware restart (0s).
ipw2100: wlan0: Restarting adapter.
wlan0: Using hotplug firmware load.
wlan0:ipw2100_hw_send_commandtimed out.
wlan0: Failed to start the card.
wlan0: Hardware fatal error detected.
wlan0: Scheduling firmware restart (0s).
ipw2100: wlan0: Restarting adapter.
wlan0: Using hotplug firmware load.
wlan0:ipw2100_hw_send_commandtimed out.
wlan0: Failed to start the card.
wlan0: Hardware fatal error detected.
wlan0: Scheduling firmware restart (0s).
ipw2100: wlan0: Restarting adapter.
wlan0: Using hotplug firmware load.
Am Freitag, 20. August 2004 14:18 schrieb Nathan Bryant:
Quoted 4 lines
Stefan -
Can you please attach 'cat
/proc/interrupts' from a system that has all possible drivers for your hardware loaded. From before suspend.
CPU0
0: 3589865 XT-PIC timer 1: 1562 XT-PIC i8042 2: 0 XT-PIC cascade 5: 50381 XT-PIC uhci_hcd, eth0 8: 2 XT-PIC rtc 9: 2618 XT-PIC acpi 10: 233286 XT-PIC ehci_hcd, uhci_hcd, uhci_hcd, Intel 82801DB-ICH4, radeon@PCI:1:0:0 11: 23148 XT-PIC wlan0 12: 1746 XT-PIC i8042 14: 13521 XT-PIC ide0 15: 24 XT-PIC ide1 NMI: 0 LOC: 3589814 ERR: 0 MIS: 0
Quoted 2 lines
Also - did suspend/resume for the ipw2100 ever work under any kernel version?
Yes, it works with acpi=noirq at least up to 2.6.7(not tested with later versions, but I'm sure it does)
It works with 2.6.8-rc2 and 2.6.8-rc4 and 2.6.8.1 with acpi IRQs and a modified dsdt which forces LNKE to IRQ 10. I attached a dmesg output of a successful resume.
Cheers,
Stefan
Linux version 2.6.8.1 (root@laptop) (gcc version 3.3.3 20040412 (Gentoo Linux 3.3.3-r6, ssp-3.3.2-2, pie-8.7.6)) #5 Fri Aug 20 18:28:21 CEST 2004 BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000001ff70000 (usable)
BIOS-e820: 000000001ff70000 - 000000001ff7b000 (ACPI data)
BIOS-e820: 000000001ff7b000 - 000000001ff80000 (ACPI NVS)
BIOS-e820: 000000001ff80000 - 0000000020000000 (reserved)
BIOS-e820: 00000000ff800000 - 00000000ffc00000 (reserved)
BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
511MB LOWMEM available.
On node 0 totalpages: 130928
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 126832 pages, LIFO batch:16
HighMem zone: 0 pages, LIFO batch:1
DMI present.
ACPI: RSDP (v000 ACER ) @ 0x000f60c0
ACPI: RSDT (v001 ACER Cardinal 0x20020302 LTP 0x00000000) @ 0x1ff74c20
ACPI: FADT (v001 ACER Cardinal 0x20020302 PTL 0x0000001e) @ 0x1ff7af64
ACPI: BOOT (v001 ACER Cardinal 0x20020302 LTP 0x00000001) @ 0x1ff7afd8
ACPI: DSDT (v001 ACER Cardinal 0x20020302 MSFT 0x0100000d) @ 0x00000000
ACPI: PM-Timer IO Port: 0x1008
Built 1 zonelists
Kernel command line: root=/dev/hda8 rootfstype=ext3 resume=/dev/hda5
Local APIC disabled by BIOS -- reenabling.
Found and enabled local APIC!
Initializing CPU#0
PID hash table entries: 2048 (order 11: 16384 bytes)
Detected 1599.421 MHz processor.
Using pmtmr for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 515488k/523712k available (1522k kernel code, 7456k reserved, 691k data, 140k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3170.30 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: a7e9fbbf 00000000 00000000 00000000
CPU: After vendor identify, caps: a7e9fbbf 00000000 00000000 00000000
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 1024K
CPU: After all inits, caps: a7e9fbbf 00000000 00000000 00000040
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel(R) Pentium(R) M processor 1600MHz stepping 05
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
ACPI-0291: *** Info: Table [DSDT] replaced by host OS
ACPI: IRQ9 SCI: Edge set to Level Trigger.
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 1598.0393 MHz.
..... host bus clock speed is 99.0899 MHz.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfd732, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040715
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs *10)
ACPI: PCI Interrupt Link [LNKB] (IRQs *10)
ACPI: PCI Interrupt Link [LNKC] (IRQs *10)
ACPI: PCI Interrupt Link [LNKD] (IRQs *5)
ACPI: PCI Interrupt Link [LNKE] (IRQs *10)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 9 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 10) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs *10)
ACPI: Embedded Controller [EC0] (gpe 29)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB_._PRT]
ACPI: Power Resource [PFN0] (off)
ACPI: Power Resource [PFN1] (off)
PCI: Using ACPI for IRQ routing
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 5
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1f.3[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:02.0[A] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 10
ACPI: PCI interrupt 0000:02:04.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:06.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:06.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:06.2[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:07.0[A] -> GSI 10 (level, low) -> IRQ 10
Simple Boot Flag at 0x37 set to 0x1
Machine check exception polling timer started.
devfs: 2004-01-31 Richard Gooch ([email protected])
devfs: boot_options: 0x0
Initializing Cryptographic API
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH4: IDE controller at PCI slot 0000:00:1f.1
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
ICH4: chipset revision 3
ICH4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:piohda: IC25N040ATCS04-0, ATA DISK drive
Using anticipatory io scheduler
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: UJDA740 DVD/CDRW, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 78140160 sectors (40007 MB) w/1768KiB Cache, CHS=65535/16/63, UDMA(100)
/dev/ide/host0/bus0/target0/lun0: p1 p3 < p5 p6 p7 p8 p9 >
mice: PS/2 mouse device common for all mice
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 65536)
speedstep-centrino: found "Intel(R) Pentium(R) M processor 1600MHz": max frequency: 1600000kHz Resume Machine: resuming from /dev/hda5
Resuming from device unknown-block(3,5)
Resume Machine: This is normal swap space
ACPI: (supports S0 S3 S4 S5)
ACPI wakeup devices:
MDM0 GLAN USB1 USB2 USB3
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 140k freed
NET: Registered protocol family 1
Adding 1052216k swap on /dev/hda5. Priority:-1 extents:1
EXT3 FS on hda8, internal journal
SCSI subsystem initialized
hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected an Intel 855PM Chipset.
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: AGP aperture is 256M @ 0xe0000000
Synaptics Touchpad, model: 1
Firmware: 5.8
180 degree mounted touchpad
Sensor: 29
new absolute packet format
Touchpad has extended capability bits
-> 4 multi-buttons, i.e. besides standard buttons
-> multifinger detection
-> palm detection
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda9, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda6, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda7, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
usbcore: registered new driver usbfs
usbcore: registered new driver hub
Real Time Clock Driver v1.12
Acer Travelmate hotkey driver v0.5.13
Debug: sleeping function called from invalid context at include/asm/semaphore.h:119 in_atomic():0, irqs_disabled():1
[<c011ad27>] __might_sleep+0xb7/0xe0 [<c0134041>] sys_init_module+0x161/0x280 [<c010615b>] syscall_call+0x7/0xb
atkbd.c: Unknown key pressed (translated set 2, code 0x0 on isa0060/serio0).atkbd.c: Use 'setkeycodes 00 <keycode>' to make it known.
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 10 (level, low) -> IRQ 10ehci_hcd 0000:00:1d.7: Intel Corp. 82801DB (ICH4) USB2 EHCI Controller
PCI: Setting latency timer of device 0000:00:1d.7 to 64ehci_hcd 0000:00:1d.7: irq 10, pci mem e0946000ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
PCI: cache line size of 32 is not supported by device 0000:00:1d.7ehci_hcd 0000:00:1d.7: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
USB Universal Host Controller Interface driver v2.2
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 10 (level, low) -> IRQ 10uhci_hcd 0000:00:1d.0: Intel Corp. 82801DB (ICH4) USB UHCI #1
PCI: Setting latency timer of device 0000:00:1d.0 to 64uhci_hcd 0000:00:1d.0: irq 10, io base 00001800uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 5 (level, low) -> IRQ 5uhci_hcd 0000:00:1d.1: Intel Corp. 82801DB (ICH4) USB UHCI #2
PCI: Setting latency timer of device 0000:00:1d.1 to 64uhci_hcd 0000:00:1d.1: irq 5, io base 00001820uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 10 (level, low) -> IRQ 10uhci_hcd 0000:00:1d.2: Intel Corp. 82801DB (ICH4) USB UHCI #3
PCI: Setting latency timer of device 0000:00:1d.2 to 64uhci_hcd 0000:00:1d.2: irq 10, io base 00001840uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 2 ports detected
usb 3-1: new low speed USB device using address 2
usbcore: registered new driver hiddev
input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:1d.1-1
usbcore: registered new driver usbhiddrivers/usb/input/hid-core.c: v2.0:USB HID core driver
Bluetooth: Core ver 2.6
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP ver 2.3
Bluetooth: L2CAP socket layer initialized
lp: driver loaded but no devices found
b44.c:v0.94 (May 4, 2004)
ACPI: PCI interrupt 0000:02:02.0[A] -> GSI 5 (level, low) -> IRQ 5
eth0: Broadcom 4400 10/100BaseT Ethernet 00:c0:9f:27:ea:5aieee80211_crypt: registered algorithm 'NULL'
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.53
ipw2100: Copyright(c) 2003-2004 Intel Corporation
ACPI: PCI interrupt 0000:02:04.0[A] -> GSI 10 (level, low) -> IRQ 10
ipw2100: 0000:02:04.0: Detected at mem: 0xD0206000-0xD0206FFF -> e09ab000, irq: 10
wlan0: Using hotplug firmware load.
wlan0: Bound to 0000:02:04.0
NET: Registered protocol family 17
ACPI: AC Adapter [ACAD] (on-line)
ACPI: Battery Slot [BAT1] (battery present)
ACPI: Battery Slot [BAT2] (battery absent)
ACPI: Power Button (FF) [PWRF]
ACPI: Lid Switch [LID]
ACPI: Sleep Button (CM) [SLPB]
ACPI: Processor [CPU0] (supports C1 C2 C3)
ACPI: Thermal Zone [THRM] (76 C)
ACPI: Fan [FAN0] (off)
ACPI: Fan [FAN1] (off)
b44: eth0: Link is down.ieee80211_crypt: registered algorithm 'WEP'
wlan0: Associated with 'doesikl' at 11Mbps, channel 9
[drm] Initialized radeon 1.11.0 20020828 on minor 0: ATI Technologies Inc Radeon R250 Lf [Radeon Mobility 9000 M9]
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode
[drm] Loading R200 Microcode
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 10 (level, low) -> IRQ 10
PCI: Setting latency timer of device 0000:00:1f.5 to 64intel8x0_measure_ac97_clock: measured 49595 usecs
intel8x0: clocking to 48000ehci_hcd 0000:00:1d.7: remove, state 1
usb usb1: USB disconnect, address 1ehci_hcd 0000:00:1d.7: USB bus 1 deregistered
PM: Preparing system for suspend
Stopping tasks: =========================================================|
wlan0: Going into suspend...
PM: Entering state.
Back to C!
Warning: CPU frequency out of sync: cpufreq and timingcore thinks of 600000, is 1600000 kHz.
Warning: CPU frequency out of sync: cpufreq and timing core thinks of 600000, is 1600000 kHz.
PM: Finishing up.psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1
PCI: Setting latency timer of device 0000:00:1d.0 to 64
PCI: Setting latency timer of device 0000:00:1d.0 to 64
PCI: Setting latency timer of device 0000:00:1d.1 to 64
PCI: Setting latency timer of device 0000:00:1d.1 to 64
PCI: Setting latency timer of device 0000:00:1d.2 to 64
PCI: Setting latency timer of device 0000:00:1d.2 to 64
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 10 (level, low) -> IRQ 10
PCI: Setting latency timer of device 0000:00:1d.7 to 64
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 10 (level, low) -> IRQ 10
PCI: Setting latency timer of device 0000:00:1f.5 to 64
MCE: The hardware reports a non fatal, correctable incident occurred on CPU 0.
Bank 1: f200000000000135
wlan0: Coming out of suspend...
wlan0: Using hotplug firmware load.
Restarting tasks...<6>wlan0: Associated with 'doesikl' at 11Mbps, channel 9
done
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode
[drm] Loading R200 Microcodeatkbd.c: Unknown key pressed (translated set 2, code 0x0 on isa0060/serio0).atkbd.c: Use 'setkeycodes 00 <keycode>' to make it known.
Acer Travelmate hotkey driver v0.5.13
Debug: sleeping function called from invalid context at include/asm/semaphore.h:119 in_atomic():0, irqs_disabled():1
[<c011ad27>] __might_sleep+0xb7/0xe0 [<c0134041>] sys_init_module+0x161/0x280 [<c010615b>] syscall_call+0x7/0xb
atkbd.c: Unknown key pressed (translated set 2, code 0x0 on isa0060/serio0). atkbd.c: Use 'setkeycodes 00 <keycode>' to make it known.