diff options
author | Bob Moore <robert.moore@intel.com> | 2009-02-18 01:24:50 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-03-26 16:38:24 -0400 |
commit | 227243a04d645377d09eda0dc8501e0d9c26ab89 (patch) | |
tree | a709b9b495025dfd3d93088fe9a6be1641ed7c14 /drivers | |
parent | c520abadbc56a2740021910d2c6412f826a10059 (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')
-rw-r--r-- | drivers/acpi/acpica/hwregs.c | 17 |
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); |