Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 286459
b: refs/heads/master
c: 22e5b40
h: refs/heads/master
i:
  286457: cb7ea0d
  286455: 3a3a234
v: v3
  • Loading branch information
Bob Moore authored and Len Brown committed Jan 17, 2012
1 parent 1385b8e commit 40e35c8
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2355e10f07b2c550c671f98b68aedf323c299aeb
refs/heads/master: 22e5b40ab21fcac21db0ff25fbb844ffecc73a4a
13 changes: 12 additions & 1 deletion trunk/drivers/acpi/acpica/acglobal.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,19 @@ u32 acpi_gbl_trace_flags;
acpi_name acpi_gbl_trace_method_name;
u8 acpi_gbl_system_awake_and_running;

/*
* ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning
* that the ACPI hardware is no longer required. A flag in the FADT indicates
* a reduced HW machine, and that flag is duplicated here for convenience.
*/
u8 acpi_gbl_reduced_hardware;

#endif

/* Do not disassemble buffers to resource descriptors */

ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_no_resource_disassembly, FALSE);

/*****************************************************************************
*
* Debug support
Expand Down Expand Up @@ -207,7 +218,7 @@ ACPI_EXTERN struct acpi_rw_lock acpi_gbl_namespace_rw_lock;

/*****************************************************************************
*
* Mutual exlusion within ACPICA subsystem
* Mutual exclusion within ACPICA subsystem
*
****************************************************************************/

Expand Down
12 changes: 12 additions & 0 deletions trunk/drivers/acpi/acpica/evevent.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ acpi_status acpi_ev_initialize_events(void)

ACPI_FUNCTION_TRACE(ev_initialize_events);

/* If Hardware Reduced flag is set, there are no fixed events */

if (acpi_gbl_reduced_hardware) {
return_ACPI_STATUS(AE_OK);
}

/*
* Initialize the Fixed and General Purpose Events. This is done prior to
* enabling SCIs to prevent interrupts from occurring before the handlers
Expand Down Expand Up @@ -111,6 +117,12 @@ acpi_status acpi_ev_install_xrupt_handlers(void)

ACPI_FUNCTION_TRACE(ev_install_xrupt_handlers);

/* If Hardware Reduced flag is set, there is no ACPI h/w */

if (acpi_gbl_reduced_hardware) {
return_ACPI_STATUS(AE_OK);
}

/* Install the SCI handler */

status = acpi_ev_install_sci_handler();
Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/acpi/acpica/evglock.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ acpi_status acpi_ev_init_global_lock_handler(void)

ACPI_FUNCTION_TRACE(ev_init_global_lock_handler);

/* If Hardware Reduced flag is set, there is no global lock */

if (acpi_gbl_reduced_hardware) {
return_ACPI_STATUS(AE_OK);
}

/* Attempt installation of the global lock handler */

status = acpi_install_fixed_event_handler(ACPI_EVENT_GLOBAL,
Expand Down
22 changes: 20 additions & 2 deletions trunk/drivers/acpi/acpica/tbfadt.c
Original file line number Diff line number Diff line change
Expand Up @@ -253,8 +253,13 @@ void acpi_tb_parse_fadt(u32 table_index)
acpi_tb_install_table((acpi_physical_address) acpi_gbl_FADT.Xdsdt,
ACPI_SIG_DSDT, ACPI_TABLE_INDEX_DSDT);

acpi_tb_install_table((acpi_physical_address) acpi_gbl_FADT.Xfacs,
ACPI_SIG_FACS, ACPI_TABLE_INDEX_FACS);
/* If Hardware Reduced flag is set, there is no FACS */

if (!acpi_gbl_reduced_hardware) {
acpi_tb_install_table((acpi_physical_address) acpi_gbl_FADT.
Xfacs, ACPI_SIG_FACS,
ACPI_TABLE_INDEX_FACS);
}
}

/*******************************************************************************
Expand Down Expand Up @@ -297,6 +302,13 @@ void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
ACPI_MEMCPY(&acpi_gbl_FADT, table,
ACPI_MIN(length, sizeof(struct acpi_table_fadt)));

/* Take a copy of the Hardware Reduced flag */

acpi_gbl_reduced_hardware = FALSE;
if (acpi_gbl_FADT.flags & ACPI_FADT_HW_REDUCED) {
acpi_gbl_reduced_hardware = TRUE;
}

/* Convert the local copy of the FADT to the common internal format */

acpi_tb_convert_fadt();
Expand Down Expand Up @@ -502,6 +514,12 @@ static void acpi_tb_validate_fadt(void)
acpi_gbl_FADT.Xdsdt = (u64) acpi_gbl_FADT.dsdt;
}

/* If Hardware Reduced flag is set, we are all done */

if (acpi_gbl_reduced_hardware) {
return;
}

/* Examine all of the 64-bit extended address fields (X fields) */

for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++) {
Expand Down
7 changes: 7 additions & 0 deletions trunk/drivers/acpi/acpica/tbutils.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,13 @@ acpi_status acpi_tb_initialize_facs(void)
{
acpi_status status;

/* If Hardware Reduced flag is set, there is no FACS */

if (acpi_gbl_reduced_hardware) {
acpi_gbl_FACS = NULL;
return (AE_OK);
}

status = acpi_get_table_by_index(ACPI_TABLE_INDEX_FACS,
ACPI_CAST_INDIRECT_PTR(struct
acpi_table_header,
Expand Down
1 change: 1 addition & 0 deletions trunk/include/acpi/acpixf.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ extern u8 acpi_gbl_disable_auto_repair;
extern u32 acpi_current_gpe_count;
extern struct acpi_table_fadt acpi_gbl_FADT;
extern u8 acpi_gbl_system_awake_and_running;
extern u8 acpi_gbl_reduced_hardware; /* ACPI 5.0 */

extern u32 acpi_rsdt_forced;
/*
Expand Down

0 comments on commit 40e35c8

Please sign in to comment.