diff options
-rw-r--r-- | drivers/acpi/events/evgpe.c | 7 | ||||
-rw-r--r-- | drivers/acpi/events/evgpeblk.c | 3 | ||||
-rw-r--r-- | drivers/acpi/hardware/hwgpe.c | 13 | ||||
-rw-r--r-- | drivers/acpi/utilities/utglobal.c | 2 | ||||
-rw-r--r-- | include/acpi/acglobal.h | 1 | ||||
-rw-r--r-- | include/acpi/aclocal.h | 2 |
6 files changed, 18 insertions, 10 deletions
diff --git a/drivers/acpi/events/evgpe.c b/drivers/acpi/events/evgpe.c index df92c9e8c5c4..35933be58cd4 100644 --- a/drivers/acpi/events/evgpe.c +++ b/drivers/acpi/events/evgpe.c | |||
@@ -121,7 +121,9 @@ acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info, | |||
121 | if (!gpe_register_info) { | 121 | if (!gpe_register_info) { |
122 | return_ACPI_STATUS(AE_NOT_EXIST); | 122 | return_ACPI_STATUS(AE_NOT_EXIST); |
123 | } | 123 | } |
124 | register_bit = gpe_event_info->register_bit; | 124 | register_bit = (u8) |
125 | (1 << | ||
126 | (gpe_event_info->gpe_number - gpe_register_info->base_gpe_number)); | ||
125 | 127 | ||
126 | /* 1) Disable case. Simply clear all enable bits */ | 128 | /* 1) Disable case. Simply clear all enable bits */ |
127 | 129 | ||
@@ -458,8 +460,7 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list) | |||
458 | 460 | ||
459 | /* Examine one GPE bit */ | 461 | /* Examine one GPE bit */ |
460 | 462 | ||
461 | if (enabled_status_byte & | 463 | if (enabled_status_byte & (1 << j)) { |
462 | acpi_gbl_decode_to8bit[j]) { | ||
463 | /* | 464 | /* |
464 | * Found an active GPE. Dispatch the event to a handler | 465 | * Found an active GPE. Dispatch the event to a handler |
465 | * or method. | 466 | * or method. |
diff --git a/drivers/acpi/events/evgpeblk.c b/drivers/acpi/events/evgpeblk.c index bb0eb50cd28f..8a6f01a136d7 100644 --- a/drivers/acpi/events/evgpeblk.c +++ b/drivers/acpi/events/evgpeblk.c | |||
@@ -819,7 +819,8 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block) | |||
819 | /* Init the event_info for each GPE within this register */ | 819 | /* Init the event_info for each GPE within this register */ |
820 | 820 | ||
821 | for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) { | 821 | for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) { |
822 | this_event->register_bit = acpi_gbl_decode_to8bit[j]; | 822 | this_event->gpe_number = |
823 | (u8) (this_register->base_gpe_number + j); | ||
823 | this_event->register_info = this_register; | 824 | this_event->register_info = this_register; |
824 | this_event++; | 825 | this_event++; |
825 | } | 826 | } |
diff --git a/drivers/acpi/hardware/hwgpe.c b/drivers/acpi/hardware/hwgpe.c index 608a3a60ee11..3d548b5b0dd5 100644 --- a/drivers/acpi/hardware/hwgpe.c +++ b/drivers/acpi/hardware/hwgpe.c | |||
@@ -105,14 +105,20 @@ acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info *gpe_event_info) | |||
105 | acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info * gpe_event_info) | 105 | acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info * gpe_event_info) |
106 | { | 106 | { |
107 | acpi_status status; | 107 | acpi_status status; |
108 | u8 register_bit; | ||
108 | 109 | ||
109 | ACPI_FUNCTION_ENTRY(); | 110 | ACPI_FUNCTION_ENTRY(); |
110 | 111 | ||
112 | register_bit = (u8) | ||
113 | (1 << | ||
114 | (gpe_event_info->gpe_number - | ||
115 | gpe_event_info->register_info->base_gpe_number)); | ||
116 | |||
111 | /* | 117 | /* |
112 | * Write a one to the appropriate bit in the status register to | 118 | * Write a one to the appropriate bit in the status register to |
113 | * clear this GPE. | 119 | * clear this GPE. |
114 | */ | 120 | */ |
115 | status = acpi_hw_low_level_write(8, gpe_event_info->register_bit, | 121 | status = acpi_hw_low_level_write(8, register_bit, |
116 | &gpe_event_info->register_info-> | 122 | &gpe_event_info->register_info-> |
117 | status_address); | 123 | status_address); |
118 | 124 | ||
@@ -155,7 +161,10 @@ acpi_hw_get_gpe_status(struct acpi_gpe_event_info * gpe_event_info, | |||
155 | 161 | ||
156 | /* Get the register bitmask for this GPE */ | 162 | /* Get the register bitmask for this GPE */ |
157 | 163 | ||
158 | register_bit = gpe_event_info->register_bit; | 164 | register_bit = (u8) |
165 | (1 << | ||
166 | (gpe_event_info->gpe_number - | ||
167 | gpe_event_info->register_info->base_gpe_number)); | ||
159 | 168 | ||
160 | /* GPE currently enabled? (enabled for runtime?) */ | 169 | /* GPE currently enabled? (enabled for runtime?) */ |
161 | 170 | ||
diff --git a/drivers/acpi/utilities/utglobal.c b/drivers/acpi/utilities/utglobal.c index 855bc8fea3a4..5b83f86470d7 100644 --- a/drivers/acpi/utilities/utglobal.c +++ b/drivers/acpi/utilities/utglobal.c | |||
@@ -164,8 +164,6 @@ u32 acpi_gbl_startup_flags = 0; | |||
164 | 164 | ||
165 | u8 acpi_gbl_shutdown = TRUE; | 165 | u8 acpi_gbl_shutdown = TRUE; |
166 | 166 | ||
167 | const u8 acpi_gbl_decode_to8bit[8] = { 1, 2, 4, 8, 16, 32, 64, 128 }; | ||
168 | |||
169 | const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT] = { | 167 | const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT] = { |
170 | "\\_S0_", | 168 | "\\_S0_", |
171 | "\\_S1_", | 169 | "\\_S1_", |
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h index b74cd9b670b5..0c2e1ae72c3d 100644 --- a/include/acpi/acglobal.h +++ b/include/acpi/acglobal.h | |||
@@ -240,7 +240,6 @@ ACPI_EXTERN u8 acpi_gbl_system_awake_and_running; | |||
240 | 240 | ||
241 | extern u8 acpi_gbl_shutdown; | 241 | extern u8 acpi_gbl_shutdown; |
242 | extern u32 acpi_gbl_startup_flags; | 242 | extern u32 acpi_gbl_startup_flags; |
243 | extern const u8 acpi_gbl_decode_to8bit[8]; | ||
244 | extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT]; | 243 | extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT]; |
245 | extern const char *acpi_gbl_highest_dstate_names[4]; | 244 | extern const char *acpi_gbl_highest_dstate_names[4]; |
246 | extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES]; | 245 | extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES]; |
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h index a870484eaa03..553763d7312a 100644 --- a/include/acpi/aclocal.h +++ b/include/acpi/aclocal.h | |||
@@ -367,7 +367,7 @@ struct acpi_gpe_event_info { | |||
367 | union acpi_gpe_dispatch_info dispatch; /* Either Method or Handler */ | 367 | union acpi_gpe_dispatch_info dispatch; /* Either Method or Handler */ |
368 | struct acpi_gpe_register_info *register_info; /* Backpointer to register info */ | 368 | struct acpi_gpe_register_info *register_info; /* Backpointer to register info */ |
369 | u8 flags; /* Misc info about this GPE */ | 369 | u8 flags; /* Misc info about this GPE */ |
370 | u8 register_bit; /* This GPE bit within the register */ | 370 | u8 gpe_number; /* This GPE */ |
371 | }; | 371 | }; |
372 | 372 | ||
373 | /* Information about a GPE register pair, one per each status/enable pair in an array */ | 373 | /* Information about a GPE register pair, one per each status/enable pair in an array */ |