These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / xgifb / vb_util.h
index 9161de1..f613f54 100644 (file)
@@ -1,9 +1,43 @@
 #ifndef _VBUTIL_
 #define _VBUTIL_
-extern void xgifb_reg_set(unsigned long, u8, u8);
-extern u8 xgifb_reg_get(unsigned long, u8);
-extern void xgifb_reg_or(unsigned long, u8, unsigned);
-extern void xgifb_reg_and(unsigned long, u8, unsigned);
-extern void xgifb_reg_and_or(unsigned long, u8, unsigned, unsigned);
+static inline void xgifb_reg_set(unsigned long port, u8 index, u8 data)
+{
+       outb(index, port);
+       outb(data, port + 1);
+}
+
+static inline u8 xgifb_reg_get(unsigned long port, u8 index)
+{
+       outb(index, port);
+       return inb(port + 1);
+}
+
+static inline void xgifb_reg_and_or(unsigned long port, u8 index,
+                                   unsigned data_and, unsigned data_or)
+{
+       u8 temp;
+
+       temp = xgifb_reg_get(port, index);
+       temp = (u8) ((temp & data_and) | data_or);
+       xgifb_reg_set(port, index, temp);
+}
+
+static inline void xgifb_reg_and(unsigned long port, u8 index, unsigned data_and)
+{
+       u8 temp;
+
+       temp = xgifb_reg_get(port, index);
+       temp = (u8) (temp & data_and);
+       xgifb_reg_set(port, index, temp);
+}
+
+static inline void xgifb_reg_or(unsigned long port, u8 index, unsigned data_or)
+{
+       u8 temp;
+
+       temp = xgifb_reg_get(port, index);
+       temp |= data_or;
+       xgifb_reg_set(port, index, temp);
+}
 #endif