Statistics
| Branch: | Revision:

root / hw / acpi-dsdt.dsl @ 0986ac3b

History | View | Annotate | Download (15.5 kB)

1 6515b203 bellard
/*
2 6515b203 bellard
 * QEMU ACPI DSDT ASL definition
3 6515b203 bellard
 * 
4 6515b203 bellard
 * Copyright (c) 2006 Fabrice Bellard
5 6515b203 bellard
 * 
6 6515b203 bellard
 * This library is free software; you can redistribute it and/or
7 6515b203 bellard
 * modify it under the terms of the GNU Lesser General Public
8 6515b203 bellard
 * License version 2 as published by the Free Software Foundation.
9 6515b203 bellard
 *
10 6515b203 bellard
 * This library is distributed in the hope that it will be useful,
11 6515b203 bellard
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 6515b203 bellard
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 6515b203 bellard
 * Lesser General Public License for more details.
14 6515b203 bellard
 *
15 6515b203 bellard
 * You should have received a copy of the GNU Lesser General Public
16 6515b203 bellard
 * License along with this library; if not, write to the Free Software
17 6515b203 bellard
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 6515b203 bellard
 */
19 6515b203 bellard
DefinitionBlock (
20 6515b203 bellard
    "acpi-dsdt.aml",    // Output Filename
21 6515b203 bellard
    "DSDT",             // Signature
22 6515b203 bellard
    0x01,               // DSDT Compliance Revision
23 6515b203 bellard
    "QEMU",             // OEMID
24 6515b203 bellard
    "QEMUDSDT",         // TABLE ID
25 6515b203 bellard
    0x1                 // OEM Revision
26 6515b203 bellard
    )
27 6515b203 bellard
{
28 6515b203 bellard
    Scope (\)
29 6515b203 bellard
    {
30 6515b203 bellard
        /* CMOS memory access */
31 6515b203 bellard
        OperationRegion (CMS, SystemIO, 0x70, 0x02)
32 6515b203 bellard
        Field (CMS, ByteAcc, NoLock, Preserve)
33 6515b203 bellard
        {
34 6515b203 bellard
            CMSI,   8, 
35 6515b203 bellard
            CMSD,   8
36 6515b203 bellard
        }
37 6515b203 bellard
        Method (CMRD, 1, NotSerialized)
38 6515b203 bellard
        {
39 6515b203 bellard
            Store (Arg0, CMSI)
40 6515b203 bellard
            Store (CMSD, Local0)
41 6515b203 bellard
            Return (Local0)
42 6515b203 bellard
        }
43 6515b203 bellard
44 6515b203 bellard
        /* Debug Output */
45 6515b203 bellard
        OperationRegion (DBG, SystemIO, 0xb044, 0x04)
46 6515b203 bellard
        Field (DBG, DWordAcc, NoLock, Preserve)
47 6515b203 bellard
        {
48 6515b203 bellard
            DBGL,   32, 
49 6515b203 bellard
        }
50 6515b203 bellard
    }
51 6515b203 bellard
52 6515b203 bellard
53 6515b203 bellard
    /* PCI Bus definition */
54 6515b203 bellard
    Scope(\_SB) {
55 6515b203 bellard
        Device(PCI0) {
56 6515b203 bellard
            Name (_HID, EisaId ("PNP0A03"))
57 6515b203 bellard
            Name (_ADR, 0x00)
58 6515b203 bellard
            Name (_UID, 1)
59 6515b203 bellard
            Name(_PRT, Package() {
60 6515b203 bellard
                /* PCI IRQ routing table, example from ACPI 2.0a specification,
61 6515b203 bellard
                   section 6.2.8.1 */
62 6515b203 bellard
                /* Note: we provide the same info as the PCI routing
63 6515b203 bellard
                   table of the Bochs BIOS */
64 6515b203 bellard
                   
65 6515b203 bellard
                // PCI Slot 0
66 6583391f bellard
                Package() {0x0000ffff, 0, LNKD, 0}, 
67 6583391f bellard
                Package() {0x0000ffff, 1, LNKA, 0}, 
68 6583391f bellard
                Package() {0x0000ffff, 2, LNKB, 0}, 
69 6583391f bellard
                Package() {0x0000ffff, 3, LNKC, 0}, 
70 6515b203 bellard
71 6583391f bellard
                // PCI Slot 1
72 6583391f bellard
                Package() {0x0001ffff, 0, LNKA, 0}, 
73 6583391f bellard
                Package() {0x0001ffff, 1, LNKB, 0}, 
74 6583391f bellard
                Package() {0x0001ffff, 2, LNKC, 0}, 
75 6583391f bellard
                Package() {0x0001ffff, 3, LNKD, 0}, 
76 6583391f bellard
                
77 6515b203 bellard
                // PCI Slot 2
78 6583391f bellard
                Package() {0x0002ffff, 0, LNKB, 0}, 
79 6583391f bellard
                Package() {0x0002ffff, 1, LNKC, 0}, 
80 6583391f bellard
                Package() {0x0002ffff, 2, LNKD, 0}, 
81 6583391f bellard
                Package() {0x0002ffff, 3, LNKA, 0}, 
82 6515b203 bellard
83 6515b203 bellard
                // PCI Slot 3
84 6583391f bellard
                Package() {0x0003ffff, 0, LNKC, 0}, 
85 6583391f bellard
                Package() {0x0003ffff, 1, LNKD, 0}, 
86 6583391f bellard
                Package() {0x0003ffff, 2, LNKA, 0}, 
87 6583391f bellard
                Package() {0x0003ffff, 3, LNKB, 0}, 
88 6515b203 bellard
89 6515b203 bellard
                // PCI Slot 4
90 6583391f bellard
                Package() {0x0004ffff, 0, LNKD, 0}, 
91 6583391f bellard
                Package() {0x0004ffff, 1, LNKA, 0}, 
92 6583391f bellard
                Package() {0x0004ffff, 2, LNKB, 0}, 
93 6583391f bellard
                Package() {0x0004ffff, 3, LNKC, 0}, 
94 6515b203 bellard
95 6515b203 bellard
                // PCI Slot 5
96 6583391f bellard
                Package() {0x0005ffff, 0, LNKA, 0}, 
97 6583391f bellard
                Package() {0x0005ffff, 1, LNKB, 0}, 
98 6583391f bellard
                Package() {0x0005ffff, 2, LNKC, 0}, 
99 6583391f bellard
                Package() {0x0005ffff, 3, LNKD, 0}, 
100 6515b203 bellard
            })
101 6515b203 bellard
102 6515b203 bellard
            Method (_CRS, 0, NotSerialized)
103 6515b203 bellard
            {
104 6515b203 bellard
            Name (MEMP, ResourceTemplate ()
105 6515b203 bellard
            {
106 6515b203 bellard
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
107 6515b203 bellard
                    0x0000,             // Address Space Granularity
108 6515b203 bellard
                    0x0000,             // Address Range Minimum
109 6515b203 bellard
                    0x00FF,             // Address Range Maximum
110 6515b203 bellard
                    0x0000,             // Address Translation Offset
111 6515b203 bellard
                    0x0100,             // Address Length
112 6515b203 bellard
                    ,, )
113 6515b203 bellard
                IO (Decode16,
114 6515b203 bellard
                    0x0CF8,             // Address Range Minimum
115 6515b203 bellard
                    0x0CF8,             // Address Range Maximum
116 6515b203 bellard
                    0x01,               // Address Alignment
117 6515b203 bellard
                    0x08,               // Address Length
118 6515b203 bellard
                    )
119 6515b203 bellard
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
120 6515b203 bellard
                    0x0000,             // Address Space Granularity
121 6515b203 bellard
                    0x0000,             // Address Range Minimum
122 6515b203 bellard
                    0x0CF7,             // Address Range Maximum
123 6515b203 bellard
                    0x0000,             // Address Translation Offset
124 6515b203 bellard
                    0x0CF8,             // Address Length
125 6515b203 bellard
                    ,, , TypeStatic)
126 6515b203 bellard
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
127 6515b203 bellard
                    0x0000,             // Address Space Granularity
128 6515b203 bellard
                    0x0D00,             // Address Range Minimum
129 6515b203 bellard
                    0xFFFF,             // Address Range Maximum
130 6515b203 bellard
                    0x0000,             // Address Translation Offset
131 6515b203 bellard
                    0xF300,             // Address Length
132 6515b203 bellard
                    ,, , TypeStatic)
133 6515b203 bellard
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
134 6515b203 bellard
                    0x00000000,         // Address Space Granularity
135 6515b203 bellard
                    0x000A0000,         // Address Range Minimum
136 6515b203 bellard
                    0x000BFFFF,         // Address Range Maximum
137 6515b203 bellard
                    0x00000000,         // Address Translation Offset
138 6515b203 bellard
                    0x00020000,         // Address Length
139 6515b203 bellard
                    ,, , AddressRangeMemory, TypeStatic)
140 6515b203 bellard
                DWordMemory (ResourceProducer, PosDecode, MinNotFixed, MaxFixed, NonCacheable, ReadWrite,
141 6515b203 bellard
                    0x00000000,         // Address Space Granularity
142 6515b203 bellard
                    0x00000000,         // Address Range Minimum
143 6515b203 bellard
                    0xFEBFFFFF,         // Address Range Maximum
144 6515b203 bellard
                    0x00000000,         // Address Translation Offset
145 6515b203 bellard
                    0x00000000,         // Address Length
146 6515b203 bellard
                    ,, MEMF, AddressRangeMemory, TypeStatic)
147 6515b203 bellard
            })
148 6515b203 bellard
                CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MIN, PMIN)
149 6515b203 bellard
                CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MAX, PMAX)
150 6515b203 bellard
                CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._LEN, PLEN)
151 6515b203 bellard
                /* compute available RAM */
152 6515b203 bellard
                Add(CMRD(0x34), ShiftLeft(CMRD(0x35), 8), Local0)
153 6515b203 bellard
                ShiftLeft(Local0, 16, Local0)
154 6515b203 bellard
                Add(Local0, 0x1000000, Local0)
155 6515b203 bellard
                /* update field of last region */
156 6515b203 bellard
                Store(Local0, PMIN)
157 6515b203 bellard
                Subtract (PMAX, PMIN, PLEN)
158 6515b203 bellard
                Increment (PLEN)
159 6515b203 bellard
                Return (MEMP)
160 6515b203 bellard
            }
161 6515b203 bellard
        }
162 6515b203 bellard
    }
163 6515b203 bellard
164 6515b203 bellard
    /* PIIX3 ISA bridge */
165 6515b203 bellard
    Scope(\_SB.PCI0) {
166 6515b203 bellard
        Device (ISA) {
167 6515b203 bellard
            Name (_ADR, 0x00010000)
168 6515b203 bellard
        
169 6515b203 bellard
            /* PIIX PCI to ISA irq remapping */
170 6515b203 bellard
            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
171 6515b203 bellard
172 6515b203 bellard
173 6515b203 bellard
            /* Keyboard seems to be important for WinXP install */
174 6515b203 bellard
            Device (KBD)
175 6515b203 bellard
            {
176 6515b203 bellard
                Name (_HID, EisaId ("PNP0303"))
177 6515b203 bellard
                Method (_STA, 0, NotSerialized)
178 6515b203 bellard
                {
179 6515b203 bellard
                    Return (0x0f)
180 6515b203 bellard
                }
181 6515b203 bellard
182 6515b203 bellard
                Method (_CRS, 0, NotSerialized)
183 6515b203 bellard
                {
184 6515b203 bellard
                     Name (TMP, ResourceTemplate ()
185 6515b203 bellard
                     {
186 6515b203 bellard
                    IO (Decode16,
187 6515b203 bellard
                        0x0060,             // Address Range Minimum
188 6515b203 bellard
                        0x0060,             // Address Range Maximum
189 6515b203 bellard
                        0x01,               // Address Alignment
190 6515b203 bellard
                        0x01,               // Address Length
191 6515b203 bellard
                        )
192 6515b203 bellard
                    IO (Decode16,
193 6515b203 bellard
                        0x0064,             // Address Range Minimum
194 6515b203 bellard
                        0x0064,             // Address Range Maximum
195 6515b203 bellard
                        0x01,               // Address Alignment
196 6515b203 bellard
                        0x01,               // Address Length
197 6515b203 bellard
                        )
198 6515b203 bellard
                    IRQNoFlags ()
199 6515b203 bellard
                        {1}
200 6515b203 bellard
                    })
201 6515b203 bellard
                    Return (TMP)
202 6515b203 bellard
                }
203 6515b203 bellard
            }
204 6515b203 bellard
205 6515b203 bellard
            Device (MOU) 
206 6515b203 bellard
            {
207 6515b203 bellard
                Name (_HID, EisaId ("PNP0F13"))
208 6515b203 bellard
                Method (_STA, 0, NotSerialized)
209 6515b203 bellard
                {
210 6515b203 bellard
                    Return (0x0f)
211 6515b203 bellard
                }
212 6515b203 bellard
213 6515b203 bellard
                Method (_CRS, 0, NotSerialized)
214 6515b203 bellard
                {
215 6515b203 bellard
                    Name (TMP, ResourceTemplate ()
216 6515b203 bellard
                    {
217 6515b203 bellard
                         IRQNoFlags () {12}
218 6515b203 bellard
                    })
219 6515b203 bellard
                    Return (TMP)
220 6515b203 bellard
                }
221 6515b203 bellard
            }
222 6515b203 bellard
        }
223 6515b203 bellard
    }
224 6515b203 bellard
225 6515b203 bellard
    /* PCI IRQs */
226 6515b203 bellard
    Scope(\_SB) {
227 6515b203 bellard
         Field (\_SB.PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
228 6515b203 bellard
         {
229 6515b203 bellard
             PRQ0,   8, 
230 6515b203 bellard
             PRQ1,   8, 
231 6515b203 bellard
             PRQ2,   8, 
232 6515b203 bellard
             PRQ3,   8
233 6515b203 bellard
         }
234 6515b203 bellard
235 6515b203 bellard
        Device(LNKA){
236 6515b203 bellard
                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
237 6515b203 bellard
                Name(_UID, 1)
238 6515b203 bellard
                Name(_PRS, ResourceTemplate(){
239 6515b203 bellard
                    IRQ (Level, ActiveLow, Shared)
240 6515b203 bellard
                        {3,4,5,6,7,9,10,11,12}
241 6515b203 bellard
                })
242 6515b203 bellard
                Method (_STA, 0, NotSerialized)
243 6515b203 bellard
                {
244 6515b203 bellard
                    Store (0x0B, Local0)
245 6515b203 bellard
                    If (And (0x80, PRQ0, Local1))
246 6515b203 bellard
                    {
247 6515b203 bellard
                         Store (0x09, Local0)
248 6515b203 bellard
                    }
249 6515b203 bellard
                    Return (Local0)
250 6515b203 bellard
                }
251 6515b203 bellard
                Method (_DIS, 0, NotSerialized)
252 6515b203 bellard
                {
253 6515b203 bellard
                    Or (PRQ0, 0x80, PRQ0)
254 6515b203 bellard
                }
255 6515b203 bellard
                Method (_CRS, 0, NotSerialized)
256 6515b203 bellard
                {
257 6515b203 bellard
                    Name (PRR0, ResourceTemplate ()
258 6515b203 bellard
                    {
259 6515b203 bellard
                        IRQ (Level, ActiveLow, Shared)
260 6515b203 bellard
                            {1}
261 6515b203 bellard
                    })
262 6515b203 bellard
                    CreateWordField (PRR0, 0x01, TMP)
263 6515b203 bellard
                    Store (PRQ0, Local0)
264 6515b203 bellard
                    If (LLess (Local0, 0x80))
265 6515b203 bellard
                    {
266 6515b203 bellard
                        ShiftLeft (One, Local0, TMP)
267 6515b203 bellard
                    }
268 6515b203 bellard
                    Else
269 6515b203 bellard
                    {
270 6515b203 bellard
                        Store (Zero, TMP)
271 6515b203 bellard
                    }
272 6515b203 bellard
                    Return (PRR0)
273 6515b203 bellard
                }
274 6515b203 bellard
                Method (_SRS, 1, NotSerialized)
275 6515b203 bellard
                {
276 6515b203 bellard
                    CreateWordField (Arg0, 0x01, TMP)
277 6515b203 bellard
                    FindSetRightBit (TMP, Local0)
278 6515b203 bellard
                    Decrement (Local0)
279 6515b203 bellard
                    Store (Local0, PRQ0)
280 6515b203 bellard
                }
281 6515b203 bellard
        }
282 6515b203 bellard
        Device(LNKB){
283 6515b203 bellard
                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
284 6515b203 bellard
                Name(_UID, 2)
285 6515b203 bellard
                Name(_PRS, ResourceTemplate(){
286 6515b203 bellard
                    IRQ (Level, ActiveLow, Shared)
287 6515b203 bellard
                        {3,4,5,6,7,9,10,11,12}
288 6515b203 bellard
                })
289 6515b203 bellard
                Method (_STA, 0, NotSerialized)
290 6515b203 bellard
                {
291 6515b203 bellard
                    Store (0x0B, Local0)
292 6515b203 bellard
                    If (And (0x80, PRQ1, Local1))
293 6515b203 bellard
                    {
294 6515b203 bellard
                         Store (0x09, Local0)
295 6515b203 bellard
                    }
296 6515b203 bellard
                    Return (Local0)
297 6515b203 bellard
                }
298 6515b203 bellard
                Method (_DIS, 0, NotSerialized)
299 6515b203 bellard
                {
300 6515b203 bellard
                    Or (PRQ1, 0x80, PRQ1)
301 6515b203 bellard
                }
302 6515b203 bellard
                Method (_CRS, 0, NotSerialized)
303 6515b203 bellard
                {
304 6515b203 bellard
                    Name (PRR0, ResourceTemplate ()
305 6515b203 bellard
                    {
306 6515b203 bellard
                        IRQ (Level, ActiveLow, Shared)
307 6515b203 bellard
                            {1}
308 6515b203 bellard
                    })
309 6515b203 bellard
                    CreateWordField (PRR0, 0x01, TMP)
310 6515b203 bellard
                    Store (PRQ1, Local0)
311 6515b203 bellard
                    If (LLess (Local0, 0x80))
312 6515b203 bellard
                    {
313 6515b203 bellard
                        ShiftLeft (One, Local0, TMP)
314 6515b203 bellard
                    }
315 6515b203 bellard
                    Else
316 6515b203 bellard
                    {
317 6515b203 bellard
                        Store (Zero, TMP)
318 6515b203 bellard
                    }
319 6515b203 bellard
                    Return (PRR0)
320 6515b203 bellard
                }
321 6515b203 bellard
                Method (_SRS, 1, NotSerialized)
322 6515b203 bellard
                {
323 6515b203 bellard
                    CreateWordField (Arg0, 0x01, TMP)
324 6515b203 bellard
                    FindSetRightBit (TMP, Local0)
325 6515b203 bellard
                    Decrement (Local0)
326 6515b203 bellard
                    Store (Local0, PRQ1)
327 6515b203 bellard
                }
328 6515b203 bellard
        }
329 6515b203 bellard
        Device(LNKC){
330 6515b203 bellard
                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
331 6515b203 bellard
                Name(_UID, 3)
332 6515b203 bellard
                Name(_PRS, ResourceTemplate(){
333 6515b203 bellard
                    IRQ (Level, ActiveLow, Shared)
334 6515b203 bellard
                        {3,4,5,6,7,9,10,11,12}
335 6515b203 bellard
                })
336 6515b203 bellard
                Method (_STA, 0, NotSerialized)
337 6515b203 bellard
                {
338 6515b203 bellard
                    Store (0x0B, Local0)
339 6515b203 bellard
                    If (And (0x80, PRQ2, Local1))
340 6515b203 bellard
                    {
341 6515b203 bellard
                         Store (0x09, Local0)
342 6515b203 bellard
                    }
343 6515b203 bellard
                    Return (Local0)
344 6515b203 bellard
                }
345 6515b203 bellard
                Method (_DIS, 0, NotSerialized)
346 6515b203 bellard
                {
347 6515b203 bellard
                    Or (PRQ2, 0x80, PRQ2)
348 6515b203 bellard
                }
349 6515b203 bellard
                Method (_CRS, 0, NotSerialized)
350 6515b203 bellard
                {
351 6515b203 bellard
                    Name (PRR0, ResourceTemplate ()
352 6515b203 bellard
                    {
353 6515b203 bellard
                        IRQ (Level, ActiveLow, Shared)
354 6515b203 bellard
                            {1}
355 6515b203 bellard
                    })
356 6515b203 bellard
                    CreateWordField (PRR0, 0x01, TMP)
357 6515b203 bellard
                    Store (PRQ2, Local0)
358 6515b203 bellard
                    If (LLess (Local0, 0x80))
359 6515b203 bellard
                    {
360 6515b203 bellard
                        ShiftLeft (One, Local0, TMP)
361 6515b203 bellard
                    }
362 6515b203 bellard
                    Else
363 6515b203 bellard
                    {
364 6515b203 bellard
                        Store (Zero, TMP)
365 6515b203 bellard
                    }
366 6515b203 bellard
                    Return (PRR0)
367 6515b203 bellard
                }
368 6515b203 bellard
                Method (_SRS, 1, NotSerialized)
369 6515b203 bellard
                {
370 6515b203 bellard
                    CreateWordField (Arg0, 0x01, TMP)
371 6515b203 bellard
                    FindSetRightBit (TMP, Local0)
372 6515b203 bellard
                    Decrement (Local0)
373 6515b203 bellard
                    Store (Local0, PRQ2)
374 6515b203 bellard
                }
375 6515b203 bellard
        }
376 6515b203 bellard
        Device(LNKD){
377 6515b203 bellard
                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
378 6515b203 bellard
                Name(_UID, 4)
379 6515b203 bellard
                Name(_PRS, ResourceTemplate(){
380 6515b203 bellard
                    IRQ (Level, ActiveLow, Shared)
381 6515b203 bellard
                        {3,4,5,6,7,9,10,11,12}
382 6515b203 bellard
                })
383 6515b203 bellard
                Method (_STA, 0, NotSerialized)
384 6515b203 bellard
                {
385 6515b203 bellard
                    Store (0x0B, Local0)
386 6515b203 bellard
                    If (And (0x80, PRQ3, Local1))
387 6515b203 bellard
                    {
388 6515b203 bellard
                         Store (0x09, Local0)
389 6515b203 bellard
                    }
390 6515b203 bellard
                    Return (Local0)
391 6515b203 bellard
                }
392 6515b203 bellard
                Method (_DIS, 0, NotSerialized)
393 6515b203 bellard
                {
394 6515b203 bellard
                    Or (PRQ3, 0x80, PRQ3)
395 6515b203 bellard
                }
396 6515b203 bellard
                Method (_CRS, 0, NotSerialized)
397 6515b203 bellard
                {
398 6515b203 bellard
                    Name (PRR0, ResourceTemplate ()
399 6515b203 bellard
                    {
400 6515b203 bellard
                        IRQ (Level, ActiveLow, Shared)
401 6515b203 bellard
                            {1}
402 6515b203 bellard
                    })
403 6515b203 bellard
                    CreateWordField (PRR0, 0x01, TMP)
404 6515b203 bellard
                    Store (PRQ3, Local0)
405 6515b203 bellard
                    If (LLess (Local0, 0x80))
406 6515b203 bellard
                    {
407 6515b203 bellard
                        ShiftLeft (One, Local0, TMP)
408 6515b203 bellard
                    }
409 6515b203 bellard
                    Else
410 6515b203 bellard
                    {
411 6515b203 bellard
                        Store (Zero, TMP)
412 6515b203 bellard
                    }
413 6515b203 bellard
                    Return (PRR0)
414 6515b203 bellard
                }
415 6515b203 bellard
                Method (_SRS, 1, NotSerialized)
416 6515b203 bellard
                {
417 6515b203 bellard
                    CreateWordField (Arg0, 0x01, TMP)
418 6515b203 bellard
                    FindSetRightBit (TMP, Local0)
419 6515b203 bellard
                    Decrement (Local0)
420 6515b203 bellard
                    Store (Local0, PRQ3)
421 6515b203 bellard
                }
422 6515b203 bellard
        }
423 6515b203 bellard
    }
424 6515b203 bellard
425 6515b203 bellard
    /* S5 = power off state */
426 6515b203 bellard
    Name (_S5, Package (4) {
427 6515b203 bellard
        0x00, // PM1a_CNT.SLP_TYP 
428 6515b203 bellard
        0x00, // PM2a_CNT.SLP_TYP 
429 6515b203 bellard
        0x00, // reserved
430 6515b203 bellard
        0x00, // reserved
431 6515b203 bellard
    })
432 6515b203 bellard
}