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

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: