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

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: