aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2009-02-18 01:24:50 -0500
committerLen Brown <len.brown@intel.com>2009-03-26 16:38:24 -0400
commit227243a04d645377d09eda0dc8501e0d9c26ab89 (patch)
treea709b9b495025dfd3d93088fe9a6be1641ed7c14 /drivers/acpi/acpica
parentc520abadbc56a2740021910d2c6412f826a10059 (diff)
ACPICA: Remove extra write for acpi_hw_clear_acpi_status
This function was writing an optional PM1B status register twice. The existing call to the low-level acpi_hw_register_write automatically handles a possibly split PM1 A/B register. ACPICA BZ 751. http://www.acpica.org/bugzilla/show_bug.cgi?id=751 Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/acpica')
-rw-r--r--drivers/acpi/acpica/hwregs.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/acpi/acpica/hwregs.c b/drivers/acpi/acpica/hwregs.c
index 41f1173e02c2..9c8162128c2b 100644
--- a/drivers/acpi/acpica/hwregs.c
+++ b/drivers/acpi/acpica/hwregs.c
@@ -71,7 +71,6 @@ acpi_hw_write_multiple(u32 value,
71 * RETURN: Status 71 * RETURN: Status
72 * 72 *
73 * DESCRIPTION: Clears all fixed and general purpose status bits 73 * DESCRIPTION: Clears all fixed and general purpose status bits
74 * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
75 * 74 *
76 ******************************************************************************/ 75 ******************************************************************************/
77 76
@@ -82,13 +81,13 @@ acpi_status acpi_hw_clear_acpi_status(void)
82 81
83 ACPI_FUNCTION_TRACE(hw_clear_acpi_status); 82 ACPI_FUNCTION_TRACE(hw_clear_acpi_status);
84 83
85 ACPI_DEBUG_PRINT((ACPI_DB_IO, "About to write %04X to %04X\n", 84 ACPI_DEBUG_PRINT((ACPI_DB_IO, "About to write %04X to %0llX\n",
86 ACPI_BITMASK_ALL_FIXED_STATUS, 85 ACPI_BITMASK_ALL_FIXED_STATUS,
87 (u16) acpi_gbl_xpm1a_status.address)); 86 acpi_gbl_xpm1a_status.address));
88 87
89 lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock); 88 lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock);
90 89
91 /* Clear the fixed events */ 90 /* Clear the fixed events in PM1 A/B */
92 91
93 status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS, 92 status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS,
94 ACPI_BITMASK_ALL_FIXED_STATUS); 93 ACPI_BITMASK_ALL_FIXED_STATUS);
@@ -96,16 +95,6 @@ acpi_status acpi_hw_clear_acpi_status(void)
96 goto unlock_and_exit; 95 goto unlock_and_exit;
97 } 96 }
98 97
99 /* Write PM1B register if present */
100
101 if (acpi_gbl_xpm1b_status.address) {
102 status = acpi_write(ACPI_BITMASK_ALL_FIXED_STATUS,
103 &acpi_gbl_xpm1b_status);
104 if (ACPI_FAILURE(status)) {
105 goto unlock_and_exit;
106 }
107 }
108
109 /* Clear the GPE Bits in all GPE registers in all GPE blocks */ 98 /* Clear the GPE Bits in all GPE registers in all GPE blocks */
110 99
111 status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL); 100 status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL);