2 * This file is part of the coreboot project.
4 * Copyright (C) 2007-2009 coresystems GmbH
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; version 2 of
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
24 Name (_ADR, 0x00020000)
26 /* Display Output Switching */
29 /* Windows 2000 and Windows XP call _DOS to enable/disable
30 * Display Output Switching during init and while a switch
33 Store (And(Arg0, 7), DSEN)
36 /* We try to support as many i945 systems as possible,
37 * so keep the number of DIDs flexible.
41 If (LEqual(NDID, 1)) {
42 Name(DOD1, Package() {
45 Store (Or(0x00010000, DID1), Index(DOD1, 0))
49 If (LEqual(NDID, 2)) {
50 Name(DOD2, Package() {
54 Store (Or(0x00010000, DID2), Index(DOD2, 0))
55 Store (Or(0x00010000, DID2), Index(DOD2, 1))
59 If (LEqual(NDID, 3)) {
60 Name(DOD3, Package() {
65 Store (Or(0x00010000, DID3), Index(DOD3, 0))
66 Store (Or(0x00010000, DID3), Index(DOD3, 1))
67 Store (Or(0x00010000, DID3), Index(DOD3, 2))
71 If (LEqual(NDID, 4)) {
72 Name(DOD4, Package() {
78 Store (Or(0x00010000, DID4), Index(DOD4, 0))
79 Store (Or(0x00010000, DID4), Index(DOD4, 1))
80 Store (Or(0x00010000, DID4), Index(DOD4, 2))
81 Store (Or(0x00010000, DID4), Index(DOD4, 3))
85 If (LGreater(NDID, 4)) {
86 Name(DOD5, Package() {
93 Store (Or(0x00010000, DID5), Index(DOD5, 0))
94 Store (Or(0x00010000, DID5), Index(DOD5, 1))
95 Store (Or(0x00010000, DID5), Index(DOD5, 2))
96 Store (Or(0x00010000, DID5), Index(DOD5, 3))
97 Store (Or(0x00010000, DID5), Index(DOD5, 4))
101 /* Some error happened, but we have to return something */
102 Return (Package() {0x00000400})
107 /* Device Unique ID */
108 Method(_ADR, 0, Serialized)
110 If(LEqual(DID1, 0)) {
113 Return (And(0xffff, DID1))
117 /* Device Current Status */
127 /* Query Device Graphics State */
136 /* Device Set State */
139 /* If Parameter Arg0 is (1 << 31) | (1 << 30), the
140 * display switch was completed
142 If (LEqual(And(Arg0, 0xc0000000), 0xc0000000)) {
150 /* Device Unique ID */
151 Method(_ADR, 0, Serialized)
153 If(LEqual(DID2, 0)) {
156 Return (And(0xffff, DID2))
160 /* Device Current Status */
170 /* Query Device Graphics State */
179 /* Device Set State */
182 /* If Parameter Arg0 is (1 << 31) | (1 << 30), the
183 * display switch was completed
185 If (LEqual(And(Arg0, 0xc0000000), 0xc0000000)) {
194 /* Device Unique ID */
195 Method(_ADR, 0, Serialized)
197 If(LEqual(DID3, 0)) {
200 Return (And(0xffff, DID3))
204 /* Device Current Status */
214 /* Query Device Graphics State */
223 /* Device Set State */
226 /* If Parameter Arg0 is (1 << 31) | (1 << 30), the
227 * display switch was completed
229 If (LEqual(And(Arg0, 0xc0000000), 0xc0000000)) {
238 /* Device Unique ID */
239 Method(_ADR, 0, Serialized)
241 If(LEqual(DID4, 0)) {
244 Return (And(0xffff, DID4))
248 /* Device Current Status */
258 /* Query Device Graphics State */
267 /* Device Set State */
270 /* If Parameter Arg0 is (1 << 31) | (1 << 30), the
271 * display switch was completed
273 If (LEqual(And(Arg0, 0xc0000000), 0xc0000000)) {
282 /* Device Unique ID */
283 Method(_ADR, 0, Serialized)
285 If(LEqual(DID5, 0)) {
288 Return (And(0xffff, DID5))
292 /* Device Current Status */
302 /* Query Device Graphics State */
311 /* Device Set State */
314 /* If Parameter Arg0 is (1 << 31) | (1 << 30), the
315 * display switch was completed
317 If (LEqual(And(Arg0, 0xc0000000), 0xc0000000)) {