ACPICA: Drop Linux-specific waking vector functions
Commit f06147f9fb
(ACPICA: Hardware: Enable firmware waking vector
for both 32-bit and 64-bit FACS) added three functions that aren't
present in upstream ACPICA, acpi_hw_set_firmware_waking_vectors(),
acpi_set_firmware_waking_vectors() and acpi_set_firmware_waking_vector64(),
to allow Linux to use the previously existing API for setting the
platform firmware waking vector.
However, that wasn't necessary, since the ACPI sleep support code
in Linux can be modified to use the upstream ACPICA's API easily
and the additional functions may be dropped which reduces the code
size and puts the kernel's ACPICA code more in line with the upstream.
Make the changes as per the above. While at it, make the relevant
function desctiption comments reflect the upstream ACPICA's ones.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Lv Zheng <lv.zheng@intel.com>
This commit is contained in:
parent
6b0e2b3287
commit
e3e9b577b4
|
@ -52,9 +52,9 @@ ACPI_MODULE_NAME("hwxfsleep")
|
||||||
/* Local prototypes */
|
/* Local prototypes */
|
||||||
#if (!ACPI_REDUCED_HARDWARE)
|
#if (!ACPI_REDUCED_HARDWARE)
|
||||||
static acpi_status
|
static acpi_status
|
||||||
acpi_hw_set_firmware_waking_vectors(struct acpi_table_facs *facs,
|
acpi_hw_set_firmware_waking_vector(struct acpi_table_facs *facs,
|
||||||
acpi_physical_address physical_address,
|
acpi_physical_address physical_address,
|
||||||
acpi_physical_address physical_address64);
|
acpi_physical_address physical_address64);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id);
|
static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id);
|
||||||
|
@ -79,22 +79,20 @@ static struct acpi_sleep_functions acpi_sleep_dispatch[] = {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These functions are removed for the ACPI_REDUCED_HARDWARE case:
|
* These functions are removed for the ACPI_REDUCED_HARDWARE case:
|
||||||
* acpi_set_firmware_waking_vectors
|
|
||||||
* acpi_set_firmware_waking_vector
|
* acpi_set_firmware_waking_vector
|
||||||
* acpi_set_firmware_waking_vector64
|
|
||||||
* acpi_enter_sleep_state_s4bios
|
* acpi_enter_sleep_state_s4bios
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if (!ACPI_REDUCED_HARDWARE)
|
#if (!ACPI_REDUCED_HARDWARE)
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_hw_set_firmware_waking_vectors
|
* FUNCTION: acpi_hw_set_firmware_waking_vector
|
||||||
*
|
*
|
||||||
* PARAMETERS: facs - Pointer to FACS table
|
* PARAMETERS: facs - Pointer to FACS table
|
||||||
* physical_address - 32-bit physical address of ACPI real mode
|
* physical_address - 32-bit physical address of ACPI real mode
|
||||||
* entry point.
|
* entry point
|
||||||
* physical_address64 - 64-bit physical address of ACPI protected
|
* physical_address64 - 64-bit physical address of ACPI protected
|
||||||
* mode entry point.
|
* mode entry point
|
||||||
*
|
*
|
||||||
* RETURN: Status
|
* RETURN: Status
|
||||||
*
|
*
|
||||||
|
@ -103,11 +101,11 @@ static struct acpi_sleep_functions acpi_sleep_dispatch[] = {
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
static acpi_status
|
static acpi_status
|
||||||
acpi_hw_set_firmware_waking_vectors(struct acpi_table_facs *facs,
|
acpi_hw_set_firmware_waking_vector(struct acpi_table_facs *facs,
|
||||||
acpi_physical_address physical_address,
|
acpi_physical_address physical_address,
|
||||||
acpi_physical_address physical_address64)
|
acpi_physical_address physical_address64)
|
||||||
{
|
{
|
||||||
ACPI_FUNCTION_TRACE(acpi_hw_set_firmware_waking_vectors);
|
ACPI_FUNCTION_TRACE(acpi_hw_set_firmware_waking_vector);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -140,12 +138,12 @@ acpi_hw_set_firmware_waking_vectors(struct acpi_table_facs *facs,
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_set_firmware_waking_vectors
|
* FUNCTION: acpi_set_firmware_waking_vector
|
||||||
*
|
*
|
||||||
* PARAMETERS: physical_address - 32-bit physical address of ACPI real mode
|
* PARAMETERS: physical_address - 32-bit physical address of ACPI real mode
|
||||||
* entry point.
|
* entry point
|
||||||
* physical_address64 - 64-bit physical address of ACPI protected
|
* physical_address64 - 64-bit physical address of ACPI protected
|
||||||
* mode entry point.
|
* mode entry point
|
||||||
*
|
*
|
||||||
* RETURN: Status
|
* RETURN: Status
|
||||||
*
|
*
|
||||||
|
@ -154,79 +152,23 @@ acpi_hw_set_firmware_waking_vectors(struct acpi_table_facs *facs,
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
acpi_status
|
acpi_status
|
||||||
acpi_set_firmware_waking_vectors(acpi_physical_address physical_address,
|
acpi_set_firmware_waking_vector(acpi_physical_address physical_address,
|
||||||
acpi_physical_address physical_address64)
|
acpi_physical_address physical_address64)
|
||||||
{
|
{
|
||||||
|
|
||||||
ACPI_FUNCTION_TRACE(acpi_set_firmware_waking_vectors);
|
ACPI_FUNCTION_TRACE(acpi_set_firmware_waking_vector);
|
||||||
|
|
||||||
if (acpi_gbl_FACS) {
|
if (acpi_gbl_FACS) {
|
||||||
(void)acpi_hw_set_firmware_waking_vectors(acpi_gbl_FACS,
|
(void)acpi_hw_set_firmware_waking_vector(acpi_gbl_FACS,
|
||||||
physical_address,
|
physical_address,
|
||||||
physical_address64);
|
physical_address64);
|
||||||
}
|
}
|
||||||
|
|
||||||
return_ACPI_STATUS(AE_OK);
|
return_ACPI_STATUS(AE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
ACPI_EXPORT_SYMBOL(acpi_set_firmware_waking_vectors)
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
*
|
|
||||||
* FUNCTION: acpi_set_firmware_waking_vector
|
|
||||||
*
|
|
||||||
* PARAMETERS: physical_address - 32-bit physical address of ACPI real mode
|
|
||||||
* entry point.
|
|
||||||
*
|
|
||||||
* RETURN: Status
|
|
||||||
*
|
|
||||||
* DESCRIPTION: Sets the 32-bit firmware_waking_vector field of the FACS
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
acpi_status acpi_set_firmware_waking_vector(u32 physical_address)
|
|
||||||
{
|
|
||||||
acpi_status status;
|
|
||||||
|
|
||||||
ACPI_FUNCTION_TRACE(acpi_set_firmware_waking_vector);
|
|
||||||
|
|
||||||
status = acpi_set_firmware_waking_vectors((acpi_physical_address)
|
|
||||||
physical_address, 0);
|
|
||||||
|
|
||||||
return_ACPI_STATUS(status);
|
|
||||||
}
|
|
||||||
|
|
||||||
ACPI_EXPORT_SYMBOL(acpi_set_firmware_waking_vector)
|
ACPI_EXPORT_SYMBOL(acpi_set_firmware_waking_vector)
|
||||||
|
|
||||||
#if ACPI_MACHINE_WIDTH == 64
|
|
||||||
/*******************************************************************************
|
|
||||||
*
|
|
||||||
* FUNCTION: acpi_set_firmware_waking_vector64
|
|
||||||
*
|
|
||||||
* PARAMETERS: physical_address - 64-bit physical address of ACPI protected
|
|
||||||
* mode entry point.
|
|
||||||
*
|
|
||||||
* RETURN: Status
|
|
||||||
*
|
|
||||||
* DESCRIPTION: Sets the 64-bit X_firmware_waking_vector field of the FACS, if
|
|
||||||
* it exists in the table. This function is intended for use with
|
|
||||||
* 64-bit host operating systems.
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
acpi_status acpi_set_firmware_waking_vector64(u64 physical_address)
|
|
||||||
{
|
|
||||||
acpi_status status;
|
|
||||||
|
|
||||||
ACPI_FUNCTION_TRACE(acpi_set_firmware_waking_vector64);
|
|
||||||
|
|
||||||
status = acpi_set_firmware_waking_vectors(0,
|
|
||||||
(acpi_physical_address)
|
|
||||||
physical_address);
|
|
||||||
|
|
||||||
return_ACPI_STATUS(status);
|
|
||||||
}
|
|
||||||
|
|
||||||
ACPI_EXPORT_SYMBOL(acpi_set_firmware_waking_vector64)
|
|
||||||
#endif
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_enter_sleep_state_s4bios
|
* FUNCTION: acpi_enter_sleep_state_s4bios
|
||||||
|
|
|
@ -61,7 +61,7 @@ static int acpi_sleep_prepare(u32 acpi_state)
|
||||||
if (acpi_state == ACPI_STATE_S3) {
|
if (acpi_state == ACPI_STATE_S3) {
|
||||||
if (!acpi_wakeup_address)
|
if (!acpi_wakeup_address)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
acpi_set_firmware_waking_vector(acpi_wakeup_address);
|
acpi_set_waking_vector(acpi_wakeup_address);
|
||||||
|
|
||||||
}
|
}
|
||||||
ACPI_FLUSH_CPU_CACHE();
|
ACPI_FLUSH_CPU_CACHE();
|
||||||
|
@ -410,7 +410,7 @@ static void acpi_pm_finish(void)
|
||||||
acpi_leave_sleep_state(acpi_state);
|
acpi_leave_sleep_state(acpi_state);
|
||||||
|
|
||||||
/* reset firmware waking vector */
|
/* reset firmware waking vector */
|
||||||
acpi_set_firmware_waking_vector((acpi_physical_address) 0);
|
acpi_set_waking_vector(0);
|
||||||
|
|
||||||
acpi_target_sleep_state = ACPI_STATE_S0;
|
acpi_target_sleep_state = ACPI_STATE_S0;
|
||||||
|
|
||||||
|
|
|
@ -6,3 +6,9 @@ extern struct list_head acpi_wakeup_device_list;
|
||||||
extern struct mutex acpi_device_lock;
|
extern struct mutex acpi_device_lock;
|
||||||
|
|
||||||
extern void acpi_resume_power_resources(void);
|
extern void acpi_resume_power_resources(void);
|
||||||
|
|
||||||
|
static inline acpi_status acpi_set_waking_vector(u32 wakeup_address)
|
||||||
|
{
|
||||||
|
return acpi_set_firmware_waking_vector(
|
||||||
|
(acpi_physical_address)wakeup_address, 0);
|
||||||
|
}
|
||||||
|
|
|
@ -863,17 +863,9 @@ ACPI_EXTERNAL_RETURN_STATUS(acpi_status
|
||||||
ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_leave_sleep_state(u8 sleep_state))
|
ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_leave_sleep_state(u8 sleep_state))
|
||||||
|
|
||||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||||
acpi_set_firmware_waking_vectors
|
acpi_set_firmware_waking_vector
|
||||||
(acpi_physical_address physical_address,
|
(acpi_physical_address physical_address,
|
||||||
acpi_physical_address physical_address64))
|
acpi_physical_address physical_address64))
|
||||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|
||||||
acpi_set_firmware_waking_vector(u32
|
|
||||||
physical_address))
|
|
||||||
#if ACPI_MACHINE_WIDTH == 64
|
|
||||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|
||||||
acpi_set_firmware_waking_vector64(u64
|
|
||||||
physical_address))
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* ACPI Timer interfaces
|
* ACPI Timer interfaces
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue