diff options
Diffstat (limited to 'namespace/nsrepair2.c')
| -rw-r--r-- | namespace/nsrepair2.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/namespace/nsrepair2.c b/namespace/nsrepair2.c index 4c9c6d78259a..d8a0420cf94c 100644 --- a/namespace/nsrepair2.c +++ b/namespace/nsrepair2.c @@ -555,8 +555,23 @@ AcpiNsRepair_TSS ( { ACPI_OPERAND_OBJECT *ReturnObject = *ReturnObjectPtr; ACPI_STATUS Status; + ACPI_NAMESPACE_NODE *Node; + /* + * We can only sort the _TSS return package if there is no _PSS in the + * same scope. This is because if _PSS is present, the ACPI specification + * dictates that the _TSS Power Dissipation field is to be ignored, and + * therefore some BIOSs leave garbage values in the _TSS Power field(s). + * In this case, it is best to just return the _TSS package as-is. + * (May, 2011) + */ + Status = AcpiNsGetNode (Data->Node, "^_PSS", ACPI_NS_NO_UPSEARCH, &Node); + if (ACPI_SUCCESS (Status)) + { + return (AE_OK); + } + Status = AcpiNsCheckSortedList (Data, ReturnObject, 5, 1, ACPI_SORT_DESCENDING, "PowerDissipation"); |
