Commit 33620c54 authored by Bob Moore's avatar Bob Moore Committed by Len Brown

ACPICA: Support for custom ACPICA build for ACPI 5 reduced hardware

Add ACPI_REDUCED_HARDWARE flag that removes all hardware-related
code (about 10% code, 5% static data).
Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLin Ming <ming.m.lin@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent d08310fe
...@@ -51,7 +51,6 @@ ...@@ -51,7 +51,6 @@
* *
* Note: The order of these include files is important. * Note: The order of these include files is important.
*/ */
#include "acconfig.h" /* Global configuration constants */
#include "acmacros.h" /* C macros */ #include "acmacros.h" /* C macros */
#include "aclocal.h" /* Internal data types */ #include "aclocal.h" /* Internal data types */
#include "acobject.h" /* ACPI internal object */ #include "acobject.h" /* ACPI internal object */
......
...@@ -111,7 +111,7 @@ acpi_status acpi_db_find_name_in_namespace(char *name_arg); ...@@ -111,7 +111,7 @@ acpi_status acpi_db_find_name_in_namespace(char *name_arg);
void acpi_db_set_scope(char *name); void acpi_db_set_scope(char *name);
acpi_status acpi_db_sleep(char *object_arg); ACPI_HW_DEPENDENT_RETURN_OK(acpi_status acpi_db_sleep(char *object_arg))
void acpi_db_find_references(char *object_arg); void acpi_db_find_references(char *object_arg);
...@@ -119,11 +119,13 @@ void acpi_db_display_locks(void); ...@@ -119,11 +119,13 @@ void acpi_db_display_locks(void);
void acpi_db_display_resources(char *object_arg); void acpi_db_display_resources(char *object_arg);
void acpi_db_display_gpes(void); ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_db_display_gpes(void))
void acpi_db_check_integrity(void); void acpi_db_check_integrity(void);
void acpi_db_generate_gpe(char *gpe_arg, char *block_arg); ACPI_HW_DEPENDENT_RETURN_VOID(void
acpi_db_generate_gpe(char *gpe_arg,
char *block_arg))
void acpi_db_check_predefined_names(void); void acpi_db_check_predefined_names(void);
......
...@@ -69,11 +69,10 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node *node, ...@@ -69,11 +69,10 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node *node,
*/ */
acpi_status acpi_ev_init_global_lock_handler(void); acpi_status acpi_ev_init_global_lock_handler(void);
acpi_status acpi_ev_acquire_global_lock(u16 timeout); ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
acpi_ev_acquire_global_lock(u16 timeout))
acpi_status acpi_ev_release_global_lock(void); ACPI_HW_DEPENDENT_RETURN_OK(acpi_status acpi_ev_release_global_lock(void))
acpi_status acpi_ev_remove_global_lock_handler(void);
acpi_status acpi_ev_remove_global_lock_handler(void);
/* /*
* evgpe - Low-level GPE support * evgpe - Low-level GPE support
...@@ -114,7 +113,9 @@ acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info, ...@@ -114,7 +113,9 @@ acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
struct acpi_gpe_block_info *gpe_block, struct acpi_gpe_block_info *gpe_block,
void *context); void *context);
acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block); ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
acpi_ev_delete_gpe_block(struct acpi_gpe_block_info
*gpe_block))
u32 u32
acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device, acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
...@@ -126,9 +127,10 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device, ...@@ -126,9 +127,10 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
*/ */
acpi_status acpi_ev_gpe_initialize(void); acpi_status acpi_ev_gpe_initialize(void);
void acpi_ev_update_gpes(acpi_owner_id table_owner_id); ACPI_HW_DEPENDENT_RETURN_VOID(void
acpi_ev_update_gpes(acpi_owner_id table_owner_id))
acpi_status acpi_status
acpi_ev_match_gpe_method(acpi_handle obj_handle, acpi_ev_match_gpe_method(acpi_handle obj_handle,
u32 level, void *context, void **return_value); u32 level, void *context, void **return_value);
...@@ -237,6 +239,5 @@ acpi_status acpi_ev_remove_sci_handler(void); ...@@ -237,6 +239,5 @@ acpi_status acpi_ev_remove_sci_handler(void);
u32 acpi_ev_initialize_sCI(u32 program_sCI); u32 acpi_ev_initialize_sCI(u32 program_sCI);
void acpi_ev_terminate(void); ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_ev_terminate(void))
#endif /* __ACEVENTS_H__ */ #endif /* __ACEVENTS_H__ */
...@@ -147,7 +147,7 @@ u8 acpi_gbl_system_awake_and_running; ...@@ -147,7 +147,7 @@ u8 acpi_gbl_system_awake_and_running;
*/ */
u8 acpi_gbl_reduced_hardware; u8 acpi_gbl_reduced_hardware;
#endif #endif /* DEFINE_ACPI_GLOBALS */
/* Do not disassemble buffers to resource descriptors */ /* Do not disassemble buffers to resource descriptors */
...@@ -184,8 +184,12 @@ ACPI_EXTERN u32 acpi_gbl_trace_dbg_layer; ...@@ -184,8 +184,12 @@ ACPI_EXTERN u32 acpi_gbl_trace_dbg_layer;
* found in the RSDT/XSDT. * found in the RSDT/XSDT.
*/ */
ACPI_EXTERN struct acpi_table_list acpi_gbl_root_table_list; ACPI_EXTERN struct acpi_table_list acpi_gbl_root_table_list;
#if (!ACPI_REDUCED_HARDWARE)
ACPI_EXTERN struct acpi_table_facs *acpi_gbl_FACS; ACPI_EXTERN struct acpi_table_facs *acpi_gbl_FACS;
#endif /* !ACPI_REDUCED_HARDWARE */
/* These addresses are calculated from the FADT Event Block addresses */ /* These addresses are calculated from the FADT Event Block addresses */
ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1a_status; ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1a_status;
...@@ -397,10 +401,15 @@ ACPI_EXTERN struct acpi_fixed_event_handler ...@@ -397,10 +401,15 @@ ACPI_EXTERN struct acpi_fixed_event_handler
ACPI_EXTERN struct acpi_gpe_xrupt_info *acpi_gbl_gpe_xrupt_list_head; ACPI_EXTERN struct acpi_gpe_xrupt_info *acpi_gbl_gpe_xrupt_list_head;
ACPI_EXTERN struct acpi_gpe_block_info ACPI_EXTERN struct acpi_gpe_block_info
*acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS]; *acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS];
#if (!ACPI_REDUCED_HARDWARE)
ACPI_EXTERN u8 acpi_gbl_all_gpes_initialized; ACPI_EXTERN u8 acpi_gbl_all_gpes_initialized;
ACPI_EXTERN ACPI_GBL_EVENT_HANDLER acpi_gbl_global_event_handler; ACPI_EXTERN ACPI_GBL_EVENT_HANDLER acpi_gbl_global_event_handler;
ACPI_EXTERN void *acpi_gbl_global_event_handler_context; ACPI_EXTERN void *acpi_gbl_global_event_handler_context;
#endif /* !ACPI_REDUCED_HARDWARE */
/***************************************************************************** /*****************************************************************************
* *
* Debugger globals * Debugger globals
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evevent") ACPI_MODULE_NAME("evevent")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */ /* Local prototypes */
static acpi_status acpi_ev_fixed_event_initialize(void); static acpi_status acpi_ev_fixed_event_initialize(void);
...@@ -291,3 +291,5 @@ static u32 acpi_ev_fixed_event_dispatch(u32 event) ...@@ -291,3 +291,5 @@ static u32 acpi_ev_fixed_event_dispatch(u32 event)
return ((acpi_gbl_fixed_event_handlers[event]. return ((acpi_gbl_fixed_event_handlers[event].
handler) (acpi_gbl_fixed_event_handlers[event].context)); handler) (acpi_gbl_fixed_event_handlers[event].context));
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evglock") ACPI_MODULE_NAME("evglock")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */ /* Local prototypes */
static u32 acpi_ev_global_lock_handler(void *context); static u32 acpi_ev_global_lock_handler(void *context);
...@@ -339,3 +339,5 @@ acpi_status acpi_ev_release_global_lock(void) ...@@ -339,3 +339,5 @@ acpi_status acpi_ev_release_global_lock(void)
acpi_os_release_mutex(acpi_gbl_global_lock_mutex->mutex.os_mutex); acpi_os_release_mutex(acpi_gbl_global_lock_mutex->mutex.os_mutex);
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpe") ACPI_MODULE_NAME("evgpe")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */ /* Local prototypes */
static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context); static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context);
...@@ -766,3 +766,5 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device, ...@@ -766,3 +766,5 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
return_UINT32(ACPI_INTERRUPT_HANDLED); return_UINT32(ACPI_INTERRUPT_HANDLED);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpeblk") ACPI_MODULE_NAME("evgpeblk")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */ /* Local prototypes */
static acpi_status static acpi_status
acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block, acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
...@@ -504,3 +504,5 @@ acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info, ...@@ -504,3 +504,5 @@ acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
return_ACPI_STATUS(AE_OK); return_ACPI_STATUS(AE_OK);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpeinit") ACPI_MODULE_NAME("evgpeinit")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* /*
* Note: History of _PRW support in ACPICA * Note: History of _PRW support in ACPICA
* *
...@@ -440,3 +440,5 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle, ...@@ -440,3 +440,5 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,
name, gpe_number)); name, gpe_number));
return_ACPI_STATUS(AE_OK); return_ACPI_STATUS(AE_OK);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpeutil") ACPI_MODULE_NAME("evgpeutil")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_ev_walk_gpe_list * FUNCTION: acpi_ev_walk_gpe_list
...@@ -374,3 +375,5 @@ acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info, ...@@ -374,3 +375,5 @@ acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
return_ACPI_STATUS(AE_OK); return_ACPI_STATUS(AE_OK);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -270,6 +270,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_notify_dispatch(void *context) ...@@ -270,6 +270,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_notify_dispatch(void *context)
acpi_ut_delete_generic_state(notify_info); acpi_ut_delete_generic_state(notify_info);
} }
#if (!ACPI_REDUCED_HARDWARE)
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: acpi_ev_terminate * FUNCTION: acpi_ev_terminate
...@@ -338,3 +339,5 @@ void acpi_ev_terminate(void) ...@@ -338,3 +339,5 @@ void acpi_ev_terminate(void)
} }
return_VOID; return_VOID;
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evsci") ACPI_MODULE_NAME("evsci")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */ /* Local prototypes */
static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context); static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context);
...@@ -181,3 +181,5 @@ acpi_status acpi_ev_remove_sci_handler(void) ...@@ -181,3 +181,5 @@ acpi_status acpi_ev_remove_sci_handler(void)
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
This diff is collapsed.
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evxfevnt") ACPI_MODULE_NAME("evxfevnt")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_enable * FUNCTION: acpi_enable
...@@ -352,3 +353,4 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status) ...@@ -352,3 +353,4 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
} }
ACPI_EXPORT_SYMBOL(acpi_get_event_status) ACPI_EXPORT_SYMBOL(acpi_get_event_status)
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
#define _COMPONENT ACPI_EVENTS #define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evxfgpe") ACPI_MODULE_NAME("evxfgpe")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: acpi_update_all_gpes * FUNCTION: acpi_update_all_gpes
...@@ -695,3 +696,4 @@ acpi_get_gpe_device(u32 index, acpi_handle *gpe_device) ...@@ -695,3 +696,4 @@ acpi_get_gpe_device(u32 index, acpi_handle *gpe_device)
} }
ACPI_EXPORT_SYMBOL(acpi_get_gpe_device) ACPI_EXPORT_SYMBOL(acpi_get_gpe_device)
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
#define _COMPONENT ACPI_HARDWARE #define _COMPONENT ACPI_HARDWARE
ACPI_MODULE_NAME("hwacpi") ACPI_MODULE_NAME("hwacpi")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: acpi_hw_set_mode * FUNCTION: acpi_hw_set_mode
...@@ -166,3 +167,5 @@ u32 acpi_hw_get_mode(void) ...@@ -166,3 +167,5 @@ u32 acpi_hw_get_mode(void)
return_UINT32(ACPI_SYS_MODE_LEGACY); return_UINT32(ACPI_SYS_MODE_LEGACY);
} }
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#define _COMPONENT ACPI_HARDWARE #define _COMPONENT ACPI_HARDWARE
ACPI_MODULE_NAME("hwgpe") ACPI_MODULE_NAME("hwgpe")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */ /* Local prototypes */
static acpi_status static acpi_status
acpi_hw_enable_wakeup_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info, acpi_hw_enable_wakeup_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
...@@ -479,3 +479,5 @@ acpi_status acpi_hw_enable_all_wakeup_gpes(void) ...@@ -479,3 +479,5 @@ acpi_status acpi_hw_enable_all_wakeup_gpes(void)
status = acpi_ev_walk_gpe_list(acpi_hw_enable_wakeup_gpe_block, NULL); status = acpi_ev_walk_gpe_list(acpi_hw_enable_wakeup_gpe_block, NULL);
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
#define _COMPONENT ACPI_HARDWARE #define _COMPONENT ACPI_HARDWARE
ACPI_MODULE_NAME("hwregs") ACPI_MODULE_NAME("hwregs")
#if (!ACPI_REDUCED_HARDWARE)
/* Local Prototypes */ /* Local Prototypes */
static acpi_status static acpi_status
acpi_hw_read_multiple(u32 *value, acpi_hw_read_multiple(u32 *value,
...@@ -62,6 +63,8 @@ acpi_hw_write_multiple(u32 value, ...@@ -62,6 +63,8 @@ acpi_hw_write_multiple(u32 value,
struct acpi_generic_address *register_a, struct acpi_generic_address *register_a,
struct acpi_generic_address *register_b); struct acpi_generic_address *register_b);
#endif /* !ACPI_REDUCED_HARDWARE */
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: acpi_hw_validate_register * FUNCTION: acpi_hw_validate_register
...@@ -240,6 +243,7 @@ acpi_status acpi_hw_write(u32 value, struct acpi_generic_address *reg) ...@@ -240,6 +243,7 @@ acpi_status acpi_hw_write(u32 value, struct acpi_generic_address *reg)
return (status); return (status);
} }
#if (!ACPI_REDUCED_HARDWARE)
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_hw_clear_acpi_status * FUNCTION: acpi_hw_clear_acpi_status
...@@ -285,7 +289,7 @@ acpi_status acpi_hw_clear_acpi_status(void) ...@@ -285,7 +289,7 @@ acpi_status acpi_hw_clear_acpi_status(void)
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_hw_get_register_bit_mask * FUNCTION: acpi_hw_get_bit_register_info
* *
* PARAMETERS: register_id - Index of ACPI Register to access * PARAMETERS: register_id - Index of ACPI Register to access
* *
...@@ -658,3 +662,5 @@ acpi_hw_write_multiple(u32 value, ...@@ -658,3 +662,5 @@ acpi_hw_write_multiple(u32 value,
return (status); return (status);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -197,6 +197,7 @@ void acpi_hw_execute_SST(u32 indicator_id) ...@@ -197,6 +197,7 @@ void acpi_hw_execute_SST(u32 indicator_id)
} }
} }
#if (!ACPI_REDUCED_HARDWARE)
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_hw_legacy_sleep * FUNCTION: acpi_hw_legacy_sleep
...@@ -512,6 +513,7 @@ acpi_status acpi_hw_legacy_wake(u8 sleep_state) ...@@ -512,6 +513,7 @@ acpi_status acpi_hw_legacy_wake(u8 sleep_state)
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
/******************************************************************************* /*******************************************************************************
* *
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#define _COMPONENT ACPI_HARDWARE #define _COMPONENT ACPI_HARDWARE
ACPI_MODULE_NAME("hwtimer") ACPI_MODULE_NAME("hwtimer")
#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: acpi_get_timer_resolution * FUNCTION: acpi_get_timer_resolution
...@@ -187,3 +188,4 @@ acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed) ...@@ -187,3 +188,4 @@ acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed)
} }
ACPI_EXPORT_SYMBOL(acpi_get_timer_duration) ACPI_EXPORT_SYMBOL(acpi_get_timer_duration)
#endif /* !ACPI_REDUCED_HARDWARE */
...@@ -286,6 +286,7 @@ acpi_status acpi_write(u64 value, struct acpi_generic_address *reg) ...@@ -286,6 +286,7 @@ acpi_status acpi_write(u64 value, struct acpi_generic_address *reg)
ACPI_EXPORT_SYMBOL(acpi_write) ACPI_EXPORT_SYMBOL(acpi_write)
#if (!ACPI_REDUCED_HARDWARE)
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_read_bit_register * FUNCTION: acpi_read_bit_register
...@@ -453,7 +454,7 @@ acpi_status acpi_write_bit_register(u32 register_id, u32 value) ...@@ -453,7 +454,7 @@ acpi_status acpi_write_bit_register(u32 register_id, u32 value)
} }
ACPI_EXPORT_SYMBOL(acpi_write_bit_register) ACPI_EXPORT_SYMBOL(acpi_write_bit_register)
#endif /* !ACPI_REDUCED_HARDWARE */
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_get_sleep_type_data * FUNCTION: acpi_get_sleep_type_data
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
#define _COMPONENT ACPI_HARDWARE #define _COMPONENT ACPI_HARDWARE
ACPI_MODULE_NAME("hwxfsleep") ACPI_MODULE_NAME("hwxfsleep")
#if (!ACPI_REDUCED_HARDWARE)
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_set_firmware_waking_vector * FUNCTION: acpi_set_firmware_waking_vector
...@@ -189,7 +190,7 @@ acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void) ...@@ -189,7 +190,7 @@ acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)
} }
ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_s4bios) ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_s4bios)
#endif /* !ACPI_REDUCED_HARDWARE */
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_enter_sleep_state_prep * FUNCTION: acpi_enter_sleep_state_prep
...@@ -290,6 +291,7 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state) ...@@ -290,6 +291,7 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
acpi_gbl_sleep_type_a, acpi_gbl_sleep_type_b)); acpi_gbl_sleep_type_a, acpi_gbl_sleep_type_b));
return_ACPI_STATUS(AE_AML_OPERAND_VALUE); return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
} }
#if (!ACPI_REDUCED_HARDWARE)
/* If Hardware Reduced flag is set, must use the extended sleep registers */ /* If Hardware Reduced flag is set, must use the extended sleep registers */
...@@ -301,6 +303,11 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state) ...@@ -301,6 +303,11 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
status = acpi_hw_legacy_sleep(sleep_state); status = acpi_hw_legacy_sleep(sleep_state);
} }
#else
status = acpi_hw_extended_sleep(sleep_state);
#endif /* !ACPI_REDUCED_HARDWARE */
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
...@@ -326,6 +333,8 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state) ...@@ -326,6 +333,8 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
ACPI_FUNCTION_TRACE(acpi_leave_sleep_state); ACPI_FUNCTION_TRACE(acpi_leave_sleep_state);
#if (!ACPI_REDUCED_HARDWARE)
/* If Hardware Reduced flag is set, must use the extended sleep registers */ /* If Hardware Reduced flag is set, must use the extended sleep registers */
if (acpi_gbl_reduced_hardware || acpi_gbl_FADT.sleep_control.address) { if (acpi_gbl_reduced_hardware || acpi_gbl_FADT.sleep_control.address) {
...@@ -335,6 +344,10 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state) ...@@ -335,6 +344,10 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
status = acpi_hw_legacy_wake_prep(sleep_state); status = acpi_hw_legacy_wake_prep(sleep_state);
} }
#else
status = acpi_hw_extended_wake_prep(sleep_state);
#endif /* !ACPI_REDUCED_HARDWARE */
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
...@@ -361,6 +374,8 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state) ...@@ -361,6 +374,8 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state)
ACPI_FUNCTION_TRACE(acpi_leave_sleep_state); ACPI_FUNCTION_TRACE(acpi_leave_sleep_state);
#if (!ACPI_REDUCED_HARDWARE)
/* If Hardware Reduced flag is set, must use the extended sleep registers */ /* If Hardware Reduced flag is set, must use the extended sleep registers */
if (acpi_gbl_reduced_hardware || acpi_gbl_FADT.sleep_control.address) { if (acpi_gbl_reduced_hardware || acpi_gbl_FADT.sleep_control.address) {
...@@ -371,6 +386,11 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state) ...@@ -371,6 +386,11 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state)
status = acpi_hw_legacy_wake(sleep_state); status = acpi_hw_legacy_wake(sleep_state);
} }
#else
status = acpi_hw_extended_wake(sleep_state);
#endif /* !ACPI_REDUCED_HARDWARE */
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
......
...@@ -118,6 +118,7 @@ acpi_tb_check_xsdt(acpi_physical_address address) ...@@ -118,6 +118,7 @@ acpi_tb_check_xsdt(acpi_physical_address address)
return AE_OK; return AE_OK;
} }
#if (!ACPI_REDUCED_HARDWARE)
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_tb_initialize_facs * FUNCTION: acpi_tb_initialize_facs
...@@ -148,6 +149,7 @@ acpi_status acpi_tb_initialize_facs(void) ...@@ -148,6 +149,7 @@ acpi_status acpi_tb_initialize_facs(void)
&acpi_gbl_FACS)); &acpi_gbl_FACS));
return status; return status;
} }
#endif /* !ACPI_REDUCED_HARDWARE */
/******************************************************************************* /*******************************************************************************
* *
......
...@@ -140,6 +140,7 @@ const struct acpi_predefined_names acpi_gbl_pre_defined_names[] = { ...@@ -140,6 +140,7 @@ const struct acpi_predefined_names acpi_gbl_pre_defined_names[] = {
{NULL, ACPI_TYPE_ANY, NULL} {NULL, ACPI_TYPE_ANY, NULL}
}; };
#if (!ACPI_REDUCED_HARDWARE)
/****************************************************************************** /******************************************************************************
* *
* Event and Hardware globals * Event and Hardware globals
...@@ -236,6 +237,7 @@ struct acpi_fixed_event_info acpi_gbl_fixed_event_info[ACPI_NUM_FIXED_EVENTS] = ...@@ -236,6 +237,7 @@ struct acpi_fixed_event_info acpi_gbl_fixed_event_info[ACPI_NUM_FIXED_EVENTS] =
ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_STATUS,
ACPI_BITMASK_RT_CLOCK_ENABLE}, ACPI_BITMASK_RT_CLOCK_ENABLE},
}; };
#endif /* !ACPI_REDUCED_HARDWARE */
/******************************************************************************* /*******************************************************************************
* *
...@@ -286,6 +288,8 @@ acpi_status acpi_ut_init_globals(void) ...@@ -286,6 +288,8 @@ acpi_status acpi_ut_init_globals(void)
acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000; acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000;
#if (!ACPI_REDUCED_HARDWARE)
/* GPE support */ /* GPE support */
acpi_gbl_gpe_xrupt_list_head = NULL; acpi_gbl_gpe_xrupt_list_head = NULL;
...@@ -294,6 +298,10 @@ acpi_status acpi_ut_init_globals(void) ...@@ -294,6 +298,10 @@ acpi_status acpi_ut_init_globals(void)
acpi_current_gpe_count = 0; acpi_current_gpe_count = 0;
acpi_gbl_all_gpes_initialized = FALSE; acpi_gbl_all_gpes_initialized = FALSE;
acpi_gbl_global_event_handler = NULL;
#endif /* !ACPI_REDUCED_HARDWARE */
/* Global handlers */ /* Global handlers */
acpi_gbl_system_notify.handler = NULL; acpi_gbl_system_notify.handler = NULL;
...@@ -302,7 +310,6 @@ acpi_status acpi_ut_init_globals(void) ...@@ -302,7 +310,6 @@ acpi_status acpi_ut_init_globals(void)
acpi_gbl_init_handler = NULL; acpi_gbl_init_handler = NULL;
acpi_gbl_table_handler = NULL; acpi_gbl_table_handler = NULL;
acpi_gbl_interface_handler = NULL; acpi_gbl_interface_handler = NULL;
acpi_gbl_global_event_handler = NULL;
/* Global Lock support */ /* Global Lock support */
......
...@@ -53,27 +53,35 @@ ACPI_MODULE_NAME("utinit") ...@@ -53,27 +53,35 @@ ACPI_MODULE_NAME("utinit")
/* Local prototypes */ /* Local prototypes */
static void acpi_ut_terminate(void); static void acpi_ut_terminate(void);
#if (!ACPI_REDUCED_HARDWARE)
static void acpi_ut_free_gpe_lists(void);
#else
#define acpi_ut_free_gpe_lists()
#endif /* !ACPI_REDUCED_HARDWARE */
#if (!ACPI_REDUCED_HARDWARE)
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: acpi_ut_terminate * FUNCTION: acpi_ut_free_gpe_lists
* *
* PARAMETERS: none * PARAMETERS: none
* *
* RETURN: none * RETURN: none
* *
* DESCRIPTION: Free global memory * DESCRIPTION: Free global GPE lists
* *
******************************************************************************/ ******************************************************************************/
static void acpi_ut_terminate(void) static void acpi_ut_free_gpe_lists(void)
{ {
struct acpi_gpe_block_info *gpe_block; struct acpi_gpe_block_info *gpe_block;
struct acpi_gpe_block_info *next_gpe_block; struct acpi_gpe_block_info *next_gpe_block;
struct acpi_gpe_xrupt_info *gpe_xrupt_info; struct acpi_gpe_xrupt_info *gpe_xrupt_info;
struct acpi_gpe_xrupt_info *next_gpe_xrupt_info; struct acpi_gpe_xrupt_info *next_gpe_xrupt_info;
ACPI_FUNCTION_TRACE(ut_terminate);
/* Free global GPE blocks and related info structures */ /* Free global GPE blocks and related info structures */
gpe_xrupt_info = acpi_gbl_gpe_xrupt_list_head; gpe_xrupt_info = acpi_gbl_gpe_xrupt_list_head;
...@@ -91,7 +99,26 @@ static void acpi_ut_terminate(void) ...@@ -91,7 +99,26 @@ static void acpi_ut_terminate(void)
ACPI_FREE(gpe_xrupt_info); ACPI_FREE(gpe_xrupt_info);
gpe_xrupt_info = next_gpe_xrupt_info; gpe_xrupt_info = next_gpe_xrupt_info;
} }
}
#endif /* !ACPI_REDUCED_HARDWARE */
/******************************************************************************
*
* FUNCTION: acpi_ut_terminate
*
* PARAMETERS: none
*
* RETURN: none
*
* DESCRIPTION: Free global memory
*
******************************************************************************/
static void acpi_ut_terminate(void)
{
ACPI_FUNCTION_TRACE(ut_terminate);
acpi_ut_free_gpe_lists();
acpi_ut_delete_address_lists(); acpi_ut_delete_address_lists();
return_VOID; return_VOID;
} }
......
...@@ -145,6 +145,8 @@ acpi_status acpi_enable_subsystem(u32 flags) ...@@ -145,6 +145,8 @@ acpi_status acpi_enable_subsystem(u32 flags)
ACPI_FUNCTION_TRACE(acpi_enable_subsystem); ACPI_FUNCTION_TRACE(acpi_enable_subsystem);
#if (!ACPI_REDUCED_HARDWARE)
/* Enable ACPI mode */ /* Enable ACPI mode */
if (!(flags & ACPI_NO_ACPI_ENABLE)) { if (!(flags & ACPI_NO_ACPI_ENABLE)) {
...@@ -169,6 +171,7 @@ acpi_status acpi_enable_subsystem(u32 flags) ...@@ -169,6 +171,7 @@ acpi_status acpi_enable_subsystem(u32 flags)
ACPI_WARNING((AE_INFO, "Could not map the FACS table")); ACPI_WARNING((AE_INFO, "Could not map the FACS table"));
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
#endif /* !ACPI_REDUCED_HARDWARE */
/* /*
* Install the default op_region handlers. These are installed unless * Install the default op_region handlers. These are installed unless
...@@ -184,7 +187,7 @@ acpi_status acpi_enable_subsystem(u32 flags) ...@@ -184,7 +187,7 @@ acpi_status acpi_enable_subsystem(u32 flags)
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
} }
#if (!ACPI_REDUCED_HARDWARE)
/* /*
* Initialize ACPI Event handling (Fixed and General Purpose) * Initialize ACPI Event handling (Fixed and General Purpose)
* *
...@@ -220,6 +223,7 @@ acpi_status acpi_enable_subsystem(u32 flags) ...@@ -220,6 +223,7 @@ acpi_status acpi_enable_subsystem(u32 flags)
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
} }
#endif /* !ACPI_REDUCED_HARDWARE */
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }
......
...@@ -85,6 +85,23 @@ ...@@ -85,6 +85,23 @@
*/ */
#define ACPI_CHECKSUM_ABORT FALSE #define ACPI_CHECKSUM_ABORT FALSE
/*
* Generate a version of ACPICA that only supports "reduced hardware"
* platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized
* version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"
* model. In other words, no ACPI hardware is supported.
*
* If TRUE, this means no support for the following:
* PM Event and Control registers
* SCI interrupt (and handler)
* Fixed Events
* General Purpose Events (GPEs)
* Global Lock
* ACPI PM timer
* FACS table (Waking vectors and Global Lock)
*/
#define ACPI_REDUCED_HARDWARE FALSE
/****************************************************************************** /******************************************************************************
* *
* Subsystem Constants * Subsystem Constants
......
...@@ -89,8 +89,9 @@ ...@@ -89,8 +89,9 @@
#define AE_SAME_HANDLER (acpi_status) (0x0019 | AE_CODE_ENVIRONMENTAL) #define AE_SAME_HANDLER (acpi_status) (0x0019 | AE_CODE_ENVIRONMENTAL)
#define AE_NO_HANDLER (acpi_status) (0x001A | AE_CODE_ENVIRONMENTAL) #define AE_NO_HANDLER (acpi_status) (0x001A | AE_CODE_ENVIRONMENTAL)
#define AE_OWNER_ID_LIMIT (acpi_status) (0x001B | AE_CODE_ENVIRONMENTAL) #define AE_OWNER_ID_LIMIT (acpi_status) (0x001B | AE_CODE_ENVIRONMENTAL)
#define AE_NOT_CONFIGURED (acpi_status) (0x001C | AE_CODE_ENVIRONMENTAL)
#define AE_CODE_ENV_MAX 0x001B #define AE_CODE_ENV_MAX 0x001C
/* /*
* Programmer exceptions * Programmer exceptions
...@@ -213,7 +214,8 @@ char const *acpi_gbl_exception_names_env[] = { ...@@ -213,7 +214,8 @@ char const *acpi_gbl_exception_names_env[] = {
"AE_ABORT_METHOD", "AE_ABORT_METHOD",
"AE_SAME_HANDLER", "AE_SAME_HANDLER",
"AE_NO_HANDLER", "AE_NO_HANDLER",
"AE_OWNER_ID_LIMIT" "AE_OWNER_ID_LIMIT",
"AE_NOT_CONFIGURED"
}; };
char const *acpi_gbl_exception_names_pgm[] = { char const *acpi_gbl_exception_names_pgm[] = {
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#define ACPI_CA_VERSION 0x20120111 #define ACPI_CA_VERSION 0x20120111
#include "acconfig.h"
#include "actypes.h" #include "actypes.h"
#include "actbl.h" #include "actbl.h"
...@@ -71,6 +72,33 @@ extern u8 acpi_gbl_copy_dsdt_locally; ...@@ -71,6 +72,33 @@ extern u8 acpi_gbl_copy_dsdt_locally;
extern u8 acpi_gbl_truncate_io_addresses; extern u8 acpi_gbl_truncate_io_addresses;
extern u8 acpi_gbl_disable_auto_repair; extern u8 acpi_gbl_disable_auto_repair;
/*
* Hardware-reduced prototypes. All interfaces that use these macros will
* be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
* is set to TRUE.
*/
#if (!ACPI_REDUCED_HARDWARE)
#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
prototype;
#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
prototype;
#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
prototype;
#else
#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
static ACPI_INLINE prototype {return(AE_NOT_CONFIGURED);}
#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
static ACPI_INLINE prototype {return(AE_OK);}
#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
static ACPI_INLINE prototype {}
#endif /* !ACPI_REDUCED_HARDWARE */
extern u32 acpi_current_gpe_count; extern u32 acpi_current_gpe_count;
extern struct acpi_table_fadt acpi_gbl_FADT; extern struct acpi_table_fadt acpi_gbl_FADT;
extern u8 acpi_gbl_system_awake_and_running; extern u8 acpi_gbl_system_awake_and_running;
...@@ -96,9 +124,8 @@ acpi_status acpi_terminate(void); ...@@ -96,9 +124,8 @@ acpi_status acpi_terminate(void);
acpi_status acpi_subsystem_status(void); acpi_status acpi_subsystem_status(void);
#endif #endif
acpi_status acpi_enable(void); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enable(void))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable(void))
acpi_status acpi_disable(void);
#ifdef ACPI_FUTURE_USAGE #ifdef ACPI_FUTURE_USAGE
acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer); acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer);
...@@ -235,17 +262,34 @@ acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle); ...@@ -235,17 +262,34 @@ acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);
acpi_status acpi_status
acpi_install_initialization_handler(acpi_init_handler handler, u32 function); acpi_install_initialization_handler(acpi_init_handler handler, u32 function);
acpi_status ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_install_global_event_handler(ACPI_GBL_EVENT_HANDLER handler, acpi_install_global_event_handler
void *context); (ACPI_GBL_EVENT_HANDLER handler, void *context))
acpi_status ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_install_fixed_event_handler(u32 acpi_event, acpi_install_fixed_event_handler(u32
acpi_event_handler handler, void *context); acpi_event,
acpi_event_handler
acpi_status handler,
acpi_remove_fixed_event_handler(u32 acpi_event, acpi_event_handler handler); void
*context))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_remove_fixed_event_handler(u32 acpi_event,
acpi_event_handler
handler))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_install_gpe_handler(acpi_handle
gpe_device,
u32 gpe_number,
u32 type,
acpi_gpe_handler
address,
void *context))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_remove_gpe_handler(acpi_handle gpe_device,
u32 gpe_number,
acpi_gpe_handler
address))
acpi_status acpi_status
acpi_install_notify_handler(acpi_handle device, acpi_install_notify_handler(acpi_handle device,
u32 handler_type, u32 handler_type,
...@@ -266,15 +310,6 @@ acpi_remove_address_space_handler(acpi_handle device, ...@@ -266,15 +310,6 @@ acpi_remove_address_space_handler(acpi_handle device,
acpi_adr_space_type space_id, acpi_adr_space_type space_id,
acpi_adr_space_handler handler); acpi_adr_space_handler handler);
acpi_status
acpi_install_gpe_handler(acpi_handle gpe_device,
u32 gpe_number,
u32 type, acpi_gpe_handler address, void *context);
acpi_status
acpi_remove_gpe_handler(acpi_handle gpe_device,
u32 gpe_number, acpi_gpe_handler address);
#ifdef ACPI_FUTURE_USAGE #ifdef ACPI_FUTURE_USAGE
acpi_status acpi_install_exception_handler(acpi_exception_handler handler); acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
#endif #endif
...@@ -284,9 +319,11 @@ acpi_status acpi_install_interface_handler(acpi_interface_handler handler); ...@@ -284,9 +319,11 @@ acpi_status acpi_install_interface_handler(acpi_interface_handler handler);
/* /*
* Global Lock interfaces * Global Lock interfaces
*/ */
acpi_status acpi_acquire_global_lock(u16 timeout, u32 * handle); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_acquire_global_lock(u16 timeout,
acpi_status acpi_release_global_lock(u32 handle); u32 *handle))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_release_global_lock(u32 handle))
/* /*
* Interfaces to AML mutex objects * Interfaces to AML mutex objects
...@@ -299,47 +336,75 @@ acpi_status acpi_release_mutex(acpi_handle handle, acpi_string pathname); ...@@ -299,47 +336,75 @@ acpi_status acpi_release_mutex(acpi_handle handle, acpi_string pathname);
/* /*
* Fixed Event interfaces * Fixed Event interfaces
*/ */
acpi_status acpi_enable_event(u32 event, u32 flags); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_enable_event(u32 event, u32 flags))
acpi_status acpi_disable_event(u32 event, u32 flags);
acpi_status acpi_clear_event(u32 event); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_disable_event(u32 event, u32 flags))
acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_clear_event(u32 event))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_get_event_status(u32 event,
acpi_event_status
*event_status))
/* /*
* General Purpose Event (GPE) Interfaces * General Purpose Event (GPE) Interfaces
*/ */
acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_update_all_gpes(void))
acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_enable_gpe(acpi_handle gpe_device,
acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number); u32 gpe_number))
acpi_status ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_setup_gpe_for_wake(acpi_handle parent_device, acpi_disable_gpe(acpi_handle gpe_device,
acpi_handle gpe_device, u32 gpe_number); u32 gpe_number))
acpi_status acpi_set_gpe_wake_mask(acpi_handle gpe_device, u32 gpe_number, u8 action); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_clear_gpe(acpi_handle gpe_device,
acpi_status u32 gpe_number))
acpi_get_gpe_status(acpi_handle gpe_device,
u32 gpe_number, acpi_event_status *event_status); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_set_gpe(acpi_handle gpe_device,
acpi_status acpi_disable_all_gpes(void); u32 gpe_number, u8 action))
acpi_status acpi_enable_all_runtime_gpes(void); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_finish_gpe(acpi_handle gpe_device,
acpi_status acpi_get_gpe_device(u32 gpe_index, acpi_handle *gpe_device); u32 gpe_number))
acpi_status ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_install_gpe_block(acpi_handle gpe_device, acpi_setup_gpe_for_wake(acpi_handle
struct acpi_generic_address *gpe_block_address, parent_device,
u32 register_count, u32 interrupt_number); acpi_handle gpe_device,
u32 gpe_number))
acpi_status acpi_remove_gpe_block(acpi_handle gpe_device); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_set_gpe_wake_mask(acpi_handle gpe_device,
acpi_status acpi_update_all_gpes(void); u32 gpe_number,
u8 action))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_get_gpe_status(acpi_handle gpe_device,
u32 gpe_number,
acpi_event_status
*event_status))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable_all_gpes(void))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enable_all_runtime_gpes(void))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_get_gpe_device(u32 gpe_index,
acpi_handle * gpe_device))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_install_gpe_block(acpi_handle gpe_device,
struct
acpi_generic_address
*gpe_block_address,
u32 register_count,
u32 interrupt_number))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_remove_gpe_block(acpi_handle gpe_device))
/* /*
* Resource interfaces * Resource interfaces
...@@ -391,20 +456,31 @@ acpi_buffer_to_resource(u8 *aml_buffer, ...@@ -391,20 +456,31 @@ acpi_buffer_to_resource(u8 *aml_buffer,
*/ */
acpi_status acpi_reset(void); acpi_status acpi_reset(void);
acpi_status acpi_read_bit_register(u32 register_id, u32 *return_value); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_read_bit_register(u32 register_id,
u32 *return_value))
acpi_status acpi_write_bit_register(u32 register_id, u32 value); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_write_bit_register(u32 register_id,
u32 value))
acpi_status acpi_set_firmware_waking_vector(u32 physical_address); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_set_firmware_waking_vector(u32
physical_address))
#if ACPI_MACHINE_WIDTH == 64 #if ACPI_MACHINE_WIDTH == 64
acpi_status acpi_set_firmware_waking_vector64(u64 physical_address); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_set_firmware_waking_vector64(u64
physical_address))
#endif #endif
acpi_status acpi_read(u64 *value, struct acpi_generic_address *reg); acpi_status acpi_read(u64 *value, struct acpi_generic_address *reg);
acpi_status acpi_write(u64 value, struct acpi_generic_address *reg); acpi_status acpi_write(u64 value, struct acpi_generic_address *reg);
/*
* Sleep/Wake interfaces
*/
acpi_status acpi_status
acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b); acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b);
...@@ -412,7 +488,7 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state); ...@@ -412,7 +488,7 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state); acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state);
acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void))
acpi_status acpi_leave_sleep_state_prep(u8 sleep_state); acpi_status acpi_leave_sleep_state_prep(u8 sleep_state);
...@@ -422,12 +498,15 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state); ...@@ -422,12 +498,15 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state);
* ACPI Timer interfaces * ACPI Timer interfaces
*/ */
#ifdef ACPI_FUTURE_USAGE #ifdef ACPI_FUTURE_USAGE
acpi_status acpi_get_timer_resolution(u32 *resolution); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_get_timer_resolution(u32 *resolution))
acpi_status acpi_get_timer(u32 *ticks); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_get_timer(u32 *ticks))
acpi_status ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 *time_elapsed); acpi_get_timer_duration(u32 start_ticks,
u32 end_ticks,
u32 *time_elapsed))
#endif /* ACPI_FUTURE_USAGE */ #endif /* ACPI_FUTURE_USAGE */
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment