Bug#258061: kernel-source-2.6.7: ACPI initialization hangs on Compaq Presario 2100
Package: kernel-source-2.6.7
Version: 2.6.7-2
Severity: important
Tags: patch
Hi,
I've sent a message to debian-kernel with no success, so I'm trying to
report a bug about this problem I've faced. In my Compaq Presario 2100,
when I boot the system with "acpi=on" as one of my kernel parameters,
the system hangs when trying to initialize ACPI (it has happened to all
2.6 versions I've tried). I've looked into the web to find out something
to fix this issue and I found a tiny patch that solved the problem. The
patch basically disables APIC timer before ACPI initialization and
re-enables it when ACPI initialization finishes. Below I write the patch
for your knowledgement.
Hope this helps solving the problem!
Thanks a lot,
Bruno.
diff -Bru linux-2.6.0-test8/arch/i386/kernel/apic.c
patched/arch/i386/kernel/apic.c
--- linux-2.6.0-test8/arch/i386/kernel/apic.c 2003-10-18
05:43:36.000000000 +0800
+++ patched/arch/i386/kernel/apic.c 2003-10-30 23:17:50.000000000
+0800
@@ -836,8 +836,8 @@
{
unsigned int lvtt1_value, tmp_value;
- lvtt1_value = SET_APIC_TIMER_BASE(APIC_TIMER_BASE_DIV) |
- APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR;
+ lvtt1_value = APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR;
+
apic_write_around(APIC_LVTT, lvtt1_value);
/*
diff -Bru linux-2.6.0-test8/drivers/acpi/bus.c
patched/drivers/acpi/bus.c
--- linux-2.6.0-test8/drivers/acpi/bus.c 2003-10-18
05:43:19.000000000 +0800
+++ patched/drivers/acpi/bus.c 2003-10-30 23:20:32.000000000 +0800
@@ -589,6 +589,7 @@
ACPI_FUNCTION_TRACE("acpi_bus_init");
+ disable_APIC_timer();
status = acpi_initialize_subsystem();
if (ACPI_FAILURE(status)) {
printk(KERN_ERR PREFIX "Unable to initialize the ACPI
Interpreter\n");
@@ -643,6 +644,7 @@
goto error1;
}
+ enable_APIC_timer();
printk(KERN_INFO PREFIX "Interpreter enabled\n");
/*
@@ -672,6 +674,7 @@
error1:
acpi_terminate();
error0:
+ enable_APIC_timer();
return_VALUE(-ENODEV);
}
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.7-k7
Locale: LANG=en_US, LC_CTYPE=en_US
Versions of packages kernel-source-2.6.7 depends on:
ii binutils 2.14.90.0.7-8 The GNU assembler, linker and bina
ii bzip2 1.0.2-1 A high-quality block-sorting file
ii coreutils [fileutils] 5.0.91-2 The GNU core utilities
ii fileutils 5.0.91-2 The GNU file management utilities
-- no debconf information
Reply to: