Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / xgifb / vb_util.c
CommitLineData
d7636e0b 1#include "vgatypes.h"
e054102b 2#include "vb_util.h"
d7636e0b 3
d0e23bdf 4void 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 10u8 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
19void 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 29void 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 38void 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}