Hi, All The following are several patches for EC driver. Patch 1/4: Don't issue the burst disable command if EC exits the burst mode It is meaningless that OS continues to issue the burst disable command if the EC already exists the burst mode. So if EC already exists the burst mode, don't issue burst disable command again. If OS continues to issue the burst disable command, there exist some meaningless ACPI interrupts. Patch 2/4: Simplify EC working flowchart and always enable EC GPE In current kernel the EC driver will be started in polling mode. When the EC GPE interrupt is triggered, it will be switched to EC GPE interrupt mode. And when there is no EC GPE confirmation for some EC transaction on some broken laptops,the EC driver will be switched to polling mode and EC GPE will be disabled. In such case the EC notification event will be lost. For example: Bug 11428/8459 http://bugzilla.kernel.org/show_bug.cgi?id=11428 But if the EC GPE is still enable although switching to polling mode, the EC notification event won't be lost. In the patch the EC default work mode will be interrupt-driven while EC driver is started. Only when there is no EC GPE interrupt for some EC transactions, it will be switched to polling mode. But EC GPE is still enabled. Patch 3/4: Add some delay in EC GPE handler to workaround EC GPE storm On some broken BIOS there exists the EC GPE interrupt storm. It means that there exist too many ACPI interrupts related with EC GPE. If the EC GPE is still enabled, it will cause that keystrokes will be lost and the system can't work well. For example: http://bugzilla.kernel.org/show_bug.cgi?id=9998 If the EC GPE is disabled after EC GPE storm happens, some system will be unstable. http://bugzilla.kernel.org/show_bug.cgi?id=10724 And on some laptops with "incorrect EC status before EC GPE arrives" OS will report the incorrect thermal temperature if EC GPE is disabled while EC GPE storm happens. http://bugzilla.kernel.org/show_bug.cgi?id=11309 This patch is to add some delay in EC GPE handler on some broken BIOS.Only when more than five interrupts happen in the same jiffies and EC status are the same, OS will add some delay in the EC GPE handler. If the same issue still happens after adding delay,the delay time will be increased.But the max delay time is ten microseconds. In such case the EC GPE is still enabled although EC GPE storm happens. And EC driver will continue to work in interrupt-driven mode. But the number of EC GPE interrupts can be reduced very significantly. I know that this method is ugly. Some delay is added in the EC GPE handler(interrupt context). But no delay is added on the normal laptops. It only workarounds the broken laptops. Patch 4/4: Cleanup some useless code in EC driver If the above three patches are applied, there exist some useless code. Cleanup it. Thanks for the comments. Yakui -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html