Skip to content

Commit

Permalink
ACPICA: Support for custom ACPICA build for ACPI 5 reduced hardware
Browse files Browse the repository at this point in the history
Add ACPI_REDUCED_HARDWARE flag that removes all hardware-related
code (about 10% code, 5% static data).

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>
  • Loading branch information
Bob Moore authored and Len Brown committed Mar 22, 2012
1 parent d08310f commit 33620c5
Show file tree
Hide file tree
Showing 29 changed files with 531 additions and 320 deletions.
1 change: 0 additions & 1 deletion drivers/acpi/acpica/accommon.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
*
* Note: The order of these include files is important.
*/
#include "acconfig.h" /* Global configuration constants */
#include "acmacros.h" /* C macros */
#include "aclocal.h" /* Internal data types */
#include "acobject.h" /* ACPI internal object */
Expand Down
8 changes: 5 additions & 3 deletions drivers/acpi/acpica/acdebug.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,19 +111,21 @@ acpi_status acpi_db_find_name_in_namespace(char *name_arg);

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_display_locks(void);

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_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);

Expand Down
21 changes: 11 additions & 10 deletions drivers/acpi/acpica/acevents.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_acquire_global_lock(u16 timeout);

acpi_status acpi_ev_release_global_lock(void);

acpi_status acpi_ev_remove_global_lock_handler(void);
ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
acpi_ev_acquire_global_lock(u16 timeout))
ACPI_HW_DEPENDENT_RETURN_OK(acpi_status acpi_ev_release_global_lock(void))
acpi_status acpi_ev_remove_global_lock_handler(void);

/*
* evgpe - Low-level GPE support
Expand Down Expand Up @@ -114,7 +113,9 @@ acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
struct acpi_gpe_block_info *gpe_block,
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
acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
Expand All @@ -126,9 +127,10 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
*/
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,
u32 level, void *context, void **return_value);

Expand Down Expand Up @@ -237,6 +239,5 @@ acpi_status acpi_ev_remove_sci_handler(void);

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__ */
11 changes: 10 additions & 1 deletion drivers/acpi/acpica/acglobal.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ u8 acpi_gbl_system_awake_and_running;
*/
u8 acpi_gbl_reduced_hardware;

#endif
#endif /* DEFINE_ACPI_GLOBALS */

/* Do not disassemble buffers to resource descriptors */

Expand Down Expand Up @@ -184,8 +184,12 @@ ACPI_EXTERN u32 acpi_gbl_trace_dbg_layer;
* found in the RSDT/XSDT.
*/
ACPI_EXTERN struct acpi_table_list acpi_gbl_root_table_list;

#if (!ACPI_REDUCED_HARDWARE)
ACPI_EXTERN struct acpi_table_facs *acpi_gbl_FACS;

#endif /* !ACPI_REDUCED_HARDWARE */

/* These addresses are calculated from the FADT Event Block addresses */

ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1a_status;
Expand Down Expand Up @@ -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_block_info
*acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS];

#if (!ACPI_REDUCED_HARDWARE)

ACPI_EXTERN u8 acpi_gbl_all_gpes_initialized;
ACPI_EXTERN ACPI_GBL_EVENT_HANDLER acpi_gbl_global_event_handler;
ACPI_EXTERN void *acpi_gbl_global_event_handler_context;

#endif /* !ACPI_REDUCED_HARDWARE */

/*****************************************************************************
*
* Debugger globals
Expand Down
4 changes: 3 additions & 1 deletion drivers/acpi/acpica/evevent.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evevent")

#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static acpi_status acpi_ev_fixed_event_initialize(void);

Expand Down Expand Up @@ -291,3 +291,5 @@ static u32 acpi_ev_fixed_event_dispatch(u32 event)
return ((acpi_gbl_fixed_event_handlers[event].
handler) (acpi_gbl_fixed_event_handlers[event].context));
}

#endif /* !ACPI_REDUCED_HARDWARE */
4 changes: 3 additions & 1 deletion drivers/acpi/acpica/evglock.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evglock")

#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static u32 acpi_ev_global_lock_handler(void *context);

Expand Down Expand Up @@ -339,3 +339,5 @@ acpi_status acpi_ev_release_global_lock(void)
acpi_os_release_mutex(acpi_gbl_global_lock_mutex->mutex.os_mutex);
return_ACPI_STATUS(status);
}

#endif /* !ACPI_REDUCED_HARDWARE */
4 changes: 3 additions & 1 deletion drivers/acpi/acpica/evgpe.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpe")

#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context);

Expand Down Expand Up @@ -766,3 +766,5 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,

return_UINT32(ACPI_INTERRUPT_HANDLED);
}

#endif /* !ACPI_REDUCED_HARDWARE */
4 changes: 3 additions & 1 deletion drivers/acpi/acpica/evgpeblk.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpeblk")

#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static acpi_status
acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
Expand Down Expand Up @@ -504,3 +504,5 @@ acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,

return_ACPI_STATUS(AE_OK);
}

#endif /* !ACPI_REDUCED_HARDWARE */
4 changes: 3 additions & 1 deletion drivers/acpi/acpica/evgpeinit.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpeinit")

#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/*
* Note: History of _PRW support in ACPICA
*
Expand Down Expand Up @@ -440,3 +440,5 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,
name, gpe_number));
return_ACPI_STATUS(AE_OK);
}

#endif /* !ACPI_REDUCED_HARDWARE */
3 changes: 3 additions & 0 deletions drivers/acpi/acpica/evgpeutil.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpeutil")

#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/*******************************************************************************
*
* FUNCTION: acpi_ev_walk_gpe_list
Expand Down Expand Up @@ -374,3 +375,5 @@ acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,

return_ACPI_STATUS(AE_OK);
}

#endif /* !ACPI_REDUCED_HARDWARE */
3 changes: 3 additions & 0 deletions drivers/acpi/acpica/evmisc.c
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_notify_dispatch(void *context)
acpi_ut_delete_generic_state(notify_info);
}

#if (!ACPI_REDUCED_HARDWARE)
/******************************************************************************
*
* FUNCTION: acpi_ev_terminate
Expand Down Expand Up @@ -338,3 +339,5 @@ void acpi_ev_terminate(void)
}
return_VOID;
}

#endif /* !ACPI_REDUCED_HARDWARE */
4 changes: 3 additions & 1 deletion drivers/acpi/acpica/evsci.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evsci")

#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context);

Expand Down Expand Up @@ -181,3 +181,5 @@ acpi_status acpi_ev_remove_sci_handler(void)

return_ACPI_STATUS(status);
}

#endif /* !ACPI_REDUCED_HARDWARE */
Loading

0 comments on commit 33620c5

Please sign in to comment.