hwgpe.c revision 129684
171867Smsmith 267754Smsmith/****************************************************************************** 367754Smsmith * 467754Smsmith * Module Name: hwgpe - Low level GPE enable/disable/clear functions 5129684Snjl * $Revision: 62 $ 667754Smsmith * 767754Smsmith *****************************************************************************/ 867754Smsmith 967754Smsmith/****************************************************************************** 1067754Smsmith * 1167754Smsmith * 1. Copyright Notice 1267754Smsmith * 13126372Snjl * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp. 1470243Smsmith * All rights reserved. 1567754Smsmith * 1667754Smsmith * 2. License 1767754Smsmith * 1867754Smsmith * 2.1. This is your license from Intel Corp. under its intellectual property 1967754Smsmith * rights. You may have additional license terms from the party that provided 2067754Smsmith * you this software, covering your right to use that party's intellectual 2167754Smsmith * property rights. 2267754Smsmith * 2367754Smsmith * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 2467754Smsmith * copy of the source code appearing in this file ("Covered Code") an 2567754Smsmith * irrevocable, perpetual, worldwide license under Intel's copyrights in the 2667754Smsmith * base code distributed originally by Intel ("Original Intel Code") to copy, 2767754Smsmith * make derivatives, distribute, use and display any portion of the Covered 2867754Smsmith * Code in any form, with the right to sublicense such rights; and 2967754Smsmith * 3067754Smsmith * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 3167754Smsmith * license (with the right to sublicense), under only those claims of Intel 3267754Smsmith * patents that are infringed by the Original Intel Code, to make, use, sell, 3367754Smsmith * offer to sell, and import the Covered Code and derivative works thereof 3467754Smsmith * solely to the minimum extent necessary to exercise the above copyright 3567754Smsmith * license, and in no event shall the patent license extend to any additions 3667754Smsmith * to or modifications of the Original Intel Code. No other license or right 3767754Smsmith * is granted directly or by implication, estoppel or otherwise; 3867754Smsmith * 3967754Smsmith * The above copyright and patent license is granted only if the following 4067754Smsmith * conditions are met: 4167754Smsmith * 4267754Smsmith * 3. Conditions 4367754Smsmith * 4467754Smsmith * 3.1. Redistribution of Source with Rights to Further Distribute Source. 4567754Smsmith * Redistribution of source code of any substantial portion of the Covered 4667754Smsmith * Code or modification with rights to further distribute source must include 4767754Smsmith * the above Copyright Notice, the above License, this list of Conditions, 4867754Smsmith * and the following Disclaimer and Export Compliance provision. In addition, 4967754Smsmith * Licensee must cause all Covered Code to which Licensee contributes to 5067754Smsmith * contain a file documenting the changes Licensee made to create that Covered 5167754Smsmith * Code and the date of any change. Licensee must include in that file the 5267754Smsmith * documentation of any changes made by any predecessor Licensee. Licensee 5367754Smsmith * must include a prominent statement that the modification is derived, 5467754Smsmith * directly or indirectly, from Original Intel Code. 5567754Smsmith * 5667754Smsmith * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 5767754Smsmith * Redistribution of source code of any substantial portion of the Covered 5867754Smsmith * Code or modification without rights to further distribute source must 5967754Smsmith * include the following Disclaimer and Export Compliance provision in the 6067754Smsmith * documentation and/or other materials provided with distribution. In 6167754Smsmith * addition, Licensee may not authorize further sublicense of source of any 6267754Smsmith * portion of the Covered Code, and must include terms to the effect that the 6367754Smsmith * license from Licensee to its licensee is limited to the intellectual 6467754Smsmith * property embodied in the software Licensee provides to its licensee, and 6567754Smsmith * not to intellectual property embodied in modifications its licensee may 6667754Smsmith * make. 6767754Smsmith * 6867754Smsmith * 3.3. Redistribution of Executable. Redistribution in executable form of any 6967754Smsmith * substantial portion of the Covered Code or modification must reproduce the 7067754Smsmith * above Copyright Notice, and the following Disclaimer and Export Compliance 7167754Smsmith * provision in the documentation and/or other materials provided with the 7267754Smsmith * distribution. 7367754Smsmith * 7467754Smsmith * 3.4. Intel retains all right, title, and interest in and to the Original 7567754Smsmith * Intel Code. 7667754Smsmith * 7767754Smsmith * 3.5. Neither the name Intel nor any other trademark owned or controlled by 7867754Smsmith * Intel shall be used in advertising or otherwise to promote the sale, use or 7967754Smsmith * other dealings in products derived from or relating to the Covered Code 8067754Smsmith * without prior written authorization from Intel. 8167754Smsmith * 8267754Smsmith * 4. Disclaimer and Export Compliance 8367754Smsmith * 8467754Smsmith * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 8567754Smsmith * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 8667754Smsmith * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 8767754Smsmith * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 8867754Smsmith * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 8967754Smsmith * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 9067754Smsmith * PARTICULAR PURPOSE. 9167754Smsmith * 9267754Smsmith * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 9367754Smsmith * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 9467754Smsmith * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 9567754Smsmith * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 9667754Smsmith * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 9767754Smsmith * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 9867754Smsmith * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 9967754Smsmith * LIMITED REMEDY. 10067754Smsmith * 10167754Smsmith * 4.3. Licensee shall not export, either directly or indirectly, any of this 10267754Smsmith * software or system incorporating such software without first obtaining any 10367754Smsmith * required license or other approval from the U. S. Department of Commerce or 10467754Smsmith * any other agency or department of the United States Government. In the 10567754Smsmith * event Licensee exports any such software from the United States or 10667754Smsmith * re-exports any such software from a foreign destination, Licensee shall 10767754Smsmith * ensure that the distribution and export/re-export of the software is in 10867754Smsmith * compliance with all laws, regulations, orders, or other restrictions of the 10967754Smsmith * U.S. Export Administration Regulations. Licensee agrees that neither it nor 11067754Smsmith * any of its subsidiaries will export/re-export any technical data, process, 11167754Smsmith * software, or service, directly or indirectly, to any country for which the 11267754Smsmith * United States government or any agency thereof requires an export license, 11367754Smsmith * other governmental approval, or letter of assurance, without first obtaining 11467754Smsmith * such license, approval or letter. 11567754Smsmith * 11667754Smsmith *****************************************************************************/ 11767754Smsmith 11867754Smsmith#include "acpi.h" 11967754Smsmith#include "acevents.h" 12067754Smsmith 12177424Smsmith#define _COMPONENT ACPI_HARDWARE 12291116Smsmith ACPI_MODULE_NAME ("hwgpe") 12367754Smsmith 12467754Smsmith 12567754Smsmith/****************************************************************************** 12667754Smsmith * 127129684Snjl * FUNCTION: AcpiHwWriteGpeEnableReg 12867754Smsmith * 129128212Snjl * PARAMETERS: GpeEventInfo - Info block for the GPE to be enabled 13067754Smsmith * 131128212Snjl * RETURN: Status 13267754Smsmith * 133129684Snjl * DESCRIPTION: Write a GPE enable register. Note: The bit for this GPE must 134129684Snjl * already be cleared or set in the parent register 135129684Snjl * EnableForRun mask. 13667754Smsmith * 13767754Smsmith ******************************************************************************/ 13867754Smsmith 13999679SiwasakiACPI_STATUS 140129684SnjlAcpiHwWriteGpeEnableReg ( 141114237Snjl ACPI_GPE_EVENT_INFO *GpeEventInfo) 14267754Smsmith{ 143114237Snjl ACPI_GPE_REGISTER_INFO *GpeRegisterInfo; 14499679Siwasaki ACPI_STATUS Status; 14567754Smsmith 14683174Smsmith 14791116Smsmith ACPI_FUNCTION_ENTRY (); 14883174Smsmith 14983174Smsmith 150114237Snjl /* Get the info block for the entire GPE register */ 15167754Smsmith 152114237Snjl GpeRegisterInfo = GpeEventInfo->RegisterInfo; 153114237Snjl if (!GpeRegisterInfo) 154114237Snjl { 155129684Snjl return (AE_NOT_EXIST); 156114237Snjl } 15767754Smsmith 158129684Snjl /* Write the entire GPE (runtime) enable register */ 15984491Smsmith 160129684Snjl Status = AcpiHwLowLevelWrite (8, GpeRegisterInfo->EnableForRun, 161117521Snjl &GpeRegisterInfo->EnableAddress); 16299679Siwasaki 163129684Snjl return (Status); 16467754Smsmith} 16567754Smsmith 16691116Smsmith 16784491Smsmith/****************************************************************************** 16884491Smsmith * 16967754Smsmith * FUNCTION: AcpiHwClearGpe 17067754Smsmith * 171128212Snjl * PARAMETERS: GpeEventInfo - Info block for the GPE to be cleared 17267754Smsmith * 173128212Snjl * RETURN: StatusStatus 17467754Smsmith * 175128212Snjl * DESCRIPTION: Clear the status bit for a single GPE. 17667754Smsmith * 17767754Smsmith ******************************************************************************/ 17867754Smsmith 17999679SiwasakiACPI_STATUS 18067754SmsmithAcpiHwClearGpe ( 181114237Snjl ACPI_GPE_EVENT_INFO *GpeEventInfo) 18267754Smsmith{ 18399679Siwasaki ACPI_STATUS Status; 18467754Smsmith 18580062Smsmith 18691116Smsmith ACPI_FUNCTION_ENTRY (); 18783174Smsmith 18883174Smsmith 18967754Smsmith /* 19067754Smsmith * Write a one to the appropriate bit in the status register to 19167754Smsmith * clear this GPE. 19267754Smsmith */ 193129684Snjl Status = AcpiHwLowLevelWrite (8, GpeEventInfo->RegisterBit, 194117521Snjl &GpeEventInfo->RegisterInfo->StatusAddress); 19599679Siwasaki 19699679Siwasaki return (Status); 19767754Smsmith} 19867754Smsmith 19967754Smsmith 20067754Smsmith/****************************************************************************** 20167754Smsmith * 20267754Smsmith * FUNCTION: AcpiHwGetGpeStatus 20367754Smsmith * 204128212Snjl * PARAMETERS: GpeEventInfo - Info block for the GPE to queried 205128212Snjl * EventStatus - Where the GPE status is returned 20667754Smsmith * 207128212Snjl * RETURN: Status 20867754Smsmith * 20967754Smsmith * DESCRIPTION: Return the status of a single GPE. 21067754Smsmith * 21167754Smsmith ******************************************************************************/ 21267754Smsmith 21399679SiwasakiACPI_STATUS 21467754SmsmithAcpiHwGetGpeStatus ( 215117521Snjl ACPI_GPE_EVENT_INFO *GpeEventInfo, 21667754Smsmith ACPI_EVENT_STATUS *EventStatus) 21767754Smsmith{ 218114237Snjl UINT32 InByte; 219129684Snjl UINT8 RegisterBit; 22091116Smsmith ACPI_GPE_REGISTER_INFO *GpeRegisterInfo; 22199679Siwasaki ACPI_STATUS Status; 222114237Snjl ACPI_EVENT_STATUS LocalEventStatus = 0; 22367754Smsmith 22480062Smsmith 22591116Smsmith ACPI_FUNCTION_ENTRY (); 22683174Smsmith 22783174Smsmith 22867754Smsmith if (!EventStatus) 22967754Smsmith { 23099679Siwasaki return (AE_BAD_PARAMETER); 23167754Smsmith } 23267754Smsmith 233114237Snjl /* Get the info block for the entire GPE register */ 23467754Smsmith 235114237Snjl GpeRegisterInfo = GpeEventInfo->RegisterInfo; 23667754Smsmith 23791116Smsmith /* Get the register bitmask for this GPE */ 23891116Smsmith 239129684Snjl RegisterBit = GpeEventInfo->RegisterBit; 24091116Smsmith 241129684Snjl /* GPE currently enabled? (enabled for runtime?) */ 24291116Smsmith 243129684Snjl if (RegisterBit & GpeRegisterInfo->EnableForRun) 24499679Siwasaki { 245114237Snjl LocalEventStatus |= ACPI_EVENT_FLAG_ENABLED; 24667754Smsmith } 24767754Smsmith 248129684Snjl /* GPE enabled for wake? */ 24991116Smsmith 250129684Snjl if (RegisterBit & GpeRegisterInfo->EnableForWake) 25184491Smsmith { 252114237Snjl LocalEventStatus |= ACPI_EVENT_FLAG_WAKE_ENABLED; 25384491Smsmith } 25484491Smsmith 255129684Snjl /* GPE currently active (status bit == 1)? */ 25691116Smsmith 257117521Snjl Status = AcpiHwLowLevelRead (8, &InByte, &GpeRegisterInfo->StatusAddress); 25899679Siwasaki if (ACPI_FAILURE (Status)) 25999679Siwasaki { 260117521Snjl goto UnlockAndExit; 26199679Siwasaki } 26299679Siwasaki 263129684Snjl if (RegisterBit & InByte) 26467754Smsmith { 265114237Snjl LocalEventStatus |= ACPI_EVENT_FLAG_SET; 26667754Smsmith } 267114237Snjl 268114237Snjl /* Set return value */ 269114237Snjl 270114237Snjl (*EventStatus) = LocalEventStatus; 271117521Snjl 272117521Snjl 273117521SnjlUnlockAndExit: 274117521Snjl return (Status); 275117521Snjl} 276117521Snjl 277117521Snjl 278117521Snjl/****************************************************************************** 279117521Snjl * 280117521Snjl * FUNCTION: AcpiHwDisableGpeBlock 281117521Snjl * 282117521Snjl * PARAMETERS: GpeXruptInfo - GPE Interrupt info 283117521Snjl * GpeBlock - Gpe Block info 284117521Snjl * 285117521Snjl * RETURN: Status 286117521Snjl * 287117521Snjl * DESCRIPTION: Disable all GPEs within a GPE block 288117521Snjl * 289117521Snjl ******************************************************************************/ 290117521Snjl 291117521SnjlACPI_STATUS 292117521SnjlAcpiHwDisableGpeBlock ( 293117521Snjl ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 294117521Snjl ACPI_GPE_BLOCK_INFO *GpeBlock) 295117521Snjl{ 296117521Snjl UINT32 i; 297117521Snjl ACPI_STATUS Status; 298117521Snjl 299117521Snjl 300117521Snjl /* Examine each GPE Register within the block */ 301117521Snjl 302117521Snjl for (i = 0; i < GpeBlock->RegisterCount; i++) 303117521Snjl { 304126372Snjl /* Disable all GPEs in this register */ 305126372Snjl 306117521Snjl Status = AcpiHwLowLevelWrite (8, 0x00, 307117521Snjl &GpeBlock->RegisterInfo[i].EnableAddress); 308117521Snjl if (ACPI_FAILURE (Status)) 309117521Snjl { 310117521Snjl return (Status); 311117521Snjl } 312117521Snjl } 313117521Snjl 31499679Siwasaki return (AE_OK); 31567754Smsmith} 31684491Smsmith 31791116Smsmith 31884491Smsmith/****************************************************************************** 31984491Smsmith * 320117521Snjl * FUNCTION: AcpiHwClearGpeBlock 321117521Snjl * 322117521Snjl * PARAMETERS: GpeXruptInfo - GPE Interrupt info 323117521Snjl * GpeBlock - Gpe Block info 324117521Snjl * 325117521Snjl * RETURN: Status 326117521Snjl * 327128212Snjl * DESCRIPTION: Clear status bits for all GPEs within a GPE block 328117521Snjl * 329117521Snjl ******************************************************************************/ 330117521Snjl 331117521SnjlACPI_STATUS 332117521SnjlAcpiHwClearGpeBlock ( 333117521Snjl ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 334117521Snjl ACPI_GPE_BLOCK_INFO *GpeBlock) 335117521Snjl{ 336117521Snjl UINT32 i; 337117521Snjl ACPI_STATUS Status; 338117521Snjl 339117521Snjl 340117521Snjl /* Examine each GPE Register within the block */ 341117521Snjl 342117521Snjl for (i = 0; i < GpeBlock->RegisterCount; i++) 343117521Snjl { 344128212Snjl /* Clear status on all GPEs in this register */ 345126372Snjl 346117521Snjl Status = AcpiHwLowLevelWrite (8, 0xFF, 347117521Snjl &GpeBlock->RegisterInfo[i].StatusAddress); 348117521Snjl if (ACPI_FAILURE (Status)) 349117521Snjl { 350117521Snjl return (Status); 351117521Snjl } 352117521Snjl } 353117521Snjl 354117521Snjl return (AE_OK); 355117521Snjl} 356117521Snjl 357117521Snjl 358117521Snjl/****************************************************************************** 359117521Snjl * 360129684Snjl * FUNCTION: AcpiHwEnableRuntimeGpeBlock 361117521Snjl * 362117521Snjl * PARAMETERS: GpeXruptInfo - GPE Interrupt info 363117521Snjl * GpeBlock - Gpe Block info 364117521Snjl * 365117521Snjl * RETURN: Status 366117521Snjl * 367129684Snjl * DESCRIPTION: Enable all "runtime" GPEs within a GPE block. (Includes 368129684Snjl * combination wake/run GPEs.) 369117521Snjl * 370117521Snjl ******************************************************************************/ 371117521Snjl 372129684SnjlACPI_STATUS 373129684SnjlAcpiHwEnableRuntimeGpeBlock ( 374117521Snjl ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 375117521Snjl ACPI_GPE_BLOCK_INFO *GpeBlock) 376117521Snjl{ 377117521Snjl UINT32 i; 378117521Snjl ACPI_STATUS Status; 379117521Snjl 380117521Snjl 381129684Snjl /* NOTE: assumes that all GPEs are currently disabled */ 382117521Snjl 383117521Snjl /* Examine each GPE Register within the block */ 384117521Snjl 385117521Snjl for (i = 0; i < GpeBlock->RegisterCount; i++) 386117521Snjl { 387129684Snjl if (!GpeBlock->RegisterInfo[i].EnableForRun) 388117521Snjl { 389129684Snjl continue; 390117521Snjl } 391117521Snjl 392129684Snjl /* Enable all "runtime" GPEs in this register */ 393117521Snjl 394129684Snjl Status = AcpiHwLowLevelWrite (8, GpeBlock->RegisterInfo[i].EnableForRun, 395129684Snjl &GpeBlock->RegisterInfo[i].EnableAddress); 396117521Snjl if (ACPI_FAILURE (Status)) 397117521Snjl { 398117521Snjl return (Status); 399117521Snjl } 400117521Snjl } 401117521Snjl 402117521Snjl return (AE_OK); 403117521Snjl} 404117521Snjl 405117521Snjl 406117521Snjl/****************************************************************************** 407117521Snjl * 408129684Snjl * FUNCTION: AcpiHwEnableWakeupGpeBlock 40984491Smsmith * 410129684Snjl * PARAMETERS: GpeXruptInfo - GPE Interrupt info 411129684Snjl * GpeBlock - Gpe Block info 41284491Smsmith * 413128212Snjl * RETURN: Status 41484491Smsmith * 415129684Snjl * DESCRIPTION: Enable all "wake" GPEs within a GPE block. (Includes 416129684Snjl * combination wake/run GPEs.) 41784491Smsmith * 41884491Smsmith ******************************************************************************/ 41984491Smsmith 42099679SiwasakiACPI_STATUS 421129684SnjlAcpiHwEnableWakeupGpeBlock ( 422129684Snjl ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 423129684Snjl ACPI_GPE_BLOCK_INFO *GpeBlock) 42484491Smsmith{ 425129684Snjl UINT32 i; 42699679Siwasaki ACPI_STATUS Status; 42784491Smsmith 42884491Smsmith 429129684Snjl /* Examine each GPE Register within the block */ 43091116Smsmith 431129684Snjl for (i = 0; i < GpeBlock->RegisterCount; i++) 432129684Snjl { 433129684Snjl if (!GpeBlock->RegisterInfo[i].EnableForWake) 434129684Snjl { 435129684Snjl continue; 436129684Snjl } 43791116Smsmith 438129684Snjl /* Enable all "wake" GPEs in this register */ 439129684Snjl 440129684Snjl Status = AcpiHwLowLevelWrite (8, GpeBlock->RegisterInfo[i].EnableForWake, 441129684Snjl &GpeBlock->RegisterInfo[i].EnableAddress); 442129684Snjl if (ACPI_FAILURE (Status)) 443129684Snjl { 444129684Snjl return (Status); 445129684Snjl } 446129684Snjl } 447129684Snjl 448129684Snjl return (AE_OK); 449117521Snjl} 45084491Smsmith 45199679Siwasaki 452117521Snjl/****************************************************************************** 453117521Snjl * 454129684Snjl * FUNCTION: AcpiHwDisableAllGpes 455117521Snjl * 456129684Snjl * PARAMETERS: None 457117521Snjl * 458117521Snjl * RETURN: Status 459117521Snjl * 460129684Snjl * DESCRIPTION: Disable and clear all GPEs 461117521Snjl * 462117521Snjl ******************************************************************************/ 463114237Snjl 464129684SnjlACPI_STATUS 465129684SnjlAcpiHwDisableAllGpes ( 466129684Snjl void) 467117521Snjl{ 468117521Snjl ACPI_STATUS Status; 469114237Snjl 470117521Snjl 471129684Snjl ACPI_FUNCTION_TRACE ("HwDisableAllGpes"); 472117521Snjl 473117521Snjl 474129684Snjl Status = AcpiEvWalkGpeList (AcpiHwDisableGpeBlock); 475129684Snjl Status = AcpiEvWalkGpeList (AcpiHwClearGpeBlock); 476129684Snjl return_ACPI_STATUS (Status); 477129684Snjl} 478117521Snjl 479117521Snjl 480129684Snjl/****************************************************************************** 481129684Snjl * 482129684Snjl * FUNCTION: AcpiHwEnableAllRuntimeGpes 483129684Snjl * 484129684Snjl * PARAMETERS: None 485129684Snjl * 486129684Snjl * RETURN: Status 487129684Snjl * 488129684Snjl * DESCRIPTION: Enable all GPEs of the given type 489129684Snjl * 490129684Snjl ******************************************************************************/ 491126372Snjl 492129684SnjlACPI_STATUS 493129684SnjlAcpiHwEnableAllRuntimeGpes ( 494129684Snjl void) 495129684Snjl{ 496129684Snjl ACPI_STATUS Status; 497126372Snjl 498114237Snjl 499129684Snjl ACPI_FUNCTION_TRACE ("HwEnableAllRuntimeGpes"); 500128212Snjl 501114237Snjl 502129684Snjl Status = AcpiEvWalkGpeList (AcpiHwEnableRuntimeGpeBlock); 503129684Snjl return_ACPI_STATUS (Status); 50484491Smsmith} 50584491Smsmith 50691116Smsmith 50784491Smsmith/****************************************************************************** 50884491Smsmith * 509129684Snjl * FUNCTION: AcpiHwEnableAllWakeupGpes 51084491Smsmith * 51184491Smsmith * PARAMETERS: None 51284491Smsmith * 513128212Snjl * RETURN: Status 51484491Smsmith * 515129684Snjl * DESCRIPTION: Enable all GPEs of the given type 51684491Smsmith * 51784491Smsmith ******************************************************************************/ 51884491Smsmith 51999679SiwasakiACPI_STATUS 520129684SnjlAcpiHwEnableAllWakeupGpes ( 52184491Smsmith void) 52284491Smsmith{ 52399679Siwasaki ACPI_STATUS Status; 52484491Smsmith 52584491Smsmith 526129684Snjl ACPI_FUNCTION_TRACE ("HwEnableAllWakeupGpes"); 52791116Smsmith 52891116Smsmith 529129684Snjl Status = AcpiEvWalkGpeList (AcpiHwEnableWakeupGpeBlock); 530129684Snjl return_ACPI_STATUS (Status); 53184491Smsmith} 532129684Snjl 533