summaryrefslogtreecommitdiff
path: root/drivers/staging/xgifb/vb_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/xgifb/vb_util.c')
-rw-r--r--drivers/staging/xgifb/vb_util.c124
1 files changed, 20 insertions, 104 deletions
diff --git a/drivers/staging/xgifb/vb_util.c b/drivers/staging/xgifb/vb_util.c
index 65b3954d8ff2..a97e44f98c08 100644
--- a/drivers/staging/xgifb/vb_util.c
+++ b/drivers/staging/xgifb/vb_util.c
@@ -6,131 +6,47 @@
#include <asm/io.h>
#include <linux/types.h>
-void XGINew_SetReg1(unsigned long, unsigned short, unsigned short);
-void XGINew_SetReg2(unsigned long, unsigned short, unsigned short);
-void XGINew_SetReg3(unsigned long, unsigned short);
-void XGINew_SetReg4(unsigned long, unsigned long);
-unsigned char XGINew_GetReg1(unsigned long, unsigned short);
-unsigned char XGINew_GetReg2(unsigned long);
-unsigned long XGINew_GetReg3(unsigned long);
-void XGINew_ClearDAC(unsigned char *);
-void XGINew_SetRegANDOR(unsigned long Port, unsigned short Index,
- unsigned short DataAND, unsigned short DataOR);
-void XGINew_SetRegOR(unsigned long Port, unsigned short Index,
- unsigned short DataOR);
-void XGINew_SetRegAND(unsigned long Port, unsigned short Index,
- unsigned short DataAND);
+#include "vb_util.h"
-/* --------------------------------------------------------------------- */
-/* Function : XGINew_SetReg1 */
-/* Input : */
-/* Output : */
-/* Description : SR CRTC GR */
-/* --------------------------------------------------------------------- */
-void XGINew_SetReg1(unsigned long port, unsigned short index,
- unsigned short data)
+void xgifb_reg_set(unsigned long port, u8 index, u8 data)
{
outb(index, port);
outb(data, port + 1);
}
-/* --------------------------------------------------------------------- */
-/* Function : XGINew_SetReg2 */
-/* Input : */
-/* Output : */
-/* Description : AR( 3C0 ) */
-/* --------------------------------------------------------------------- */
-/*
-void XGINew_SetReg2(unsigned long port, unsigned short index, unsigned short data)
+u8 xgifb_reg_get(unsigned long port, u8 index)
{
- InPortByte((P unsigned char)port + 0x3da - 0x3c0) ;
- OutPortByte(XGINew_P3c0, index);
- OutPortByte(XGINew_P3c0, data);
- OutPortByte(XGINew_P3c0, 0x20);
-}
-*/
-
-void XGINew_SetReg3(unsigned long port, unsigned short data)
-{
- outb(data, port);
-}
-
-void XGINew_SetReg4(unsigned long port, unsigned long data)
-{
- outl(data, port);
-}
-
-unsigned char XGINew_GetReg1(unsigned long port, unsigned short index)
-{
- unsigned char data;
+ u8 data;
outb(index, port);
data = inb(port + 1);
return data;
}
-unsigned char XGINew_GetReg2(unsigned long port)
+void xgifb_reg_and_or(unsigned long port, u8 index,
+ unsigned data_and, unsigned data_or)
{
- unsigned char data;
-
- data = inb(port);
+ u8 temp;
- return data;
+ temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
+ temp = (temp & data_and) | data_or;
+ xgifb_reg_set(port, index, temp);
}
-unsigned long XGINew_GetReg3(unsigned long port)
+void xgifb_reg_and(unsigned long port, u8 index, unsigned data_and)
{
- unsigned long data;
-
- data = inl(port);
+ u8 temp;
- return data;
+ temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
+ temp &= data_and;
+ xgifb_reg_set(port, index, temp);
}
-void XGINew_SetRegANDOR(unsigned long Port, unsigned short Index,
- unsigned short DataAND, unsigned short DataOR)
+void xgifb_reg_or(unsigned long port, u8 index, unsigned data_or)
{
- unsigned short temp;
-
- temp = XGINew_GetReg1(Port, Index); /* XGINew_Part1Port index 02 */
- temp = (temp & (DataAND)) | DataOR;
- XGINew_SetReg1(Port, Index, temp);
-}
+ u8 temp;
-void XGINew_SetRegAND(unsigned long Port, unsigned short Index,
- unsigned short DataAND)
-{
- unsigned short temp;
-
- temp = XGINew_GetReg1(Port, Index); /* XGINew_Part1Port index 02 */
- temp &= DataAND;
- XGINew_SetReg1(Port, Index, temp);
-}
-
-void XGINew_SetRegOR(unsigned long Port, unsigned short Index,
- unsigned short DataOR)
-{
- unsigned short temp;
-
- temp = XGINew_GetReg1(Port, Index); /* XGINew_Part1Port index 02 */
- temp |= DataOR;
- XGINew_SetReg1(Port, Index, temp);
-}
-
-#if 0
-void NewDelaySeconds(int seconds)
-{
- int i;
-
- for (i = 0; i < seconds; i++) {
-
- }
-}
-
-void Newdebugcode(unsigned char code)
-{
- /* OutPortByte(0x80, code); */
- /* OutPortByte(0x300, code); */
- /* NewDelaySeconds(0x3); */
+ temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
+ temp |= data_or;
+ xgifb_reg_set(port, index, temp);
}
-#endif