* ACPI battery cleanup.
@ 2007-08-11 13:34 Alexey Starikovskiy
2007-08-15 4:44 ` Len Brown
0 siblings, 1 reply; 4+ messages in thread
From: Alexey Starikovskiy @ 2007-08-11 13:34 UTC (permalink / raw)
To: Len Brown, ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 111 bytes --]
Hi Len,
Here are patches to clean up ACPI battery driver. Please review and add
to -mm series.
Regards,
Alex
[-- Attachment #2: battery-redesign.mbox --]
[-- Type: text/plain, Size: 53077 bytes --]
>From nobody Sat Aug 11 17:21:21 2007
From: Alexey Starikovskiy <astarikovskiy@suse.de>
Subject: [PATCH 1/3] ACPI: Battery: don't use acpi_extract_package()
To: Len Brown <lenb@kernel.org>
Bcc: astarikovskiy@suse.de
Date: Sat, 11 Aug 2007 17:21:21 +0400
Message-ID: <20070811132121.6514.99078.stgit@z61m>
User-Agent: StGIT/0.12
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Alexey Starikovskiy <astarikivskiy@suse.de>
acpi_extract_package() creates more problems with memory management than
solves as helper for package handling.
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
---
drivers/acpi/battery.c | 309 +++++++++++++++++++-----------------------------
1 files changed, 123 insertions(+), 186 deletions(-)
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index d7e6683..14bdfad 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -36,9 +36,6 @@
#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
-#define ACPI_BATTERY_FORMAT_BIF "NNNNNNNNNSSSS"
-#define ACPI_BATTERY_FORMAT_BST "NNNN"
-
#define ACPI_BATTERY_COMPONENT 0x00040000
#define ACPI_BATTERY_CLASS "battery"
#define ACPI_BATTERY_DEVICE_NAME "Battery"
@@ -90,29 +87,6 @@ static struct acpi_driver acpi_battery_driver = {
},
};
-struct acpi_battery_state {
- acpi_integer state;
- acpi_integer present_rate;
- acpi_integer remaining_capacity;
- acpi_integer present_voltage;
-};
-
-struct acpi_battery_info {
- acpi_integer power_unit;
- acpi_integer design_capacity;
- acpi_integer last_full_capacity;
- acpi_integer battery_technology;
- acpi_integer design_voltage;
- acpi_integer design_capacity_warning;
- acpi_integer design_capacity_low;
- acpi_integer battery_capacity_granularity_1;
- acpi_integer battery_capacity_granularity_2;
- acpi_string model_number;
- acpi_string serial_number;
- acpi_string battery_type;
- acpi_string oem_info;
-};
-
enum acpi_battery_files {
ACPI_BATTERY_INFO = 0,
ACPI_BATTERY_STATE,
@@ -120,32 +94,42 @@ enum acpi_battery_files {
ACPI_BATTERY_NUMFILES,
};
-struct acpi_battery_flags {
- u8 battery_present_prev;
- u8 alarm_present;
- u8 init_update;
- u8 update[ACPI_BATTERY_NUMFILES];
- u8 power_unit;
-};
-
struct acpi_battery {
struct acpi_device *device;
- struct acpi_battery_flags flags;
- struct acpi_buffer bif_data;
- struct acpi_buffer bst_data;
struct mutex lock;
unsigned long alarm;
unsigned long update_time[ACPI_BATTERY_NUMFILES];
-
+ int state;
+ int present_rate;
+ int remaining_capacity;
+ int present_voltage;
+ int power_unit;
+ int design_capacity;
+ int last_full_capacity;
+ int technology;
+ int design_voltage;
+ int design_capacity_warning;
+ int design_capacity_low;
+ int capacity_granularity_1;
+ int capacity_granularity_2;
+ char model_number[32];
+ char serial_number[32];
+ char type[32];
+ char oem_info[32];
+ u8 present_prev;
+ u8 alarm_present;
+ u8 init_update;
+ u8 update[ACPI_BATTERY_NUMFILES];
};
inline int acpi_battery_present(struct acpi_battery *battery)
{
return battery->device->status.battery_present;
}
+
inline char *acpi_battery_power_units(struct acpi_battery *battery)
{
- if (battery->flags.power_unit)
+ if (battery->power_unit)
return ACPI_BATTERY_UNITS_AMPS;
else
return ACPI_BATTERY_UNITS_WATTS;
@@ -166,43 +150,63 @@ static void acpi_battery_check_result(struct acpi_battery *battery, int result)
return;
if (result) {
- battery->flags.init_update = 1;
+ battery->init_update = 1;
}
}
-static int acpi_battery_extract_package(struct acpi_battery *battery,
- union acpi_object *package,
- struct acpi_buffer *format,
- struct acpi_buffer *data,
- char *package_name)
-{
- acpi_status status = AE_OK;
- struct acpi_buffer data_null = { 0, NULL };
+struct acpi_offsets {
+ size_t offset; /* offset inside struct acpi_sbs_battery */
+ u8 mode; /* int or string? */
+};
- status = acpi_extract_package(package, format, &data_null);
- if (status != AE_BUFFER_OVERFLOW) {
- ACPI_EXCEPTION((AE_INFO, status, "Extracting size %s",
- package_name));
- return -ENODEV;
- }
+static struct acpi_offsets state_offsets[] = {
+ {offsetof(struct acpi_battery, state), 0},
+ {offsetof(struct acpi_battery, present_rate), 0},
+ {offsetof(struct acpi_battery, remaining_capacity), 0},
+ {offsetof(struct acpi_battery, present_voltage), 0},
+};
- if (data_null.length != data->length) {
- kfree(data->pointer);
- data->pointer = kzalloc(data_null.length, GFP_KERNEL);
- if (!data->pointer) {
- ACPI_EXCEPTION((AE_INFO, AE_NO_MEMORY, "kzalloc()"));
- return -ENOMEM;
- }
- data->length = data_null.length;
- }
+static struct acpi_offsets info_offsets[] = {
+ {offsetof(struct acpi_battery, power_unit), 0},
+ {offsetof(struct acpi_battery, design_capacity), 0},
+ {offsetof(struct acpi_battery, last_full_capacity), 0},
+ {offsetof(struct acpi_battery, technology), 0},
+ {offsetof(struct acpi_battery, design_voltage), 0},
+ {offsetof(struct acpi_battery, design_capacity_warning), 0},
+ {offsetof(struct acpi_battery, design_capacity_low), 0},
+ {offsetof(struct acpi_battery, capacity_granularity_1), 0},
+ {offsetof(struct acpi_battery, capacity_granularity_2), 0},
+ {offsetof(struct acpi_battery, model_number), 1},
+ {offsetof(struct acpi_battery, serial_number), 1},
+ {offsetof(struct acpi_battery, type), 1},
+ {offsetof(struct acpi_battery, oem_info), 1},
+};
- status = acpi_extract_package(package, format, data);
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status, "Extracting %s",
- package_name));
- return -ENODEV;
+static int extract_package(struct acpi_battery *battery,
+ union acpi_object *package,
+ struct acpi_offsets *offsets, int num)
+{
+ int i, *x;
+ union acpi_object *element;
+ if (package->type != ACPI_TYPE_PACKAGE)
+ return -EFAULT;
+ for (i = 0; i < num; ++i) {
+ if (package->package.count <= i)
+ return -EFAULT;
+ element = &package->package.elements[i];
+ if (offsets[i].mode) {
+ if (element->type != ACPI_TYPE_STRING &&
+ element->type != ACPI_TYPE_BUFFER)
+ return -EFAULT;
+ strncpy((u8 *)battery + offsets[i].offset,
+ element->string.pointer, 32);
+ } else {
+ if (element->type != ACPI_TYPE_INTEGER)
+ return -EFAULT;
+ x = (int *)((u8 *)battery + offsets[i].offset);
+ *x = element->integer.value;
+ }
}
-
return 0;
}
@@ -223,19 +227,10 @@ static int acpi_battery_get_info(struct acpi_battery *battery)
int result = 0;
acpi_status status = 0;
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
- struct acpi_buffer format = { sizeof(ACPI_BATTERY_FORMAT_BIF),
- ACPI_BATTERY_FORMAT_BIF
- };
- union acpi_object *package = NULL;
- struct acpi_buffer *data = NULL;
- struct acpi_battery_info *bif = NULL;
battery->update_time[ACPI_BATTERY_INFO] = get_seconds();
-
if (!acpi_battery_present(battery))
return 0;
-
- /* Evaluate _BIF */
mutex_lock(&battery->lock);
status = acpi_evaluate_object(acpi_battery_handle(battery), "_BIF",
NULL, &buffer);
@@ -244,28 +239,9 @@ static int acpi_battery_get_info(struct acpi_battery *battery)
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BIF"));
return -ENODEV;
}
-
- package = buffer.pointer;
-
- data = &battery->bif_data;
-
- /* Extract Package Data */
-
- result =
- acpi_battery_extract_package(battery, package, &format, data,
- "_BIF");
- if (result)
- goto end;
-
- end:
-
+ result = extract_package(battery, buffer.pointer,
+ info_offsets, ARRAY_SIZE(info_offsets));
kfree(buffer.pointer);
-
- if (!result) {
- bif = data->pointer;
- battery->flags.power_unit = bif->power_unit;
- }
-
return result;
}
@@ -274,11 +250,6 @@ static int acpi_battery_get_state(struct acpi_battery *battery)
int result = 0;
acpi_status status = 0;
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
- struct acpi_buffer format = { sizeof(ACPI_BATTERY_FORMAT_BST),
- ACPI_BATTERY_FORMAT_BST
- };
- union acpi_object *package = NULL;
- struct acpi_buffer *data = NULL;
battery->update_time[ACPI_BATTERY_STATE] = get_seconds();
@@ -294,22 +265,9 @@ static int acpi_battery_get_state(struct acpi_battery *battery)
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BST"));
return -ENODEV;
}
-
- package = buffer.pointer;
-
- data = &battery->bst_data;
-
- /* Extract Package Data */
-
- result =
- acpi_battery_extract_package(battery, package, &format, data,
- "_BST");
- if (result)
- goto end;
-
- end:
+ result = extract_package(battery, buffer.pointer,
+ state_offsets, ARRAY_SIZE(state_offsets));
kfree(buffer.pointer);
-
return result;
}
@@ -332,7 +290,7 @@ static int acpi_battery_set_alarm(struct acpi_battery *battery,
if (!acpi_battery_present(battery))
return -ENODEV;
- if (!battery->flags.alarm_present)
+ if (!battery->alarm_present)
return -ENODEV;
arg0.integer.value = alarm;
@@ -356,22 +314,21 @@ static int acpi_battery_init_alarm(struct acpi_battery *battery)
int result = 0;
acpi_status status = AE_OK;
acpi_handle handle = NULL;
- struct acpi_battery_info *bif = battery->bif_data.pointer;
unsigned long alarm = battery->alarm;
/* See if alarms are supported, and if so, set default */
status = acpi_get_handle(acpi_battery_handle(battery), "_BTP", &handle);
if (ACPI_SUCCESS(status)) {
- battery->flags.alarm_present = 1;
- if (!alarm && bif) {
- alarm = bif->design_capacity_warning;
+ battery->alarm_present = 1;
+ if (!alarm) {
+ alarm = battery->design_capacity_warning;
}
result = acpi_battery_set_alarm(battery, alarm);
if (result)
goto end;
} else {
- battery->flags.alarm_present = 0;
+ battery->alarm_present = 0;
}
end:
@@ -387,7 +344,7 @@ static int acpi_battery_init_update(struct acpi_battery *battery)
if (result)
return result;
- battery->flags.battery_present_prev = acpi_battery_present(battery);
+ battery->present_prev = acpi_battery_present(battery);
if (acpi_battery_present(battery)) {
result = acpi_battery_get_info(battery);
@@ -413,7 +370,7 @@ static int acpi_battery_update(struct acpi_battery *battery,
update = 1;
}
- if (battery->flags.init_update) {
+ if (battery->init_update) {
result = acpi_battery_init_update(battery);
if (result)
goto end;
@@ -422,8 +379,8 @@ static int acpi_battery_update(struct acpi_battery *battery,
result = acpi_battery_get_status(battery);
if (result)
goto end;
- if ((!battery->flags.battery_present_prev & acpi_battery_present(battery))
- || (battery->flags.battery_present_prev & !acpi_battery_present(battery))) {
+ if ((!battery->present_prev & acpi_battery_present(battery))
+ || (battery->present_prev & !acpi_battery_present(battery))) {
result = acpi_battery_init_update(battery);
if (result)
goto end;
@@ -435,7 +392,7 @@ static int acpi_battery_update(struct acpi_battery *battery,
end:
- battery->flags.init_update = (result != 0);
+ battery->init_update = (result != 0);
*update_result_ptr = update_result;
@@ -446,19 +403,19 @@ static void acpi_battery_notify_update(struct acpi_battery *battery)
{
acpi_battery_get_status(battery);
- if (battery->flags.init_update) {
+ if (battery->init_update) {
return;
}
- if ((!battery->flags.battery_present_prev &
+ if ((!battery->present_prev &
acpi_battery_present(battery)) ||
- (battery->flags.battery_present_prev &
+ (battery->present_prev &
!acpi_battery_present(battery))) {
- battery->flags.init_update = 1;
+ battery->init_update = 1;
} else {
- battery->flags.update[ACPI_BATTERY_INFO] = 1;
- battery->flags.update[ACPI_BATTERY_STATE] = 1;
- battery->flags.update[ACPI_BATTERY_ALARM] = 1;
+ battery->update[ACPI_BATTERY_INFO] = 1;
+ battery->update[ACPI_BATTERY_STATE] = 1;
+ battery->update[ACPI_BATTERY_ALARM] = 1;
}
}
@@ -471,7 +428,6 @@ static struct proc_dir_entry *acpi_battery_dir;
static int acpi_battery_print_info(struct seq_file *seq, int result)
{
struct acpi_battery *battery = seq->private;
- struct acpi_battery_info *bif = NULL;
char *units = "?";
if (result)
@@ -484,30 +440,23 @@ static int acpi_battery_print_info(struct seq_file *seq, int result)
goto end;
}
- bif = battery->bif_data.pointer;
- if (!bif) {
- ACPI_EXCEPTION((AE_INFO, AE_ERROR, "BIF buffer is NULL"));
- result = -ENODEV;
- goto end;
- }
-
/* Battery Units */
units = acpi_battery_power_units(battery);
- if (bif->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+ if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "design capacity: unknown\n");
else
seq_printf(seq, "design capacity: %d %sh\n",
- (u32) bif->design_capacity, units);
+ (u32) battery->design_capacity, units);
- if (bif->last_full_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+ if (battery->last_full_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "last full capacity: unknown\n");
else
seq_printf(seq, "last full capacity: %d %sh\n",
- (u32) bif->last_full_capacity, units);
+ (u32) battery->last_full_capacity, units);
- switch ((u32) bif->battery_technology) {
+ switch ((u32) battery->technology) {
case 0:
seq_printf(seq, "battery technology: non-rechargeable\n");
break;
@@ -519,23 +468,23 @@ static int acpi_battery_print_info(struct seq_file *seq, int result)
break;
}
- if (bif->design_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
+ if (battery->design_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "design voltage: unknown\n");
else
seq_printf(seq, "design voltage: %d mV\n",
- (u32) bif->design_voltage);
+ (u32) battery->design_voltage);
seq_printf(seq, "design capacity warning: %d %sh\n",
- (u32) bif->design_capacity_warning, units);
+ (u32) battery->design_capacity_warning, units);
seq_printf(seq, "design capacity low: %d %sh\n",
- (u32) bif->design_capacity_low, units);
+ (u32) battery->design_capacity_low, units);
seq_printf(seq, "capacity granularity 1: %d %sh\n",
- (u32) bif->battery_capacity_granularity_1, units);
+ (u32) battery->capacity_granularity_1, units);
seq_printf(seq, "capacity granularity 2: %d %sh\n",
- (u32) bif->battery_capacity_granularity_2, units);
- seq_printf(seq, "model number: %s\n", bif->model_number);
- seq_printf(seq, "serial number: %s\n", bif->serial_number);
- seq_printf(seq, "battery type: %s\n", bif->battery_type);
- seq_printf(seq, "OEM info: %s\n", bif->oem_info);
+ (u32) battery->capacity_granularity_2, units);
+ seq_printf(seq, "model number: %s\n", battery->model_number);
+ seq_printf(seq, "serial number: %s\n", battery->serial_number);
+ seq_printf(seq, "battery type: %s\n", battery->type);
+ seq_printf(seq, "OEM info: %s\n", battery->oem_info);
end:
@@ -548,7 +497,6 @@ static int acpi_battery_print_info(struct seq_file *seq, int result)
static int acpi_battery_print_state(struct seq_file *seq, int result)
{
struct acpi_battery *battery = seq->private;
- struct acpi_battery_state *bst = NULL;
char *units = "?";
if (result)
@@ -561,50 +509,43 @@ static int acpi_battery_print_state(struct seq_file *seq, int result)
goto end;
}
- bst = battery->bst_data.pointer;
- if (!bst) {
- ACPI_EXCEPTION((AE_INFO, AE_ERROR, "BST buffer is NULL"));
- result = -ENODEV;
- goto end;
- }
-
/* Battery Units */
units = acpi_battery_power_units(battery);
- if (!(bst->state & 0x04))
+ if (!(battery->state & 0x04))
seq_printf(seq, "capacity state: ok\n");
else
seq_printf(seq, "capacity state: critical\n");
- if ((bst->state & 0x01) && (bst->state & 0x02)) {
+ if ((battery->state & 0x01) && (battery->state & 0x02)) {
seq_printf(seq,
"charging state: charging/discharging\n");
- } else if (bst->state & 0x01)
+ } else if (battery->state & 0x01)
seq_printf(seq, "charging state: discharging\n");
- else if (bst->state & 0x02)
+ else if (battery->state & 0x02)
seq_printf(seq, "charging state: charging\n");
else {
seq_printf(seq, "charging state: charged\n");
}
- if (bst->present_rate == ACPI_BATTERY_VALUE_UNKNOWN)
+ if (battery->present_rate == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "present rate: unknown\n");
else
seq_printf(seq, "present rate: %d %s\n",
- (u32) bst->present_rate, units);
+ (u32) battery->present_rate, units);
- if (bst->remaining_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+ if (battery->remaining_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "remaining capacity: unknown\n");
else
seq_printf(seq, "remaining capacity: %d %sh\n",
- (u32) bst->remaining_capacity, units);
+ (u32) battery->remaining_capacity, units);
- if (bst->present_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
+ if (battery->present_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "present voltage: unknown\n");
else
seq_printf(seq, "present voltage: %d mV\n",
- (u32) bst->present_voltage);
+ (u32) battery->present_voltage);
end:
@@ -713,7 +654,7 @@ static int acpi_battery_read(int fid, struct seq_file *seq)
int update = 0;
update = (get_seconds() - battery->update_time[fid] >= update_time);
- update = (update | battery->flags.update[fid]);
+ update = (update | battery->update[fid]);
result = acpi_battery_update(battery, update, &update_result);
if (result)
@@ -728,7 +669,7 @@ static int acpi_battery_read(int fid, struct seq_file *seq)
end:
result = acpi_read_funcs[fid].print(seq, result);
acpi_battery_check_result(battery, result);
- battery->flags.update[fid] = result;
+ battery->update[fid] = result;
return result;
}
@@ -902,7 +843,7 @@ static int acpi_battery_add(struct acpi_device *device)
if (result)
goto end;
- battery->flags.init_update = 1;
+ battery->init_update = 1;
result = acpi_battery_add_fs(device);
if (result)
@@ -948,10 +889,6 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
acpi_battery_remove_fs(device);
- kfree(battery->bif_data.pointer);
-
- kfree(battery->bst_data.pointer);
-
mutex_destroy(&battery->lock);
kfree(battery);
@@ -969,7 +906,7 @@ static int acpi_battery_resume(struct acpi_device *device)
battery = device->driver_data;
- battery->flags.init_update = 1;
+ battery->init_update = 1;
return 0;
}
>From nobody Sat Aug 11 17:21:21 2007
From: Alexey Starikovskiy <astarikovskiy@suse.de>
Subject: [PATCH 2/3] ACPI: Battery: simplify update scheme
To: Len Brown <lenb@kernel.org>
Bcc: astarikovskiy@suse.de
Date: Sat, 11 Aug 2007 17:21:21 +0400
Message-ID: <20070811132121.6514.49032.stgit@z61m>
In-Reply-To: <20070811132121.6514.99078.stgit@z61m>
References: <20070811132121.6514.99078.stgit@z61m>
User-Agent: StGIT/0.12
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Alexey Starikovskiy <astarikivskiy@suse.de>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
---
drivers/acpi/battery.c | 274 +++++++++---------------------------------------
1 files changed, 52 insertions(+), 222 deletions(-)
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 14bdfad..eea4dd9 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -27,6 +27,7 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
+#include <linux/jiffies.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <asm/uaccess.h>
@@ -41,27 +42,18 @@
#define ACPI_BATTERY_DEVICE_NAME "Battery"
#define ACPI_BATTERY_NOTIFY_STATUS 0x80
#define ACPI_BATTERY_NOTIFY_INFO 0x81
-#define ACPI_BATTERY_UNITS_WATTS "mW"
-#define ACPI_BATTERY_UNITS_AMPS "mA"
#define _COMPONENT ACPI_BATTERY_COMPONENT
-#define ACPI_BATTERY_UPDATE_TIME 0
-
-#define ACPI_BATTERY_NONE_UPDATE 0
-#define ACPI_BATTERY_EASY_UPDATE 1
-#define ACPI_BATTERY_INIT_UPDATE 2
-
ACPI_MODULE_NAME("battery");
MODULE_AUTHOR("Paul Diefenbaugh");
MODULE_DESCRIPTION("ACPI Battery Driver");
MODULE_LICENSE("GPL");
-static unsigned int update_time = ACPI_BATTERY_UPDATE_TIME;
-
-/* 0 - every time, > 0 - by update_time */
-module_param(update_time, uint, 0644);
+static unsigned int cache_time = 1000;
+module_param(cache_time, uint, 0644);
+MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
extern struct proc_dir_entry *acpi_lock_battery_dir(void);
extern void *acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir);
@@ -95,15 +87,12 @@ enum acpi_battery_files {
};
struct acpi_battery {
- struct acpi_device *device;
struct mutex lock;
- unsigned long alarm;
- unsigned long update_time[ACPI_BATTERY_NUMFILES];
- int state;
+ struct acpi_device *device;
+ unsigned long update_time;
int present_rate;
int remaining_capacity;
int present_voltage;
- int power_unit;
int design_capacity;
int last_full_capacity;
int technology;
@@ -112,14 +101,14 @@ struct acpi_battery {
int design_capacity_low;
int capacity_granularity_1;
int capacity_granularity_2;
+ int alarm;
char model_number[32];
char serial_number[32];
char type[32];
char oem_info[32];
- u8 present_prev;
+ int state;
+ int power_unit;
u8 alarm_present;
- u8 init_update;
- u8 update[ACPI_BATTERY_NUMFILES];
};
inline int acpi_battery_present(struct acpi_battery *battery)
@@ -127,33 +116,15 @@ inline int acpi_battery_present(struct acpi_battery *battery)
return battery->device->status.battery_present;
}
-inline char *acpi_battery_power_units(struct acpi_battery *battery)
+inline char *acpi_battery_units(struct acpi_battery *battery)
{
- if (battery->power_unit)
- return ACPI_BATTERY_UNITS_AMPS;
- else
- return ACPI_BATTERY_UNITS_WATTS;
-}
-
-inline acpi_handle acpi_battery_handle(struct acpi_battery *battery)
-{
- return battery->device->handle;
+ return (battery->power_unit)?"mA":"mW";
}
/* --------------------------------------------------------------------------
Battery Management
-------------------------------------------------------------------------- */
-static void acpi_battery_check_result(struct acpi_battery *battery, int result)
-{
- if (!battery)
- return;
-
- if (result) {
- battery->init_update = 1;
- }
-}
-
struct acpi_offsets {
size_t offset; /* offset inside struct acpi_sbs_battery */
u8 mode; /* int or string? */
@@ -228,11 +199,10 @@ static int acpi_battery_get_info(struct acpi_battery *battery)
acpi_status status = 0;
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
- battery->update_time[ACPI_BATTERY_INFO] = get_seconds();
if (!acpi_battery_present(battery))
return 0;
mutex_lock(&battery->lock);
- status = acpi_evaluate_object(acpi_battery_handle(battery), "_BIF",
+ status = acpi_evaluate_object(battery->device->handle, "_BIF",
NULL, &buffer);
mutex_unlock(&battery->lock);
if (ACPI_FAILURE(status)) {
@@ -251,14 +221,17 @@ static int acpi_battery_get_state(struct acpi_battery *battery)
acpi_status status = 0;
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
- battery->update_time[ACPI_BATTERY_STATE] = get_seconds();
-
if (!acpi_battery_present(battery))
return 0;
+ if (battery->update_time &&
+ time_before(jiffies, battery->update_time +
+ msecs_to_jiffies(cache_time)))
+ return 0;
+
/* Evaluate _BST */
mutex_lock(&battery->lock);
- status = acpi_evaluate_object(acpi_battery_handle(battery), "_BST",
+ status = acpi_evaluate_object(battery->device->handle, "_BST",
NULL, &buffer);
mutex_unlock(&battery->lock);
if (ACPI_FAILURE(status)) {
@@ -267,14 +240,13 @@ static int acpi_battery_get_state(struct acpi_battery *battery)
}
result = extract_package(battery, buffer.pointer,
state_offsets, ARRAY_SIZE(state_offsets));
+ battery->update_time = jiffies;
kfree(buffer.pointer);
return result;
}
static int acpi_battery_get_alarm(struct acpi_battery *battery)
{
- battery->update_time[ACPI_BATTERY_ALARM] = get_seconds();
-
return 0;
}
@@ -285,8 +257,6 @@ static int acpi_battery_set_alarm(struct acpi_battery *battery,
union acpi_object arg0 = { ACPI_TYPE_INTEGER };
struct acpi_object_list arg_list = { 1, &arg0 };
- battery->update_time[ACPI_BATTERY_ALARM] = get_seconds();
-
if (!acpi_battery_present(battery))
return -ENODEV;
@@ -296,7 +266,7 @@ static int acpi_battery_set_alarm(struct acpi_battery *battery,
arg0.integer.value = alarm;
mutex_lock(&battery->lock);
- status = acpi_evaluate_object(acpi_battery_handle(battery), "_BTP",
+ status = acpi_evaluate_object(battery->device->handle, "_BTP",
&arg_list, NULL);
mutex_unlock(&battery->lock);
if (ACPI_FAILURE(status))
@@ -311,112 +281,36 @@ static int acpi_battery_set_alarm(struct acpi_battery *battery,
static int acpi_battery_init_alarm(struct acpi_battery *battery)
{
- int result = 0;
acpi_status status = AE_OK;
acpi_handle handle = NULL;
- unsigned long alarm = battery->alarm;
/* See if alarms are supported, and if so, set default */
-
- status = acpi_get_handle(acpi_battery_handle(battery), "_BTP", &handle);
- if (ACPI_SUCCESS(status)) {
- battery->alarm_present = 1;
- if (!alarm) {
- alarm = battery->design_capacity_warning;
- }
- result = acpi_battery_set_alarm(battery, alarm);
- if (result)
- goto end;
- } else {
+ status = acpi_get_handle(battery->device->handle, "_BTP", &handle);
+ if (ACPI_FAILURE(status)) {
battery->alarm_present = 0;
+ return 0;
}
-
- end:
-
- return result;
+ battery->alarm_present = 1;
+ if (!battery->alarm)
+ battery->alarm = battery->design_capacity_warning;
+ return acpi_battery_set_alarm(battery, battery->alarm);
}
-static int acpi_battery_init_update(struct acpi_battery *battery)
+static int acpi_battery_update(struct acpi_battery *battery)
{
- int result = 0;
-
- result = acpi_battery_get_status(battery);
- if (result)
+ int saved_present = acpi_battery_present(battery);
+ int result = acpi_battery_get_status(battery);
+ if (result || !acpi_battery_present(battery))
return result;
-
- battery->present_prev = acpi_battery_present(battery);
-
- if (acpi_battery_present(battery)) {
+ if (saved_present != acpi_battery_present(battery) ||
+ !battery->update_time) {
+ battery->update_time = 0;
result = acpi_battery_get_info(battery);
if (result)
return result;
- result = acpi_battery_get_state(battery);
- if (result)
- return result;
-
acpi_battery_init_alarm(battery);
}
-
- return result;
-}
-
-static int acpi_battery_update(struct acpi_battery *battery,
- int update, int *update_result_ptr)
-{
- int result = 0;
- int update_result = ACPI_BATTERY_NONE_UPDATE;
-
- if (!acpi_battery_present(battery)) {
- update = 1;
- }
-
- if (battery->init_update) {
- result = acpi_battery_init_update(battery);
- if (result)
- goto end;
- update_result = ACPI_BATTERY_INIT_UPDATE;
- } else if (update) {
- result = acpi_battery_get_status(battery);
- if (result)
- goto end;
- if ((!battery->present_prev & acpi_battery_present(battery))
- || (battery->present_prev & !acpi_battery_present(battery))) {
- result = acpi_battery_init_update(battery);
- if (result)
- goto end;
- update_result = ACPI_BATTERY_INIT_UPDATE;
- } else {
- update_result = ACPI_BATTERY_EASY_UPDATE;
- }
- }
-
- end:
-
- battery->init_update = (result != 0);
-
- *update_result_ptr = update_result;
-
- return result;
-}
-
-static void acpi_battery_notify_update(struct acpi_battery *battery)
-{
- acpi_battery_get_status(battery);
-
- if (battery->init_update) {
- return;
- }
-
- if ((!battery->present_prev &
- acpi_battery_present(battery)) ||
- (battery->present_prev &
- !acpi_battery_present(battery))) {
- battery->init_update = 1;
- } else {
- battery->update[ACPI_BATTERY_INFO] = 1;
- battery->update[ACPI_BATTERY_STATE] = 1;
- battery->update[ACPI_BATTERY_ALARM] = 1;
- }
+ return acpi_battery_get_state(battery);
}
/* --------------------------------------------------------------------------
@@ -442,7 +336,7 @@ static int acpi_battery_print_info(struct seq_file *seq, int result)
/* Battery Units */
- units = acpi_battery_power_units(battery);
+ units = acpi_battery_units(battery);
if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "design capacity: unknown\n");
@@ -511,7 +405,7 @@ static int acpi_battery_print_state(struct seq_file *seq, int result)
/* Battery Units */
- units = acpi_battery_power_units(battery);
+ units = acpi_battery_units(battery);
if (!(battery->state & 0x04))
seq_printf(seq, "capacity state: ok\n");
@@ -571,13 +465,13 @@ static int acpi_battery_print_alarm(struct seq_file *seq, int result)
/* Battery Units */
- units = acpi_battery_power_units(battery);
+ units = acpi_battery_units(battery);
seq_printf(seq, "alarm: ");
if (!battery->alarm)
seq_printf(seq, "unsupported\n");
else
- seq_printf(seq, "%lu %sh\n", battery->alarm, units);
+ seq_printf(seq, "%u %sh\n", battery->alarm, units);
end:
@@ -587,50 +481,35 @@ static int acpi_battery_print_alarm(struct seq_file *seq, int result)
return result;
}
-static ssize_t
-acpi_battery_write_alarm(struct file *file,
- const char __user * buffer,
- size_t count, loff_t * ppos)
+static ssize_t acpi_battery_write_alarm(struct file *file,
+ const char __user * buffer,
+ size_t count, loff_t * ppos)
{
int result = 0;
char alarm_string[12] = { '\0' };
struct seq_file *m = file->private_data;
struct acpi_battery *battery = m->private;
- int update_result = ACPI_BATTERY_NONE_UPDATE;
if (!battery || (count > sizeof(alarm_string) - 1))
return -EINVAL;
-
- result = acpi_battery_update(battery, 1, &update_result);
if (result) {
result = -ENODEV;
goto end;
}
-
if (!acpi_battery_present(battery)) {
result = -ENODEV;
goto end;
}
-
if (copy_from_user(alarm_string, buffer, count)) {
result = -EFAULT;
goto end;
}
-
alarm_string[count] = '\0';
-
- result = acpi_battery_set_alarm(battery,
- simple_strtoul(alarm_string, NULL, 0));
- if (result)
- goto end;
-
+ battery->alarm = simple_strtol(alarm_string, NULL, 0);
+ result = acpi_battery_set_alarm(battery, battery->alarm);
end:
-
- acpi_battery_check_result(battery, result);
-
if (!result)
return count;
-
return result;
}
@@ -649,28 +528,8 @@ static struct acpi_read_mux {
static int acpi_battery_read(int fid, struct seq_file *seq)
{
struct acpi_battery *battery = seq->private;
- int result = 0;
- int update_result = ACPI_BATTERY_NONE_UPDATE;
- int update = 0;
-
- update = (get_seconds() - battery->update_time[fid] >= update_time);
- update = (update | battery->update[fid]);
-
- result = acpi_battery_update(battery, update, &update_result);
- if (result)
- goto end;
-
- if (update_result == ACPI_BATTERY_EASY_UPDATE) {
- result = acpi_read_funcs[fid].get(battery);
- if (result)
- goto end;
- }
-
- end:
- result = acpi_read_funcs[fid].print(seq, result);
- acpi_battery_check_result(battery, result);
- battery->update[fid] = result;
- return result;
+ int result = acpi_battery_update(battery);
+ return acpi_read_funcs[fid].print(seq, result);
}
static int acpi_battery_read_info(struct seq_file *seq, void *offset)
@@ -794,30 +653,11 @@ static int acpi_battery_remove_fs(struct acpi_device *device)
static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
{
struct acpi_battery *battery = data;
- struct acpi_device *device = NULL;
-
if (!battery)
return;
-
- device = battery->device;
-
- switch (event) {
- case ACPI_BATTERY_NOTIFY_STATUS:
- case ACPI_BATTERY_NOTIFY_INFO:
- case ACPI_NOTIFY_BUS_CHECK:
- case ACPI_NOTIFY_DEVICE_CHECK:
- device = battery->device;
- acpi_battery_notify_update(battery);
- acpi_bus_generate_event(device, event,
- acpi_battery_present(battery));
- break;
- default:
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Unsupported event [0x%x]\n", event));
- break;
- }
-
- return;
+ acpi_battery_update(battery);
+ acpi_bus_generate_event(battery->device, event,
+ acpi_battery_present(battery));
}
static int acpi_battery_add(struct acpi_device *device)
@@ -838,13 +678,7 @@ static int acpi_battery_add(struct acpi_device *device)
strcpy(acpi_device_name(device), ACPI_BATTERY_DEVICE_NAME);
strcpy(acpi_device_class(device), ACPI_BATTERY_CLASS);
acpi_driver_data(device) = battery;
-
- result = acpi_battery_get_status(battery);
- if (result)
- goto end;
-
- battery->init_update = 1;
-
+ acpi_battery_update(battery);
result = acpi_battery_add_fs(device);
if (result)
goto end;
@@ -900,14 +734,10 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
static int acpi_battery_resume(struct acpi_device *device)
{
struct acpi_battery *battery;
-
if (!device)
return -EINVAL;
-
- battery = device->driver_data;
-
- battery->init_update = 1;
-
+ battery = acpi_driver_data(device);
+ battery->update_time = 0;
return 0;
}
>From nobody Sat Aug 11 17:21:21 2007
From: Alexey Starikovskiy <astarikovskiy@suse.de>
Subject: [PATCH 3/3] ACPI: Battery: Misc clean-ups, no functional changes
To: Len Brown <lenb@kernel.org>
Bcc: astarikovskiy@suse.de
Date: Sat, 11 Aug 2007 17:21:21 +0400
Message-ID: <20070811132121.6514.92718.stgit@z61m>
In-Reply-To: <20070811132121.6514.99078.stgit@z61m>
References: <20070811132121.6514.99078.stgit@z61m>
User-Agent: StGIT/0.12
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Alexey Starikovskiy <astarikivskiy@suse.de>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
---
drivers/acpi/battery.c | 346 +++++++++++++++++-------------------------------
1 files changed, 126 insertions(+), 220 deletions(-)
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index eea4dd9..d93072d 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -1,6 +1,8 @@
/*
- * acpi_battery.c - ACPI Battery Driver ($Revision: 37 $)
+ * battery.c - ACPI Battery Driver (Revision: 2.0)
*
+ * Copyright (C) 2007 Alexey Starikovskiy <astarikovskiy@suse.de>
+ * Copyright (C) 2004-2007 Vladimir Lebedev <vladimir.p.lebedev@intel.com>
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
*
@@ -48,6 +50,7 @@
ACPI_MODULE_NAME("battery");
MODULE_AUTHOR("Paul Diefenbaugh");
+MODULE_AUTHOR("Alexey Starikovskiy <astarikovskiy@suse.de>");
MODULE_DESCRIPTION("ACPI Battery Driver");
MODULE_LICENSE("GPL");
@@ -58,31 +61,17 @@ MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
extern struct proc_dir_entry *acpi_lock_battery_dir(void);
extern void *acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir);
-static int acpi_battery_add(struct acpi_device *device);
-static int acpi_battery_remove(struct acpi_device *device, int type);
-static int acpi_battery_resume(struct acpi_device *device);
-
static const struct acpi_device_id battery_device_ids[] = {
{"PNP0C0A", 0},
{"", 0},
};
-MODULE_DEVICE_TABLE(acpi, battery_device_ids);
-static struct acpi_driver acpi_battery_driver = {
- .name = "battery",
- .class = ACPI_BATTERY_CLASS,
- .ids = battery_device_ids,
- .ops = {
- .add = acpi_battery_add,
- .resume = acpi_battery_resume,
- .remove = acpi_battery_remove,
- },
-};
+MODULE_DEVICE_TABLE(acpi, battery_device_ids);
enum acpi_battery_files {
- ACPI_BATTERY_INFO = 0,
- ACPI_BATTERY_STATE,
- ACPI_BATTERY_ALARM,
+ info_tag = 0,
+ state_tag,
+ alarm_tag,
ACPI_BATTERY_NUMFILES,
};
@@ -124,7 +113,6 @@ inline char *acpi_battery_units(struct acpi_battery *battery)
/* --------------------------------------------------------------------------
Battery Management
-------------------------------------------------------------------------- */
-
struct acpi_offsets {
size_t offset; /* offset inside struct acpi_sbs_battery */
u8 mode; /* int or string? */
@@ -183,19 +171,16 @@ static int extract_package(struct acpi_battery *battery,
static int acpi_battery_get_status(struct acpi_battery *battery)
{
- int result = 0;
-
- result = acpi_bus_get_status(battery->device);
- if (result) {
+ if (acpi_bus_get_status(battery->device)) {
ACPI_EXCEPTION((AE_INFO, AE_ERROR, "Evaluating _STA"));
return -ENODEV;
}
- return result;
+ return 0;
}
static int acpi_battery_get_info(struct acpi_battery *battery)
{
- int result = 0;
+ int result = -EFAULT;
acpi_status status = 0;
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
@@ -205,10 +190,12 @@ static int acpi_battery_get_info(struct acpi_battery *battery)
status = acpi_evaluate_object(battery->device->handle, "_BIF",
NULL, &buffer);
mutex_unlock(&battery->lock);
+
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BIF"));
return -ENODEV;
}
+
result = extract_package(battery, buffer.pointer,
info_offsets, ARRAY_SIZE(info_offsets));
kfree(buffer.pointer);
@@ -234,10 +221,12 @@ static int acpi_battery_get_state(struct acpi_battery *battery)
status = acpi_evaluate_object(battery->device->handle, "_BST",
NULL, &buffer);
mutex_unlock(&battery->lock);
+
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BST"));
return -ENODEV;
}
+
result = extract_package(battery, buffer.pointer,
state_offsets, ARRAY_SIZE(state_offsets));
battery->update_time = jiffies;
@@ -245,37 +234,26 @@ static int acpi_battery_get_state(struct acpi_battery *battery)
return result;
}
-static int acpi_battery_get_alarm(struct acpi_battery *battery)
-{
- return 0;
-}
-
-static int acpi_battery_set_alarm(struct acpi_battery *battery,
- unsigned long alarm)
+static int acpi_battery_set_alarm(struct acpi_battery *battery)
{
acpi_status status = 0;
- union acpi_object arg0 = { ACPI_TYPE_INTEGER };
+ union acpi_object arg0 = { .type = ACPI_TYPE_INTEGER };
struct acpi_object_list arg_list = { 1, &arg0 };
- if (!acpi_battery_present(battery))
+ if (!acpi_battery_present(battery)|| !battery->alarm_present)
return -ENODEV;
- if (!battery->alarm_present)
- return -ENODEV;
-
- arg0.integer.value = alarm;
+ arg0.integer.value = battery->alarm;
mutex_lock(&battery->lock);
status = acpi_evaluate_object(battery->device->handle, "_BTP",
&arg_list, NULL);
mutex_unlock(&battery->lock);
+
if (ACPI_FAILURE(status))
return -ENODEV;
- ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Alarm set to %d\n", (u32) alarm));
-
- battery->alarm = alarm;
-
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Alarm set to %d\n", battery->alarm));
return 0;
}
@@ -293,7 +271,7 @@ static int acpi_battery_init_alarm(struct acpi_battery *battery)
battery->alarm_present = 1;
if (!battery->alarm)
battery->alarm = battery->design_capacity_warning;
- return acpi_battery_set_alarm(battery, battery->alarm);
+ return acpi_battery_set_alarm(battery);
}
static int acpi_battery_update(struct acpi_battery *battery)
@@ -322,130 +300,101 @@ static struct proc_dir_entry *acpi_battery_dir;
static int acpi_battery_print_info(struct seq_file *seq, int result)
{
struct acpi_battery *battery = seq->private;
- char *units = "?";
if (result)
goto end;
- if (acpi_battery_present(battery))
- seq_printf(seq, "present: yes\n");
- else {
- seq_printf(seq, "present: no\n");
+ seq_printf(seq, "present: %s\n",
+ acpi_battery_present(battery)?"yes":"no");
+ if (!acpi_battery_present(battery))
goto end;
- }
-
- /* Battery Units */
-
- units = acpi_battery_units(battery);
-
if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "design capacity: unknown\n");
else
seq_printf(seq, "design capacity: %d %sh\n",
- (u32) battery->design_capacity, units);
+ battery->design_capacity,
+ acpi_battery_units(battery));
if (battery->last_full_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "last full capacity: unknown\n");
else
seq_printf(seq, "last full capacity: %d %sh\n",
- (u32) battery->last_full_capacity, units);
-
- switch ((u32) battery->technology) {
- case 0:
- seq_printf(seq, "battery technology: non-rechargeable\n");
- break;
- case 1:
- seq_printf(seq, "battery technology: rechargeable\n");
- break;
- default:
- seq_printf(seq, "battery technology: unknown\n");
- break;
- }
+ battery->last_full_capacity,
+ acpi_battery_units(battery));
+
+ seq_printf(seq, "battery technology: %srechargeable\n",
+ (!battery->technology)?"non-":"");
if (battery->design_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "design voltage: unknown\n");
else
seq_printf(seq, "design voltage: %d mV\n",
- (u32) battery->design_voltage);
+ battery->design_voltage);
seq_printf(seq, "design capacity warning: %d %sh\n",
- (u32) battery->design_capacity_warning, units);
+ battery->design_capacity_warning,
+ acpi_battery_units(battery));
seq_printf(seq, "design capacity low: %d %sh\n",
- (u32) battery->design_capacity_low, units);
+ battery->design_capacity_low,
+ acpi_battery_units(battery));
seq_printf(seq, "capacity granularity 1: %d %sh\n",
- (u32) battery->capacity_granularity_1, units);
+ battery->capacity_granularity_1,
+ acpi_battery_units(battery));
seq_printf(seq, "capacity granularity 2: %d %sh\n",
- (u32) battery->capacity_granularity_2, units);
+ battery->capacity_granularity_2,
+ acpi_battery_units(battery));
seq_printf(seq, "model number: %s\n", battery->model_number);
seq_printf(seq, "serial number: %s\n", battery->serial_number);
seq_printf(seq, "battery type: %s\n", battery->type);
seq_printf(seq, "OEM info: %s\n", battery->oem_info);
-
end:
-
if (result)
seq_printf(seq, "ERROR: Unable to read battery info\n");
-
return result;
}
static int acpi_battery_print_state(struct seq_file *seq, int result)
{
struct acpi_battery *battery = seq->private;
- char *units = "?";
if (result)
goto end;
- if (acpi_battery_present(battery))
- seq_printf(seq, "present: yes\n");
- else {
- seq_printf(seq, "present: no\n");
+ seq_printf(seq, "present: %s\n",
+ acpi_battery_present(battery)?"yes":"no");
+ if (!acpi_battery_present(battery))
goto end;
- }
- /* Battery Units */
-
- units = acpi_battery_units(battery);
-
- if (!(battery->state & 0x04))
- seq_printf(seq, "capacity state: ok\n");
- else
- seq_printf(seq, "capacity state: critical\n");
-
- if ((battery->state & 0x01) && (battery->state & 0x02)) {
+ seq_printf(seq, "capacity state: %s\n",
+ (battery->state & 0x04)?"critical":"ok");
+ if ((battery->state & 0x01) && (battery->state & 0x02))
seq_printf(seq,
"charging state: charging/discharging\n");
- } else if (battery->state & 0x01)
+ else if (battery->state & 0x01)
seq_printf(seq, "charging state: discharging\n");
else if (battery->state & 0x02)
seq_printf(seq, "charging state: charging\n");
- else {
+ else
seq_printf(seq, "charging state: charged\n");
- }
if (battery->present_rate == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "present rate: unknown\n");
else
seq_printf(seq, "present rate: %d %s\n",
- (u32) battery->present_rate, units);
+ battery->present_rate, acpi_battery_units(battery));
if (battery->remaining_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "remaining capacity: unknown\n");
else
seq_printf(seq, "remaining capacity: %d %sh\n",
- (u32) battery->remaining_capacity, units);
-
+ battery->remaining_capacity, acpi_battery_units(battery));
if (battery->present_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
seq_printf(seq, "present voltage: unknown\n");
else
seq_printf(seq, "present voltage: %d mV\n",
- (u32) battery->present_voltage);
-
+ battery->present_voltage);
end:
-
- if (result) {
+ if (result)
seq_printf(seq, "ERROR: Unable to read battery state\n");
- }
return result;
}
@@ -453,7 +402,6 @@ static int acpi_battery_print_state(struct seq_file *seq, int result)
static int acpi_battery_print_alarm(struct seq_file *seq, int result)
{
struct acpi_battery *battery = seq->private;
- char *units = "?";
if (result)
goto end;
@@ -462,22 +410,15 @@ static int acpi_battery_print_alarm(struct seq_file *seq, int result)
seq_printf(seq, "present: no\n");
goto end;
}
-
- /* Battery Units */
-
- units = acpi_battery_units(battery);
-
seq_printf(seq, "alarm: ");
if (!battery->alarm)
seq_printf(seq, "unsupported\n");
else
- seq_printf(seq, "%u %sh\n", battery->alarm, units);
-
+ seq_printf(seq, "%u %sh\n", battery->alarm,
+ acpi_battery_units(battery));
end:
-
if (result)
seq_printf(seq, "ERROR: Unable to read battery alarm\n");
-
return result;
}
@@ -506,7 +447,7 @@ static ssize_t acpi_battery_write_alarm(struct file *file,
}
alarm_string[count] = '\0';
battery->alarm = simple_strtol(alarm_string, NULL, 0);
- result = acpi_battery_set_alarm(battery, battery->alarm);
+ result = acpi_battery_set_alarm(battery);
end:
if (!result)
return count;
@@ -514,95 +455,76 @@ static ssize_t acpi_battery_write_alarm(struct file *file,
}
typedef int(*print_func)(struct seq_file *seq, int result);
-typedef int(*get_func)(struct acpi_battery *battery);
-
-static struct acpi_read_mux {
- print_func print;
- get_func get;
-} acpi_read_funcs[ACPI_BATTERY_NUMFILES] = {
- {.get = acpi_battery_get_info, .print = acpi_battery_print_info},
- {.get = acpi_battery_get_state, .print = acpi_battery_print_state},
- {.get = acpi_battery_get_alarm, .print = acpi_battery_print_alarm},
+
+static print_func acpi_print_funcs[ACPI_BATTERY_NUMFILES] = {
+ acpi_battery_print_info,
+ acpi_battery_print_state,
+ acpi_battery_print_alarm,
};
static int acpi_battery_read(int fid, struct seq_file *seq)
{
struct acpi_battery *battery = seq->private;
int result = acpi_battery_update(battery);
- return acpi_read_funcs[fid].print(seq, result);
-}
-
-static int acpi_battery_read_info(struct seq_file *seq, void *offset)
-{
- return acpi_battery_read(ACPI_BATTERY_INFO, seq);
-}
-
-static int acpi_battery_read_state(struct seq_file *seq, void *offset)
-{
- return acpi_battery_read(ACPI_BATTERY_STATE, seq);
-}
-
-static int acpi_battery_read_alarm(struct seq_file *seq, void *offset)
-{
- return acpi_battery_read(ACPI_BATTERY_ALARM, seq);
+ return acpi_print_funcs[fid](seq, result);
}
-static int acpi_battery_info_open_fs(struct inode *inode, struct file *file)
-{
- return single_open(file, acpi_battery_read_info, PDE(inode)->data);
+#define DECLARE_FILE_FUNCTIONS(_name) \
+static int acpi_battery_read_##_name(struct seq_file *seq, void *offset) \
+{ \
+ return acpi_battery_read(_name##_tag, seq); \
+} \
+static int acpi_battery_##_name##_open_fs(struct inode *inode, struct file *file) \
+{ \
+ return single_open(file, acpi_battery_read_##_name, PDE(inode)->data); \
}
-static int acpi_battery_state_open_fs(struct inode *inode, struct file *file)
-{
- return single_open(file, acpi_battery_read_state, PDE(inode)->data);
-}
+DECLARE_FILE_FUNCTIONS(info);
+DECLARE_FILE_FUNCTIONS(state);
+DECLARE_FILE_FUNCTIONS(alarm);
+
+#undef DECLARE_FILE_FUNCTIONS
+
+#define FILE_DESCRIPTION_RO(_name) \
+ { \
+ .name = __stringify(_name), \
+ .mode = S_IRUGO, \
+ .ops = { \
+ .open = acpi_battery_##_name##_open_fs, \
+ .read = seq_read, \
+ .llseek = seq_lseek, \
+ .release = single_release, \
+ .owner = THIS_MODULE, \
+ }, \
+ }
-static int acpi_battery_alarm_open_fs(struct inode *inode, struct file *file)
-{
- return single_open(file, acpi_battery_read_alarm, PDE(inode)->data);
-}
+#define FILE_DESCRIPTION_RW(_name) \
+ { \
+ .name = __stringify(_name), \
+ .mode = S_IFREG | S_IRUGO | S_IWUSR, \
+ .ops = { \
+ .open = acpi_battery_##_name##_open_fs, \
+ .read = seq_read, \
+ .llseek = seq_lseek, \
+ .write = acpi_battery_write_##_name, \
+ .release = single_release, \
+ .owner = THIS_MODULE, \
+ }, \
+ }
static struct battery_file {
struct file_operations ops;
mode_t mode;
char *name;
} acpi_battery_file[] = {
- {
- .name = "info",
- .mode = S_IRUGO,
- .ops = {
- .open = acpi_battery_info_open_fs,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = single_release,
- .owner = THIS_MODULE,
- },
- },
- {
- .name = "state",
- .mode = S_IRUGO,
- .ops = {
- .open = acpi_battery_state_open_fs,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = single_release,
- .owner = THIS_MODULE,
- },
- },
- {
- .name = "alarm",
- .mode = S_IFREG | S_IRUGO | S_IWUSR,
- .ops = {
- .open = acpi_battery_alarm_open_fs,
- .read = seq_read,
- .write = acpi_battery_write_alarm,
- .llseek = seq_lseek,
- .release = single_release,
- .owner = THIS_MODULE,
- },
- },
+ FILE_DESCRIPTION_RO(info),
+ FILE_DESCRIPTION_RO(state),
+ FILE_DESCRIPTION_RW(alarm),
};
+#undef FILE_DESCRIPTION_RO
+#undef FILE_DESCRIPTION_RW
+
static int acpi_battery_add_fs(struct acpi_device *device)
{
struct proc_dir_entry *entry = NULL;
@@ -627,23 +549,20 @@ static int acpi_battery_add_fs(struct acpi_device *device)
entry->owner = THIS_MODULE;
}
}
-
return 0;
}
-static int acpi_battery_remove_fs(struct acpi_device *device)
+static void acpi_battery_remove_fs(struct acpi_device *device)
{
int i;
- if (acpi_device_dir(device)) {
- for (i = 0; i < ACPI_BATTERY_NUMFILES; ++i) {
- remove_proc_entry(acpi_battery_file[i].name,
+ if (!acpi_device_dir(device))
+ return;
+ for (i = 0; i < ACPI_BATTERY_NUMFILES; ++i)
+ remove_proc_entry(acpi_battery_file[i].name,
acpi_device_dir(device));
- }
- remove_proc_entry(acpi_device_bid(device), acpi_battery_dir);
- acpi_device_dir(device) = NULL;
- }
- return 0;
+ remove_proc_entry(acpi_device_bid(device), acpi_battery_dir);
+ acpi_device_dir(device) = NULL;
}
/* --------------------------------------------------------------------------
@@ -665,14 +584,11 @@ static int acpi_battery_add(struct acpi_device *device)
int result = 0;
acpi_status status = 0;
struct acpi_battery *battery = NULL;
-
if (!device)
return -EINVAL;
-
battery = kzalloc(sizeof(struct acpi_battery), GFP_KERNEL);
if (!battery)
return -ENOMEM;
-
mutex_init(&battery->lock);
battery->device = device;
strcpy(acpi_device_name(device), ACPI_BATTERY_DEVICE_NAME);
@@ -682,7 +598,6 @@ static int acpi_battery_add(struct acpi_device *device)
result = acpi_battery_add_fs(device);
if (result)
goto end;
-
status = acpi_install_notify_handler(device->handle,
ACPI_ALL_NOTIFY,
acpi_battery_notify, battery);
@@ -691,19 +606,14 @@ static int acpi_battery_add(struct acpi_device *device)
result = -ENODEV;
goto end;
}
-
printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n",
ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device),
device->status.battery_present ? "present" : "absent");
-
end:
-
if (result) {
acpi_battery_remove_fs(device);
kfree(battery);
}
-
-
return result;
}
@@ -714,19 +624,13 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
if (!device || !acpi_driver_data(device))
return -EINVAL;
-
battery = acpi_driver_data(device);
-
status = acpi_remove_notify_handler(device->handle,
ACPI_ALL_NOTIFY,
acpi_battery_notify);
-
acpi_battery_remove_fs(device);
-
mutex_destroy(&battery->lock);
-
kfree(battery);
-
return 0;
}
@@ -741,33 +645,35 @@ static int acpi_battery_resume(struct acpi_device *device)
return 0;
}
+static struct acpi_driver acpi_battery_driver = {
+ .name = "battery",
+ .class = ACPI_BATTERY_CLASS,
+ .ids = battery_device_ids,
+ .ops = {
+ .add = acpi_battery_add,
+ .resume = acpi_battery_resume,
+ .remove = acpi_battery_remove,
+ },
+};
+
static int __init acpi_battery_init(void)
{
- int result;
-
if (acpi_disabled)
return -ENODEV;
-
acpi_battery_dir = acpi_lock_battery_dir();
if (!acpi_battery_dir)
return -ENODEV;
-
- result = acpi_bus_register_driver(&acpi_battery_driver);
- if (result < 0) {
+ if (acpi_bus_register_driver(&acpi_battery_driver) < 0) {
acpi_unlock_battery_dir(acpi_battery_dir);
return -ENODEV;
}
-
return 0;
}
static void __exit acpi_battery_exit(void)
{
acpi_bus_unregister_driver(&acpi_battery_driver);
-
acpi_unlock_battery_dir(acpi_battery_dir);
-
- return;
}
module_init(acpi_battery_init);
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: ACPI battery cleanup.
2007-08-11 13:34 ACPI battery cleanup Alexey Starikovskiy
@ 2007-08-15 4:44 ` Len Brown
2007-08-15 9:19 ` Packard Bell DSDT issue raphaello-mouse
0 siblings, 1 reply; 4+ messages in thread
From: Len Brown @ 2007-08-15 4:44 UTC (permalink / raw)
To: Alexey Starikovskiy; +Cc: ACPI Devel Maling List
On Saturday 11 August 2007 09:34, Alexey Starikovskiy wrote:
> Hi Len,
>
> Here are patches to clean up ACPI battery driver. Please review and add
> to -mm series.
whelp, i got this to apply -- only problem was it added some whitespace errors.
and it built.
However, I would prefer....
More detailed check-in comments (or _any_ check-in comments for that matter)
saying what changed and why.
Series of smaller patches instead of 300-line single patches
series sent as an e-mail series, not an mbox attachment.
nobody reads mbox attachments.
I don't think these are getting the eyeballs on them that they need
because of these issues.
thanks,
-len
^ permalink raw reply [flat|nested] 4+ messages in thread
* Packard Bell DSDT issue
2007-08-15 4:44 ` Len Brown
@ 2007-08-15 9:19 ` raphaello-mouse
2007-08-17 10:27 ` raphaello-mouse
0 siblings, 1 reply; 4+ messages in thread
From: raphaello-mouse @ 2007-08-15 9:19 UTC (permalink / raw)
To: ACPI Devel Maling List
Dear all!
I submit you this issue with my laptop, a Packard Bell Easynote R1983 W
(running an updated Kubuntu 7.04, with updated BIOS). Issue not documented
elsewhere I've looked for.
Problem: I need to put at boot the option "acpi=force" to kernel (2.6.20-16)
in order to have atheros wifi card working. But then, this disables my usb
devices!
More technical details have been posted on:
kubuntuforums.net/forums/index.php?topic=3083009.msg68885#msg68885
Some comments made on http://madwifi.org/ticket/1454
"This is an ACPI error. [...] However, the problem in this case looks like a
badly written DSDT. [...] the problem is the fault of your system vendor."
(I first thought it was a madwifi issue)
Please help, or at least give some hint that allow me to go on (I'm newbie)!
Thanks in advance.
Raf
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Packard Bell DSDT issue
2007-08-15 9:19 ` Packard Bell DSDT issue raphaello-mouse
@ 2007-08-17 10:27 ` raphaello-mouse
0 siblings, 0 replies; 4+ messages in thread
From: raphaello-mouse @ 2007-08-17 10:27 UTC (permalink / raw)
To: ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 1469 bytes --]
Hi,
Here some docs are attached for this issue:
dmesg -64000
less/proc/interrupts with and without "ACPI=off" option to kernel.
I have posted a bugzilla report about this on
http://bugzilla.kernel.org/show_bug.cgi?id=8896
Thanks for any hint!
Subject: Packard Bell DSDT issue
From: raphaello-mouse@altern.org
To: ACPI Devel Maling List <linux-acpi@vger.kernel.org>
Cc:
Date: Wednesday 15 August 2007, 11:19
> Dear all!
>
> I submit you this issue with my laptop, a Packard Bell Easynote R1983 W
> (running an updated Kubuntu 7.04, with updated BIOS). Issue not documented
> elsewhere I've looked for.
> Problem: I need to put at boot the option "acpi=force" to kernel
> (2.6.20-16) in order to have atheros wifi card working. But then, this
> disables my usb devices!
>
> More technical details have been posted on:
> kubuntuforums.net/forums/index.php?topic=3083009.msg68885#msg68885
>
> Some comments made on http://madwifi.org/ticket/1454
> "This is an ACPI error. [...] However, the problem in this case looks like
> a badly written DSDT. [...] the problem is the fault of your system
> vendor." (I first thought it was a madwifi issue)
>
> Please help, or at least give some hint that allow me to go on (I'm
> newbie)! Thanks in advance.
>
> Raf
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
[-- Attachment #2: dmesg-s64000_ACPI_on.txt --]
[-- Type: text/plain, Size: 18139 bytes --]
[ 0.000000] Linux version 2.6.20-16-generic (root@terranova) (gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)) #2 SMP Thu Jun 7 20:19:32 UTC 2007 (Ubuntu 2.6.20-16.29-generic)
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] sanitize start
[ 0.000000] sanitize end
[ 0.000000] copy_e820_map() start: 0000000000000000 size: 000000000009fc00 end: 000000000009fc00 type: 1
[ 0.000000] copy_e820_map() type is E820_RAM
[ 0.000000] copy_e820_map() start: 000000000009fc00 size: 0000000000000400 end: 00000000000a0000 type: 2
[ 0.000000] copy_e820_map() start: 00000000000e0000 size: 0000000000020000 end: 0000000000100000 type: 2
[ 0.000000] copy_e820_map() start: 0000000000100000 size: 000000001beef000 end: 000000001bfef000 type: 1
[ 0.000000] copy_e820_map() type is E820_RAM
[ 0.000000] copy_e820_map() start: 000000001bff0000 size: 000000000000ffc0 end: 000000001bffffc0 type: 3
[ 0.000000] copy_e820_map() start: 000000001bffffc0 size: 0000000000000040 end: 000000001c000000 type: 4
[ 0.000000] copy_e820_map() start: 00000000fff80000 size: 0000000000080000 end: 0000000100000000 type: 2
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[ 0.000000] BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000001bfef000 (usable)
[ 0.000000] BIOS-e820: 000000001bff0000 - 000000001bffffc0 (ACPI data)
[ 0.000000] BIOS-e820: 000000001bffffc0 - 000000001c000000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
[ 0.000000] 0MB HIGHMEM available.
[ 0.000000] 447MB LOWMEM available.
[ 0.000000] Entering add_active_range(0, 0, 114671) 0 entries of 256 used
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 4096
[ 0.000000] Normal 4096 -> 114671
[ 0.000000] HighMem 114671 -> 114671
[ 0.000000] early_node_map[1] active PFN ranges
[ 0.000000] 0: 0 -> 114671
[ 0.000000] On node 0 totalpages: 114671
[ 0.000000] DMA zone: 32 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 4064 pages, LIFO batch:0
[ 0.000000] Normal zone: 863 pages used for memmap
[ 0.000000] Normal zone: 109712 pages, LIFO batch:31
[ 0.000000] HighMem zone: 0 pages used for memmap
[ 0.000000] DMI 2.3 present.
[ 0.000000] ACPI: RSDP (v000 OID_00 ) @ 0x000e6010
[ 0.000000] ACPI: RSDT (v001 INSYDE FACP_000 0x00000100 0000 0x00010200) @ 0x1bffc2d0
[ 0.000000] ACPI: FADT (v001 INSYDE FACP_000 0x00000100 0000 0x00010200) @ 0x1bfffb00
[ 0.000000] ACPI: MADT (v001 INSYDE APIC_000 0x30303030 0000 0x00010200) @ 0x1bfffb90
[ 0.000000] ACPI: DSDT (v001 INSYDE PN800 0x00001000 INTL 0x02002036) @ 0x00000000
[ 0.000000] ACPI: BIOS age (400) fails cutoff (2000), acpi=force is required to enable ACPI
[ 0.000000] ACPI: Disabling ACPI support
[ 0.000000] Allocating PCI resources starting at 20000000 (gap: 1c000000:e3f80000)
[ 0.000000] Detected 1492.810 MHz processor.
[ 13.153234] Built 1 zonelists. Total pages: 113776
[ 13.153239] Kernel command line: root=UUID=68735286-9074-4e91-9625-0b5d872ab4d2 ro quiet splash
[ 13.153430] Found and enabled local APIC!
[ 13.153433] mapped APIC to ffffd000 (fee00000)
[ 13.153438] Enabling fast FPU save and restore... done.
[ 13.153441] Enabling unmasked SIMD FPU exception support... done.
[ 13.153455] Initializing CPU#0
[ 13.153566] PID hash table entries: 2048 (order: 11, 8192 bytes)
[ 13.155077] Console: colour VGA+ 80x25
[ 13.155380] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 13.155673] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 13.170746] Memory: 443576k/458684k available (1992k kernel code, 14468k reserved, 900k data, 328k init, 0k highmem)
[ 13.170758] virtual kernel memory layout:
[ 13.170759] fixmap : 0xfff4e000 - 0xfffff000 ( 708 kB)
[ 13.170761] pkmap : 0xff800000 - 0xffc00000 (4096 kB)
[ 13.170762] vmalloc : 0xdc800000 - 0xff7fe000 ( 559 MB)
[ 13.170764] lowmem : 0xc0000000 - 0xdbfef000 ( 447 MB)
[ 13.170765] .init : 0xc03d9000 - 0xc042b000 ( 328 kB)
[ 13.170766] .data : 0xc02f2374 - 0xc03d36d4 ( 900 kB)
[ 13.170768] .text : 0xc0100000 - 0xc02f2374 (1992 kB)
[ 13.170772] Checking if this processor honours the WP bit even in supervisor mode... Ok.
[ 13.249437] Calibrating delay using timer specific routine.. 2989.00 BogoMIPS (lpj=5978016)
[ 13.249487] Security Framework v1.0.0 initialized
[ 13.249498] SELinux: Disabled at boot.
[ 13.249519] Mount-cache hash table entries: 512
[ 13.249695] CPU: After generic identify, caps: afe9fbff 00000000 00000000 00000000 00000000 00000000 00000000
[ 13.249710] CPU: L1 I cache: 32K, L1 D cache: 32K
[ 13.249713] CPU: L2 cache: 1024K
[ 13.249717] CPU: After all inits, caps: afe9fbff 00000000 00000000 00002040 00000000 00000000 00000000
[ 13.249727] Compat vDSO mapped to ffffe000.
[ 13.249732] Remapping vsyscall page to ffffe000
[ 13.249746] Checking 'hlt' instruction... OK.
[ 13.265523] SMP alternatives: switching to UP code
[ 13.265745] Freeing SMP alternatives: 11k freed
[ 13.265958] Early unpacking initramfs... done
[ 13.641161] CPU0: Intel(R) Celeron(R) M processor 1.50GHz stepping 08
[ 13.641170] SMP motherboard not detected.
[ 13.748787] Brought up 1 CPUs
[ 13.749094] Booting paravirtualized kernel on bare hardware
[ 13.749212] Time: 12:06:09 Date: 07/17/107
[ 13.749247] NET: Registered protocol family 16
[ 13.749358] EISA bus registered
[ 13.749442] PCI: PCI BIOS revision 2.10 entry at 0xe9b04, last bus=1
[ 13.749445] PCI: Using configuration type 1
[ 13.749447] Setting up standard PCI resources
[ 13.750470] ACPI: Interpreter disabled.
[ 13.750476] Linux Plug and Play Support v0.97 (c) Adam Belay
[ 13.750489] pnp: PnP ACPI: disabled
[ 13.750495] PnPBIOS: Scanning system for PnP BIOS support...
[ 13.750568] PnPBIOS: Found PnP BIOS installation structure at 0xc00ff020
[ 13.750572] PnPBIOS: PnP BIOS version 1.0, entry 0xeb000:0x3536, dseg 0xeb000
[ 13.750580] PNPBIOS fault.. attempting recovery.
[ 13.750631] PnPBIOS: Warning! Your PnP BIOS caused a fatal error. Attempting to continue
[ 13.750680] PnPBIOS: You may need to reboot with the "pnpbios=off" option to operate stably
[ 13.750729] PnPBIOS: Check with your vendor for an updated BIOS
[ 13.750776] PnPBIOS: dev_node_info: unexpected status 0x37
[ 13.750822] PnPBIOS: Unable to get node info. Aborting.
[ 13.750919] PCI: Probing PCI hardware
[ 13.750928] PCI: Probing PCI hardware (bus 00)
[ 13.751655] PCI quirk: region 1000-107f claimed by vt8235 PM
[ 13.751659] PCI quirk: region 1400-140f claimed by vt8235 SMB
[ 13.751951] Boot video device is 0000:01:00.0
[ 13.752701] PCI: Using IRQ router VIA [1106/3177] at 0000:00:11.0
[ 13.755053] NET: Registered protocol family 8
[ 13.755055] NET: Registered protocol family 20
[ 13.755419] PCI: Bridge: 0000:00:01.0
[ 13.755422] IO window: c000-dfff
[ 13.755428] MEM window: c0000000-cfffffff
[ 13.755433] PREFETCH window: 90000000-9fffffff
[ 13.755456] PCI: Setting latency timer of device 0000:00:01.0 to 64
[ 13.755485] NET: Registered protocol family 2
[ 13.788750] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 13.788844] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 13.788980] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[ 13.789045] TCP: Hash tables configured (established 16384 bind 8192)
[ 13.789048] TCP reno registered
[ 13.800801] checking if image is initramfs... it is
[ 14.534772] Freeing initrd memory: 6780k freed
[ 14.535363] audit: initializing netlink socket (disabled)
[ 14.535384] audit(1187352369.460:1): initialized
[ 14.535552] VFS: Disk quotas dquot_6.5.1
[ 14.535580] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 14.535686] io scheduler noop registered
[ 14.535690] io scheduler anticipatory registered
[ 14.535692] io scheduler deadline registered
[ 14.535709] io scheduler cfq registered (default)
[ 14.536043] isapnp: Scanning for PnP cards...
[ 14.889999] isapnp: No Plug & Play device found
[ 14.931575] Real Time Clock Driver v1.12ac
[ 14.931658] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
[ 14.932614] mice: PS/2 mouse device common for all mice
[ 14.933241] RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize
[ 14.933552] input: Macintosh mouse button emulation as /class/input/input0
[ 14.933592] Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
[ 14.933597] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
[ 14.933908] PNP: No PS/2 controller found. Probing ports directly.
[ 14.944431] i8042.c: Detected active multiplexing controller, rev 1.1.
[ 14.949438] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 14.949444] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[ 14.949447] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[ 14.949450] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[ 14.949453] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[ 14.949819] EISA: Probing bus 0 at eisa.0
[ 14.949829] Cannot allocate resource for EISA slot 1
[ 14.949862] EISA: Detected 0 cards.
[ 14.949970] TCP cubic registered
[ 14.949984] NET: Registered protocol family 1
[ 14.950047] Testing NMI watchdog ... OK.
[ 14.989726] Using IPI No-Shortcut mode
[ 14.989756] Magic number: 3:625:127
[ 14.990233] Freeing unused kernel memory: 328k freed
[ 14.990949] Time: tsc clocksource has been installed.
[ 14.995599] input: AT Translated Set 2 keyboard as /class/input/input1
[ 16.224718] Capability LSM initialized
[ 16.269889] thermal: Unknown symbol acpi_processor_set_thermal_limit
[ 16.711593] usbcore: registered new interface driver usbfs
[ 16.711635] usbcore: registered new interface driver hub
[ 16.711659] usbcore: registered new device driver usb
[ 16.779335] USB Universal Host Controller Interface driver v3.0
[ 16.779444] PCI: setting IRQ 11 as level-triggered
[ 16.779449] PCI: Found IRQ 11 for device 0000:00:10.0
[ 16.779477] PCI: Sharing IRQ 11 with 0000:00:12.0
[ 16.779481] PCI: Sharing IRQ 11 with 0000:01:00.0
[ 16.779496] uhci_hcd 0000:00:10.0: UHCI Host Controller
[ 16.779710] uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 1
[ 16.779743] uhci_hcd 0000:00:10.0: irq 11, io base 0x00001200
[ 16.779893] usb usb1: configuration #1 chosen from 1 choice
[ 16.779924] hub 1-0:1.0: USB hub found
[ 16.779932] hub 1-0:1.0: 2 ports detected
[ 16.791232] via-rhine.c:v1.10-LK1.4.2 Sept-11-2006 Written by Donald Becker
[ 16.881153] PCI: setting IRQ 7 as level-triggered
[ 16.881161] PCI: Found IRQ 7 for device 0000:00:10.1
[ 16.881203] uhci_hcd 0000:00:10.1: UHCI Host Controller
[ 16.881339] uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 2
[ 16.881372] uhci_hcd 0000:00:10.1: irq 7, io base 0x00001220
[ 16.881796] usb usb2: configuration #1 chosen from 1 choice
[ 16.881956] hub 2-0:1.0: USB hub found
[ 16.881964] hub 2-0:1.0: 2 ports detected
[ 16.984788] PCI: setting IRQ 5 as level-triggered
[ 16.984793] PCI: Found IRQ 5 for device 0000:00:10.2
[ 16.984819] PCI: Sharing IRQ 5 with 0000:00:11.5
[ 16.984836] uhci_hcd 0000:00:10.2: UHCI Host Controller
[ 16.984862] uhci_hcd 0000:00:10.2: new USB bus registered, assigned bus number 3
[ 16.984893] uhci_hcd 0000:00:10.2: irq 5, io base 0x00001240
[ 16.984993] usb usb3: configuration #1 chosen from 1 choice
[ 16.985021] hub 3-0:1.0: USB hub found
[ 16.985028] hub 3-0:1.0: 2 ports detected
[ 17.088816] VP_IDE: IDE controller at PCI slot 0000:00:11.1
[ 17.088846] VP_IDE: chipset revision 6
[ 17.088849] VP_IDE: not 100% native mode: will probe irqs later
[ 17.088864] VP_IDE: VIA vt8235 (rev 00) IDE UDMA133 controller on pci0000:00:11.1
[ 17.088874] ide0: BM-DMA at 0x1100-0x1107, BIOS settings: hda:DMA, hdb:pio
[ 17.088887] ide1: BM-DMA at 0x1108-0x110f, BIOS settings: hdc:pio, hdd:pio
[ 17.088895] Probing IDE interface ide0...
[ 17.503741] hda: WDC WD800UE-22HCT0, ATA DISK drive
[ 18.174869] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
[ 18.175102] Probing IDE interface ide1...
[ 18.751797] SCSI subsystem initialized
[ 18.758479] libata version 2.20 loaded.
[ 18.760701] PCI: Found IRQ 11 for device 0000:00:12.0
[ 18.760717] PCI: Sharing IRQ 11 with 0000:00:10.0
[ 18.760732] PCI: Sharing IRQ 11 with 0000:01:00.0
[ 18.764921] eth0: VIA Rhine II at 0x1e200, 00:40:d0:8c:b7:37, IRQ 11.
[ 18.765640] eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.
[ 18.765751] PCI: setting IRQ 10 as level-triggered
[ 18.765756] PCI: Found IRQ 10 for device 0000:00:10.3
[ 18.765791] ehci_hcd 0000:00:10.3: EHCI Host Controller
[ 18.765953] ehci_hcd 0000:00:10.3: new USB bus registered, assigned bus number 4
[ 18.766003] ehci_hcd 0000:00:10.3: irq 10, io mem 0xf0000000
[ 18.766012] ehci_hcd 0000:00:10.3: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
[ 18.766454] usb usb4: configuration #1 chosen from 1 choice
[ 18.766623] hub 4-0:1.0: USB hub found
[ 18.766633] hub 4-0:1.0: 6 ports detected
[ 18.775407] hda: max request size: 128KiB
[ 18.775413] hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(100)
[ 18.824514] hda: cache flushes supported
[ 18.824574] hda: hda1 hda2 hda4 < hda5 hda6 hda7 >
[ 19.367682] Attempting manual resume
[ 19.367687] swsusp: Resume From Partition 3:5
[ 19.367689] PM: Checking swsusp image.
[ 19.396155] PM: Resume from disk failed.
[ 19.443821] kjournald starting. Commit interval 5 seconds
[ 19.443835] EXT3-fs: mounted filesystem with ordered data mode.
[ 33.239814] eth0: link down
[ 34.623221] NET: Registered protocol family 17
[ 34.669032] Linux agpgart interface v0.102 (c) Dave Jones
[ 34.681296] agpgart: Detected VIA PM800/PN800/PM880/PN880 chipset
[ 34.684051] agpgart: AGP aperture is 32M @ 0xa0000000
[ 35.346451] ath_hal: module license 'Proprietary' taints kernel.
[ 35.347328] ath_hal: 0.9.18.0 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
[ 35.429739] wlan: 0.8.4.2 (0.9.3.1)
[ 35.456518] ath_pci: 0.9.4.5 (0.9.3.1)
[ 35.456592] PCI: Enabling device 0000:00:06.0 (0000 -> 0002)
[ 35.456602] PCI: No IRQ known for interrupt pin A of device 0000:00:06.0. Please try using pci=biosirq.
[ 35.456627] IRQ handler type mismatch for IRQ 0
[ 35.456631] current handler: timer
[ 35.456643] [<c015410e>] setup_irq+0x12e/0x1e0
[ 35.456656] [<dc98b520>] ath_intr+0x0/0xc20 [ath_pci]
[ 35.456666] [<c0154263>] request_irq+0xa3/0xc0
[ 35.456671] [<dc98df8d>] ath_pci_probe+0x1ad/0x3b0 [ath_pci]
[ 35.456681] [<c01b8eee>] sysfs_create_link+0x6e/0x160
[ 35.456689] [<dc98dde0>] ath_pci_probe+0x0/0x3b0 [ath_pci]
[ 35.456698] [<c01fba86>] pci_device_probe+0x56/0x80
[ 35.456705] [<c0257aa6>] really_probe+0x66/0x190
[ 35.456713] [<c0257c19>] driver_probe_device+0x49/0xc0
[ 35.456719] [<c0257dee>] __driver_attach+0x9e/0xa0
[ 35.456723] [<c0256f7b>] bus_for_each_dev+0x3b/0x60
[ 35.456729] [<c0257944>] driver_attach+0x24/0x30
[ 35.456733] [<c0257d50>] __driver_attach+0x0/0xa0
[ 35.456737] [<c025730b>] bus_add_driver+0x7b/0x1a0
[ 35.456743] [<c01fbc54>] __pci_register_driver+0x74/0xc0
[ 35.456747] [<dc84c030>] init_ath_pci+0x30/0x54 [ath_pci]
[ 35.456755] [<c014422d>] sys_init_module+0x15d/0x1ba0
[ 35.456769] [<c0107a5d>] sys_mmap2+0xcd/0xd0
[ 35.456776] [<c01031f0>] sysenter_past_esp+0x69/0xa9
[ 35.456783] =======================
[ 35.456785] wifi%d: request_irq failed
[ 35.647289] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 35.716272] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 36.027366] irda_init()
[ 36.027381] NET: Registered protocol family 23
[ 36.465599] Synaptics Touchpad, model: 1, fw: 5.9, id: 0xf6eb3, caps: 0xa04713/0x0
[ 36.519578] input: SynPS/2 Synaptics TouchPad as /class/input/input2
[ 37.059114] PCI: Found IRQ 5 for device 0000:00:11.5
[ 37.059135] PCI: Sharing IRQ 5 with 0000:00:10.2
[ 37.059281] PCI: Setting latency timer of device 0000:00:11.5 to 64
[ 37.797122] fuse init (API version 7.8)
[ 37.950497] lp: driver loaded but no devices found
[ 37.976173] Adding 1020088k swap on /dev/disk/by-uuid/36e9fbed-1278-4dd8-901f-9a14b01a7e12. Priority:-1 extents:1 across:1020088k
[ 38.206202] EXT3 FS on hda6, internal journal
[ 47.051604] NTFS driver 2.1.28 [Flags: R/O MODULE].
[ 47.130676] NTFS volume version 3.1.
[ 53.126945] acpi_cpufreq: Unknown symbol acpi_processor_notify_smm
[ 53.126995] acpi_cpufreq: Unknown symbol acpi_processor_unregister_performance
[ 53.127121] acpi_cpufreq: Unknown symbol acpi_processor_preregister_performance
[ 53.127184] acpi_cpufreq: Unknown symbol acpi_processor_register_performance
[ 56.571765] ppdev: user-space parallel port driver
[ 57.868632] apm: BIOS not found.
[ 60.468774] [drm] Initialized drm 1.1.0 20060810
[ 60.481368] PCI: Found IRQ 11 for device 0000:01:00.0
[ 60.481650] PCI: Sharing IRQ 11 with 0000:00:10.0
[ 60.481790] PCI: Sharing IRQ 11 with 0000:00:12.0
[ 60.484762] [drm] Initialized via 2.11.0 20061227 on minor 0
[ 60.524403] agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0.
[ 60.524641] agpgart: Device is in legacy mode, falling back to 2.x
[ 60.524792] agpgart: Putting AGP V2 device at 0000:00:00.0 into 0x mode
[ 60.525036] agpgart: Putting AGP V2 device at 0000:01:00.0 into 0x mode
[ 60.530823] [drm:via_mem_alloc] *ERROR* Attempt to allocate from uninitialized memory manager.
[ 79.709779] NET: Registered protocol family 10
[ 79.709928] lo: Disabled Privacy Extensions
[ 79.709986] ADDRCONF(NETDEV_UP): eth0: link is not ready
[-- Attachment #3: dmesg-s64000_ACPI_off.txt --]
[-- Type: text/plain, Size: 60810 bytes --]
: resuming
[121695.928000] PM: Writing back config space on device 0000:00:12.0 at offset 1 (was 2100087, writing 2100083)
[121695.928000] pci 0000:01:00.0: resuming
[121696.428000] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 20
[121696.428000] pnp 00:00: resuming
[121696.428000] i8042 aux 00:01: resuming
[121696.428000] pnp: Failed to activate device 00:01.
[121696.428000] i8042 kbd 00:02: resuming
[121696.428000] pnp: Failed to activate device 00:02.
[121696.428000] pnp 00:03: resuming
[121696.428000] pnp 00:04: resuming
[121696.428000] system 00:05: resuming
[121696.428000] pnp 00:06: resuming
[121696.428000] system 00:07: resuming
[121696.428000] pnp 00:08: resuming
[121696.428000] pcspkr pcspkr: resuming
[121696.428000] serial8250 serial8250: resuming
[121696.428000] i8042 i8042: resuming
[121696.436000] atkbd serio0: resuming
[121696.448000] platform eisa.0: resuming
[121696.448000] serio serio1: resuming
[121696.448000] serio serio2: resuming
[121696.448000] psmouse serio3: resuming
[121697.136000] serio serio4: resuming
[121697.136000] platform vesafb.0: resuming
[121697.136000] usb usb1: resuming
[121697.176000] usb usb2: resuming
[121697.216000] usb usb3: resuming
[121697.256000] usb usb4: resuming
[121697.276000] ide-disk 0.0: resuming
[121697.304000] ac97 0-0:ALC655: resuming
[121697.308000] Restarting tasks ... done.
[121697.336000] Enabling non-boot CPUs ...
[121706.148000] ath_pci: 0.9.4.5 (0.9.3.1)
[121706.152000] ACPI: PCI Interrupt 0000:00:06.0[A] -> GSI 19 (level, low) -> IRQ 18
[121706.740000] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
[121706.740000] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[121706.740000] wifi0: H/W encryption support: WEP AES AES_CCM TKIP
[121706.740000] wifi0: mac 7.8 phy 4.5 radio 5.6
[121706.740000] wifi0: Use hw queue 1 for WME_AC_BE traffic
[121706.740000] wifi0: Use hw queue 0 for WME_AC_BK traffic
[121706.740000] wifi0: Use hw queue 2 for WME_AC_VI traffic
[121706.740000] wifi0: Use hw queue 3 for WME_AC_VO traffic
[121706.740000] wifi0: Use hw queue 8 for CAB traffic
[121706.740000] wifi0: Use hw queue 9 for beacons
[121706.744000] wifi0: Atheros 5212: mem=0x20000000, irq=18
[121707.848000] via-rhine.c:v1.10-LK1.4.2 Sept-11-2006 Written by Donald Becker
[121707.852000] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [ALKB] -> GSI 23 (level, low) -> IRQ 16
[121707.856000] eth0: VIA Rhine II at 0x1e200, 00:40:d0:8c:b7:37, IRQ 16.
[121707.856000] eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.
[121708.456000] eth0: link down
[121708.456000] ADDRCONF(NETDEV_UP): eth0: link is not ready
[121712.448000] input: Power Button (FF) as /class/input/input10
[121712.448000] ACPI: Power Button (FF) [PWRF]
[121712.448000] input: Lid Switch as /class/input/input11
[121712.448000] ACPI: Lid Switch [LID]
[121712.448000] input: Sleep Button (CM) as /class/input/input12
[121712.452000] ACPI: Sleep Button (CM) [SBTN]
[121713.848000] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
[121713.848000] ACPI: Processor [CPU0] (supports 16 throttling states)
[121714.068000] ACPI: Thermal Zone [TZ0] (0 C)
[121714.596000] ACPI: AC Adapter [AC] (on-line)
[121714.800000] ACPI: Battery Slot [BAT0] (battery present)
[121737.548000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[121747.960000] ath0: no IPv6 routers present
[121769.684000] ADDRCONF(NETDEV_UP): ath0: link is not ready
[121771.788000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[121773.868000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[121777.752000] ADDRCONF(NETDEV_UP): ath0: link is not ready
[121779.772000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[121789.960000] ath0: no IPv6 routers present
[121825.088000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[121825.236000] ADDRCONF(NETDEV_UP): ath0: link is not ready
[121827.184000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[121846.140000] ath0: no IPv6 routers present
[123779.068000] ACPI: PCI interrupt for device 0000:00:06.0 disabled
[123779.068000] ath_pci: driver unloaded
[123779.220000] ACPI: PCI interrupt for device 0000:00:12.0 disabled
[123782.924000] PM: suspend-to-disk mode set to 'shutdown'
[123782.924000] Disabling non-boot CPUs ...
[123782.924000] Stopping tasks ... done.
[123783.744000] Shrinking memory... \b-\b\\b|\b/\b-\b\\bdone (57017 pages freed)
[123789.720000] Freed 228068 kbytes in 6.04 seconds (37.75 MB/s)
[123789.720000] Suspending console(s)
[123789.720000] ac97 0-0:ALC655: freeze
[123789.720000] ide-disk 0.0: freeze
[123790.700000] usbdev4.1_ep81: PM: suspend 0->1, parent 4-0:1.0 already 2
[123790.700000] hub 4-0:1.0: PM: suspend 2-->1
[123790.700000] hub 4-0:1.0: PM: suspend 2->1, parent usb4 already 2
[123790.700000] usbdev4.1_ep00: PM: suspend 0->1, parent usb4 already 2
[123790.700000] usb usb4: PM: suspend 2-->1
[123790.700000] usbdev3.1_ep81: PM: suspend 0->1, parent 3-0:1.0 already 2
[123790.700000] hub 3-0:1.0: PM: suspend 2-->1
[123790.700000] hub 3-0:1.0: PM: suspend 2->1, parent usb3 already 2
[123790.700000] usbdev3.1_ep00: PM: suspend 0->1, parent usb3 already 2
[123790.700000] usb usb3: PM: suspend 2-->1
[123790.700000] usbdev2.1_ep81: PM: suspend 0->1, parent 2-0:1.0 already 2
[123790.700000] hub 2-0:1.0: PM: suspend 2-->1
[123790.700000] hub 2-0:1.0: PM: suspend 2->1, parent usb2 already 2
[123790.700000] usbdev2.1_ep00: PM: suspend 0->1, parent usb2 already 2
[123790.700000] usb usb2: PM: suspend 2-->1
[123790.700000] usbdev1.1_ep81: PM: suspend 0->1, parent 1-0:1.0 already 2
[123790.700000] hub 1-0:1.0: PM: suspend 2-->1
[123790.700000] hub 1-0:1.0: PM: suspend 2->1, parent usb1 already 2
[123790.700000] usbdev1.1_ep00: PM: suspend 0->1, parent usb1 already 2
[123790.700000] usb usb1: PM: suspend 2-->1
[123790.700000] platform vesafb.0: freeze
[123790.700000] platform eisa.0: freeze
[123790.700000] i8042 i8042: freeze
[123791.148000] serial8250 serial8250: freeze
[123791.148000] pcspkr pcspkr: freeze
[123791.148000] pnp 00:08: freeze
[123791.148000] system 00:07: freeze
[123791.148000] pnp 00:06: freeze
[123791.148000] system 00:05: freeze
[123791.148000] pnp 00:04: freeze
[123791.148000] pnp 00:03: freeze
[123791.148000] i8042 kbd 00:02: freeze
[123791.148000] i8042 aux 00:01: freeze
[123791.148000] pnp 00:00: freeze
[123791.148000] pci 0000:01:00.0: freeze
[123791.148000] pci 0000:00:12.0: freeze
[123791.148000] VIA 82xx Audio 0000:00:11.5: freeze
[123791.152000] ACPI: PCI interrupt for device 0000:00:11.5 disabled
[123791.368000] VIA_IDE 0000:00:11.1: freeze
[123791.368000] pci 0000:00:11.0: freeze
[123791.368000] ehci_hcd 0000:00:10.3: freeze
[123791.368000] ACPI: Link isn't initialized
[123791.368000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[123791.384000] uhci_hcd 0000:00:10.2: freeze
[123791.384000] ACPI: Link isn't initialized
[123791.384000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[123791.400000] uhci_hcd 0000:00:10.1: freeze
[123791.400000] ACPI: Link isn't initialized
[123791.400000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[123791.416000] uhci_hcd 0000:00:10.0: freeze
[123791.416000] ACPI: Link isn't initialized
[123791.416000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[123791.432000] pci 0000:00:06.0: freeze
[123791.432000] pci 0000:00:01.0: freeze
[123791.432000] pci 0000:00:00.7: freeze
[123791.432000] pci 0000:00:00.4: freeze
[123791.432000] pci 0000:00:00.3: freeze
[123791.432000] pci 0000:00:00.2: freeze
[123791.432000] pci 0000:00:00.1: freeze
[123791.432000] agpgart-via 0000:00:00.0: freeze
[123791.448000] acpi acpi: freeze
[123791.448000] PM: snapshotting memory.
[123791.448000] platform vesafb.0: LATE freeze
[123791.448000] platform eisa.0: LATE freeze
[123791.448000] i8042 i8042: LATE freeze
[123791.448000] serial8250 serial8250: LATE freeze
[123791.448000] pcspkr pcspkr: LATE freeze
[123791.448000] pci 0000:01:00.0: LATE freeze
[123791.448000] pci 0000:00:12.0: LATE freeze
[123791.448000] VIA 82xx Audio 0000:00:11.5: LATE freeze
[123791.448000] VIA_IDE 0000:00:11.1: LATE freeze
[123791.448000] pci 0000:00:11.0: LATE freeze
[123791.448000] pci 0000:00:06.0: LATE freeze
[123791.448000] pci 0000:00:01.0: LATE freeze
[123791.448000] pci 0000:00:00.7: LATE freeze
[123791.448000] pci 0000:00:00.4: LATE freeze
[123791.448000] pci 0000:00:00.3: LATE freeze
[123791.448000] pci 0000:00:00.2: LATE freeze
[123791.448000] pci 0000:00:00.1: LATE freeze
[123791.448000] agpgart-via 0000:00:00.0: LATE freeze
[123791.448000] swsusp: critical section:
[123791.448000] swsusp: Need to copy 55417 pages
[123791.448000] swsusp: Normal pages needed: 55417 + 1024 + 14, available pages: 59252
[160372.448000] ACPI: PCI Interrupt Link [ALKA] disabled and referenced, BIOS bug
[160372.448000] ACPI: PCI Interrupt Link [ALKA] BIOS reported IRQ 0, using IRQ 20
[160372.448000] ACPI: PCI Interrupt Link [ALKB] BIOS reported IRQ 11, using IRQ 23
[160372.448000] ACPI: PCI Interrupt Link [ALKC] disabled and referenced, BIOS bug
[160372.448000] ACPI: PCI Interrupt Link [ALKC] BIOS reported IRQ 5, using IRQ 22
[160372.448000] agpgart-via 0000:00:00.0: EARLY resume
[160372.448000] pci 0000:00:00.1: EARLY resume
[160372.448000] pci 0000:00:00.2: EARLY resume
[160372.448000] pci 0000:00:00.3: EARLY resume
[160372.448000] pci 0000:00:00.4: EARLY resume
[160372.448000] pci 0000:00:00.7: EARLY resume
[160372.448000] pci 0000:00:01.0: EARLY resume
[160372.448000] pci 0000:00:06.0: EARLY resume
[160372.448000] uhci_hcd 0000:00:10.0: EARLY resume
[160372.448000] uhci_hcd 0000:00:10.1: EARLY resume
[160372.448000] uhci_hcd 0000:00:10.2: EARLY resume
[160372.448000] ehci_hcd 0000:00:10.3: EARLY resume
[160372.448000] pci 0000:00:11.0: EARLY resume
[160372.448000] VIA_IDE 0000:00:11.1: EARLY resume
[160372.448000] VIA 82xx Audio 0000:00:11.5: EARLY resume
[160372.448000] pci 0000:00:12.0: EARLY resume
[160372.448000] pci 0000:01:00.0: EARLY resume
[160372.448000] pcspkr pcspkr: EARLY resume
[160372.448000] serial8250 serial8250: EARLY resume
[160372.448000] i8042 i8042: EARLY resume
[160372.448000] platform eisa.0: EARLY resume
[160372.448000] platform vesafb.0: EARLY resume
[160372.460000] PM: Image restored successfully.
[160372.476000] acpi acpi: resuming
[160372.484000] agpgart-via 0000:00:00.0: resuming
[160372.500000] pci 0000:00:00.1: resuming
[160372.500000] pci 0000:00:00.2: resuming
[160372.500000] pci 0000:00:00.3: resuming
[160372.500000] pci 0000:00:00.4: resuming
[160372.500000] pci 0000:00:00.7: resuming
[160372.500000] pci 0000:00:01.0: resuming
[160372.500000] PCI: Setting latency timer of device 0000:00:01.0 to 64
[160372.500000] pci 0000:00:06.0: resuming
[160372.500000] PM: Writing back config space on device 0000:00:06.0 at offset 3 (was 0, writing a820)
[160372.500000] PM: Writing back config space on device 0000:00:06.0 at offset 1 (was 2900000, writing 2900002)
[160372.500000] uhci_hcd 0000:00:10.0: resuming
[160372.516000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[160372.516000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[160372.516000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[160372.516000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[160372.516000] ACPI: Invalid IRQ link routing entry
[160372.516000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[160372.516000] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI - using IRQ 11
[160372.516000] usb usb1: root hub lost power or was reset
[160372.516000] uhci_hcd 0000:00:10.1: resuming
[160372.532000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[160372.532000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[160372.532000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[160372.532000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[160372.532000] ACPI: Invalid IRQ link routing entry
[160372.532000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[160372.532000] ACPI: PCI Interrupt 0000:00:10.1[B]: no GSI - using IRQ 7
[160372.532000] usb usb2: root hub lost power or was reset
[160372.532000] uhci_hcd 0000:00:10.2: resuming
[160372.548000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[160372.548000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[160372.548000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[160372.548000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[160372.548000] ACPI: Invalid IRQ link routing entry
[160372.548000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[160372.548000] ACPI: PCI Interrupt 0000:00:10.2[C]: no GSI - using IRQ 5
[160372.548000] usb usb3: root hub lost power or was reset
[160372.548000] ehci_hcd 0000:00:10.3: resuming
[160372.564000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[160372.564000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[160372.564000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[160372.564000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[160372.564000] ACPI: Invalid IRQ link routing entry
[160372.564000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[160372.564000] ACPI: PCI Interrupt 0000:00:10.3[D]: no GSI - using IRQ 10
[160372.564000] usb usb4: root hub lost power or was reset
[160372.564000] pci 0000:00:11.0: resuming
[160372.564000] VIA_IDE 0000:00:11.1: resuming
[160372.564000] ACPI: PCI Interrupt 0000:00:11.1[A] -> Link [ALKA] -> GSI 20 (level, low) -> IRQ 17
[160372.564000] VIA 82xx Audio 0000:00:11.5: resuming
[160372.580000] ACPI: PCI Interrupt 0000:00:11.5[C] -> Link [ALKC] -> GSI 22 (level, low) -> IRQ 19
[160372.580000] PCI: Setting latency timer of device 0000:00:11.5 to 64
[160372.580000] pci 0000:00:12.0: resuming
[160372.580000] PM: Writing back config space on device 0000:00:12.0 at offset 1 (was 2100087, writing 2100083)
[160372.580000] pci 0000:01:00.0: resuming
[160373.080000] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 20
[160373.080000] pnp 00:00: resuming
[160373.080000] i8042 aux 00:01: resuming
[160373.080000] pnp: Failed to activate device 00:01.
[160373.080000] i8042 kbd 00:02: resuming
[160373.080000] pnp: Failed to activate device 00:02.
[160373.080000] pnp 00:03: resuming
[160373.080000] pnp 00:04: resuming
[160373.080000] system 00:05: resuming
[160373.080000] pnp 00:06: resuming
[160373.080000] system 00:07: resuming
[160373.080000] pnp 00:08: resuming
[160373.080000] pcspkr pcspkr: resuming
[160373.080000] serial8250 serial8250: resuming
[160373.080000] i8042 i8042: resuming
[160373.088000] atkbd serio0: resuming
[160373.100000] platform eisa.0: resuming
[160373.100000] serio serio1: resuming
[160373.100000] serio serio2: resuming
[160373.100000] psmouse serio3: resuming
[160373.788000] serio serio4: resuming
[160373.788000] platform vesafb.0: resuming
[160373.788000] usb usb1: resuming
[160373.828000] usb usb2: resuming
[160373.868000] usb usb3: resuming
[160373.908000] usb usb4: resuming
[160373.928000] ide-disk 0.0: resuming
[160373.964000] ac97 0-0:ALC655: resuming
[160373.964000] Restarting tasks ... done.
[160373.972000] Enabling non-boot CPUs ...
[160403.068000] ath_pci: 0.9.4.5 (0.9.3.1)
[160403.068000] ACPI: PCI Interrupt 0000:00:06.0[A] -> GSI 19 (level, low) -> IRQ 18
[160403.756000] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
[160403.756000] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[160403.756000] wifi0: H/W encryption support: WEP AES AES_CCM TKIP
[160403.756000] wifi0: mac 7.8 phy 4.5 radio 5.6
[160403.756000] wifi0: Use hw queue 1 for WME_AC_BE traffic
[160403.756000] wifi0: Use hw queue 0 for WME_AC_BK traffic
[160403.756000] wifi0: Use hw queue 2 for WME_AC_VI traffic
[160403.756000] wifi0: Use hw queue 3 for WME_AC_VO traffic
[160403.756000] wifi0: Use hw queue 8 for CAB traffic
[160403.756000] wifi0: Use hw queue 9 for beacons
[160403.760000] wifi0: Atheros 5212: mem=0x20000000, irq=18
[160405.264000] via-rhine.c:v1.10-LK1.4.2 Sept-11-2006 Written by Donald Becker
[160405.264000] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [ALKB] -> GSI 23 (level, low) -> IRQ 16
[160405.276000] eth0: VIA Rhine II at 0x1e200, 00:40:d0:8c:b7:37, IRQ 16.
[160405.280000] eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.
[160407.644000] eth0: link down
[160407.652000] ADDRCONF(NETDEV_UP): eth0: link is not ready
[160414.692000] input: Power Button (FF) as /class/input/input13
[160414.692000] ACPI: Power Button (FF) [PWRF]
[160414.720000] input: Lid Switch as /class/input/input14
[160414.720000] ACPI: Lid Switch [LID]
[160414.740000] input: Sleep Button (CM) as /class/input/input15
[160414.740000] ACPI: Sleep Button (CM) [SBTN]
[160416.304000] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
[160416.304000] ACPI: Processor [CPU0] (supports 16 throttling states)
[160416.540000] ACPI: Thermal Zone [TZ0] (0 C)
[160416.780000] ACPI: AC Adapter [AC] (on-line)
[160417.152000] ACPI: Battery Slot [BAT0] (battery present)
[160496.540000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[160513.876000] ath0: no IPv6 routers present
[185413.312000] ACPI: PCI interrupt for device 0000:00:06.0 disabled
[185413.312000] ath_pci: driver unloaded
[185413.664000] ACPI: PCI interrupt for device 0000:00:12.0 disabled
[185419.376000] PM: suspend-to-disk mode set to 'shutdown'
[185419.380000] Disabling non-boot CPUs ...
[185419.380000] Stopping tasks ... done.
[185419.728000] Shrinking memory... \b-\b\\b|\b/\b-\b\\bdone (59554 pages freed)
[185434.172000] Freed 238216 kbytes in 14.52 seconds (16.40 MB/s)
[185434.172000] Suspending console(s)
[185434.172000] ac97 0-0:ALC655: freeze
[185434.172000] ide-disk 0.0: freeze
[185434.948000] usbdev4.1_ep81: PM: suspend 0->1, parent 4-0:1.0 already 2
[185434.948000] hub 4-0:1.0: PM: suspend 2-->1
[185434.948000] hub 4-0:1.0: PM: suspend 2->1, parent usb4 already 2
[185434.948000] usbdev4.1_ep00: PM: suspend 0->1, parent usb4 already 2
[185434.948000] usb usb4: PM: suspend 2-->1
[185434.948000] usbdev3.1_ep81: PM: suspend 0->1, parent 3-0:1.0 already 2
[185434.948000] hub 3-0:1.0: PM: suspend 2-->1
[185434.948000] hub 3-0:1.0: PM: suspend 2->1, parent usb3 already 2
[185434.948000] usbdev3.1_ep00: PM: suspend 0->1, parent usb3 already 2
[185434.948000] usb usb3: PM: suspend 2-->1
[185434.948000] usbdev2.1_ep81: PM: suspend 0->1, parent 2-0:1.0 already 2
[185434.948000] hub 2-0:1.0: PM: suspend 2-->1
[185434.948000] hub 2-0:1.0: PM: suspend 2->1, parent usb2 already 2
[185434.948000] usbdev2.1_ep00: PM: suspend 0->1, parent usb2 already 2
[185434.948000] usb usb2: PM: suspend 2-->1
[185434.948000] usbdev1.1_ep81: PM: suspend 0->1, parent 1-0:1.0 already 2
[185434.948000] hub 1-0:1.0: PM: suspend 2-->1
[185434.948000] hub 1-0:1.0: PM: suspend 2->1, parent usb1 already 2
[185434.948000] usbdev1.1_ep00: PM: suspend 0->1, parent usb1 already 2
[185434.948000] usb usb1: PM: suspend 2-->1
[185434.948000] platform vesafb.0: freeze
[185434.948000] platform eisa.0: freeze
[185434.948000] i8042 i8042: freeze
[185435.360000] serial8250 serial8250: freeze
[185435.360000] pcspkr pcspkr: freeze
[185435.360000] pnp 00:08: freeze
[185435.360000] system 00:07: freeze
[185435.360000] pnp 00:06: freeze
[185435.360000] system 00:05: freeze
[185435.360000] pnp 00:04: freeze
[185435.360000] pnp 00:03: freeze
[185435.360000] i8042 kbd 00:02: freeze
[185435.360000] i8042 aux 00:01: freeze
[185435.360000] pnp 00:00: freeze
[185435.360000] pci 0000:01:00.0: freeze
[185435.360000] pci 0000:00:12.0: freeze
[185435.360000] VIA 82xx Audio 0000:00:11.5: freeze
[185435.360000] ACPI: PCI interrupt for device 0000:00:11.5 disabled
[185435.576000] VIA_IDE 0000:00:11.1: freeze
[185435.576000] pci 0000:00:11.0: freeze
[185435.576000] ehci_hcd 0000:00:10.3: freeze
[185435.576000] ACPI: Link isn't initialized
[185435.576000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[185435.592000] uhci_hcd 0000:00:10.2: freeze
[185435.592000] ACPI: Link isn't initialized
[185435.592000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[185435.608000] uhci_hcd 0000:00:10.1: freeze
[185435.608000] ACPI: Link isn't initialized
[185435.608000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[185435.624000] uhci_hcd 0000:00:10.0: freeze
[185435.624000] ACPI: Link isn't initialized
[185435.624000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[185435.640000] pci 0000:00:06.0: freeze
[185435.640000] pci 0000:00:01.0: freeze
[185435.640000] pci 0000:00:00.7: freeze
[185435.640000] pci 0000:00:00.4: freeze
[185435.640000] pci 0000:00:00.3: freeze
[185435.640000] pci 0000:00:00.2: freeze
[185435.640000] pci 0000:00:00.1: freeze
[185435.640000] agpgart-via 0000:00:00.0: freeze
[185435.656000] acpi acpi: freeze
[185435.656000] PM: snapshotting memory.
[185435.656000] platform vesafb.0: LATE freeze
[185435.656000] platform eisa.0: LATE freeze
[185435.656000] i8042 i8042: LATE freeze
[185435.656000] serial8250 serial8250: LATE freeze
[185435.656000] pcspkr pcspkr: LATE freeze
[185435.656000] pci 0000:01:00.0: LATE freeze
[185435.656000] pci 0000:00:12.0: LATE freeze
[185435.656000] VIA 82xx Audio 0000:00:11.5: LATE freeze
[185435.656000] VIA_IDE 0000:00:11.1: LATE freeze
[185435.656000] pci 0000:00:11.0: LATE freeze
[185435.656000] pci 0000:00:06.0: LATE freeze
[185435.656000] pci 0000:00:01.0: LATE freeze
[185435.656000] pci 0000:00:00.7: LATE freeze
[185435.656000] pci 0000:00:00.4: LATE freeze
[185435.656000] pci 0000:00:00.3: LATE freeze
[185435.656000] pci 0000:00:00.2: LATE freeze
[185435.656000] pci 0000:00:00.1: LATE freeze
[185435.656000] agpgart-via 0000:00:00.0: LATE freeze
[185435.656000] swsusp: critical section:
[185435.656000] swsusp: Need to copy 51493 pages
[185435.656000] swsusp: Normal pages needed: 51493 + 1024 + 14, available pages: 63176
[186055.656000] ACPI: PCI Interrupt Link [ALKA] disabled and referenced, BIOS bug
[186055.656000] ACPI: PCI Interrupt Link [ALKA] BIOS reported IRQ 0, using IRQ 20
[186055.656000] ACPI: PCI Interrupt Link [ALKB] BIOS reported IRQ 11, using IRQ 23
[186055.656000] ACPI: PCI Interrupt Link [ALKC] disabled and referenced, BIOS bug
[186055.656000] ACPI: PCI Interrupt Link [ALKC] BIOS reported IRQ 5, using IRQ 22
[186055.656000] agpgart-via 0000:00:00.0: EARLY resume
[186055.656000] pci 0000:00:00.1: EARLY resume
[186055.656000] pci 0000:00:00.2: EARLY resume
[186055.656000] pci 0000:00:00.3: EARLY resume
[186055.656000] pci 0000:00:00.4: EARLY resume
[186055.656000] pci 0000:00:00.7: EARLY resume
[186055.656000] pci 0000:00:01.0: EARLY resume
[186055.656000] pci 0000:00:06.0: EARLY resume
[186055.656000] uhci_hcd 0000:00:10.0: EARLY resume
[186055.656000] uhci_hcd 0000:00:10.1: EARLY resume
[186055.656000] uhci_hcd 0000:00:10.2: EARLY resume
[186055.656000] ehci_hcd 0000:00:10.3: EARLY resume
[186055.656000] pci 0000:00:11.0: EARLY resume
[186055.656000] VIA_IDE 0000:00:11.1: EARLY resume
[186055.656000] VIA 82xx Audio 0000:00:11.5: EARLY resume
[186055.656000] pci 0000:00:12.0: EARLY resume
[186055.656000] pci 0000:01:00.0: EARLY resume
[186055.656000] pcspkr pcspkr: EARLY resume
[186055.656000] serial8250 serial8250: EARLY resume
[186055.656000] i8042 i8042: EARLY resume
[186055.656000] platform eisa.0: EARLY resume
[186055.656000] platform vesafb.0: EARLY resume
[186055.656000] PM: Image restored successfully.
[186055.668000] acpi acpi: resuming
[186055.676000] agpgart-via 0000:00:00.0: resuming
[186055.692000] pci 0000:00:00.1: resuming
[186055.692000] pci 0000:00:00.2: resuming
[186055.692000] pci 0000:00:00.3: resuming
[186055.692000] pci 0000:00:00.4: resuming
[186055.692000] pci 0000:00:00.7: resuming
[186055.692000] pci 0000:00:01.0: resuming
[186055.692000] PCI: Setting latency timer of device 0000:00:01.0 to 64
[186055.692000] pci 0000:00:06.0: resuming
[186055.692000] PM: Writing back config space on device 0000:00:06.0 at offset 3 (was 0, writing a820)
[186055.692000] PM: Writing back config space on device 0000:00:06.0 at offset 1 (was 2900000, writing 2900002)
[186055.692000] uhci_hcd 0000:00:10.0: resuming
[186055.708000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[186055.708000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[186055.708000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[186055.708000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[186055.708000] ACPI: Invalid IRQ link routing entry
[186055.708000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[186055.708000] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI - using IRQ 11
[186055.708000] usb usb1: root hub lost power or was reset
[186055.708000] uhci_hcd 0000:00:10.1: resuming
[186055.724000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[186055.724000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[186055.724000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[186055.724000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[186055.724000] ACPI: Invalid IRQ link routing entry
[186055.724000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[186055.724000] ACPI: PCI Interrupt 0000:00:10.1[B]: no GSI - using IRQ 7
[186055.724000] usb usb2: root hub lost power or was reset
[186055.724000] uhci_hcd 0000:00:10.2: resuming
[186055.740000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[186055.740000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[186055.740000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[186055.740000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[186055.740000] ACPI: Invalid IRQ link routing entry
[186055.740000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[186055.740000] ACPI: PCI Interrupt 0000:00:10.2[C]: no GSI - using IRQ 5
[186055.740000] usb usb3: root hub lost power or was reset
[186055.740000] ehci_hcd 0000:00:10.3: resuming
[186055.756000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[186055.756000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[186055.756000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[186055.756000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[186055.756000] ACPI: Invalid IRQ link routing entry
[186055.756000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[186055.756000] ACPI: PCI Interrupt 0000:00:10.3[D]: no GSI - using IRQ 10
[186055.756000] usb usb4: root hub lost power or was reset
[186055.756000] pci 0000:00:11.0: resuming
[186055.756000] VIA_IDE 0000:00:11.1: resuming
[186055.756000] ACPI: PCI Interrupt 0000:00:11.1[A] -> Link [ALKA] -> GSI 20 (level, low) -> IRQ 17
[186055.756000] VIA 82xx Audio 0000:00:11.5: resuming
[186055.772000] ACPI: PCI Interrupt 0000:00:11.5[C] -> Link [ALKC] -> GSI 22 (level, low) -> IRQ 19
[186055.772000] PCI: Setting latency timer of device 0000:00:11.5 to 64
[186055.772000] pci 0000:00:12.0: resuming
[186055.772000] PM: Writing back config space on device 0000:00:12.0 at offset 1 (was 2100087, writing 2100083)
[186055.772000] pci 0000:01:00.0: resuming
[186056.272000] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 20
[186056.272000] pnp 00:00: resuming
[186056.272000] i8042 aux 00:01: resuming
[186056.272000] pnp: Failed to activate device 00:01.
[186056.272000] i8042 kbd 00:02: resuming
[186056.272000] pnp: Failed to activate device 00:02.
[186056.272000] pnp 00:03: resuming
[186056.272000] pnp 00:04: resuming
[186056.272000] system 00:05: resuming
[186056.272000] pnp 00:06: resuming
[186056.272000] system 00:07: resuming
[186056.272000] pnp 00:08: resuming
[186056.272000] pcspkr pcspkr: resuming
[186056.272000] serial8250 serial8250: resuming
[186056.272000] i8042 i8042: resuming
[186056.280000] atkbd serio0: resuming
[186056.292000] platform eisa.0: resuming
[186056.292000] serio serio1: resuming
[186056.292000] serio serio2: resuming
[186056.292000] psmouse serio3: resuming
[186056.984000] serio serio4: resuming
[186056.984000] platform vesafb.0: resuming
[186056.984000] usb usb1: resuming
[186057.024000] usb usb2: resuming
[186057.064000] usb usb3: resuming
[186057.104000] usb usb4: resuming
[186057.124000] ide-disk 0.0: resuming
[186057.152000] ac97 0-0:ALC655: resuming
[186057.152000] Restarting tasks ... done.
[186057.156000] Enabling non-boot CPUs ...
[186091.692000] ath_pci: 0.9.4.5 (0.9.3.1)
[186091.692000] ACPI: PCI Interrupt 0000:00:06.0[A] -> GSI 19 (level, low) -> IRQ 18
[186092.272000] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
[186092.272000] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[186092.272000] wifi0: H/W encryption support: WEP AES AES_CCM TKIP
[186092.272000] wifi0: mac 7.8 phy 4.5 radio 5.6
[186092.272000] wifi0: Use hw queue 1 for WME_AC_BE traffic
[186092.272000] wifi0: Use hw queue 0 for WME_AC_BK traffic
[186092.272000] wifi0: Use hw queue 2 for WME_AC_VI traffic
[186092.272000] wifi0: Use hw queue 3 for WME_AC_VO traffic
[186092.272000] wifi0: Use hw queue 8 for CAB traffic
[186092.272000] wifi0: Use hw queue 9 for beacons
[186092.272000] wifi0: Atheros 5212: mem=0x20000000, irq=18
[186094.552000] via-rhine.c:v1.10-LK1.4.2 Sept-11-2006 Written by Donald Becker
[186094.552000] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [ALKB] -> GSI 23 (level, low) -> IRQ 16
[186094.564000] eth0: VIA Rhine II at 0x1e200, 00:40:d0:8c:b7:37, IRQ 16.
[186094.564000] eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.
[186097.072000] eth0: link down
[186097.072000] ADDRCONF(NETDEV_UP): eth0: link is not ready
[186101.836000] input: Power Button (FF) as /class/input/input16
[186101.836000] ACPI: Power Button (FF) [PWRF]
[186101.836000] input: Lid Switch as /class/input/input17
[186101.840000] ACPI: Lid Switch [LID]
[186101.840000] input: Sleep Button (CM) as /class/input/input18
[186101.840000] ACPI: Sleep Button (CM) [SBTN]
[186103.796000] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
[186103.796000] ACPI: Processor [CPU0] (supports 16 throttling states)
[186104.524000] ACPI: Thermal Zone [TZ0] (0 C)
[186104.976000] ACPI: AC Adapter [AC] (on-line)
[186105.456000] ACPI: Battery Slot [BAT0] (battery present)
[187681.304000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[187701.180000] ath0: no IPv6 routers present
[192861.780000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 4
[192861.784000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[192861.800000] psmouse.c: TouchPad at isa0060/serio3/input0 - driver resynched.
[194637.152000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 4
[194637.152000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[194637.172000] psmouse.c: TouchPad at isa0060/serio3/input0 - driver resynched.
[194934.980000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[194934.980000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[194934.984000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[194934.992000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[194934.992000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[194934.992000] psmouse.c: issuing reconnect request
[206937.724000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[206937.724000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[206937.728000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[206937.732000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[206937.736000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[206937.736000] psmouse.c: issuing reconnect request
[213729.472000] ACPI: PCI interrupt for device 0000:00:06.0 disabled
[213729.472000] ath_pci: driver unloaded
[213729.824000] ACPI: PCI interrupt for device 0000:00:12.0 disabled
[213733.864000] PM: suspend-to-disk mode set to 'shutdown'
[213733.864000] Disabling non-boot CPUs ...
[213733.864000] Stopping tasks ... done.
[213734.324000] Shrinking memory... \b-\b\\b|\b/\b-\b\\b|\bdone (60279 pages freed)
[213758.324000] Freed 241116 kbytes in 24.04 seconds (10.02 MB/s)
[213758.324000] Suspending console(s)
[213758.324000] ac97 0-0:ALC655: freeze
[213758.324000] ide-disk 0.0: freeze
[213759.200000] usbdev4.1_ep81: PM: suspend 0->1, parent 4-0:1.0 already 2
[213759.200000] hub 4-0:1.0: PM: suspend 2-->1
[213759.200000] hub 4-0:1.0: PM: suspend 2->1, parent usb4 already 2
[213759.200000] usbdev4.1_ep00: PM: suspend 0->1, parent usb4 already 2
[213759.200000] usb usb4: PM: suspend 2-->1
[213759.200000] usbdev3.1_ep81: PM: suspend 0->1, parent 3-0:1.0 already 2
[213759.200000] hub 3-0:1.0: PM: suspend 2-->1
[213759.200000] hub 3-0:1.0: PM: suspend 2->1, parent usb3 already 2
[213759.200000] usbdev3.1_ep00: PM: suspend 0->1, parent usb3 already 2
[213759.200000] usb usb3: PM: suspend 2-->1
[213759.200000] usbdev2.1_ep81: PM: suspend 0->1, parent 2-0:1.0 already 2
[213759.200000] hub 2-0:1.0: PM: suspend 2-->1
[213759.200000] hub 2-0:1.0: PM: suspend 2->1, parent usb2 already 2
[213759.200000] usbdev2.1_ep00: PM: suspend 0->1, parent usb2 already 2
[213759.200000] usb usb2: PM: suspend 2-->1
[213759.200000] usbdev1.1_ep81: PM: suspend 0->1, parent 1-0:1.0 already 2
[213759.200000] hub 1-0:1.0: PM: suspend 2-->1
[213759.200000] hub 1-0:1.0: PM: suspend 2->1, parent usb1 already 2
[213759.200000] usbdev1.1_ep00: PM: suspend 0->1, parent usb1 already 2
[213759.200000] usb usb1: PM: suspend 2-->1
[213759.200000] platform vesafb.0: freeze
[213759.200000] platform eisa.0: freeze
[213759.200000] i8042 i8042: freeze
[213759.648000] serial8250 serial8250: freeze
[213759.648000] pcspkr pcspkr: freeze
[213759.648000] pnp 00:08: freeze
[213759.648000] system 00:07: freeze
[213759.648000] pnp 00:06: freeze
[213759.648000] system 00:05: freeze
[213759.648000] pnp 00:04: freeze
[213759.648000] pnp 00:03: freeze
[213759.648000] i8042 kbd 00:02: freeze
[213759.648000] i8042 aux 00:01: freeze
[213759.648000] pnp 00:00: freeze
[213759.648000] pci 0000:01:00.0: freeze
[213759.648000] pci 0000:00:12.0: freeze
[213759.648000] VIA 82xx Audio 0000:00:11.5: freeze
[213759.652000] ACPI: PCI interrupt for device 0000:00:11.5 disabled
[213759.868000] VIA_IDE 0000:00:11.1: freeze
[213759.868000] pci 0000:00:11.0: freeze
[213759.868000] ehci_hcd 0000:00:10.3: freeze
[213759.868000] ACPI: Link isn't initialized
[213759.868000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[213759.884000] uhci_hcd 0000:00:10.2: freeze
[213759.884000] ACPI: Link isn't initialized
[213759.884000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[213759.900000] uhci_hcd 0000:00:10.1: freeze
[213759.900000] ACPI: Link isn't initialized
[213759.900000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[213759.916000] uhci_hcd 0000:00:10.0: freeze
[213759.916000] ACPI: Link isn't initialized
[213759.916000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[213759.932000] pci 0000:00:06.0: freeze
[213759.932000] pci 0000:00:01.0: freeze
[213759.932000] pci 0000:00:00.7: freeze
[213759.932000] pci 0000:00:00.4: freeze
[213759.932000] pci 0000:00:00.3: freeze
[213759.932000] pci 0000:00:00.2: freeze
[213759.932000] pci 0000:00:00.1: freeze
[213759.932000] agpgart-via 0000:00:00.0: freeze
[213759.948000] acpi acpi: freeze
[213759.948000] PM: snapshotting memory.
[213759.948000] platform vesafb.0: LATE freeze
[213759.948000] platform eisa.0: LATE freeze
[213759.948000] i8042 i8042: LATE freeze
[213759.948000] serial8250 serial8250: LATE freeze
[213759.948000] pcspkr pcspkr: LATE freeze
[213759.948000] pci 0000:01:00.0: LATE freeze
[213759.948000] pci 0000:00:12.0: LATE freeze
[213759.948000] VIA 82xx Audio 0000:00:11.5: LATE freeze
[213759.948000] VIA_IDE 0000:00:11.1: LATE freeze
[213759.948000] pci 0000:00:11.0: LATE freeze
[213759.948000] pci 0000:00:06.0: LATE freeze
[213759.948000] pci 0000:00:01.0: LATE freeze
[213759.948000] pci 0000:00:00.7: LATE freeze
[213759.948000] pci 0000:00:00.4: LATE freeze
[213759.948000] pci 0000:00:00.3: LATE freeze
[213759.948000] pci 0000:00:00.2: LATE freeze
[213759.948000] pci 0000:00:00.1: LATE freeze
[213759.948000] agpgart-via 0000:00:00.0: LATE freeze
[213759.948000] swsusp: critical section:
[213759.948000] swsusp: Need to copy 52500 pages
[213759.948000] swsusp: Normal pages needed: 52500 + 1024 + 14, available pages: 62169
[242745.948000] ACPI: PCI Interrupt Link [ALKA] disabled and referenced, BIOS bug
[242745.948000] ACPI: PCI Interrupt Link [ALKA] BIOS reported IRQ 0, using IRQ 20
[242745.948000] ACPI: PCI Interrupt Link [ALKB] BIOS reported IRQ 11, using IRQ 23
[242745.948000] ACPI: PCI Interrupt Link [ALKC] disabled and referenced, BIOS bug
[242745.948000] ACPI: PCI Interrupt Link [ALKC] BIOS reported IRQ 5, using IRQ 22
[242745.948000] agpgart-via 0000:00:00.0: EARLY resume
[242745.948000] pci 0000:00:00.1: EARLY resume
[242745.948000] pci 0000:00:00.2: EARLY resume
[242745.948000] pci 0000:00:00.3: EARLY resume
[242745.948000] pci 0000:00:00.4: EARLY resume
[242745.948000] pci 0000:00:00.7: EARLY resume
[242745.948000] pci 0000:00:01.0: EARLY resume
[242745.948000] pci 0000:00:06.0: EARLY resume
[242745.948000] uhci_hcd 0000:00:10.0: EARLY resume
[242745.948000] uhci_hcd 0000:00:10.1: EARLY resume
[242745.948000] uhci_hcd 0000:00:10.2: EARLY resume
[242745.948000] ehci_hcd 0000:00:10.3: EARLY resume
[242745.948000] pci 0000:00:11.0: EARLY resume
[242745.948000] VIA_IDE 0000:00:11.1: EARLY resume
[242745.948000] VIA 82xx Audio 0000:00:11.5: EARLY resume
[242745.948000] pci 0000:00:12.0: EARLY resume
[242745.948000] pci 0000:01:00.0: EARLY resume
[242745.948000] pcspkr pcspkr: EARLY resume
[242745.948000] serial8250 serial8250: EARLY resume
[242745.948000] i8042 i8042: EARLY resume
[242745.948000] platform eisa.0: EARLY resume
[242745.948000] platform vesafb.0: EARLY resume
[242745.948000] PM: Image restored successfully.
[242745.964000] acpi acpi: resuming
[242745.968000] agpgart-via 0000:00:00.0: resuming
[242745.984000] pci 0000:00:00.1: resuming
[242745.984000] pci 0000:00:00.2: resuming
[242745.984000] pci 0000:00:00.3: resuming
[242745.984000] pci 0000:00:00.4: resuming
[242745.984000] pci 0000:00:00.7: resuming
[242745.984000] pci 0000:00:01.0: resuming
[242745.984000] PCI: Setting latency timer of device 0000:00:01.0 to 64
[242745.984000] pci 0000:00:06.0: resuming
[242745.984000] PM: Writing back config space on device 0000:00:06.0 at offset 3 (was 0, writing a820)
[242745.984000] PM: Writing back config space on device 0000:00:06.0 at offset 1 (was 2900000, writing 2900002)
[242745.984000] uhci_hcd 0000:00:10.0: resuming
[242746.000000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[242746.000000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[242746.000000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[242746.000000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[242746.000000] ACPI: Invalid IRQ link routing entry
[242746.000000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[242746.000000] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI - using IRQ 11
[242746.000000] usb usb1: root hub lost power or was reset
[242746.000000] uhci_hcd 0000:00:10.1: resuming
[242746.016000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[242746.016000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[242746.016000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[242746.016000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[242746.016000] ACPI: Invalid IRQ link routing entry
[242746.016000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[242746.016000] ACPI: PCI Interrupt 0000:00:10.1[B]: no GSI - using IRQ 7
[242746.016000] usb usb2: root hub lost power or was reset
[242746.016000] uhci_hcd 0000:00:10.2: resuming
[242746.032000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[242746.032000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[242746.032000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[242746.032000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[242746.032000] ACPI: Invalid IRQ link routing entry
[242746.032000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[242746.032000] ACPI: PCI Interrupt 0000:00:10.2[C]: no GSI - using IRQ 5
[242746.032000] usb usb3: root hub lost power or was reset
[242746.032000] ehci_hcd 0000:00:10.3: resuming
[242746.048000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[242746.048000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[242746.048000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[242746.048000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[242746.048000] ACPI: Invalid IRQ link routing entry
[242746.048000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[242746.048000] ACPI: PCI Interrupt 0000:00:10.3[D]: no GSI - using IRQ 10
[242746.048000] usb usb4: root hub lost power or was reset
[242746.048000] pci 0000:00:11.0: resuming
[242746.048000] VIA_IDE 0000:00:11.1: resuming
[242746.048000] ACPI: PCI Interrupt 0000:00:11.1[A] -> Link [ALKA] -> GSI 20 (level, low) -> IRQ 17
[242746.048000] VIA 82xx Audio 0000:00:11.5: resuming
[242746.064000] ACPI: PCI Interrupt 0000:00:11.5[C] -> Link [ALKC] -> GSI 22 (level, low) -> IRQ 19
[242746.064000] PCI: Setting latency timer of device 0000:00:11.5 to 64
[242746.064000] pci 0000:00:12.0: resuming
[242746.064000] PM: Writing back config space on device 0000:00:12.0 at offset 1 (was 2100087, writing 2100083)
[242746.064000] pci 0000:01:00.0: resuming
[242746.564000] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 20
[242746.564000] pnp 00:00: resuming
[242746.564000] i8042 aux 00:01: resuming
[242746.564000] pnp: Failed to activate device 00:01.
[242746.564000] i8042 kbd 00:02: resuming
[242746.564000] pnp: Failed to activate device 00:02.
[242746.564000] pnp 00:03: resuming
[242746.564000] pnp 00:04: resuming
[242746.564000] system 00:05: resuming
[242746.564000] pnp 00:06: resuming
[242746.564000] system 00:07: resuming
[242746.564000] pnp 00:08: resuming
[242746.564000] pcspkr pcspkr: resuming
[242746.564000] serial8250 serial8250: resuming
[242746.564000] i8042 i8042: resuming
[242746.572000] atkbd serio0: resuming
[242746.584000] platform eisa.0: resuming
[242746.584000] serio serio1: resuming
[242746.584000] serio serio2: resuming
[242746.584000] psmouse serio3: resuming
[242747.260000] serio serio4: resuming
[242747.260000] platform vesafb.0: resuming
[242747.260000] usb usb1: resuming
[242747.300000] usb usb2: resuming
[242747.340000] usb usb3: resuming
[242747.380000] usb usb4: resuming
[242747.400000] ide-disk 0.0: resuming
[242747.436000] ac97 0-0:ALC655: resuming
[242747.436000] Restarting tasks ... done.
[242747.440000] Enabling non-boot CPUs ...
[242784.748000] ath_pci: 0.9.4.5 (0.9.3.1)
[242784.748000] ACPI: PCI Interrupt 0000:00:06.0[A] -> GSI 19 (level, low) -> IRQ 18
[242785.332000] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
[242785.332000] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[242785.332000] wifi0: H/W encryption support: WEP AES AES_CCM TKIP
[242785.332000] wifi0: mac 7.8 phy 4.5 radio 5.6
[242785.332000] wifi0: Use hw queue 1 for WME_AC_BE traffic
[242785.332000] wifi0: Use hw queue 0 for WME_AC_BK traffic
[242785.332000] wifi0: Use hw queue 2 for WME_AC_VI traffic
[242785.332000] wifi0: Use hw queue 3 for WME_AC_VO traffic
[242785.332000] wifi0: Use hw queue 8 for CAB traffic
[242785.332000] wifi0: Use hw queue 9 for beacons
[242785.336000] wifi0: Atheros 5212: mem=0x20000000, irq=18
[242786.576000] via-rhine.c:v1.10-LK1.4.2 Sept-11-2006 Written by Donald Becker
[242786.580000] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [ALKB] -> GSI 23 (level, low) -> IRQ 16
[242786.584000] eth0: VIA Rhine II at 0x1e200, 00:40:d0:8c:b7:37, IRQ 16.
[242786.584000] eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.
[242789.200000] eth0: link down
[242789.204000] ADDRCONF(NETDEV_UP): eth0: link is not ready
[242799.068000] input: Power Button (FF) as /class/input/input19
[242799.068000] ACPI: Power Button (FF) [PWRF]
[242799.068000] input: Lid Switch as /class/input/input20
[242799.068000] ACPI: Lid Switch [LID]
[242799.072000] input: Sleep Button (CM) as /class/input/input21
[242799.072000] ACPI: Sleep Button (CM) [SBTN]
[242801.716000] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
[242801.716000] ACPI: Processor [CPU0] (supports 16 throttling states)
[242802.176000] ACPI: Thermal Zone [TZ0] (0 C)
[242802.500000] ACPI: AC Adapter [AC] (on-line)
[242803.072000] ACPI: Battery Slot [BAT0] (battery present)
[242880.960000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[242900.748000] ath0: no IPv6 routers present
[245061.432000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[245061.432000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[245061.436000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[245061.436000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[245061.440000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[245061.440000] psmouse.c: issuing reconnect request
[251263.576000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 4
[251263.576000] psmouse.c: TouchPad at isa0060/serio3/input0 lost sync at byte 1
[251263.592000] psmouse.c: TouchPad at isa0060/serio3/input0 - driver resynched.
[292731.152000] ACPI: PCI interrupt for device 0000:00:06.0 disabled
[292731.152000] ath_pci: driver unloaded
[292731.408000] ACPI: PCI interrupt for device 0000:00:12.0 disabled
[292735.976000] PM: suspend-to-disk mode set to 'shutdown'
[292735.976000] Disabling non-boot CPUs ...
[292735.976000] Stopping tasks ... done.
[292736.704000] Shrinking memory... \b-\b\\b|\b/\b-\b\\bdone (57617 pages freed)
[292771.276000] Freed 230468 kbytes in 34.60 seconds (6.66 MB/s)
[292771.276000] Suspending console(s)
[292771.276000] ac97 0-0:ALC655: freeze
[292771.276000] ide-disk 0.0: freeze
[292772.208000] usbdev4.1_ep81: PM: suspend 0->1, parent 4-0:1.0 already 2
[292772.208000] hub 4-0:1.0: PM: suspend 2-->1
[292772.208000] hub 4-0:1.0: PM: suspend 2->1, parent usb4 already 2
[292772.208000] usbdev4.1_ep00: PM: suspend 0->1, parent usb4 already 2
[292772.208000] usb usb4: PM: suspend 2-->1
[292772.208000] usbdev3.1_ep81: PM: suspend 0->1, parent 3-0:1.0 already 2
[292772.208000] hub 3-0:1.0: PM: suspend 2-->1
[292772.208000] hub 3-0:1.0: PM: suspend 2->1, parent usb3 already 2
[292772.208000] usbdev3.1_ep00: PM: suspend 0->1, parent usb3 already 2
[292772.208000] usb usb3: PM: suspend 2-->1
[292772.208000] usbdev2.1_ep81: PM: suspend 0->1, parent 2-0:1.0 already 2
[292772.208000] hub 2-0:1.0: PM: suspend 2-->1
[292772.208000] hub 2-0:1.0: PM: suspend 2->1, parent usb2 already 2
[292772.208000] usbdev2.1_ep00: PM: suspend 0->1, parent usb2 already 2
[292772.208000] usb usb2: PM: suspend 2-->1
[292772.208000] usbdev1.1_ep81: PM: suspend 0->1, parent 1-0:1.0 already 2
[292772.208000] hub 1-0:1.0: PM: suspend 2-->1
[292772.208000] hub 1-0:1.0: PM: suspend 2->1, parent usb1 already 2
[292772.208000] usbdev1.1_ep00: PM: suspend 0->1, parent usb1 already 2
[292772.208000] usb usb1: PM: suspend 2-->1
[292772.208000] platform vesafb.0: freeze
[292772.208000] platform eisa.0: freeze
[292772.208000] i8042 i8042: freeze
[292772.624000] serial8250 serial8250: freeze
[292772.624000] pcspkr pcspkr: freeze
[292772.624000] pnp 00:08: freeze
[292772.624000] system 00:07: freeze
[292772.624000] pnp 00:06: freeze
[292772.624000] system 00:05: freeze
[292772.624000] pnp 00:04: freeze
[292772.624000] pnp 00:03: freeze
[292772.624000] i8042 kbd 00:02: freeze
[292772.624000] i8042 aux 00:01: freeze
[292772.624000] pnp 00:00: freeze
[292772.624000] pci 0000:01:00.0: freeze
[292772.624000] pci 0000:00:12.0: freeze
[292772.624000] VIA 82xx Audio 0000:00:11.5: freeze
[292772.624000] ACPI: PCI interrupt for device 0000:00:11.5 disabled
[292772.840000] VIA_IDE 0000:00:11.1: freeze
[292772.840000] pci 0000:00:11.0: freeze
[292772.840000] ehci_hcd 0000:00:10.3: freeze
[292772.840000] ACPI: Link isn't initialized
[292772.840000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[292772.856000] uhci_hcd 0000:00:10.2: freeze
[292772.856000] ACPI: Link isn't initialized
[292772.856000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[292772.872000] uhci_hcd 0000:00:10.1: freeze
[292772.872000] ACPI: Link isn't initialized
[292772.872000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[292772.888000] uhci_hcd 0000:00:10.0: freeze
[292772.888000] ACPI: Link isn't initialized
[292772.888000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[292772.904000] pci 0000:00:06.0: freeze
[292772.904000] pci 0000:00:01.0: freeze
[292772.904000] pci 0000:00:00.7: freeze
[292772.904000] pci 0000:00:00.4: freeze
[292772.904000] pci 0000:00:00.3: freeze
[292772.904000] pci 0000:00:00.2: freeze
[292772.904000] pci 0000:00:00.1: freeze
[292772.904000] agpgart-via 0000:00:00.0: freeze
[292772.920000] acpi acpi: freeze
[292772.920000] PM: snapshotting memory.
[292772.920000] platform vesafb.0: LATE freeze
[292772.920000] platform eisa.0: LATE freeze
[292772.920000] i8042 i8042: LATE freeze
[292772.920000] serial8250 serial8250: LATE freeze
[292772.920000] pcspkr pcspkr: LATE freeze
[292772.920000] pci 0000:01:00.0: LATE freeze
[292772.920000] pci 0000:00:12.0: LATE freeze
[292772.920000] VIA 82xx Audio 0000:00:11.5: LATE freeze
[292772.920000] VIA_IDE 0000:00:11.1: LATE freeze
[292772.920000] pci 0000:00:11.0: LATE freeze
[292772.920000] pci 0000:00:06.0: LATE freeze
[292772.920000] pci 0000:00:01.0: LATE freeze
[292772.920000] pci 0000:00:00.7: LATE freeze
[292772.920000] pci 0000:00:00.4: LATE freeze
[292772.920000] pci 0000:00:00.3: LATE freeze
[292772.920000] pci 0000:00:00.2: LATE freeze
[292772.920000] pci 0000:00:00.1: LATE freeze
[292772.920000] agpgart-via 0000:00:00.0: LATE freeze
[292772.920000] swsusp: critical section:
[292772.920000] swsusp: Need to copy 55245 pages
[292772.920000] swsusp: Normal pages needed: 55245 + 1024 + 14, available pages: 59424
[329434.920000] ACPI: PCI Interrupt Link [ALKA] disabled and referenced, BIOS bug
[329434.920000] ACPI: PCI Interrupt Link [ALKA] BIOS reported IRQ 0, using IRQ 20
[329434.920000] ACPI: PCI Interrupt Link [ALKB] BIOS reported IRQ 11, using IRQ 23
[329434.920000] ACPI: PCI Interrupt Link [ALKC] disabled and referenced, BIOS bug
[329434.920000] ACPI: PCI Interrupt Link [ALKC] BIOS reported IRQ 5, using IRQ 22
[329434.920000] agpgart-via 0000:00:00.0: EARLY resume
[329434.920000] pci 0000:00:00.1: EARLY resume
[329434.920000] pci 0000:00:00.2: EARLY resume
[329434.920000] pci 0000:00:00.3: EARLY resume
[329434.920000] pci 0000:00:00.4: EARLY resume
[329434.920000] pci 0000:00:00.7: EARLY resume
[329434.920000] pci 0000:00:01.0: EARLY resume
[329434.920000] pci 0000:00:06.0: EARLY resume
[329434.920000] uhci_hcd 0000:00:10.0: EARLY resume
[329434.920000] uhci_hcd 0000:00:10.1: EARLY resume
[329434.920000] uhci_hcd 0000:00:10.2: EARLY resume
[329434.920000] ehci_hcd 0000:00:10.3: EARLY resume
[329434.920000] pci 0000:00:11.0: EARLY resume
[329434.920000] VIA_IDE 0000:00:11.1: EARLY resume
[329434.920000] VIA 82xx Audio 0000:00:11.5: EARLY resume
[329434.920000] pci 0000:00:12.0: EARLY resume
[329434.920000] pci 0000:01:00.0: EARLY resume
[329434.920000] pcspkr pcspkr: EARLY resume
[329434.920000] serial8250 serial8250: EARLY resume
[329434.920000] i8042 i8042: EARLY resume
[329434.920000] platform eisa.0: EARLY resume
[329434.920000] platform vesafb.0: EARLY resume
[329434.920000] PM: Image restored successfully.
[329434.936000] acpi acpi: resuming
[329434.940000] agpgart-via 0000:00:00.0: resuming
[329434.956000] pci 0000:00:00.1: resuming
[329434.956000] pci 0000:00:00.2: resuming
[329434.956000] pci 0000:00:00.3: resuming
[329434.956000] pci 0000:00:00.4: resuming
[329434.956000] pci 0000:00:00.7: resuming
[329434.956000] pci 0000:00:01.0: resuming
[329434.956000] PCI: Setting latency timer of device 0000:00:01.0 to 64
[329434.956000] pci 0000:00:06.0: resuming
[329434.956000] PM: Writing back config space on device 0000:00:06.0 at offset 3 (was 0, writing a820)
[329434.956000] PM: Writing back config space on device 0000:00:06.0 at offset 1 (was 2900000, writing 2900002)
[329434.956000] uhci_hcd 0000:00:10.0: resuming
[329434.972000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[329434.972000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[329434.972000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[329434.972000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[329434.972000] ACPI: Invalid IRQ link routing entry
[329434.972000] ACPI: Unable to derive IRQ for device 0000:00:10.0
[329434.972000] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI - using IRQ 11
[329434.972000] usb usb1: root hub lost power or was reset
[329434.972000] uhci_hcd 0000:00:10.1: resuming
[329434.988000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[329434.988000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[329434.988000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[329434.988000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[329434.988000] ACPI: Invalid IRQ link routing entry
[329434.988000] ACPI: Unable to derive IRQ for device 0000:00:10.1
[329434.988000] ACPI: PCI Interrupt 0000:00:10.1[B]: no GSI - using IRQ 7
[329434.988000] usb usb2: root hub lost power or was reset
[329434.988000] uhci_hcd 0000:00:10.2: resuming
[329435.004000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[329435.004000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[329435.004000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[329435.004000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[329435.004000] ACPI: Invalid IRQ link routing entry
[329435.004000] ACPI: Unable to derive IRQ for device 0000:00:10.2
[329435.004000] ACPI: PCI Interrupt 0000:00:10.2[C]: no GSI - using IRQ 5
[329435.004000] usb usb3: root hub lost power or was reset
[329435.004000] ehci_hcd 0000:00:10.3: resuming
[329435.020000] ACPI Error (uteval-0269): Return object type is incorrect [\_SB_.PCI0.ALKD._CRS] (Node da6469f0), AE_TYPE
[329435.020000] ACPI Error (uteval-0275): Type returned from _CRS was incorrect: Integer, expected Btypes: 4 [20060707]
[329435.020000] ACPI Exception (pci_link-0278): AE_TYPE, Evaluating _CRS [20060707]
[329435.020000] ACPI: Unable to set IRQ for PCI Interrupt Link [ALKD]. Try pci=noacpi or acpi=off
[329435.020000] ACPI: Invalid IRQ link routing entry
[329435.020000] ACPI: Unable to derive IRQ for device 0000:00:10.3
[329435.020000] ACPI: PCI Interrupt 0000:00:10.3[D]: no GSI - using IRQ 10
[329435.020000] usb usb4: root hub lost power or was reset
[329435.020000] pci 0000:00:11.0: resuming
[329435.020000] VIA_IDE 0000:00:11.1: resuming
[329435.020000] ACPI: PCI Interrupt 0000:00:11.1[A] -> Link [ALKA] -> GSI 20 (level, low) -> IRQ 17
[329435.020000] VIA 82xx Audio 0000:00:11.5: resuming
[329435.036000] ACPI: PCI Interrupt 0000:00:11.5[C] -> Link [ALKC] -> GSI 22 (level, low) -> IRQ 19
[329435.036000] PCI: Setting latency timer of device 0000:00:11.5 to 64
[329435.036000] pci 0000:00:12.0: resuming
[329435.036000] PM: Writing back config space on device 0000:00:12.0 at offset 1 (was 2100087, writing 2100083)
[329435.036000] pci 0000:01:00.0: resuming
[329435.536000] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 20
[329435.536000] pnp 00:00: resuming
[329435.536000] i8042 aux 00:01: resuming
[329435.536000] pnp: Failed to activate device 00:01.
[329435.536000] i8042 kbd 00:02: resuming
[329435.536000] pnp: Failed to activate device 00:02.
[329435.536000] pnp 00:03: resuming
[329435.536000] pnp 00:04: resuming
[329435.536000] system 00:05: resuming
[329435.536000] pnp 00:06: resuming
[329435.536000] system 00:07: resuming
[329435.536000] pnp 00:08: resuming
[329435.536000] pcspkr pcspkr: resuming
[329435.536000] serial8250 serial8250: resuming
[329435.536000] i8042 i8042: resuming
[329435.544000] atkbd serio0: resuming
[329435.556000] platform eisa.0: resuming
[329435.556000] serio serio1: resuming
[329435.556000] serio serio2: resuming
[329435.556000] psmouse serio3: resuming
[329436.192000] serio serio4: resuming
[329436.192000] platform vesafb.0: resuming
[329436.192000] usb usb1: resuming
[329436.232000] usb usb2: resuming
[329436.272000] usb usb3: resuming
[329436.312000] usb usb4: resuming
[329436.332000] ide-disk 0.0: resuming
[329436.368000] ac97 0-0:ALC655: resuming
[329436.368000] Restarting tasks ... done.
[329436.372000] Enabling non-boot CPUs ...
[329471.292000] ath_pci: 0.9.4.5 (0.9.3.1)
[329471.292000] ACPI: PCI Interrupt 0000:00:06.0[A] -> GSI 19 (level, low) -> IRQ 18
[329471.872000] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
[329471.872000] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[329471.872000] wifi0: H/W encryption support: WEP AES AES_CCM TKIP
[329471.872000] wifi0: mac 7.8 phy 4.5 radio 5.6
[329471.872000] wifi0: Use hw queue 1 for WME_AC_BE traffic
[329471.872000] wifi0: Use hw queue 0 for WME_AC_BK traffic
[329471.872000] wifi0: Use hw queue 2 for WME_AC_VI traffic
[329471.872000] wifi0: Use hw queue 3 for WME_AC_VO traffic
[329471.872000] wifi0: Use hw queue 8 for CAB traffic
[329471.872000] wifi0: Use hw queue 9 for beacons
[329471.872000] wifi0: Atheros 5212: mem=0x20000000, irq=18
[329472.664000] via-rhine.c:v1.10-LK1.4.2 Sept-11-2006 Written by Donald Becker
[329472.664000] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [ALKB] -> GSI 23 (level, low) -> IRQ 16
[329472.668000] eth0: VIA Rhine II at 0x1e200, 00:40:d0:8c:b7:37, IRQ 16.
[329472.672000] eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.
[329478.368000] eth0: link down
[329478.368000] ADDRCONF(NETDEV_UP): eth0: link is not ready
[329489.272000] ath0: no IPv6 routers present
[329489.656000] input: Power Button (FF) as /class/input/input22
[329489.656000] ACPI: Power Button (FF) [PWRF]
[329489.656000] input: Lid Switch as /class/input/input23
[329489.656000] ACPI: Lid Switch [LID]
[329489.656000] input: Sleep Button (CM) as /class/input/input24
[329489.656000] ACPI: Sleep Button (CM) [SBTN]
[329492.088000] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
[329492.088000] ACPI: Processor [CPU0] (supports 16 throttling states)
[329492.572000] ACPI: Thermal Zone [TZ0] (0 C)
[329493.216000] ACPI: AC Adapter [AC] (on-line)
[329493.916000] ACPI: Battery Slot [BAT0] (battery present)
[329785.608000] ADDRCONF(NETDEV_CHANGE): ath0: link becomes ready
[329803.832000] ath0: no IPv6 routers present
[-- Attachment #4: less_proc_interrupts_ACPI_on.txt --]
[-- Type: text/plain, Size: 577 bytes --]
CPU0
0: 34597 XT-PIC-XT timer
1: 287 XT-PIC-XT i8042
2: 0 XT-PIC-XT cascade
5: 0 XT-PIC-XT uhci_hcd:usb3, VIA8233
7: 0 XT-PIC-XT uhci_hcd:usb2
8: 3 XT-PIC-XT rtc
10: 0 XT-PIC-XT ehci_hcd:usb4
11: 5456 XT-PIC-XT uhci_hcd:usb1, eth0, via@pci:0000:01:00.0
12: 1363 XT-PIC-XT i8042
14: 12733 XT-PIC-XT ide0
NMI: 364
LOC: 34471
ERR: 0
MIS: 0
[-- Attachment #5: less_proc_interrupts_ACPI_off.txt --]
[-- Type: text/plain, Size: 721 bytes --]
CPU0
0: 35866764 IO-APIC-edge timer
1: 156905 IO-APIC-edge i8042
5: 0 IO-APIC-fasteoi uhci_hcd:usb3
7: 0 IO-APIC-fasteoi uhci_hcd:usb2
8: 9 IO-APIC-edge rtc
9: 87398 IO-APIC-fasteoi acpi
10: 0 IO-APIC-fasteoi ehci_hcd:usb4
11: 0 IO-APIC-fasteoi uhci_hcd:usb1
12: 8933564 IO-APIC-edge i8042
14: 1007473 IO-APIC-edge ide0
16: 0 IO-APIC-fasteoi eth0
18: 29378962 IO-APIC-fasteoi wifi0
19: 587878 IO-APIC-fasteoi VIA8233
20: 777705 IO-APIC-fasteoi via@pci:0000:01:00.0
NMI: 0
LOC: 35866579
ERR: 0
MIS: 0
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-08-17 10:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-11 13:34 ACPI battery cleanup Alexey Starikovskiy
2007-08-15 4:44 ` Len Brown
2007-08-15 9:19 ` Packard Bell DSDT issue raphaello-mouse
2007-08-17 10:27 ` raphaello-mouse
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).