1/**************************************************************************;
2;*                                                                        *;
3;*                                                                        *;
4;*    Intel Corporation - ACPI Reference Code for the Baytrail            *;
5;*    Family of Customer Reference Boards.                                *;
6;*                                                                        *;
7;*                                                                        *;
8;*    Copyright (c) 2012  - 2014, Intel Corporation. All rights reserved    *;
9;
10; This program and the accompanying materials are licensed and made available under
11; the terms and conditions of the BSD License that accompanies this distribution.
12; The full text of the license may be found at
13; http://opensource.org/licenses/bsd-license.php.
14;
15; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17;
18;*                                                                        *;
19;*                                                                        *;
20;**************************************************************************/
21
22
23// General Purpose Events.  This Scope handles the Run-time and
24// Wake-time SCIs.  The specific method called will be determined by
25// the _Lxx value, where xx equals the bit location in the General
26// Purpose Event register(s).
27
28Scope(\_GPE)
29{
30  //
31  // Software GPE caused the event.
32  //
33  Method(_L02)
34  {
35    // Clear GPE status bit.
36    Store(0,GPEC)
37    //
38    // Handle DTS Thermal Events.
39    //
40    External(DTSE, IntObj)
41    If(CondRefOf(DTSE))
42    {
43      If(LGreaterEqual(DTSE, 0x01))
44      {
45        Notify(\_TZ.TZ01,0x80)
46      }
47    }
48  }
49
50  //
51  // PUNIT SCI event.
52  //
53  Method(_L04)
54  {
55    // Clear the PUNIT Status Bit.
56    Store(1, PSCI)
57  }
58
59
60  //
61  // IGD OpRegion SCI event (see IGD OpRegion/Software SCI BIOS SPEC).
62  //
63  Method(_L05)
64  {
65    If(LAnd(\_SB.PCI0.GFX0.GSSE, LNot(GSMI)))   // Graphics software SCI event?
66    {
67      \_SB.PCI0.GFX0.GSCI()     // Handle the SWSCI
68    }
69  }
70
71  //
72  // This PME event (PCH's GPE #13) is received when any PCH internal device with PCI Power Management capabilities
73  // on bus 0 asserts the equivalent of the PME# signal.
74  //
75  Method(_L0D, 0)
76  {
77    If(LAnd(\_SB.PCI0.EHC1.PMEE, \_SB.PCI0.EHC1.PMES))
78    {
79      If(LNotEqual(OSEL, 1))
80      {
81        Store(1, \_SB.PCI0.EHC1.PMES) //Clear PME status
82        Store(0, \_SB.PCI0.EHC1.PMEE) //Disable PME
83      }
84      Notify(\_SB.PCI0.EHC1, 0x02)
85    }
86    If(LAnd(\_SB.PCI0.XHC1.PMEE, \_SB.PCI0.XHC1.PMES))
87    {
88      If(LNotEqual(OSEL, 1))
89      {
90        Store(1, \_SB.PCI0.XHC1.PMES) //Clear PME status
91        Store(0, \_SB.PCI0.XHC1.PMEE) //Disable PME
92      }
93      Notify(\_SB.PCI0.XHC1, 0x02)
94    }
95    If(LAnd(\_SB.PCI0.HDEF.PMEE, \_SB.PCI0.HDEF.PMES))
96    {
97      If(LNotEqual(OSEL, 1))
98      {
99        Store(1, \_SB.PCI0.HDEF.PMES) //Clear PME status
100        Store(0, \_SB.PCI0.HDEF.PMEE) //Disable PME
101      }
102      Notify(\_SB.PCI0.HDEF, 0x02)
103    }
104  }
105}
106