Lines 49-59
Link Here
|
49 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
49 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
50 |
VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_INDEX_OFFSET, index); |
50 |
VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_INDEX_OFFSET, index); |
51 |
VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_DATA_OFFSET, value); |
51 |
VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_DATA_OFFSET, value); |
|
|
52 |
write_mem_barrier(); |
52 |
} |
53 |
} |
53 |
static CARD8 NVReadCrtc(vgaHWPtr pVga, CARD8 index) |
54 |
static CARD8 NVReadCrtc(vgaHWPtr pVga, CARD8 index) |
54 |
{ |
55 |
{ |
55 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
56 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
56 |
VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_INDEX_OFFSET, index); |
57 |
VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_INDEX_OFFSET, index); |
|
|
58 |
write_mem_barrier(); |
57 |
return (VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_CRTC_DATA_OFFSET)); |
59 |
return (VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_CRTC_DATA_OFFSET)); |
58 |
} |
60 |
} |
59 |
static void NVWriteGr(vgaHWPtr pVga, CARD8 index, CARD8 value) |
61 |
static void NVWriteGr(vgaHWPtr pVga, CARD8 index, CARD8 value) |
Lines 61-71
Link Here
|
61 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
63 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
62 |
VGA_WR08(pNv->PVIO, VGA_GRAPH_INDEX, index); |
64 |
VGA_WR08(pNv->PVIO, VGA_GRAPH_INDEX, index); |
63 |
VGA_WR08(pNv->PVIO, VGA_GRAPH_DATA, value); |
65 |
VGA_WR08(pNv->PVIO, VGA_GRAPH_DATA, value); |
|
|
66 |
write_mem_barrier(); |
64 |
} |
67 |
} |
65 |
static CARD8 NVReadGr(vgaHWPtr pVga, CARD8 index) |
68 |
static CARD8 NVReadGr(vgaHWPtr pVga, CARD8 index) |
66 |
{ |
69 |
{ |
67 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
70 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
68 |
VGA_WR08(pNv->PVIO, VGA_GRAPH_INDEX, index); |
71 |
VGA_WR08(pNv->PVIO, VGA_GRAPH_INDEX, index); |
|
|
72 |
write_mem_barrier(); |
69 |
return (VGA_RD08(pNv->PVIO, VGA_GRAPH_DATA)); |
73 |
return (VGA_RD08(pNv->PVIO, VGA_GRAPH_DATA)); |
70 |
} |
74 |
} |
71 |
static void NVWriteSeq(vgaHWPtr pVga, CARD8 index, CARD8 value) |
75 |
static void NVWriteSeq(vgaHWPtr pVga, CARD8 index, CARD8 value) |
Lines 73-83
Link Here
|
73 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
77 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
74 |
VGA_WR08(pNv->PVIO, VGA_SEQ_INDEX, index); |
78 |
VGA_WR08(pNv->PVIO, VGA_SEQ_INDEX, index); |
75 |
VGA_WR08(pNv->PVIO, VGA_SEQ_DATA, value); |
79 |
VGA_WR08(pNv->PVIO, VGA_SEQ_DATA, value); |
|
|
80 |
write_mem_barrier(); |
81 |
#if defined(linux) && defined(__ia64__) |
82 |
usleep(250); |
83 |
#endif |
76 |
} |
84 |
} |
77 |
static CARD8 NVReadSeq(vgaHWPtr pVga, CARD8 index) |
85 |
static CARD8 NVReadSeq(vgaHWPtr pVga, CARD8 index) |
78 |
{ |
86 |
{ |
79 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
87 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
80 |
VGA_WR08(pNv->PVIO, VGA_SEQ_INDEX, index); |
88 |
VGA_WR08(pNv->PVIO, VGA_SEQ_INDEX, index); |
|
|
89 |
write_mem_barrier(); |
81 |
return (VGA_RD08(pNv->PVIO, VGA_SEQ_DATA)); |
90 |
return (VGA_RD08(pNv->PVIO, VGA_SEQ_DATA)); |
82 |
} |
91 |
} |
83 |
static void NVWriteAttr(vgaHWPtr pVga, CARD8 index, CARD8 value) |
92 |
static void NVWriteAttr(vgaHWPtr pVga, CARD8 index, CARD8 value) |
Lines 92-97
Link Here
|
92 |
index |= 0x20; |
101 |
index |= 0x20; |
93 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, index); |
102 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, index); |
94 |
VGA_WR08(pNv->PCIO, VGA_ATTR_DATA_W, value); |
103 |
VGA_WR08(pNv->PCIO, VGA_ATTR_DATA_W, value); |
|
|
104 |
write_mem_barrier(); |
95 |
} |
105 |
} |
96 |
static CARD8 NVReadAttr(vgaHWPtr pVga, CARD8 index) |
106 |
static CARD8 NVReadAttr(vgaHWPtr pVga, CARD8 index) |
97 |
{ |
107 |
{ |
Lines 104-115
Link Here
|
104 |
else |
114 |
else |
105 |
index |= 0x20; |
115 |
index |= 0x20; |
106 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, index); |
116 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, index); |
|
|
117 |
write_mem_barrier(); |
107 |
return (VGA_RD08(pNv->PCIO, VGA_ATTR_DATA_R)); |
118 |
return (VGA_RD08(pNv->PCIO, VGA_ATTR_DATA_R)); |
108 |
} |
119 |
} |
109 |
static void NVWriteMiscOut(vgaHWPtr pVga, CARD8 value) |
120 |
static void NVWriteMiscOut(vgaHWPtr pVga, CARD8 value) |
110 |
{ |
121 |
{ |
111 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
122 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
112 |
VGA_WR08(pNv->PVIO, VGA_MISC_OUT_W, value); |
123 |
VGA_WR08(pNv->PVIO, VGA_MISC_OUT_W, value); |
|
|
124 |
write_mem_barrier(); |
113 |
} |
125 |
} |
114 |
static CARD8 NVReadMiscOut(vgaHWPtr pVga) |
126 |
static CARD8 NVReadMiscOut(vgaHWPtr pVga) |
115 |
{ |
127 |
{ |
Lines 123-128
Link Here
|
123 |
|
135 |
|
124 |
tmp = VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_IN_STAT_1_OFFSET); |
136 |
tmp = VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_IN_STAT_1_OFFSET); |
125 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, 0x00); |
137 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, 0x00); |
|
|
138 |
write_mem_barrier(); |
126 |
pVga->paletteEnabled = TRUE; |
139 |
pVga->paletteEnabled = TRUE; |
127 |
} |
140 |
} |
128 |
static void NVDisablePalette(vgaHWPtr pVga) |
141 |
static void NVDisablePalette(vgaHWPtr pVga) |
Lines 132-143
Link Here
|
132 |
|
145 |
|
133 |
tmp = VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_IN_STAT_1_OFFSET); |
146 |
tmp = VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_IN_STAT_1_OFFSET); |
134 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, 0x20); |
147 |
VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, 0x20); |
|
|
148 |
write_mem_barrier(); |
135 |
pVga->paletteEnabled = FALSE; |
149 |
pVga->paletteEnabled = FALSE; |
136 |
} |
150 |
} |
137 |
static void NVWriteDacMask(vgaHWPtr pVga, CARD8 value) |
151 |
static void NVWriteDacMask(vgaHWPtr pVga, CARD8 value) |
138 |
{ |
152 |
{ |
139 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
153 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
140 |
VGA_WR08(pNv->PDIO, VGA_DAC_MASK, value); |
154 |
VGA_WR08(pNv->PDIO, VGA_DAC_MASK, value); |
|
|
155 |
write_mem_barrier(); |
141 |
} |
156 |
} |
142 |
static CARD8 NVReadDacMask(vgaHWPtr pVga) |
157 |
static CARD8 NVReadDacMask(vgaHWPtr pVga) |
143 |
{ |
158 |
{ |
Lines 148-163
Link Here
|
148 |
{ |
163 |
{ |
149 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
164 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
150 |
VGA_WR08(pNv->PDIO, VGA_DAC_READ_ADDR, value); |
165 |
VGA_WR08(pNv->PDIO, VGA_DAC_READ_ADDR, value); |
|
|
166 |
write_mem_barrier(); |
151 |
} |
167 |
} |
152 |
static void NVWriteDacWriteAddr(vgaHWPtr pVga, CARD8 value) |
168 |
static void NVWriteDacWriteAddr(vgaHWPtr pVga, CARD8 value) |
153 |
{ |
169 |
{ |
154 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
170 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
155 |
VGA_WR08(pNv->PDIO, VGA_DAC_WRITE_ADDR, value); |
171 |
VGA_WR08(pNv->PDIO, VGA_DAC_WRITE_ADDR, value); |
|
|
172 |
write_mem_barrier(); |
156 |
} |
173 |
} |
157 |
static void NVWriteDacData(vgaHWPtr pVga, CARD8 value) |
174 |
static void NVWriteDacData(vgaHWPtr pVga, CARD8 value) |
158 |
{ |
175 |
{ |
159 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
176 |
NVPtr pNv = (NVPtr)pVga->MMIOBase; |
160 |
VGA_WR08(pNv->PDIO, VGA_DAC_DATA, value); |
177 |
VGA_WR08(pNv->PDIO, VGA_DAC_DATA, value); |
|
|
178 |
write_mem_barrier(); |
161 |
} |
179 |
} |
162 |
static CARD8 NVReadDacData(vgaHWPtr pVga) |
180 |
static CARD8 NVReadDacData(vgaHWPtr pVga) |
163 |
{ |
181 |
{ |