Commit | Line | Data |
---|---|---|
d7636e0b | 1 | #include "vgatypes.h" |
e054102b | 2 | #include "vb_util.h" |
d7636e0b | 3 | |
d0e23bdf | 4 | void xgifb_reg_set(unsigned long port, u8 index, u8 data) |
d7636e0b | 5 | { |
1e59f711 BP |
6 | outb(index, port); |
7 | outb(data, port + 1); | |
d7636e0b | 8 | } |
9 | ||
d0e23bdf | 10 | u8 xgifb_reg_get(unsigned long port, u8 index) |
d7636e0b | 11 | { |
d0e23bdf | 12 | u8 data; |
d7636e0b | 13 | |
602f2c96 PS |
14 | outb(index, port); |
15 | data = inb(port + 1); | |
16 | return data; | |
d7636e0b | 17 | } |
18 | ||
459d2ea0 AK |
19 | void xgifb_reg_and_or(unsigned long port, u8 index, |
20 | unsigned data_and, unsigned data_or) | |
d7636e0b | 21 | { |
d0e23bdf | 22 | u8 temp; |
d7636e0b | 23 | |
459d2ea0 AK |
24 | temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */ |
25 | temp = (temp & data_and) | data_or; | |
26 | xgifb_reg_set(port, index, temp); | |
d7636e0b | 27 | } |
28 | ||
459d2ea0 | 29 | void xgifb_reg_and(unsigned long port, u8 index, unsigned data_and) |
d7636e0b | 30 | { |
d0e23bdf | 31 | u8 temp; |
d7636e0b | 32 | |
459d2ea0 AK |
33 | temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */ |
34 | temp &= data_and; | |
35 | xgifb_reg_set(port, index, temp); | |
d7636e0b | 36 | } |
37 | ||
459d2ea0 | 38 | void xgifb_reg_or(unsigned long port, u8 index, unsigned data_or) |
d7636e0b | 39 | { |
d0e23bdf | 40 | u8 temp; |
d7636e0b | 41 | |
459d2ea0 AK |
42 | temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */ |
43 | temp |= data_or; | |
44 | xgifb_reg_set(port, index, temp); | |
d7636e0b | 45 | } |