]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2DeviceRefCodePkg/AcpiTablesPCAT/INTELGFX.ASL
Vlv2DeviceRefCodePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / AcpiTablesPCAT / INTELGFX.ASL
CommitLineData
3cbfba02
DW
1/*++\r
2\r
3Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved\r
4\r
7ede8060 5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
3cbfba02
DW
6\r
7\r
8\r
9Module Name:\r
10\r
11 INTELGFX.ASL\r
12\r
13Abstract:\r
14\r
15 IGD OpRegion/Software ACPI Reference Code for the Baytrail Family.\r
16\r
17--*/\r
18\r
19// Enable/Disable Output Switching. In WIN2K/WINXP, _DOS = 0 will\r
20// get called during initialization to prepare for an ACPI Display\r
21// Switch Event. During an ACPI Display Switch, the OS will call\r
22// _DOS = 2 immediately after a Notify=0x80 to temporarily disable\r
23// all Display Switching. After ACPI Display Switching is complete,\r
24// the OS will call _DOS = 0 to re-enable ACPI Display Switching.\r
25\r
26Method(_DOS,1)\r
27{\r
28 // Store Display Switching and LCD brightness BIOS control bit\r
29 Store(And(Arg0,7),DSEN)\r
30}\r
31\r
32// Enumerate the Display Environment. This method will return\r
33// valid addresses for all display device encoders present in the\r
34// system. The Miniport Driver will reject the addresses for every\r
35// encoder that does not have an attached display device. After\r
36// enumeration is complete, the OS will call the _DGS methods\r
37// during a display switch only for the addresses accepted by the\r
38// Miniport Driver. For hot-insertion and removal of display\r
39// devices, a re-enumeration notification will be required so the\r
40// address of the newly present display device will be accepted by\r
41// the Miniport Driver.\r
42\r
43Method(_DOD, 0, Serialized)\r
44{\r
45 Store(0, NDID)\r
46 If(LNotEqual(DIDL, Zero))\r
47 {\r
48 Store(SDDL(DIDL),DID1)\r
49 }\r
50 If(LNotEqual(DDL2, Zero))\r
51 {\r
52 Store(SDDL(DDL2),DID2)\r
53 }\r
54 If(LNotEqual(DDL3, Zero))\r
55 {\r
56 Store(SDDL(DDL3),DID3)\r
57 }\r
58 If(LNotEqual(DDL4, Zero))\r
59 {\r
60 Store(SDDL(DDL4),DID4)\r
61 }\r
62 If(LNotEqual(DDL5, Zero))\r
63 {\r
64 Store(SDDL(DDL5),DID5)\r
65 }\r
66\r
67 // TODO - This level of flexibility is not needed for a true\r
68 // OEM design. Simply determine the greatest number of\r
69 // encoders the platform will suppport then remove all\r
70 // return packages beyond that value. Note that for\r
71 // current silicon, the maximum number of encoders\r
72 // possible is 5.\r
73\r
74 If(LEqual(NDID,1))\r
75 {\r
76 If (LNOTEqual (ISPD, 0))\r
77 {\r
78 Name(TMP0,Package() {0xFFFFFFFF,0xFFFFFFFF})\r
79 Store(Or(0x10000,DID1),Index(TMP0,0))\r
80 //Add ISP device to GFX0\r
81 Store(0x00020F38, Index(TMP0,1))\r
82 Return(TMP0)\r
83 } Else\r
84 {\r
85 Name(TMP1,Package() {0xFFFFFFFF})\r
86 Store(Or(0x10000,DID1),Index(TMP1,0))\r
87 Return(TMP1)\r
88 }\r
89 }\r
90\r
91 If(LEqual(NDID,2))\r
92 {\r
93 If (LNOTEqual (ISPD, 0))\r
94 {\r
95 Name(TMP2,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
96 Store(Or(0x10000,DID1),Index(TMP2,0))\r
97 Store(Or(0x10000,DID2),Index(TMP2,1))\r
98 //Add ISP device to GFX0\r
99 Store(0x00020F38, Index(TMP2,2))\r
100 Return(TMP2)\r
101 } Else\r
102 {\r
103 Name(TMP3,Package() {0xFFFFFFFF, 0xFFFFFFFF})\r
104 Store(Or(0x10000,DID1),Index(TMP3,0))\r
105 Store(Or(0x10000,DID2),Index(TMP3,1))\r
106 Return(TMP3)\r
107 }\r
108 }\r
109\r
110 If(LEqual(NDID,3))\r
111 {\r
112 If (LNOTEqual (ISPD, 0))\r
113 {\r
114 Name(TMP4,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF})\r
115 Store(Or(0x10000,DID1),Index(TMP4,0))\r
116 Store(Or(0x10000,DID2),Index(TMP4,1))\r
117 Store(Or(0x10000,DID3),Index(TMP4,2))\r
118 //Add ISP device to GFX0\r
119 Store(0x00020F38, Index(TMP4,3))\r
120 Return(TMP4)\r
121 } Else\r
122 {\r
123 Name(TMP5,Package() {0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF})\r
124 Store(Or(0x10000,DID1),Index(TMP5,0))\r
125 Store(Or(0x10000,DID2),Index(TMP5,1))\r
126 Store(Or(0x10000,DID3),Index(TMP5,2))\r
127 Return(TMP5)\r
128 }\r
129 }\r
130\r
131 If(LEqual(NDID,4))\r
132 {\r
133 If (LNOTEqual (ISPD, 0))\r
134 {\r
135 Name(TMP6,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
136 Store(Or(0x10000,DID1),Index(TMP6,0))\r
137 Store(Or(0x10000,DID2),Index(TMP6,1))\r
138 Store(Or(0x10000,DID3),Index(TMP6,2))\r
139 Store(Or(0x10000,DID4),Index(TMP6,3))\r
140 //Add ISP device to GFX0\r
141 Store(0x00020F38, Index(TMP6,4))\r
142 Return(TMP6)\r
143 } Else\r
144 {\r
145 Name(TMP7,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
146 Store(Or(0x10000,DID1),Index(TMP7,0))\r
147 Store(Or(0x10000,DID2),Index(TMP7,1))\r
148 Store(Or(0x10000,DID3),Index(TMP7,2))\r
149 Store(Or(0x10000,DID4),Index(TMP7,3))\r
150 Return(TMP7)\r
151 }\r
152 }\r
153\r
154 If(LGreater(NDID,4))\r
155 {\r
156 If (LNOTEqual (ISPD, 0))\r
157 {\r
158 Name(TMP8,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
159 Store(Or(0x10000,DID1),Index(TMP8,0))\r
160 Store(Or(0x10000,DID2),Index(TMP8,1))\r
161 Store(Or(0x10000,DID3),Index(TMP8,2))\r
162 Store(Or(0x10000,DID4),Index(TMP8,3))\r
163 Store(Or(0x10000,DID5),Index(TMP8,4))\r
164 //Add ISP device to GFX0\r
165 Store(0x00020F38, Index(TMP8,5))\r
166 Return(TMP8)\r
167 } Else\r
168 {\r
169 Name(TMP9,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
170 Store(Or(0x10000,DID1),Index(TMP9,0))\r
171 Store(Or(0x10000,DID2),Index(TMP9,1))\r
172 Store(Or(0x10000,DID3),Index(TMP9,2))\r
173 Store(Or(0x10000,DID4),Index(TMP9,3))\r
174 Store(Or(0x10000,DID5),Index(TMP9,4))\r
175 Return(TMP9)\r
176 }\r
177 }\r
178\r
179 // If nothing else, return Unknown LFP.\r
180 // (Prevents compiler warning.)\r
181\r
182 //Add ISP device to GFX0\r
183 If (LNOTEqual (ISPD, 0))\r
184 {\r
185 Return(Package() {0x00000400, 0x00020F38})\r
186 } Else\r
187 {\r
188 Return(Package() {0x00000400})\r
189 }\r
190}\r
191\r
192Device(DD01)\r
193{\r
194\r
195 // Return Unique ID.\r
196\r
197 Method(_ADR,0,Serialized)\r
198 {\r
199 If(LEqual(And(0x0F00,DID1),0x400))\r
200 {\r
201 Store(0x1, EDPV)\r
202 Store(DID1, DIDX)\r
203 Return(1)\r
204 }\r
205 If(LEqual(DID1,0))\r
206 {\r
207 Return(1)\r
208 }\r
209 Else\r
210 {\r
211 Return(And(0xFFFF,DID1))\r
212 }\r
213 }\r
214\r
215 // Return the Current Status.\r
216\r
217 Method(_DCS,0)\r
218 {\r
219 Return(CDDS(DID1))\r
220 }\r
221\r
222 // Query Graphics State (active or inactive).\r
223\r
224 Method(_DGS,0)\r
225 {\r
226 Return(NDDS(DID1))\r
227 }\r
228\r
229 // Device Set State.\r
230\r
231 // _DSS Table:\r
232 //\r
233 // BIT31 BIT30 Execution\r
234 // 0 0 Don't implement.\r
235 // 0 1 Cache change. Nothing to Implement.\r
236 // 1 0 Don't Implement.\r
237 // 1 1 Display Switch Complete. Implement.\r
238\r
239 Method(_DSS,1)\r
240 {\r
241 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
242 {\r
243\r
244 // State change was performed by the\r
245 // Video Drivers. Simply update the\r
246 // New State.\r
247\r
248 Store(NSTE,CSTE)\r
249 }\r
250 }\r
251}\r
252\r
253Device(DD02)\r
254{\r
255\r
256 // Return Unique ID.\r
257\r
258 Method(_ADR,0,Serialized)\r
259 {\r
260 If(LEqual(And(0x0F00,DID2),0x400))\r
261 {\r
262 Store(0x2, EDPV)\r
263 Store(DID2, DIDX)\r
264 Return(2)\r
265 }\r
266 If(LEqual(DID2,0))\r
267 {\r
268 Return(2)\r
269 }\r
270 Else\r
271 {\r
272 Return(And(0xFFFF,DID2))\r
273 }\r
274 }\r
275\r
276 // Return the Current Status.\r
277\r
278 Method(_DCS,0)\r
279 {\r
280 Return(CDDS(DID2))\r
281 }\r
282\r
283 // Query Graphics State (active or inactive).\r
284\r
285 Method(_DGS,0)\r
286 {\r
287 // Return the Next State.\r
288 Return(NDDS(DID2))\r
289 }\r
290\r
291 // Device Set State. (See table above.)\r
292\r
293 Method(_DSS,1)\r
294 {\r
295 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
296 {\r
297\r
298 // State change was performed by the\r
299 // Video Drivers. Simply update the\r
300 // New State.\r
301\r
302 Store(NSTE,CSTE)\r
303 }\r
304 }\r
305}\r
306\r
307Device(DD03)\r
308{\r
309\r
310 // Return Unique ID.\r
311\r
312 Method(_ADR,0,Serialized)\r
313 {\r
314 If(LEqual(And(0x0F00,DID3),0x400))\r
315 {\r
316 Store(0x3, EDPV)\r
317 Store(DID3, DIDX)\r
318 Return(3)\r
319 }\r
320 If(LEqual(DID3,0))\r
321 {\r
322 Return(3)\r
323 }\r
324 Else\r
325 {\r
326 Return(And(0xFFFF,DID3))\r
327 }\r
328 }\r
329\r
330 // Return the Current Status.\r
331\r
332 Method(_DCS,0)\r
333 {\r
334 If(LEqual(DID3,0))\r
335 {\r
336 Return(0x0B)\r
337 }\r
338 Else\r
339 {\r
340 Return(CDDS(DID3))\r
341 }\r
342 }\r
343\r
344 // Query Graphics State (active or inactive).\r
345\r
346 Method(_DGS,0)\r
347 {\r
348 Return(NDDS(DID3))\r
349 }\r
350\r
351 // Device Set State. (See table above.)\r
352\r
353 Method(_DSS,1)\r
354 {\r
355 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
356 {\r
357 // State change was performed by the\r
358 // Video Drivers. Simply update the\r
359 // New State.\r
360\r
361 Store(NSTE,CSTE)\r
362 }\r
363 }\r
364}\r
365\r
366Device(DD04)\r
367{\r
368\r
369 // Return Unique ID.\r
370\r
371 Method(_ADR,0,Serialized)\r
372 {\r
373 If(LEqual(And(0x0F00,DID4),0x400))\r
374 {\r
375 Store(0x4, EDPV)\r
376 Store(DID4, DIDX)\r
377 Return(4)\r
378 }\r
379 If(LEqual(DID4,0))\r
380 {\r
381 Return(4)\r
382 }\r
383 Else\r
384 {\r
385 Return(And(0xFFFF,DID4))\r
386 }\r
387 }\r
388\r
389 // Return the Current Status.\r
390\r
391 Method(_DCS,0)\r
392 {\r
393 If(LEqual(DID4,0))\r
394 {\r
395 Return(0x0B)\r
396 }\r
397 Else\r
398 {\r
399 Return(CDDS(DID4))\r
400 }\r
401 }\r
402\r
403 // Query Graphics State (active or inactive).\r
404\r
405 Method(_DGS,0)\r
406 {\r
407 Return(NDDS(DID4))\r
408 }\r
409\r
410 // Device Set State. (See table above.)\r
411\r
412 Method(_DSS,1)\r
413 {\r
414 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
415 {\r
416\r
417 // State change was performed by the\r
418 // Video Drivers. Simply update the\r
419 // New State.\r
420\r
421 Store(NSTE,CSTE)\r
422 }\r
423 }\r
424}\r
425\r
426\r
427Device(DD05)\r
428{\r
429\r
430 // Return Unique ID.\r
431\r
432 Method(_ADR,0,Serialized)\r
433 {\r
434 If(LEqual(And(0x0F00,DID5),0x400))\r
435 {\r
436 Store(0x5, EDPV)\r
437 Store(DID5, DIDX)\r
438 Return(5)\r
439 }\r
440 If(LEqual(DID5,0))\r
441 {\r
442 Return(5)\r
443 }\r
444 Else\r
445 {\r
446 Return(And(0xFFFF,DID5))\r
447 }\r
448 }\r
449\r
450 // Return the Current Status.\r
451\r
452 Method(_DCS,0)\r
453 {\r
454 If(LEqual(DID5,0))\r
455 {\r
456 Return(0x0B)\r
457 }\r
458 Else\r
459 {\r
460 Return(CDDS(DID5))\r
461 }\r
462 }\r
463\r
464 // Query Graphics State (active or inactive).\r
465\r
466 Method(_DGS,0)\r
467 {\r
468 Return(NDDS(DID5))\r
469 }\r
470\r
471 // Device Set State. (See table above.)\r
472\r
473 Method(_DSS,1)\r
474 {\r
475 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
476 {\r
477 // State change was performed by the\r
478 // Video Drivers. Simply update the\r
479 // New State.\r
480\r
481 Store(NSTE,CSTE)\r
482 }\r
483 }\r
484}\r
485\r
486\r
487Device(DD06)\r
488{\r
489\r
490 // Return Unique ID.\r
491\r
492 Method(_ADR,0,Serialized)\r
493 {\r
494 If(LEqual(And(0x0F00,DID6),0x400))\r
495 {\r
496 Store(0x6, EDPV)\r
497 Store(DID6, DIDX)\r
498 Return(6)\r
499 }\r
500 If(LEqual(DID6,0))\r
501 {\r
502 Return(6)\r
503 }\r
504 Else\r
505 {\r
506 Return(And(0xFFFF,DID6))\r
507 }\r
508 }\r
509\r
510 // Return the Current Status.\r
511\r
512 Method(_DCS,0)\r
513 {\r
514 If(LEqual(DID6,0))\r
515 {\r
516 Return(0x0B)\r
517 }\r
518 Else\r
519 {\r
520 Return(CDDS(DID6))\r
521 }\r
522 }\r
523\r
524 // Query Graphics State (active or inactive).\r
525\r
526 Method(_DGS,0)\r
527 {\r
528 Return(NDDS(DID6))\r
529 }\r
530\r
531 // Device Set State. (See table above.)\r
532\r
533 Method(_DSS,1)\r
534 {\r
535 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
536 {\r
537 // State change was performed by the\r
538 // Video Drivers. Simply update the\r
539 // New State.\r
540\r
541 Store(NSTE,CSTE)\r
542 }\r
543 }\r
544}\r
545\r
546\r
547Device(DD07)\r
548{\r
549\r
550 // Return Unique ID.\r
551\r
552 Method(_ADR,0,Serialized)\r
553 {\r
554 If(LEqual(And(0x0F00,DID7),0x400))\r
555 {\r
556 Store(0x7, EDPV)\r
557 Store(DID7, DIDX)\r
558 Return(7)\r
559 }\r
560 If(LEqual(DID7,0))\r
561 {\r
562 Return(7)\r
563 }\r
564 Else\r
565 {\r
566 Return(And(0xFFFF,DID7))\r
567 }\r
568 }\r
569\r
570 // Return the Current Status.\r
571\r
572 Method(_DCS,0)\r
573 {\r
574 If(LEqual(DID7,0))\r
575 {\r
576 Return(0x0B)\r
577 }\r
578 Else\r
579 {\r
580 Return(CDDS(DID7))\r
581 }\r
582 }\r
583\r
584 // Query Graphics State (active or inactive).\r
585\r
586 Method(_DGS,0)\r
587 {\r
588 Return(NDDS(DID7))\r
589 }\r
590\r
591 // Device Set State. (See table above.)\r
592\r
593 Method(_DSS,1)\r
594 {\r
595 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
596 {\r
597 // State change was performed by the\r
598 // Video Drivers. Simply update the\r
599 // New State.\r
600\r
601 Store(NSTE,CSTE)\r
602 }\r
603 }\r
604}\r
605\r
606\r
607Device(DD08)\r
608{\r
609\r
610 // Return Unique ID.\r
611\r
612 Method(_ADR,0,Serialized)\r
613 {\r
614 If(LEqual(And(0x0F00,DID8),0x400))\r
615 {\r
616 Store(0x8, EDPV)\r
617 Store(DID8, DIDX)\r
618 Return(8)\r
619 }\r
620 If(LEqual(DID8,0))\r
621 {\r
622 Return(8)\r
623 }\r
624 Else\r
625 {\r
626 Return(And(0xFFFF,DID8))\r
627 }\r
628 }\r
629\r
630 // Return the Current Status.\r
631\r
632 Method(_DCS,0)\r
633 {\r
634 If(LEqual(DID8,0))\r
635 {\r
636 Return(0x0B)\r
637 }\r
638 Else\r
639 {\r
640 Return(CDDS(DID8))\r
641 }\r
642 }\r
643\r
644 // Query Graphics State (active or inactive).\r
645\r
646 Method(_DGS,0)\r
647 {\r
648 Return(NDDS(DID8))\r
649 }\r
650\r
651 // Device Set State. (See table above.)\r
652\r
653 Method(_DSS,1)\r
654 {\r
655 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
656 {\r
657 // State change was performed by the\r
658 // Video Drivers. Simply update the\r
659 // New State.\r
660\r
661 Store(NSTE,CSTE)\r
662 }\r
663 }\r
664}\r
665\r
666//device for eDP\r
667Device(DD1F)\r
668{\r
669 // Return Unique ID.\r
670\r
671 Method(_ADR,0,Serialized)\r
672 {\r
673 If(LEqual(EDPV, 0x0))\r
674 {\r
675 Return(0x1F)\r
676 }\r
677 Else\r
678 {\r
679 Return(And(0xFFFF,DIDX))\r
680 }\r
681 }\r
682\r
683 // Return the Current Status.\r
684\r
685 Method(_DCS,0)\r
686 {\r
687 If(LEqual(EDPV, 0x0))\r
688 {\r
689 Return(0x00)\r
690 }\r
691 Else\r
692 {\r
693 Return(CDDS(DIDX))\r
694 }\r
695 }\r
696\r
697 // Query Graphics State (active or inactive).\r
698\r
699 Method(_DGS,0)\r
700 {\r
701 Return(NDDS(DIDX))\r
702 }\r
703\r
704 // Device Set State. (See table above.)\r
705\r
706 Method(_DSS,1)\r
707 {\r
708 If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
709 {\r
710 // State change was performed by the\r
711 // Video Drivers. Simply update the\r
712 // New State.\r
713 Store(NSTE,CSTE)\r
714 }\r
715 }\r
716 // Query List of Brightness Control Levels Supported.\r
717\r
718 Method(_BCL,0)\r
719 {\r
720 // List of supported brightness levels in the following sequence.\r
721\r
722 // Level when machine has full power.\r
723 // Level when machine is on batteries.\r
724 // Other supported levels.\r
725 Return(Package() {80, 50, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100})\r
726 }\r
727\r
728 // Set the Brightness Level.\r
729\r
730 Method (_BCM,1)\r
731 {\r
732 // Set the requested level if it is between 0 and 100%.\r
733\r
734 If(LAnd(LGreaterEqual(Arg0,0),LLessEqual(Arg0,100)))\r
735 {\r
736 \_SB.PCI0.GFX0.AINT(1, Arg0)\r
737 Store(Arg0,BRTL) // Store Brightness Level.\r
738 }\r
739 }\r
740\r
741 // Brightness Query Current level.\r
742\r
743 Method (_BQC,0)\r
744 {\r
745 Return(BRTL)\r
746 }\r
747}\r
748\r
749Method(SDDL,1)\r
750{\r
751 Increment(NDID)\r
752 Store(And(Arg0,0xF0F),Local0)\r
753 Or(0x80000000,Local0, Local1)\r
754 If(LEqual(DIDL,Local0))\r
755 {\r
756 Return(Local1)\r
757 }\r
758 If(LEqual(DDL2,Local0))\r
759 {\r
760 Return(Local1)\r
761 }\r
762 If(LEqual(DDL3,Local0))\r
763 {\r
764 Return(Local1)\r
765 }\r
766 If(LEqual(DDL4,Local0))\r
767 {\r
768 Return(Local1)\r
769 }\r
770 If(LEqual(DDL5,Local0))\r
771 {\r
772 Return(Local1)\r
773 }\r
774 If(LEqual(DDL6,Local0))\r
775 {\r
776 Return(Local1)\r
777 }\r
778 If(LEqual(DDL7,Local0))\r
779 {\r
780 Return(Local1)\r
781 }\r
782 If(LEqual(DDL8,Local0))\r
783 {\r
784 Return(Local1)\r
785 }\r
786 Return(0)\r
787}\r
788\r
789Method(CDDS,1)\r
790{\r
791 Store(And(Arg0,0xF0F),Local0)\r
792\r
793 If(LEqual(0, Local0))\r
794 {\r
795 Return(0x1D)\r
796 }\r
797 If(LEqual(CADL, Local0))\r
798 {\r
799 Return(0x1F)\r
800 }\r
801 If(LEqual(CAL2, Local0))\r
802 {\r
803 Return(0x1F)\r
804 }\r
805 If(LEqual(CAL3, Local0))\r
806 {\r
807 Return(0x1F)\r
808 }\r
809 If(LEqual(CAL4, Local0))\r
810 {\r
811 Return(0x1F)\r
812 }\r
813 If(LEqual(CAL5, Local0))\r
814 {\r
815 Return(0x1F)\r
816 }\r
817 If(LEqual(CAL6, Local0))\r
818 {\r
819 Return(0x1F)\r
820 }\r
821 If(LEqual(CAL7, Local0))\r
822 {\r
823 Return(0x1F)\r
824 }\r
825 If(LEqual(CAL8, Local0))\r
826 {\r
827 Return(0x1F)\r
828 }\r
829 Return(0x1D)\r
830}\r
831\r
832Method(NDDS,1)\r
833{\r
834 Store(And(Arg0,0xF0F),Local0)\r
835\r
836 If(LEqual(0, Local0))\r
837 {\r
838 Return(0)\r
839 }\r
840 If(LEqual(NADL, Local0))\r
841 {\r
842 Return(1)\r
843 }\r
844 If(LEqual(NDL2, Local0))\r
845 {\r
846 Return(1)\r
847 }\r
848 If(LEqual(NDL3, Local0))\r
849 {\r
850 Return(1)\r
851 }\r
852 If(LEqual(NDL4, Local0))\r
853 {\r
854 Return(1)\r
855 }\r
856 If(LEqual(NDL5, Local0))\r
857 {\r
858 Return(1)\r
859 }\r
860 If(LEqual(NDL6, Local0))\r
861 {\r
862 Return(1)\r
863 }\r
864 If(LEqual(NDL7, Local0))\r
865 {\r
866 Return(1)\r
867 }\r
868 If(LEqual(NDL8, Local0))\r
869 {\r
870 Return(1)\r
871 }\r
872 Return(0)\r
873}\r
874\r
875//\r
876// Include IGD OpRegion/Software SCI interrupt handler which is use by\r
877// the graphics drivers to request data from system BIOS.\r
878//\r
879include("IgdOpRn.ASL")\r