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

ACPI hangs kernel boot



Hi,

I have a Compaq Presario 2100 laptop and since the earlier 2.6.0
kernel the boot sequence hangs when trying to initialize ACPI. At that
time, somebody sent me a patch that solved the problem. Since then,
I've been checking whether the newest kernel-image-xxx package has
added this patch or something else that solved the problem. So far, it
seems nothing has been done.

The problem is with the APIC timer, and the patch I'm sending attached
disables APIC timer while initializing ACPI and re-enables again after
ACPI initialization finishes. Could you please analyse this patch to
figure out whether it could be included on the official debian kernel
releases?

Thanks a lot,

Bruno.
-- 
Bruno Diniz
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);
 }
 

Reply to: