diff options
author | msmith <msmith@FreeBSD.org> | 2000-12-21 06:56:46 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2000-12-21 06:56:46 +0000 |
commit | 07e76fb2a28476ae54bb108098c0707743ab398c (patch) | |
tree | 75730fe174d9e937dfe3355d34c0bf027089aab8 /sys/contrib/dev/acpica/evregion.c | |
parent | b92a08961bec1b7b6c9756c131e093978f2f9029 (diff) | |
parent | 68d9171019852e7a4325965a2539a5a2eb7571da (diff) | |
download | FreeBSD-src-07e76fb2a28476ae54bb108098c0707743ab398c.zip FreeBSD-src-07e76fb2a28476ae54bb108098c0707743ab398c.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r70243,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'sys/contrib/dev/acpica/evregion.c')
-rw-r--r-- | sys/contrib/dev/acpica/evregion.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/sys/contrib/dev/acpica/evregion.c b/sys/contrib/dev/acpica/evregion.c index 0039c070..42732ef 100644 --- a/sys/contrib/dev/acpica/evregion.c +++ b/sys/contrib/dev/acpica/evregion.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: evregion - ACPI AddressSpace (OpRegion) handler dispatch - * $Revision: 90 $ + * $Revision: 93 $ * *****************************************************************************/ @@ -9,8 +9,8 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999, Intel Corp. All rights - * reserved. + * Some or all of this work - Copyright (c) 1999, 2000, Intel Corp. + * All rights reserved. * * 2. License * @@ -418,8 +418,8 @@ AcpiEvAddressSpaceDispatch ( * * FUNCTION: AcpiEvDisassociateRegionFromHandler * - * PARAMETERS: HandlerObj - Handler Object - * RegionObj - Region Object + * PARAMETERS: RegionObj - Region Object + * AcpiNsIsLocked - Namespace Region Already Locked? * * RETURN: None * @@ -430,7 +430,8 @@ AcpiEvAddressSpaceDispatch ( void AcpiEvDisassociateRegionFromHandler( - ACPI_OPERAND_OBJECT *RegionObj) + ACPI_OPERAND_OBJECT *RegionObj, + BOOLEAN AcpiNsIsLocked) { ACPI_OPERAND_OBJECT *HandlerObj; ACPI_OPERAND_OBJECT *ObjDesc; @@ -481,11 +482,21 @@ AcpiEvDisassociateRegionFromHandler( *LastObjPtr = ObjDesc->Region.Next; ObjDesc->Region.Next = NULL; /* Must clear field */ + if (AcpiNsIsLocked) + { + AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + } + /* * Now stop region accesses by executing the _REG method */ AcpiEvExecuteRegMethod (RegionObj, 0); + if (AcpiNsIsLocked) + { + AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); + } + /* * Call the setup handler with the deactivate notification */ @@ -548,6 +559,7 @@ AcpiEvDisassociateRegionFromHandler( * * PARAMETERS: HandlerObj - Handler Object * RegionObj - Region Object + * AcpiNsIsLocked - Namespace Region Already Locked? * * RETURN: None * @@ -752,7 +764,7 @@ AcpiEvAddrHandlerHelper ( * * First disconnect region for any previous handler (if any) */ - AcpiEvDisassociateRegionFromHandler (ObjDesc); + AcpiEvDisassociateRegionFromHandler (ObjDesc, FALSE); /* * Then connect the region to the new handler |