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