1 #include <linux/io.h>
2 #include <linux/types.h>
3 
4 #include "vb_def.h"
5 #include "vgatypes.h"
6 #include "vb_struct.h"
7 
8 #include "XGIfb.h"
9 
10 #include "vb_util.h"
11 
xgifb_reg_set(unsigned long port,u8 index,u8 data)12 void xgifb_reg_set(unsigned long port, u8 index, u8 data)
13 {
14 	outb(index, port);
15 	outb(data, port + 1);
16 }
17 
xgifb_reg_get(unsigned long port,u8 index)18 u8 xgifb_reg_get(unsigned long port, u8 index)
19 {
20 	u8 data;
21 
22 	outb(index, port);
23 	data = inb(port + 1);
24 	return data;
25 }
26 
xgifb_reg_and_or(unsigned long port,u8 index,unsigned data_and,unsigned data_or)27 void xgifb_reg_and_or(unsigned long port, u8 index,
28 		unsigned data_and, unsigned data_or)
29 {
30 	u8 temp;
31 
32 	temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
33 	temp = (temp & data_and) | data_or;
34 	xgifb_reg_set(port, index, temp);
35 }
36 
xgifb_reg_and(unsigned long port,u8 index,unsigned data_and)37 void xgifb_reg_and(unsigned long port, u8 index, unsigned data_and)
38 {
39 	u8 temp;
40 
41 	temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
42 	temp &= data_and;
43 	xgifb_reg_set(port, index, temp);
44 }
45 
xgifb_reg_or(unsigned long port,u8 index,unsigned data_or)46 void xgifb_reg_or(unsigned long port, u8 index, unsigned data_or)
47 {
48 	u8 temp;
49 
50 	temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
51 	temp |= data_or;
52 	xgifb_reg_set(port, index, temp);
53 }
54