git: ab71bbb75a92 - main - acpica: Import ACPICA 20220331

From: Jung-uk Kim <jkim_at_FreeBSD.org>
Date: Fri, 01 Apr 2022 02:00:01 UTC
The branch main has been updated by jkim:

URL: https://cgit.FreeBSD.org/src/commit/?id=ab71bbb75a92412f6327ff152ebe638568e9021c

commit ab71bbb75a92412f6327ff152ebe638568e9021c
Author:     Jung-uk Kim <jkim@FreeBSD.org>
AuthorDate: 2022-03-31 22:06:25 +0000
Commit:     Jung-uk Kim <jkim@FreeBSD.org>
CommitDate: 2022-04-01 01:59:23 +0000

    acpica: Import ACPICA 20220331
    
    (cherry picked from commit ca1c95cc699a25d891e62ef863c8268c93b35cf8)
---
 sys/contrib/dev/acpica/changes.txt                 | 126 +++++++
 sys/contrib/dev/acpica/common/acfileio.c           |  13 +-
 sys/contrib/dev/acpica/common/acgetline.c          |   2 +-
 sys/contrib/dev/acpica/common/adfile.c             |   2 +-
 sys/contrib/dev/acpica/common/adisasm.c            |   2 +-
 sys/contrib/dev/acpica/common/adwalk.c             |   2 +-
 sys/contrib/dev/acpica/common/ahids.c              |   2 +-
 sys/contrib/dev/acpica/common/ahpredef.c           |   2 +-
 sys/contrib/dev/acpica/common/ahtable.c            |   5 +-
 sys/contrib/dev/acpica/common/ahuuids.c            |   2 +-
 sys/contrib/dev/acpica/common/cmfsize.c            |   2 +-
 sys/contrib/dev/acpica/common/dmextern.c           |   2 +-
 sys/contrib/dev/acpica/common/dmrestag.c           |   2 +-
 sys/contrib/dev/acpica/common/dmswitch.c           |   2 +-
 sys/contrib/dev/acpica/common/dmtable.c            | 179 ++++++++-
 sys/contrib/dev/acpica/common/dmtables.c           |   2 +-
 sys/contrib/dev/acpica/common/dmtbdump.c           |  72 +++-
 sys/contrib/dev/acpica/common/dmtbdump1.c          | 116 +++++-
 sys/contrib/dev/acpica/common/dmtbdump2.c          | 330 ++++++++++++-----
 sys/contrib/dev/acpica/common/dmtbdump3.c          |   2 +-
 sys/contrib/dev/acpica/common/dmtbinfo.c           |   8 +-
 sys/contrib/dev/acpica/common/dmtbinfo1.c          |  33 +-
 sys/contrib/dev/acpica/common/dmtbinfo2.c          | 134 +++++--
 sys/contrib/dev/acpica/common/dmtbinfo3.c          |  16 +-
 sys/contrib/dev/acpica/common/getopt.c             |   2 +-
 sys/contrib/dev/acpica/compiler/aslallocate.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslanalyze.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslascii.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslbtypes.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslcache.c         |   7 +-
 sys/contrib/dev/acpica/compiler/aslcodegen.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslcompile.c       |   5 +-
 sys/contrib/dev/acpica/compiler/aslcompiler.h      |   2 +-
 sys/contrib/dev/acpica/compiler/aslcompiler.l      |   2 +-
 sys/contrib/dev/acpica/compiler/aslcstyle.y        |   2 +-
 sys/contrib/dev/acpica/compiler/asldebug.c         |   2 +-
 sys/contrib/dev/acpica/compiler/asldefine.h        |   2 +-
 sys/contrib/dev/acpica/compiler/aslerror.c         |   5 +-
 sys/contrib/dev/acpica/compiler/aslexternal.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslfileio.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslfiles.c         |   6 +-
 sys/contrib/dev/acpica/compiler/aslfold.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslglobal.h        |   2 +-
 sys/contrib/dev/acpica/compiler/aslhelp.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslhelpers.y       |   2 +-
 sys/contrib/dev/acpica/compiler/aslhex.c           |   2 +-
 sys/contrib/dev/acpica/compiler/aslkeywords.y      |   2 +-
 sys/contrib/dev/acpica/compiler/asllength.c        |   2 +-
 sys/contrib/dev/acpica/compiler/asllisting.c       |   2 +-
 sys/contrib/dev/acpica/compiler/asllistsup.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslload.c          |   2 +-
 sys/contrib/dev/acpica/compiler/asllookup.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslmain.c          |   4 +-
 sys/contrib/dev/acpica/compiler/aslmap.c           |   6 +-
 sys/contrib/dev/acpica/compiler/aslmapenter.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslmapoutput.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslmaputils.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslmessages.c      |   7 +-
 sys/contrib/dev/acpica/compiler/aslmessages.h      |   4 +-
 sys/contrib/dev/acpica/compiler/aslmethod.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslnamesp.c        |   2 +-
 sys/contrib/dev/acpica/compiler/asloffset.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslopcodes.c       |   2 +-
 sys/contrib/dev/acpica/compiler/asloperands.c      |   8 +-
 sys/contrib/dev/acpica/compiler/aslopt.c           |   2 +-
 sys/contrib/dev/acpica/compiler/asloptions.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslparseop.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslparser.y        |   2 +-
 sys/contrib/dev/acpica/compiler/aslpld.c           |   2 +-
 sys/contrib/dev/acpica/compiler/aslpredef.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslprepkg.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslprimaries.y     |   4 +-
 sys/contrib/dev/acpica/compiler/aslprintf.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslprune.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslresource.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslresources.y     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype1.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype1i.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2d.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2e.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2q.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2s.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2w.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrules.y         |   8 +-
 sys/contrib/dev/acpica/compiler/aslstartup.c       |  25 +-
 sys/contrib/dev/acpica/compiler/aslstubs.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslsupport.l       |   2 +-
 sys/contrib/dev/acpica/compiler/aslsupport.y       |   2 +-
 sys/contrib/dev/acpica/compiler/asltokens.y        |   2 +-
 sys/contrib/dev/acpica/compiler/asltransform.c     |   2 +-
 sys/contrib/dev/acpica/compiler/asltree.c          |   2 +-
 sys/contrib/dev/acpica/compiler/asltypes.h         |   2 +-
 sys/contrib/dev/acpica/compiler/asltypes.y         |   4 +-
 sys/contrib/dev/acpica/compiler/aslutils.c         |   2 +-
 sys/contrib/dev/acpica/compiler/asluuid.c          |   3 +-
 sys/contrib/dev/acpica/compiler/aslwalks.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslxref.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslxrefout.c       |   2 +-
 sys/contrib/dev/acpica/compiler/cvcompiler.c       |   2 +-
 sys/contrib/dev/acpica/compiler/cvdisasm.c         |   2 +-
 sys/contrib/dev/acpica/compiler/cvparser.c         |   2 +-
 sys/contrib/dev/acpica/compiler/dtcompile.c        |   2 +-
 sys/contrib/dev/acpica/compiler/dtcompiler.h       |  10 +-
 sys/contrib/dev/acpica/compiler/dtcompilerparser.l |   2 +-
 sys/contrib/dev/acpica/compiler/dtcompilerparser.y |   2 +-
 sys/contrib/dev/acpica/compiler/dtexpress.c        |   2 +-
 sys/contrib/dev/acpica/compiler/dtfield.c          |   8 +-
 sys/contrib/dev/acpica/compiler/dtio.c             |   2 +-
 sys/contrib/dev/acpica/compiler/dtparser.l         |   2 +-
 sys/contrib/dev/acpica/compiler/dtparser.y         |   2 +-
 sys/contrib/dev/acpica/compiler/dtsubtable.c       |   2 +-
 sys/contrib/dev/acpica/compiler/dttable.c          |  61 +++-
 sys/contrib/dev/acpica/compiler/dttable1.c         | 179 ++++++++-
 sys/contrib/dev/acpica/compiler/dttable2.c         | 404 ++++++++++++++++++++-
 sys/contrib/dev/acpica/compiler/dttemplate.c       |   2 +-
 sys/contrib/dev/acpica/compiler/dttemplate.h       | 205 +++++++++--
 sys/contrib/dev/acpica/compiler/dtutils.c          |  15 +-
 sys/contrib/dev/acpica/compiler/preprocess.h       |   2 +-
 sys/contrib/dev/acpica/compiler/prexpress.c        |   2 +-
 sys/contrib/dev/acpica/compiler/prmacros.c         |   2 +-
 sys/contrib/dev/acpica/compiler/prparser.l         |   2 +-
 sys/contrib/dev/acpica/compiler/prparser.y         |   2 +-
 sys/contrib/dev/acpica/compiler/prscan.c           |   2 +-
 sys/contrib/dev/acpica/compiler/prutils.c          |   2 +-
 .../dev/acpica/components/debugger/dbcmds.c        |   2 +-
 .../dev/acpica/components/debugger/dbconvert.c     |   2 +-
 .../dev/acpica/components/debugger/dbdisply.c      |   2 +-
 .../dev/acpica/components/debugger/dbexec.c        |   2 +-
 .../dev/acpica/components/debugger/dbfileio.c      |   2 +-
 .../dev/acpica/components/debugger/dbhistry.c      |   2 +-
 .../dev/acpica/components/debugger/dbinput.c       |   2 +-
 .../dev/acpica/components/debugger/dbmethod.c      |   2 +-
 .../dev/acpica/components/debugger/dbnames.c       |   2 +-
 .../dev/acpica/components/debugger/dbobject.c      |   2 +-
 .../dev/acpica/components/debugger/dbstats.c       |   2 +-
 .../dev/acpica/components/debugger/dbtest.c        |   2 +-
 .../dev/acpica/components/debugger/dbutils.c       |   2 +-
 .../dev/acpica/components/debugger/dbxface.c       |   2 +-
 .../dev/acpica/components/disassembler/dmbuffer.c  |   2 +-
 .../dev/acpica/components/disassembler/dmcstyle.c  |   2 +-
 .../acpica/components/disassembler/dmdeferred.c    |   2 +-
 .../dev/acpica/components/disassembler/dmnames.c   |   2 +-
 .../dev/acpica/components/disassembler/dmopcode.c  |   2 +-
 .../dev/acpica/components/disassembler/dmresrc.c   |   2 +-
 .../dev/acpica/components/disassembler/dmresrcl.c  |   2 +-
 .../dev/acpica/components/disassembler/dmresrcl2.c |   2 +-
 .../dev/acpica/components/disassembler/dmresrcs.c  |   2 +-
 .../dev/acpica/components/disassembler/dmutils.c   |   2 +-
 .../dev/acpica/components/disassembler/dmwalk.c    |  12 +-
 .../dev/acpica/components/dispatcher/dsargs.c      |   2 +-
 .../dev/acpica/components/dispatcher/dscontrol.c   |   2 +-
 .../dev/acpica/components/dispatcher/dsdebug.c     |   2 +-
 .../dev/acpica/components/dispatcher/dsfield.c     |   2 +-
 .../dev/acpica/components/dispatcher/dsinit.c      |   2 +-
 .../dev/acpica/components/dispatcher/dsmethod.c    |   2 +-
 .../dev/acpica/components/dispatcher/dsmthdat.c    |   2 +-
 .../dev/acpica/components/dispatcher/dsobject.c    |   2 +-
 .../dev/acpica/components/dispatcher/dsopcode.c    |   3 +-
 .../dev/acpica/components/dispatcher/dspkginit.c   |   2 +-
 .../dev/acpica/components/dispatcher/dsutils.c     |   2 +-
 .../dev/acpica/components/dispatcher/dswexec.c     |   4 +-
 .../dev/acpica/components/dispatcher/dswload.c     |   2 +-
 .../dev/acpica/components/dispatcher/dswload2.c    |   2 +-
 .../dev/acpica/components/dispatcher/dswscope.c    |   2 +-
 .../dev/acpica/components/dispatcher/dswstate.c    |   2 +-
 sys/contrib/dev/acpica/components/events/evevent.c |   2 +-
 sys/contrib/dev/acpica/components/events/evglock.c |   2 +-
 sys/contrib/dev/acpica/components/events/evgpe.c   |   2 +-
 .../dev/acpica/components/events/evgpeblk.c        |   2 +-
 .../dev/acpica/components/events/evgpeinit.c       |   2 +-
 .../dev/acpica/components/events/evgpeutil.c       |   2 +-
 .../dev/acpica/components/events/evhandler.c       |   4 +-
 sys/contrib/dev/acpica/components/events/evmisc.c  |   2 +-
 .../dev/acpica/components/events/evregion.c        |  11 +-
 .../dev/acpica/components/events/evrgnini.c        |  60 ++-
 sys/contrib/dev/acpica/components/events/evsci.c   |   2 +-
 sys/contrib/dev/acpica/components/events/evxface.c |   2 +-
 .../dev/acpica/components/events/evxfevnt.c        |   2 +-
 sys/contrib/dev/acpica/components/events/evxfgpe.c |   2 +-
 .../dev/acpica/components/events/evxfregn.c        |   2 +-
 .../dev/acpica/components/executer/exconcat.c      |   2 +-
 .../dev/acpica/components/executer/exconfig.c      |  65 ++--
 .../dev/acpica/components/executer/exconvrt.c      |   2 +-
 .../dev/acpica/components/executer/excreate.c      |   3 +-
 .../dev/acpica/components/executer/exdebug.c       |   2 +-
 .../dev/acpica/components/executer/exdump.c        |   2 +-
 .../dev/acpica/components/executer/exfield.c       |   6 +-
 .../dev/acpica/components/executer/exfldio.c       |   4 +-
 .../dev/acpica/components/executer/exmisc.c        |   2 +-
 .../dev/acpica/components/executer/exmutex.c       |   2 +-
 .../dev/acpica/components/executer/exnames.c       |   2 +-
 .../dev/acpica/components/executer/exoparg1.c      |  24 +-
 .../dev/acpica/components/executer/exoparg2.c      |   2 +-
 .../dev/acpica/components/executer/exoparg3.c      |   2 +-
 .../dev/acpica/components/executer/exoparg6.c      |   2 +-
 .../dev/acpica/components/executer/exprep.c        |   2 +-
 .../dev/acpica/components/executer/exregion.c      |  16 +-
 .../dev/acpica/components/executer/exresnte.c      |   2 +-
 .../dev/acpica/components/executer/exresolv.c      |   2 +-
 .../dev/acpica/components/executer/exresop.c       |   2 +-
 .../dev/acpica/components/executer/exserial.c      |   2 +-
 .../dev/acpica/components/executer/exstore.c       |   2 +-
 .../dev/acpica/components/executer/exstoren.c      |   2 +-
 .../dev/acpica/components/executer/exstorob.c      |   2 +-
 .../dev/acpica/components/executer/exsystem.c      |  41 ++-
 .../dev/acpica/components/executer/extrace.c       |   2 +-
 .../dev/acpica/components/executer/exutils.c       |   2 +-
 .../dev/acpica/components/hardware/hwacpi.c        |   2 +-
 .../dev/acpica/components/hardware/hwesleep.c      |   7 +-
 sys/contrib/dev/acpica/components/hardware/hwgpe.c |   2 +-
 sys/contrib/dev/acpica/components/hardware/hwpci.c |   2 +-
 .../dev/acpica/components/hardware/hwregs.c        |   4 +-
 .../dev/acpica/components/hardware/hwsleep.c       |   9 +-
 .../dev/acpica/components/hardware/hwtimer.c       |   2 +-
 .../dev/acpica/components/hardware/hwvalid.c       |   2 +-
 .../dev/acpica/components/hardware/hwxface.c       |   2 +-
 .../dev/acpica/components/hardware/hwxfsleep.c     |   4 +-
 .../dev/acpica/components/namespace/nsaccess.c     |   2 +-
 .../dev/acpica/components/namespace/nsalloc.c      |   2 +-
 .../dev/acpica/components/namespace/nsarguments.c  |   2 +-
 .../dev/acpica/components/namespace/nsconvert.c    |   2 +-
 .../dev/acpica/components/namespace/nsdump.c       |   2 +-
 .../dev/acpica/components/namespace/nsdumpdv.c     |   2 +-
 .../dev/acpica/components/namespace/nseval.c       |   2 +-
 .../dev/acpica/components/namespace/nsinit.c       |   2 +-
 .../dev/acpica/components/namespace/nsload.c       |   2 +-
 .../dev/acpica/components/namespace/nsnames.c      |   2 +-
 .../dev/acpica/components/namespace/nsobject.c     |   2 +-
 .../dev/acpica/components/namespace/nsparse.c      |   2 +-
 .../dev/acpica/components/namespace/nspredef.c     |   2 +-
 .../dev/acpica/components/namespace/nsprepkg.c     |   2 +-
 .../dev/acpica/components/namespace/nsrepair.c     |   2 +-
 .../dev/acpica/components/namespace/nsrepair2.c    |   2 +-
 .../dev/acpica/components/namespace/nssearch.c     |   2 +-
 .../dev/acpica/components/namespace/nsutils.c      |   2 +-
 .../dev/acpica/components/namespace/nswalk.c       |   6 +-
 .../dev/acpica/components/namespace/nsxfeval.c     |   2 +-
 .../dev/acpica/components/namespace/nsxfname.c     |   2 +-
 .../dev/acpica/components/namespace/nsxfobj.c      |   2 +-
 sys/contrib/dev/acpica/components/parser/psargs.c  |   2 +-
 sys/contrib/dev/acpica/components/parser/psloop.c  |   2 +-
 .../dev/acpica/components/parser/psobject.c        |   2 +-
 .../dev/acpica/components/parser/psopcode.c        |   4 +-
 .../dev/acpica/components/parser/psopinfo.c        |   2 +-
 sys/contrib/dev/acpica/components/parser/psparse.c |   2 +-
 sys/contrib/dev/acpica/components/parser/psscope.c |   2 +-
 sys/contrib/dev/acpica/components/parser/pstree.c  |   2 +-
 sys/contrib/dev/acpica/components/parser/psutils.c |   2 +-
 sys/contrib/dev/acpica/components/parser/pswalk.c  |   2 +-
 sys/contrib/dev/acpica/components/parser/psxface.c |   2 +-
 .../dev/acpica/components/resources/rsaddr.c       |   2 +-
 .../dev/acpica/components/resources/rscalc.c       |   2 +-
 .../dev/acpica/components/resources/rscreate.c     |   2 +-
 .../dev/acpica/components/resources/rsdump.c       |   2 +-
 .../dev/acpica/components/resources/rsdumpinfo.c   |   2 +-
 .../dev/acpica/components/resources/rsinfo.c       |   2 +-
 sys/contrib/dev/acpica/components/resources/rsio.c |   2 +-
 .../dev/acpica/components/resources/rsirq.c        |   2 +-
 .../dev/acpica/components/resources/rslist.c       |   2 +-
 .../dev/acpica/components/resources/rsmemory.c     |   2 +-
 .../dev/acpica/components/resources/rsmisc.c       |   2 +-
 .../dev/acpica/components/resources/rsserial.c     |   2 +-
 .../dev/acpica/components/resources/rsutils.c      |   2 +-
 .../dev/acpica/components/resources/rsxface.c      |   2 +-
 sys/contrib/dev/acpica/components/tables/tbdata.c  |  87 +++--
 sys/contrib/dev/acpica/components/tables/tbfadt.c  |   8 +-
 sys/contrib/dev/acpica/components/tables/tbfind.c  |   2 +-
 .../dev/acpica/components/tables/tbinstal.c        |  14 +-
 sys/contrib/dev/acpica/components/tables/tbprint.c |   5 +-
 sys/contrib/dev/acpica/components/tables/tbutils.c |   5 +-
 sys/contrib/dev/acpica/components/tables/tbxface.c |   2 +-
 .../dev/acpica/components/tables/tbxfload.c        |  59 ++-
 .../dev/acpica/components/tables/tbxfroot.c        |   2 +-
 .../dev/acpica/components/utilities/utaddress.c    |   2 +-
 .../dev/acpica/components/utilities/utalloc.c      |   2 +-
 .../dev/acpica/components/utilities/utascii.c      |   2 +-
 .../dev/acpica/components/utilities/utbuffer.c     |   2 +-
 .../dev/acpica/components/utilities/utcache.c      |   2 +-
 .../dev/acpica/components/utilities/utcopy.c       |   2 +-
 .../dev/acpica/components/utilities/utdebug.c      |   2 +-
 .../dev/acpica/components/utilities/utdecode.c     |   2 +-
 .../dev/acpica/components/utilities/utdelete.c     |   3 +-
 .../dev/acpica/components/utilities/uterror.c      |   2 +-
 .../dev/acpica/components/utilities/uteval.c       |   2 +-
 .../dev/acpica/components/utilities/utexcep.c      |   2 +-
 .../dev/acpica/components/utilities/utglobal.c     |   2 +-
 .../dev/acpica/components/utilities/uthex.c        |   2 +-
 .../dev/acpica/components/utilities/utids.c        |   2 +-
 .../dev/acpica/components/utilities/utinit.c       |   2 +-
 .../dev/acpica/components/utilities/utlock.c       |   2 +-
 .../dev/acpica/components/utilities/utmath.c       |   2 +-
 .../dev/acpica/components/utilities/utmisc.c       |   2 +-
 .../dev/acpica/components/utilities/utmutex.c      |   2 +-
 .../dev/acpica/components/utilities/utnonansi.c    |   2 +-
 .../dev/acpica/components/utilities/utobject.c     |   2 +-
 .../dev/acpica/components/utilities/utosi.c        |   3 +-
 .../dev/acpica/components/utilities/utownerid.c    |   2 +-
 .../dev/acpica/components/utilities/utpredef.c     |   2 +-
 .../dev/acpica/components/utilities/utresdecode.c  |   2 +-
 .../dev/acpica/components/utilities/utresrc.c      |   2 +-
 .../dev/acpica/components/utilities/utstate.c      |   2 +-
 .../dev/acpica/components/utilities/utstring.c     |   2 +-
 .../dev/acpica/components/utilities/utstrsuppt.c   |   2 +-
 .../dev/acpica/components/utilities/utstrtoul64.c  |   2 +-
 .../dev/acpica/components/utilities/uttrack.c      |   2 +-
 .../dev/acpica/components/utilities/utuuid.c       |   2 +-
 .../dev/acpica/components/utilities/utxface.c      |   2 +-
 .../dev/acpica/components/utilities/utxferror.c    |   2 +-
 .../dev/acpica/components/utilities/utxfinit.c     |   2 +-
 .../dev/acpica/components/utilities/utxfmutex.c    |   2 +-
 sys/contrib/dev/acpica/include/acapps.h            |   4 +-
 sys/contrib/dev/acpica/include/acbuffer.h          |   2 +-
 sys/contrib/dev/acpica/include/acclib.h            |   2 +-
 sys/contrib/dev/acpica/include/accommon.h          |   2 +-
 sys/contrib/dev/acpica/include/acconfig.h          |   2 +-
 sys/contrib/dev/acpica/include/acconvert.h         |   2 +-
 sys/contrib/dev/acpica/include/acdebug.h           |   2 +-
 sys/contrib/dev/acpica/include/acdisasm.h          |  29 +-
 sys/contrib/dev/acpica/include/acdispat.h          |   2 +-
 sys/contrib/dev/acpica/include/acevents.h          |   9 +-
 sys/contrib/dev/acpica/include/acexcep.h           |   2 +-
 sys/contrib/dev/acpica/include/acglobal.h          |   2 +-
 sys/contrib/dev/acpica/include/achware.h           |   2 +-
 sys/contrib/dev/acpica/include/acinterp.h          |   2 +-
 sys/contrib/dev/acpica/include/aclocal.h           |   2 +-
 sys/contrib/dev/acpica/include/acmacros.h          |   2 +-
 sys/contrib/dev/acpica/include/acnames.h           |   2 +-
 sys/contrib/dev/acpica/include/acnamesp.h          |   2 +-
 sys/contrib/dev/acpica/include/acobject.h          |   3 +-
 sys/contrib/dev/acpica/include/acopcode.h          |   2 +-
 sys/contrib/dev/acpica/include/acoutput.h          |   2 +-
 sys/contrib/dev/acpica/include/acparser.h          |   2 +-
 sys/contrib/dev/acpica/include/acpi.h              |   2 +-
 sys/contrib/dev/acpica/include/acpiosxf.h          |   2 +-
 sys/contrib/dev/acpica/include/acpixf.h            |  12 +-
 sys/contrib/dev/acpica/include/acpredef.h          |   2 +-
 sys/contrib/dev/acpica/include/acresrc.h           |   2 +-
 sys/contrib/dev/acpica/include/acrestyp.h          |   2 +-
 sys/contrib/dev/acpica/include/acstruct.h          |   2 +-
 sys/contrib/dev/acpica/include/actables.h          |   7 +-
 sys/contrib/dev/acpica/include/actbinfo.h          |  19 +-
 sys/contrib/dev/acpica/include/actbl.h             |   2 +-
 sys/contrib/dev/acpica/include/actbl1.h            |  35 +-
 sys/contrib/dev/acpica/include/actbl2.h            | 316 ++++++++++++----
 sys/contrib/dev/acpica/include/actbl3.h            |   2 +-
 sys/contrib/dev/acpica/include/actypes.h           |  36 +-
 sys/contrib/dev/acpica/include/acutils.h           |   2 +-
 sys/contrib/dev/acpica/include/acuuid.h            |   2 +-
 sys/contrib/dev/acpica/include/amlcode.h           |   2 +-
 sys/contrib/dev/acpica/include/amlresrc.h          |   2 +-
 sys/contrib/dev/acpica/include/platform/acenv.h    |   2 +-
 sys/contrib/dev/acpica/include/platform/acenvex.h  |   2 +-
 .../dev/acpica/include/platform/acfreebsd.h        |   6 +-
 sys/contrib/dev/acpica/include/platform/acgcc.h    |   2 +-
 sys/contrib/dev/acpica/include/platform/acgccex.h  |   2 +-
 .../acpica/os_specific/service_layers/osunixxf.c   |   2 +-
 357 files changed, 2760 insertions(+), 771 deletions(-)

diff --git a/sys/contrib/dev/acpica/changes.txt b/sys/contrib/dev/acpica/changes.txt
index ad2323971aea..cf3c21898c51 100644
--- a/sys/contrib/dev/acpica/changes.txt
+++ b/sys/contrib/dev/acpica/changes.txt
@@ -1,3 +1,129 @@
+----------------------------------------
+31 March 2022. Summary of changes for version 20220331:
+
+0) Global changes:
+
+Update all copyright notices to the year 2022. This effects all source 
+modules, as well as utility signons.
+
+
+1) ACPICA kernel-resident subsystem:
+
+For the ASL Sleep() operator, issue a warning if the sleep value is 
+greater than 10 Milliseconds. Quick boottime is important, so warn about 
+sleeps greater than 10 ms. Distribution Linux kernels reach initrd in 350 
+ms, so excessive delays should be called out. 10 ms is chosen randomly, 
+but three of such delays would already make up ten percent of the 
+boottime.
+
+Namespace: Avoid attempting to walk the Namespace if the Namespace does 
+not exist.
+
+AML interpreter/iASL compiler: Add new Acpi 6.4 semantics for the 
+LoadTable and Load operators. DDB_HANDLE is gone, now loadtable returns a 
+pass/fail integer. Now load returns a pass/fail integer, as well as 
+storing the return value in an optional 2nd argument.
+
+Headers: Use uintptr_t and offsetof() in Linux kernel builds. To avoid 
+"performing pointer subtraction with a null pointer has undefined 
+behavior" compiler warnings, use uintptr_t and offsetof() that are always 
+available during Linux kernel builds to define ACPI_UINTPTR_T and the 
+ACPI_TO_INTEGER() and ACPI_OFFSET() macros when building the ACPICA code 
+in the Linux kernel.
+
+Added support for the Windows 11 _OSI string ("Windows 2021"). Submitted 
+by superm1.
+
+executer/exsystem: Inform users about ACPI spec violation for the Stall() 
+operator. Values greater than 100 microseconds violate the ACPI 
+specification, so warn users about it. From the ACPI Specification 
+version 6.2 Errata A, 19.6.128 *Stall (Stall for a Short Time)*:
+> The implementation of Stall is OS-specific, but must not relinquish
+> control of the processor. Because of this, delays longer than 100
+> microseconds must use Sleep instead of Stall.
+
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+Data Table Compiler/Disassembler: Add support for the APMT table - ARM 
+Performance Monitoring Unit table. Submitted by @bwicaksononv.
+
+Data Table Compiler/Disassembler: For MADT, add support for the OEM-
+defined subtables (Types 0x80-0x7F).
+
+Data Table Compiler: Fixed a problem with support for the SDEV table, 
+where a subtable Length was not computed correctly.
+
+Data Table Compiler/Disassembler: Add/fix the CFMWS subtable to the CEDT 
+Acpi table support.
+
+Data Table Compiler/Disassembler: Fix a compile issue with the CEDT and 
+add template. Submitted by MasterDrogo.
+
+Data Table Compiler/Disassembler: NHLT Changes provided by Piotr Maziarz:
+iASL/NHLT: Rename linux specific structures to DeviceInfo to improve 
+readability of the code.
+iASL/NHLT: Fix parsing undocumented bytes at the end of Endpoint. 
+Undocumented bytes at the end of Endpoint Descriptor can be present 
+independently of Linux-specific structures. Their size can also vary.
+iASL/NHLT: Treat TableTerminator as SpecificConfig. SpecificConfig has 4 
+bytes of size and then an amount of bytes specified by size. All of the 
+terminators that I've seen had a size equal to 4, but theoretically it 
+can vary.
+
+iASL/AcpiExec: Use _exit instead of exit in signal handers (ctrl-C).
+
+iASL: Remove a remark due to excessive output. Removed a remark for 
+duplicate Offset() operators, due to a user complaint.
+
+----------------------------------------
+17 December 2021. Summary of changes for version 20211217:
+
+1) ACPICA kernel-resident subsystem:
+
+Hardware: Do not flush CPU cache when entering S4 and S5. According to 
+ACPI 6.4, Section 16.2, the CPU cache flushing is required on entering to 
+S1, S2, and S3, but the ACPICA code flushes the CPU cache regardless of 
+the sleep state. Blind cache flush on entering S5 causes problems for 
+TDX.
+
+Avoid subobject buffer overflow when validating RSDP signature. Since the 
+Signature member is accessed through an ACPI_TABLE_HEADER, the pointer to 
+it is only to a 4-char array, and so trying to read past the 4th 
+character, as will be done when it is an RSDP, reads beyond the bounds of 
+the accessed member. Contributed by jrtc27.
+
+Add support for PCC Opregion special context data. PCC Opregion added in 
+ACPIC 6.3 requires special context data similar to GPIO and Generic 
+Serial Bus as it needs to know the internal PCC buffer and its length as 
+well as the PCC channel index when the opregion handler is being executed 
+by the OSPM. Adds support for the special context data needed by PCC 
+Opregion. Submitted by Sudeep Holla <sudeep.holla@arm.com>
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+iASL: Completed compiler support for the NHLT ACPI table.
+
+iASL/NHLT table: Fixed a reported problem where a fault would occur 
+during disassembly of a "Linux-Specific" section if the "Specific Data" 
+part was not present.
+
+iASL: Added full support (compiler and disassembler) for the AGDI ACPI 
+table. Contributed by: Ilkka Koskinen <ilkka@os.amperecomputing.com>.
+
+iASL: Added full support for the TDEL ACPI table.
+
+iASL table compiler: FADT support updates:
+1) Allow the 32-bit DSDT address to be zero.
+2) Issue error if both the 32-bit and 64-bit DSDT addresses are zero.
+
+iASL: Fix unaligned accesses to local cache allocations. Contributed by 
+jrtc27.
+
+iASL: Open binary input files in binary mode, not text mode Affects 
+binary input AML files, as well as binary data table files, for 
+disassembly.
+
 ----------------------------------------
 30 September 2021. Summary of changes for version 20210930:
 
diff --git a/sys/contrib/dev/acpica/common/acfileio.c b/sys/contrib/dev/acpica/common/acfileio.c
index b93b14d3e654..ca1e9199f3e3 100644
--- a/sys/contrib/dev/acpica/common/acfileio.c
+++ b/sys/contrib/dev/acpica/common/acfileio.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -552,10 +552,15 @@ AcValidateTableHeader (
     /* Read a potential table header */
 
     OriginalOffset = ftell (File);
-    fseek (File, TableOffset, SEEK_SET);
-
+    if (fseek (File, TableOffset, SEEK_SET))
+    {
+        fprintf (stderr, "SEEK error\n");
+    }
     Actual = fread (&TableHeader, 1, sizeof (ACPI_TABLE_HEADER), File);
-    fseek (File, OriginalOffset, SEEK_SET);
+    if (fseek (File, OriginalOffset, SEEK_SET))
+    {
+        fprintf (stderr, "SEEK error\n");
+    }
 
     if (Actual < sizeof (ACPI_TABLE_HEADER))
     {
diff --git a/sys/contrib/dev/acpica/common/acgetline.c b/sys/contrib/dev/acpica/common/acgetline.c
index 1c00f33e1775..7ad10510168e 100644
--- a/sys/contrib/dev/acpica/common/acgetline.c
+++ b/sys/contrib/dev/acpica/common/acgetline.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/adfile.c b/sys/contrib/dev/acpica/common/adfile.c
index 61df767eb690..a4639e30e4ac 100644
--- a/sys/contrib/dev/acpica/common/adfile.c
+++ b/sys/contrib/dev/acpica/common/adfile.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/adisasm.c b/sys/contrib/dev/acpica/common/adisasm.c
index 40ca45dc7bfd..c45b609d4f3f 100644
--- a/sys/contrib/dev/acpica/common/adisasm.c
+++ b/sys/contrib/dev/acpica/common/adisasm.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/adwalk.c b/sys/contrib/dev/acpica/common/adwalk.c
index 133a4d98bb26..44b3485a21ba 100644
--- a/sys/contrib/dev/acpica/common/adwalk.c
+++ b/sys/contrib/dev/acpica/common/adwalk.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/ahids.c b/sys/contrib/dev/acpica/common/ahids.c
index 35d17513a57b..7c1aabdf8b89 100644
--- a/sys/contrib/dev/acpica/common/ahids.c
+++ b/sys/contrib/dev/acpica/common/ahids.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/ahpredef.c b/sys/contrib/dev/acpica/common/ahpredef.c
index 89f8a784efd3..afad65543194 100644
--- a/sys/contrib/dev/acpica/common/ahpredef.c
+++ b/sys/contrib/dev/acpica/common/ahpredef.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/ahtable.c b/sys/contrib/dev/acpica/common/ahtable.c
index d0eb397126f2..227fee2b5132 100644
--- a/sys/contrib/dev/acpica/common/ahtable.c
+++ b/sys/contrib/dev/acpica/common/ahtable.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -200,6 +200,7 @@ AcpiAhGetTableInfo (
 const AH_TABLE      AcpiGbl_SupportedTables[] =
 {
     {ACPI_SIG_AEST, "Arm Error Source Table"},
+    {ACPI_SIG_AGDI, "Arm Generic Diagnostic Dump and Reset Device Interface Table"},
     {ACPI_SIG_ASF,  "Alert Standard Format Table"},
     {ACPI_SIG_BDAT, "BIOS Data ACPI Table"},
     {ACPI_SIG_BERT, "Boot Error Record Table"},
@@ -233,6 +234,7 @@ const AH_TABLE      AcpiGbl_SupportedTables[] =
     {ACPI_SIG_MSCT, "Maximum System Characteristics Table"},
     {ACPI_SIG_MSDM, "Microsoft Data Management Table"},
     {ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"},
+    {ACPI_SIG_NHLT, "Non HD Audio Link Table"},
     {ACPI_SIG_PCCT, "Platform Communications Channel Table"},
     {ACPI_SIG_PDTT, "Platform Debug Trigger Table"},
     {ACPI_SIG_PHAT, "Platform Health Assessment Table"},
@@ -256,6 +258,7 @@ const AH_TABLE      AcpiGbl_SupportedTables[] =
     {ACPI_SIG_STAO, "Status Override Table"},
     {ACPI_SIG_SVKL, "Storage Volume Key Location Table"},
     {ACPI_SIG_TCPA, "Trusted Computing Platform Alliance Table"},
+    {ACPI_SIG_TDEL, "TD-Event Log Table"},
     {ACPI_SIG_TPM2, "Trusted Platform Module hardware interface Table"},
     {ACPI_SIG_UEFI, "UEFI Boot Optimization Table"},
     {ACPI_SIG_VIOT, "Virtual I/O Translation Table"},
diff --git a/sys/contrib/dev/acpica/common/ahuuids.c b/sys/contrib/dev/acpica/common/ahuuids.c
index 73585e81c4da..7378a8555bb0 100644
--- a/sys/contrib/dev/acpica/common/ahuuids.c
+++ b/sys/contrib/dev/acpica/common/ahuuids.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/cmfsize.c b/sys/contrib/dev/acpica/common/cmfsize.c
index eb419a94f9af..2a0b907bae2f 100644
--- a/sys/contrib/dev/acpica/common/cmfsize.c
+++ b/sys/contrib/dev/acpica/common/cmfsize.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmextern.c b/sys/contrib/dev/acpica/common/dmextern.c
index df6de46a2a4f..b9293282a24e 100644
--- a/sys/contrib/dev/acpica/common/dmextern.c
+++ b/sys/contrib/dev/acpica/common/dmextern.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmrestag.c b/sys/contrib/dev/acpica/common/dmrestag.c
index a430a6d7a1c7..e26f3d092a3c 100644
--- a/sys/contrib/dev/acpica/common/dmrestag.c
+++ b/sys/contrib/dev/acpica/common/dmrestag.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmswitch.c b/sys/contrib/dev/acpica/common/dmswitch.c
index c1a00333204d..9cad863b6c03 100644
--- a/sys/contrib/dev/acpica/common/dmswitch.c
+++ b/sys/contrib/dev/acpica/common/dmswitch.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmtable.c b/sys/contrib/dev/acpica/common/dmtable.c
index 5e3f2ef748da..78c75ab803f8 100644
--- a/sys/contrib/dev/acpica/common/dmtable.c
+++ b/sys/contrib/dev/acpica/common/dmtable.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -167,10 +167,11 @@ AcpiAhGetTableInfo (
 
 /* Common format strings for commented values */
 
-#define UINT8_FORMAT        "%2.2X [%s]\n"
-#define UINT16_FORMAT       "%4.4X [%s]\n"
-#define UINT32_FORMAT       "%8.8X [%s]\n"
-#define STRING_FORMAT       "[%s]\n"
+#define UINT8_FORMAT            "%2.2X [%s]\n"
+#define UINT8_FORMAT_NO_NEWLINE "%2.2X [%s]"
+#define UINT16_FORMAT           "%4.4X [%s]\n"
+#define UINT32_FORMAT           "%8.8X [%s]\n"
+#define STRING_FORMAT           "[%s]\n"
 
 /* These tables map a subtable type to a description string */
 
@@ -247,6 +248,7 @@ static const char           *AcpiDmDmarSubnames[] =
     "Root Port ATS Capability",
     "Remapping Hardware Static Affinity",
     "ACPI Namespace Device Declaration",
+    "SoC Integrated Address Translation Cache",
     "Unknown Subtable Type"         /* Reserved */
 };
 
@@ -401,7 +403,8 @@ static const char           *AcpiDmMadtSubnames[] =
     "Generic Interrupt Redistributor",  /* ACPI_MADT_GENERIC_REDISTRIBUTOR */
     "Generic Interrupt Translator",     /* ACPI_MADT_GENERIC_TRANSLATOR */
     "Mutiprocessor Wakeup",             /* ACPI_MADT_TYPE_MULTIPROC_WAKEUP */
-    "Unknown Subtable Type"             /* Reserved */
+    "Unknown Subtable Type",            /* Reserved */
+    "Types 80-FF are used for OEM data" /* Reserved for OEM data */
 };
 
 static const char           *AcpiDmNfitSubnames[] =
@@ -437,6 +440,50 @@ static const char           *AcpiDmNhltDirectionNames[] =
     "Unknown Direction"                 /* Reserved */
 };
 
+static const char           *AcpiDmNhltMicTypeNames[] =
+{
+    "Omnidirectional",                  /* ACPI_NHLT_MIC_OMNIDIRECTIONAL */
+    "Subcardioid",                      /* ACPI_NHLT_MIC_SUBCARDIOID */
+    "Cardioid",                         /* ACPI_NHLT_MIC_CARDIOID */
+    "SuperCardioid",                    /* ACPI_NHLT_MIC_SUPER_CARDIOID */
+    "HyperCardioid",                    /* ACPI_NHLT_MIC_HYPER_CARDIOID */
+    "8 Shaped",                         /* ACPI_NHLT_MIC_8_SHAPED */
+    "Reserved Mic Type",                /* Reserved */
+    "Vendor Defined",                   /* ACPI_NHLT_MIC_VENDOR_DEFINED */
+    "Unknown Mic Type"                  /* ACPI_NHLT_MIC_RESERVED */
+};
+
+static const char           *AcpiDmNhltMicPositionNames[] =
+{
+    "Top",                              /* ACPI_NHLT_MIC_POSITION_TOP */
+    "Bottom",                           /* ACPI_NHLT_MIC_POSITION_BOTTOM */
+    "Left",                             /* ACPI_NHLT_MIC_POSITION_LEFT */
+    "Right",                            /* ACPI_NHLT_MIC_POSITION_RIGHT */
+    "Front",                            /* ACPI_NHLT_MIC_POSITION_FRONT */
+    "Back",                             /* ACPI_NHLT_MIC_POSITION_BACK */
+    "Unknown Mic Position"              /* 6 and above are reserved */
+};
+
+static const char           *AcpiDmNhltMicArrayTypeNames[] =
+{
+    "Unknown Array Type",               /* ACPI_NHLT_ARRAY_TYPE_RESERVED */
+    "Small Linear 2-element",           /* ACPI_NHLT_SMALL_LINEAR_2ELEMENT */
+    "Big Linear 2-element",             /* ACPI_NHLT_BIG_LINEAR_2ELEMENT */
+    "Linear 4-element 1st Geometry",    /* ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT */
+    "Planar L-shaped 4-element",        /* ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT */
+    "Linear 4-element 2nd Geometry",    /* ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT */
+    "Vendor Defined"                    /* ACPI_NHLT_VENDOR_DEFINED */
+};
+
+static const char           *AcpiDmNhltConfigTypeNames[] =
+{
+    "Generic Type",                     /* ACPI_NHLT_CONFIG_TYPE_GENERIC */
+    "Microphone Array",                 /* ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY */
+    "Reserved",                         /* ACPI_NHLT_CONFIG_TYPE_RESERVED */
+    "Render Feedback",                  /* ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK */
+    "Unknown Config Type"               /* ACPI_NHLT_CONFIG_TYPE_RESERVED */
+};
+
 static const char           *AcpiDmPcctSubnames[] =
 {
     "Generic Communications Subspace",  /* ACPI_PCCT_TYPE_GENERIC_SUBSPACE */
@@ -604,6 +651,8 @@ static const char           *AcpiDmGasAccessWidth[] =
 const ACPI_DMTABLE_DATA     AcpiDmTableData[] =
 {
     {ACPI_SIG_AEST, NULL,                   AcpiDmDumpAest, DtCompileAest,  TemplateAest},
+    {ACPI_SIG_AGDI, AcpiDmTableInfoAgdi,    NULL,           NULL,           TemplateAgdi},
+    {ACPI_SIG_APMT, NULL,                   AcpiDmDumpApmt, DtCompileApmt,  TemplateApmt},
     {ACPI_SIG_ASF,  NULL,                   AcpiDmDumpAsf,  DtCompileAsf,   TemplateAsf},
     {ACPI_SIG_BDAT, AcpiDmTableInfoBdat,    NULL,           NULL,           TemplateBdat},
     {ACPI_SIG_BERT, AcpiDmTableInfoBert,    NULL,           NULL,           TemplateBert},
@@ -635,7 +684,7 @@ const ACPI_DMTABLE_DATA     AcpiDmTableData[] =
     {ACPI_SIG_MSCT, NULL,                   AcpiDmDumpMsct, DtCompileMsct,  TemplateMsct},
     {ACPI_SIG_MSDM, NULL,                   AcpiDmDumpSlic, DtCompileSlic,  TemplateMsdm},
     {ACPI_SIG_NFIT, AcpiDmTableInfoNfit,    AcpiDmDumpNfit, DtCompileNfit,  TemplateNfit},
-    {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt,    AcpiDmDumpNhlt, NULL,           NULL},
+    {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt,    AcpiDmDumpNhlt, DtCompileNhlt,  TemplateNhlt},
     {ACPI_SIG_PCCT, AcpiDmTableInfoPcct,    AcpiDmDumpPcct, DtCompilePcct,  TemplatePcct},
     {ACPI_SIG_PDTT, AcpiDmTableInfoPdtt,    AcpiDmDumpPdtt, DtCompilePdtt,  TemplatePdtt},
     {ACPI_SIG_PHAT, NULL,                   AcpiDmDumpPhat, DtCompilePhat,  TemplatePhat},
@@ -657,6 +706,7 @@ const ACPI_DMTABLE_DATA     AcpiDmTableData[] =
     {ACPI_SIG_STAO, NULL,                   AcpiDmDumpStao, DtCompileStao,  TemplateStao},
     {ACPI_SIG_SVKL, AcpiDmTableInfoSvkl,    AcpiDmDumpSvkl, DtCompileSvkl,  TemplateSvkl},
     {ACPI_SIG_TCPA, NULL,                   AcpiDmDumpTcpa, DtCompileTcpa,  TemplateTcpa},
+    {ACPI_SIG_TDEL, AcpiDmTableInfoTdel,    NULL,           NULL,           TemplateTdel},
     {ACPI_SIG_TPM2, AcpiDmTableInfoTpm2,    AcpiDmDumpTpm2, DtCompileTpm2,  TemplateTpm2},
     {ACPI_SIG_UEFI, AcpiDmTableInfoUefi,    NULL,           DtCompileUefi,  TemplateUefi},
     {ACPI_SIG_VIOT, AcpiDmTableInfoViot,    AcpiDmDumpViot, DtCompileViot,  TemplateViot},
@@ -795,7 +845,8 @@ AcpiDmDumpDataTable (
             return;
         }
     }
-    else if (ACPI_VALIDATE_RSDP_SIG (Table->Signature))
+    else if (ACPI_VALIDATE_RSDP_SIG (ACPI_CAST_PTR (ACPI_TABLE_RSDP,
+        Table)->Signature))
     {
         Length = AcpiDmDumpRsdp (Table);
     }
@@ -1040,7 +1091,7 @@ AcpiDmDumpTable (
 
         /* Check for beyond subtable end or (worse) beyond EOT */
 
-        if (SubtableLength && (Info->Offset >= SubtableLength))
+        if (SubtableLength && (Info->Offset > SubtableLength))
         {
             AcpiOsPrintf (
                 "/**** ACPI subtable terminates early (Len %u) - "
@@ -1074,6 +1125,10 @@ AcpiDmDumpTable (
         case ACPI_DMT_MADT:
         case ACPI_DMT_NHLT1:
         case ACPI_DMT_NHLT1a:
+        case ACPI_DMT_NHLT1b:
+        case ACPI_DMT_NHLT1c:
+        case ACPI_DMT_NHLT1d:
+        case ACPI_DMT_NHLT1f:
         case ACPI_DMT_PCCT:
         case ACPI_DMT_PMTT:
         case ACPI_DMT_PPTT:
@@ -1102,6 +1157,7 @@ AcpiDmDumpTable (
         case ACPI_DMT_HEST:
         case ACPI_DMT_HMAT:
         case ACPI_DMT_NFIT:
+        case ACPI_DMT_NHLT1e:
         case ACPI_DMT_PHAT:
 
             ByteLength = 2;
@@ -1308,7 +1364,12 @@ AcpiDmDumpTable (
             AcpiOsPrintf ("%1.1X\n", (*Target >> 2) & 0x03);
             break;
 
-        case ACPI_DMT_FLAGS4:
+        case ACPI_DMT_FLAGS8_2:
+
+            AcpiOsPrintf ("%2.2X\n", (*Target >> 2) & 0xFF);
+            break;
+
+	case ACPI_DMT_FLAGS4:
 
             AcpiOsPrintf ("%1.1X\n", (*Target >> 4) & 0x03);
             break;
@@ -1797,11 +1858,14 @@ AcpiDmDumpTable (
             /* MADT subtable types */
 
             Temp8 = *Target;
-            if (Temp8 > ACPI_MADT_TYPE_RESERVED)
+            if ((Temp8 >= ACPI_MADT_TYPE_RESERVED) && (Temp8 < ACPI_MADT_TYPE_OEM_RESERVED))
             {
                 Temp8 = ACPI_MADT_TYPE_RESERVED;
             }
-
+            else if (Temp8 >= ACPI_MADT_TYPE_OEM_RESERVED)
+            {
+                Temp8 = ACPI_MADT_TYPE_RESERVED + 1;
+            }
             AcpiOsPrintf (UINT8_FORMAT, *Target,
                 AcpiDmMadtSubnames[Temp8]);
             break;
@@ -1848,6 +1912,95 @@ AcpiDmDumpTable (
                 AcpiDmNhltDirectionNames[Temp8]);
             break;
 
+        case ACPI_DMT_NHLT1b:
+
+            /* NHLT microphone type */
+
+            Temp8 = *Target;
+            if (Temp8 > ACPI_NHLT_MIC_RESERVED)
+            {
+                Temp8 = ACPI_NHLT_MIC_RESERVED;
+            }
+
+            AcpiOsPrintf (UINT8_FORMAT, *Target,
+                AcpiDmNhltMicTypeNames[Temp8]);
+            break;
+
+        case ACPI_DMT_NHLT1c:
+
+            /* NHLT microphone position */
+
+            Temp8 = *Target;
+            if (Temp8 > ACPI_NHLT_MIC_POSITION_RESERVED)
+            {
+                Temp8 = ACPI_NHLT_MIC_POSITION_RESERVED;
+            }
+
+            AcpiOsPrintf (UINT8_FORMAT, *Target,
+                AcpiDmNhltMicPositionNames[Temp8]);
+            break;
+
+        case ACPI_DMT_NHLT1d:
+
+            /* NHLT microphone array type */
+
+            Temp8 = *Target & ACPI_NHLT_ARRAY_TYPE_MASK;
+            if (Temp8 < ACPI_NHLT_ARRAY_TYPE_RESERVED)
+            {
+                Temp8 = ACPI_NHLT_ARRAY_TYPE_RESERVED;
+            }
+
+            AcpiOsPrintf (UINT8_FORMAT_NO_NEWLINE, *Target,
+                AcpiDmNhltMicArrayTypeNames[Temp8 - ACPI_NHLT_ARRAY_TYPE_RESERVED]);
+
+            Temp8 = *Target;
+            if (Temp8 & ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT)
+            {
+                AcpiOsPrintf (" [%s]", "SNR and Sensitivity");
+            }
+
+            AcpiOsPrintf ("\n");
+            break;
+
+        case ACPI_DMT_NHLT1e:
+
+            /* NHLT Endpoint Device ID */
+
+            Temp16 = ACPI_GET16 (Target);
+            if (Temp16 == 0xAE20)
+            {
+                Name = "PDM DMIC";
+            }
+            else if (Temp16 == 0xAE30)
+            {
+                Name = "BT Sideband";
+            }
+            else if (Temp16 == 0xAE34)
+            {
+                Name = "I2S/TDM Codecs";
+            }
+            else
+            {
+                Name = "Unknown Device ID";
+            }
*** 8853 LINES SKIPPED ***