aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpica/evgpe.c5
-rw-r--r--drivers/acpi/acpica/hwgpe.c11
-rw-r--r--include/acpi/actypes.h4
3 files changed, 7 insertions, 13 deletions
diff --git a/drivers/acpi/acpica/evgpe.c b/drivers/acpi/acpica/evgpe.c
index 5ed064e8673c..ccf793247447 100644
--- a/drivers/acpi/acpica/evgpe.c
+++ b/drivers/acpi/acpica/evgpe.c
@@ -92,6 +92,7 @@ acpi_ev_update_gpe_enable_mask(struct acpi_gpe_event_info *gpe_event_info)
92 ACPI_SET_BIT(gpe_register_info->enable_for_run, 92 ACPI_SET_BIT(gpe_register_info->enable_for_run,
93 (u8)register_bit); 93 (u8)register_bit);
94 } 94 }
95 gpe_register_info->enable_mask = gpe_register_info->enable_for_run;
95 96
96 return_ACPI_STATUS(AE_OK); 97 return_ACPI_STATUS(AE_OK);
97} 98}
@@ -123,7 +124,7 @@ acpi_status acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info)
123 124
124 /* Enable the requested GPE */ 125 /* Enable the requested GPE */
125 126
126 status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_ENABLE_SAVE); 127 status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_ENABLE);
127 return_ACPI_STATUS(status); 128 return_ACPI_STATUS(status);
128} 129}
129 130
@@ -202,7 +203,7 @@ acpi_ev_remove_gpe_reference(struct acpi_gpe_event_info *gpe_event_info)
202 if (ACPI_SUCCESS(status)) { 203 if (ACPI_SUCCESS(status)) {
203 status = 204 status =
204 acpi_hw_low_set_gpe(gpe_event_info, 205 acpi_hw_low_set_gpe(gpe_event_info,
205 ACPI_GPE_DISABLE_SAVE); 206 ACPI_GPE_DISABLE);
206 } 207 }
207 208
208 if (ACPI_FAILURE(status)) { 209 if (ACPI_FAILURE(status)) {
diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c
index d7be3cbff151..73cfa5947ff3 100644
--- a/drivers/acpi/acpica/hwgpe.c
+++ b/drivers/acpi/acpica/hwgpe.c
@@ -89,6 +89,8 @@ u32 acpi_hw_get_gpe_register_bit(struct acpi_gpe_event_info *gpe_event_info)
89 * RETURN: Status 89 * RETURN: Status
90 * 90 *
91 * DESCRIPTION: Enable or disable a single GPE in the parent enable register. 91 * DESCRIPTION: Enable or disable a single GPE in the parent enable register.
92 * The enable_mask field of the involved GPE register must be
93 * updated by the caller if necessary.
92 * 94 *
93 ******************************************************************************/ 95 ******************************************************************************/
94 96
@@ -119,7 +121,7 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action)
119 /* Set or clear just the bit that corresponds to this GPE */ 121 /* Set or clear just the bit that corresponds to this GPE */
120 122
121 register_bit = acpi_hw_get_gpe_register_bit(gpe_event_info); 123 register_bit = acpi_hw_get_gpe_register_bit(gpe_event_info);
122 switch (action & ~ACPI_GPE_SAVE_MASK) { 124 switch (action) {
123 case ACPI_GPE_CONDITIONAL_ENABLE: 125 case ACPI_GPE_CONDITIONAL_ENABLE:
124 126
125 /* Only enable if the corresponding enable_mask bit is set */ 127 /* Only enable if the corresponding enable_mask bit is set */
@@ -149,9 +151,6 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action)
149 /* Write the updated enable mask */ 151 /* Write the updated enable mask */
150 152
151 status = acpi_hw_write(enable_mask, &gpe_register_info->enable_address); 153 status = acpi_hw_write(enable_mask, &gpe_register_info->enable_address);
152 if (ACPI_SUCCESS(status) && (action & ACPI_GPE_SAVE_MASK)) {
153 gpe_register_info->enable_mask = (u8)enable_mask;
154 }
155 return (status); 154 return (status);
156} 155}
157 156
@@ -297,10 +296,8 @@ acpi_hw_gpe_enable_write(u8 enable_mask,
297{ 296{
298 acpi_status status; 297 acpi_status status;
299 298
299 gpe_register_info->enable_mask = enable_mask;
300 status = acpi_hw_write(enable_mask, &gpe_register_info->enable_address); 300 status = acpi_hw_write(enable_mask, &gpe_register_info->enable_address);
301 if (ACPI_SUCCESS(status)) {
302 gpe_register_info->enable_mask = enable_mask;
303 }
304 return (status); 301 return (status);
305} 302}
306 303
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index ace520f3780e..f5ca0e989bba 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -759,10 +759,6 @@ typedef u32 acpi_event_status;
759#define ACPI_GPE_ENABLE 0 759#define ACPI_GPE_ENABLE 0
760#define ACPI_GPE_DISABLE 1 760#define ACPI_GPE_DISABLE 1
761#define ACPI_GPE_CONDITIONAL_ENABLE 2 761#define ACPI_GPE_CONDITIONAL_ENABLE 2
762#define ACPI_GPE_SAVE_MASK 4
763
764#define ACPI_GPE_ENABLE_SAVE (ACPI_GPE_ENABLE | ACPI_GPE_SAVE_MASK)
765#define ACPI_GPE_DISABLE_SAVE (ACPI_GPE_DISABLE | ACPI_GPE_SAVE_MASK)
766 762
767/* 763/*
768 * GPE info flags - Per GPE 764 * GPE info flags - Per GPE