mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-12 00:00:00 +00:00
ACPICA: Store GPE number instead of bitmask
Update internal GPE data structure to simplify debug, use gpe_number instead of register bitmask. Signed-off-by: Bob Moore <bob.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
3d81b236a8
commit
69874165ab
@ -121,7 +121,9 @@ acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info,
|
|||||||
if (!gpe_register_info) {
|
if (!gpe_register_info) {
|
||||||
return_ACPI_STATUS(AE_NOT_EXIST);
|
return_ACPI_STATUS(AE_NOT_EXIST);
|
||||||
}
|
}
|
||||||
register_bit = gpe_event_info->register_bit;
|
register_bit = (u8)
|
||||||
|
(1 <<
|
||||||
|
(gpe_event_info->gpe_number - gpe_register_info->base_gpe_number));
|
||||||
|
|
||||||
/* 1) Disable case. Simply clear all enable bits */
|
/* 1) Disable case. Simply clear all enable bits */
|
||||||
|
|
||||||
@ -458,8 +460,7 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
|
|||||||
|
|
||||||
/* Examine one GPE bit */
|
/* Examine one GPE bit */
|
||||||
|
|
||||||
if (enabled_status_byte &
|
if (enabled_status_byte & (1 << j)) {
|
||||||
acpi_gbl_decode_to8bit[j]) {
|
|
||||||
/*
|
/*
|
||||||
* Found an active GPE. Dispatch the event to a handler
|
* Found an active GPE. Dispatch the event to a handler
|
||||||
* or method.
|
* or method.
|
||||||
|
@ -819,7 +819,8 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
|
|||||||
/* Init the event_info for each GPE within this register */
|
/* Init the event_info for each GPE within this register */
|
||||||
|
|
||||||
for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) {
|
for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) {
|
||||||
this_event->register_bit = acpi_gbl_decode_to8bit[j];
|
this_event->gpe_number =
|
||||||
|
(u8) (this_register->base_gpe_number + j);
|
||||||
this_event->register_info = this_register;
|
this_event->register_info = this_register;
|
||||||
this_event++;
|
this_event++;
|
||||||
}
|
}
|
||||||
|
@ -105,14 +105,20 @@ acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info *gpe_event_info)
|
|||||||
acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info * gpe_event_info)
|
acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info * gpe_event_info)
|
||||||
{
|
{
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
|
u8 register_bit;
|
||||||
|
|
||||||
ACPI_FUNCTION_ENTRY();
|
ACPI_FUNCTION_ENTRY();
|
||||||
|
|
||||||
|
register_bit = (u8)
|
||||||
|
(1 <<
|
||||||
|
(gpe_event_info->gpe_number -
|
||||||
|
gpe_event_info->register_info->base_gpe_number));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write a one to the appropriate bit in the status register to
|
* Write a one to the appropriate bit in the status register to
|
||||||
* clear this GPE.
|
* clear this GPE.
|
||||||
*/
|
*/
|
||||||
status = acpi_hw_low_level_write(8, gpe_event_info->register_bit,
|
status = acpi_hw_low_level_write(8, register_bit,
|
||||||
&gpe_event_info->register_info->
|
&gpe_event_info->register_info->
|
||||||
status_address);
|
status_address);
|
||||||
|
|
||||||
@ -155,7 +161,10 @@ acpi_hw_get_gpe_status(struct acpi_gpe_event_info * gpe_event_info,
|
|||||||
|
|
||||||
/* Get the register bitmask for this GPE */
|
/* Get the register bitmask for this GPE */
|
||||||
|
|
||||||
register_bit = gpe_event_info->register_bit;
|
register_bit = (u8)
|
||||||
|
(1 <<
|
||||||
|
(gpe_event_info->gpe_number -
|
||||||
|
gpe_event_info->register_info->base_gpe_number));
|
||||||
|
|
||||||
/* GPE currently enabled? (enabled for runtime?) */
|
/* GPE currently enabled? (enabled for runtime?) */
|
||||||
|
|
||||||
|
@ -164,8 +164,6 @@ u32 acpi_gbl_startup_flags = 0;
|
|||||||
|
|
||||||
u8 acpi_gbl_shutdown = TRUE;
|
u8 acpi_gbl_shutdown = TRUE;
|
||||||
|
|
||||||
const u8 acpi_gbl_decode_to8bit[8] = { 1, 2, 4, 8, 16, 32, 64, 128 };
|
|
||||||
|
|
||||||
const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT] = {
|
const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT] = {
|
||||||
"\\_S0_",
|
"\\_S0_",
|
||||||
"\\_S1_",
|
"\\_S1_",
|
||||||
|
@ -240,7 +240,6 @@ ACPI_EXTERN u8 acpi_gbl_system_awake_and_running;
|
|||||||
|
|
||||||
extern u8 acpi_gbl_shutdown;
|
extern u8 acpi_gbl_shutdown;
|
||||||
extern u32 acpi_gbl_startup_flags;
|
extern u32 acpi_gbl_startup_flags;
|
||||||
extern const u8 acpi_gbl_decode_to8bit[8];
|
|
||||||
extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT];
|
extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT];
|
||||||
extern const char *acpi_gbl_highest_dstate_names[4];
|
extern const char *acpi_gbl_highest_dstate_names[4];
|
||||||
extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES];
|
extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES];
|
||||||
|
@ -367,7 +367,7 @@ struct acpi_gpe_event_info {
|
|||||||
union acpi_gpe_dispatch_info dispatch; /* Either Method or Handler */
|
union acpi_gpe_dispatch_info dispatch; /* Either Method or Handler */
|
||||||
struct acpi_gpe_register_info *register_info; /* Backpointer to register info */
|
struct acpi_gpe_register_info *register_info; /* Backpointer to register info */
|
||||||
u8 flags; /* Misc info about this GPE */
|
u8 flags; /* Misc info about this GPE */
|
||||||
u8 register_bit; /* This GPE bit within the register */
|
u8 gpe_number; /* This GPE */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Information about a GPE register pair, one per each status/enable pair in an array */
|
/* Information about a GPE register pair, one per each status/enable pair in an array */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user