acpica: Import ACPICA 20201217.

(cherry picked from commit a4634ed7779f0905e3bfeb781e58d40a5bdf9bb7)
This commit is contained in:
Jung-uk Kim 2021-01-04 17:20:55 -05:00
parent d1de5698df
commit 385fb5d933
29 changed files with 95 additions and 40 deletions

View File

@ -1,5 +1,40 @@
----------------------------------------
17 December 2020. Summary of changes for version 20201217:
This release is available at https://acpica.org/downloads
1) ACPICA kernel-resident subsystem:
Note: The implementation of ACPI 6.4 is underway, and is expected to be
mostly finished next month, when ACPI 6.4 is released.
From qzed:- fixed-ae-class-macros. Fix exception code class checks. Added
several new macros, such as ACPI_CNTL_EXCEPTION(Status) in order to
enable this.
AcpiExec/iASL/AcpiHelp: Added a few changes for support of GCC 10.2.0.
These included a few casts, as well as a null pointer check.
Fix -Wfallthrough: GCC 7.1 gained -Wimplicit-fallthrough to warn on
implicit fallthrough, as well as __attribute__((__fallthrough__)) and
comments to explicitly denote that cases of fallthrough were intentional.
Clang also supports this warning and statement attribute, but not the
comment form. Added a new macro, ACPI_FALLTHROUGH to support this feature
of GCC. With assistance from @nickdesaulniers.
2) iASL Compiler/Disassembler and ACPICA tools:
Added improvement to method call analysis by saving the return type and
relaxing certain cases of type checking.
iASL Table Compiler: Improved info messages. Added a message to the -T
option for when the default template (DSDT) is used.
Also added a note for when multiple SSDTs are created with a DSDT that
the SSDTs are created in the same file as the DSDT.
----------------------------------------
13 November 2020. Summary of changes for version 20201113:

View File

@ -470,7 +470,7 @@ AnCheckMethodReturnValue (
"Method returns [%s], %s operator requires [%s]",
AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2);
AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer);
AslError (ASL_WARNING, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer);
}
}

View File

@ -812,9 +812,9 @@ NamePathTail [.]{NameSeg}
"__PATH__" { count (0); return (PARSEOP___PATH__); }
"__METHOD__" { count (0); return (PARSEOP___METHOD__); }
"__EXPECT__"{ErrorCode} { char *s;
int index = 0;
unsigned int index = 0;
count (0);
while (!isdigit (AslCompilertext[index]))
while (!isdigit ((int) AslCompilertext[index]))
{
index++;
}

View File

@ -1456,7 +1456,7 @@ AslIsExceptionDisabled (
{
return (TRUE);
}
/* Fall through */
ACPI_FALLTHROUGH;
case ASL_WARNING:
case ASL_REMARK:

View File

@ -288,6 +288,7 @@ MtMethodAnalysisWalkBegin (
NextType = Next->Asl.Child;
MethodInfo->ValidReturnTypes = MtProcessTypeOp (NextType);
Op->Asl.AcpiBtype |= MethodInfo->ValidReturnTypes;
/* Get the ParameterType node */

View File

@ -414,7 +414,7 @@ TrCreateValuedLeafOp (
for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (islower (Op->Asl.Value.Name[i]))
if (islower ((int) Op->Asl.Value.Name[i]))
{
AcpiUtStrupr (&Op->Asl.Value.Name[i]);
AslError (ASL_REMARK, ASL_MSG_LOWER_CASE_NAMESEG, Op, Op->Asl.Value.Name);
@ -431,7 +431,7 @@ TrCreateValuedLeafOp (
StringPtr = Op->Asl.Value.Name;
for (i = 0; *StringPtr; i++)
{
if (islower (*StringPtr))
if (islower ((int) *StringPtr))
{
AcpiUtStrupr (&Op->Asl.Value.Name[i]);
AslError (ASL_REMARK, ASL_MSG_LOWER_CASE_NAMEPATH, Op, Op->Asl.Value.Name);

View File

@ -516,7 +516,7 @@ AnOperandTypecheckWalkEnd (
break;
}
/* Fallthrough */
ACPI_FALLTHROUGH;
case ARGI_STORE_TARGET:

View File

@ -227,7 +227,7 @@ DtCompileOneField (
break;
}
/* Fall through. */
ACPI_FALLTHROUGH;
case DT_FIELD_TYPE_BUFFER:

View File

@ -255,6 +255,7 @@ DtCreateTemplates (
if (AcpiGbl_Optind < 3)
{
fprintf (stderr, "Creating default template: [DSDT]\n");
Status = DtCreateOneTemplateFile (ACPI_SIG_DSDT, 0);
goto Exit;
}
@ -640,7 +641,7 @@ DtCreateOneTemplate (
{
fprintf (stderr,
"Created ACPI table templates for [%4.4s] "
"and %u [SSDT], written to \"%s\"\n",
"and %u [SSDT] in same file, written to \"%s\"\n",
Signature, TableCount, DisasmFilename);
}

View File

@ -642,7 +642,7 @@ AcpiDbGetNextToken (
/* Remove any spaces at the beginning, ignore blank lines */
while (*String && isspace (*String))
while (*String && isspace ((int) *String))
{
String++;
}
@ -754,7 +754,7 @@ AcpiDbGetNextToken (
/* Find end of token */
while (*String && !isspace (*String))
while (*String && !isspace ((int) *String))
{
String++;
}

View File

@ -201,7 +201,7 @@ AcpiDbDumpMethodInfo (
/* Ignore control codes, they are not errors */
if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL)
if (ACPI_CNTL_EXCEPTION (Status))
{
return;
}

View File

@ -400,7 +400,7 @@ AcpiDmBlockType (
return (BLOCK_NONE);
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case AML_PACKAGE_OP:
case AML_VARIABLE_PACKAGE_OP:
@ -422,7 +422,7 @@ AcpiDmBlockType (
return (BLOCK_NONE);
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
default:
@ -688,7 +688,7 @@ AcpiDmDescendingOp (
return (AE_OK);
}
/* Fallthrough */
ACPI_FALLTHROUGH;
default:
@ -772,7 +772,7 @@ AcpiDmDescendingOp (
AcpiDmNamestring (NextOp->Common.Value.Name);
AcpiOsPrintf (", ");
/*lint -fallthrough */
ACPI_FALLTHROUGH;
default:

View File

@ -210,7 +210,7 @@ AcpiDsExecBeginControlOp (
}
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case AML_IF_OP:
/*

View File

@ -254,7 +254,7 @@ AcpiDsDumpMethodStack (
/* Ignore control codes, they are not errors */
if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL)
if (ACPI_CNTL_EXCEPTION (Status))
{
return_VOID;
}

View File

@ -772,8 +772,7 @@ AcpiDsExecEndOp (
break;
}
/* Fall through */
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case AML_INT_EVAL_SUBTREE_OP:

View File

@ -375,7 +375,7 @@ AcpiDsLoad1BeginOp (
break;
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
default:

View File

@ -366,7 +366,7 @@ AcpiDsLoad2BeginOp (
break;
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
default:

View File

@ -616,7 +616,7 @@ AcpiExFieldDatumIo (
* RegionField case and write the datum to the Operation Region
*/
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case ACPI_TYPE_LOCAL_REGION_FIELD:
/*

View File

@ -358,7 +358,7 @@ AcpiExResolveOperands (
TargetOp = AML_DEBUG_OP;
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case ACPI_REFCLASS_ARG:
case ACPI_REFCLASS_LOCAL:
@ -422,7 +422,7 @@ AcpiExResolveOperands (
* Else not a string - fall through to the normal Reference
* case below
*/
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case ARGI_REFERENCE: /* References: */
case ARGI_INTEGER_REF:

View File

@ -248,7 +248,7 @@ AcpiExStore (
return_ACPI_STATUS (AE_OK);
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
default:
@ -585,7 +585,7 @@ AcpiExStoreObjectToNode (
break;
}
/* Fallthrough */
ACPI_FALLTHROUGH;
case ACPI_TYPE_DEVICE:
case ACPI_TYPE_EVENT:

View File

@ -254,7 +254,7 @@ AcpiHwLowSetGpe (
return (AE_BAD_PARAMETER);
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case ACPI_GPE_ENABLE:

View File

@ -410,8 +410,7 @@ AcpiPsParseLoop (
*/
WalkState->Op = NULL;
Status = AcpiDsGetPredicateValue (WalkState, ACPI_TO_POINTER (TRUE));
if (ACPI_FAILURE (Status) &&
((Status & AE_CODE_MASK) != AE_CODE_CONTROL))
if (ACPI_FAILURE (Status) && !ACPI_CNTL_EXCEPTION (Status))
{
if (Status == AE_AML_NO_RETURN_VALUE)
{

View File

@ -533,7 +533,7 @@ AcpiPsNextParseState (
default:
Status = CallbackStatus;
if ((CallbackStatus & AE_CODE_MASK) == AE_CODE_CONTROL)
if (ACPI_CNTL_EXCEPTION (CallbackStatus))
{
Status = AE_OK;
}

View File

@ -266,7 +266,7 @@ AcpiUtDeleteInternalObj (
(void) AcpiEvDeleteGpeBlock (Object->Device.GpeBlock);
}
/*lint -fallthrough */
ACPI_FALLTHROUGH;
case ACPI_TYPE_PROCESSOR:
case ACPI_TYPE_THERMAL:

View File

@ -274,7 +274,7 @@ AcpiUtConvertDecimalString (
* 1) Runtime: terminate with no error, per the ACPI spec
* 2) Compiler: return an error
*/
if (!isdigit (*String))
if (!isdigit ((int) *String))
{
#ifdef ACPI_ASL_COMPILER
Status = AE_BAD_DECIMAL_CONSTANT;
@ -336,7 +336,7 @@ AcpiUtConvertHexString (
* 1) Runtime: terminate with no error, per the ACPI spec
* 2) Compiler: return an error
*/
if (!isxdigit (*String))
if (!isxdigit ((int) *String))
{
#ifdef ACPI_ASL_COMPILER
Status = AE_BAD_HEX_CONSTANT;

View File

@ -204,11 +204,11 @@ typedef struct acpi_exception_info
#define AE_OK (ACPI_STATUS) 0x0000
#define ACPI_ENV_EXCEPTION(Status) (Status & AE_CODE_ENVIRONMENTAL)
#define ACPI_AML_EXCEPTION(Status) (Status & AE_CODE_AML)
#define ACPI_PROG_EXCEPTION(Status) (Status & AE_CODE_PROGRAMMER)
#define ACPI_TABLE_EXCEPTION(Status) (Status & AE_CODE_ACPI_TABLES)
#define ACPI_CNTL_EXCEPTION(Status) (Status & AE_CODE_CONTROL)
#define ACPI_ENV_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_ENVIRONMENTAL)
#define ACPI_AML_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_AML)
#define ACPI_PROG_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_PROGRAMMER)
#define ACPI_TABLE_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_ACPI_TABLES)
#define ACPI_CNTL_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_CONTROL)
/*

View File

@ -154,7 +154,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x20201113
#define ACPI_CA_VERSION 0x20201217
#include <contrib/dev/acpica/include/acconfig.h>
#include <contrib/dev/acpica/include/actypes.h>

View File

@ -1537,5 +1537,10 @@ typedef enum
#define ACPI_OPT_END -1
/* Definitions for explicit fallthrough */
#ifndef ACPI_FALLTHROUGH
#define ACPI_FALLTHROUGH do {} while(0)
#endif
#endif /* __ACTYPES_H__ */

View File

@ -198,4 +198,19 @@ typedef __builtin_va_list va_list;
#define ACPI_USE_NATIVE_MATH64
/* GCC did not support __has_attribute until 5.1. */
#ifndef __has_attribute
#define __has_attribute(x) 0
#endif
/*
* Explictly mark intentional explicit fallthrough to silence
* -Wimplicit-fallthrough in GCC 7.1+.
*/
#if __has_attribute(__fallthrough__)
#define ACPI_FALLTHROUGH __attribute__((__fallthrough__))
#endif
#endif /* __ACGCC_H__ */