Re: Bug#258061: marked as done ([PATCH] ACPI initialization hangs on Compaq Presario 2100)
On Wed, Aug 25, 2004 at 01:03:13PM -0700, Debian Bug Tracking System wrote:
>
> 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);
> }
>
BTW, there is exactly the same problem with 2.4 series (at least 2.4.25 which was
available when I did a few tests with this kind of laptops).
Sorry, I did not point this soon...
--
Francesco P. Lovergine
Reply to: