ACPICA: GPE detect optimization - ignore unused GPE registers
authorLin Ming <ming.m.lin@intel.com>
Mon, 14 Feb 2011 07:29:34 +0000 (15:29 +0800)
committerLen Brown <len.brown@intel.com>
Thu, 3 Mar 2011 00:38:03 +0000 (19:38 -0500)
This optimization will simply ignore GPE registers that contain
no enabled GPEs - there is no need to read the register.
ACPICA bugzilla 884.

http://www.acpica.org/bugzilla/show_bug.cgi?id=884

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/acpica/evgpe.c

index 14988a8..67d44ef 100644 (file)
@@ -373,6 +373,15 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
 
                        gpe_register_info = &gpe_block->register_info[i];
 
+                       /*
+                        * Optimization: If there are no GPEs enabled within this
+                        * register, we can safely ignore the entire register.
+                        */
+                       if (!(gpe_register_info->enable_for_run |
+                             gpe_register_info->enable_for_wake)) {
+                               continue;
+                       }
+
                        /* Read the Status Register */
 
                        status =