Patch disabling ACPI C3

From ThinkWiki
Jump to: navigation, search

On some Thinkpads there is a problem with the ipw2100 wireless LAN driver when C3 is enabled. It results in frequent firmware restarts due to data corruption. If you see this problem frequently and want to disable C3 but still use C2 and the thermal management, you can apply this patch to the file /usr/src/linux/drivers/acpi/processor.c.
APPLY THIS PATCH ONLY IF YOUR SYSLOG REPORTS DRIVER RESTARTS AND FIRMWARE RELOADS ALL THE TIME!
This patch causes slightly shorter battery life.

NOTE!
A non-invasive (no patch needed) method for disabling C3 state is described in Problem with high pitch noises.

If you don't want to patch your kernel, sacrifice C3 entirely and/or use WLAN mainly on AC then you can alternatively add rules to modules.conf to unload the acpi processor module as long as ipw2100 is loaded.

--- processor.c.orig    Wed Mar  3 14:10:42 2004
+++ processor.c Thu Mar  4 17:56:02 2004
@@ -1598,6 +1598,11 @@
                        "No bus mastering arbitration control\n"));
 
        /*
+        * Hack: Disable bus master controller to disable C3 power transitions
+        */
+       pr->flags.bm_control = 0;
+
+       /*
         * Evalute the processor object.  Note that it is common on SMP to
         * have the first (boot) processor with a valid PBLK address while
         * all others have a NULL address.



Is this really needed after ipw2100 version 0.61?