diff options
author | Bob Moore <robert.moore@intel.com> | 2008-11-12 15:34:52 +0800 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-12-29 22:38:37 -0500 |
commit | 009c4cbe99bea2da53f29ad685975a36f38c001c (patch) | |
tree | 170887ee9986ae84792200abd3f3022df01630ce /drivers/acpi/hardware | |
parent | c87609f31a8641009641fc1d19dac75e6de06fd4 (diff) | |
download | op-kernel-dev-009c4cbe99bea2da53f29ad685975a36f38c001c.zip op-kernel-dev-009c4cbe99bea2da53f29ad685975a36f38c001c.tar.gz |
ACPICA: Add global pointer for FACS table to simplify FACS access
Use a global pointer instead of using AcpiGetTableByIndex for
each FACS access. This simplifies the code for the Global Lock
and the Firmware Waking Vector(s).
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/hardware')
-rw-r--r-- | drivers/acpi/hardware/hwsleep.c | 37 |
1 files changed, 6 insertions, 31 deletions
diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c index 6a30c80..5ec727f 100644 --- a/drivers/acpi/hardware/hwsleep.c +++ b/drivers/acpi/hardware/hwsleep.c @@ -63,20 +63,8 @@ ACPI_MODULE_NAME("hwsleep") acpi_status acpi_set_firmware_waking_vector(u32 physical_address) { - struct acpi_table_facs *facs; - acpi_status status; - ACPI_FUNCTION_TRACE(acpi_set_firmware_waking_vector); - /* Get the FACS */ - - status = acpi_get_table_by_index(ACPI_TABLE_INDEX_FACS, - ACPI_CAST_INDIRECT_PTR(struct - acpi_table_header, - &facs)); - if (ACPI_FAILURE(status)) { - return_ACPI_STATUS(status); - } /* * According to the ACPI specification 2.0c and later, the 64-bit @@ -88,12 +76,12 @@ acpi_set_firmware_waking_vector(u32 physical_address) /* Set the 32-bit vector */ - facs->firmware_waking_vector = physical_address; + acpi_gbl_FACS->firmware_waking_vector = physical_address; /* Clear the 64-bit vector if it exists */ - if ((facs->length > 32) && (facs->version >= 1)) { - facs->xfirmware_waking_vector = 0; + if ((acpi_gbl_FACS->length > 32) && (acpi_gbl_FACS->version >= 1)) { + acpi_gbl_FACS->xfirmware_waking_vector = 0; } return_ACPI_STATUS(AE_OK); @@ -117,32 +105,19 @@ ACPI_EXPORT_SYMBOL(acpi_set_firmware_waking_vector) acpi_status acpi_set_firmware_waking_vector64(u64 physical_address) { - struct acpi_table_facs *facs; - acpi_status status; - ACPI_FUNCTION_TRACE(acpi_set_firmware_waking_vector64); - /* Get the FACS */ - - status = acpi_get_table_by_index(ACPI_TABLE_INDEX_FACS, - ACPI_CAST_INDIRECT_PTR(struct - acpi_table_header, - &facs)); - if (ACPI_FAILURE(status)) { - return_ACPI_STATUS(status); - } - /* Determine if the 64-bit vector actually exists */ - if ((facs->length <= 32) || (facs->version < 1)) { + if ((acpi_gbl_FACS->length <= 32) || (acpi_gbl_FACS->version < 1)) { return_ACPI_STATUS(AE_NOT_EXIST); } /* Clear 32-bit vector, set the 64-bit X_ vector */ - facs->firmware_waking_vector = 0; - facs->xfirmware_waking_vector = physical_address; + acpi_gbl_FACS->firmware_waking_vector = 0; + acpi_gbl_FACS->xfirmware_waking_vector = physical_address; return_ACPI_STATUS(AE_OK); } |