Magellan Linux

Annotation of /trunk/xorg-old/patches-6.9.0-r1/5350_all_4.3.99.902-ia64-hp-nv-memory-barrier.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 167 - (hide annotations) (download)
Tue May 8 20:58:51 2007 UTC (17 years, 1 month ago) by niro
File size: 3883 byte(s)
-import

1 niro 167 This patch fixes various MCAs (Machine Check Architecture) on Hewlett
2     Packard Itanium 2 platforms by adding memory barriers where needed.
3    
4     Mike A. Harris <mharris@redhat.com>
5    
6     diff -urN xc.orig/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c
7     --- xc.orig/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c 2004-01-05 00:33:55.000000000 -0500
8     +++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c 2004-01-05 00:39:32.000000000 -0500
9     @@ -49,11 +49,13 @@
10     NVPtr pNv = (NVPtr)pVga->MMIOBase;
11     VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_INDEX_OFFSET, index);
12     VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_DATA_OFFSET, value);
13     + write_mem_barrier();
14     }
15     static CARD8 NVReadCrtc(vgaHWPtr pVga, CARD8 index)
16     {
17     NVPtr pNv = (NVPtr)pVga->MMIOBase;
18     VGA_WR08(pNv->PCIO, pVga->IOBase + VGA_CRTC_INDEX_OFFSET, index);
19     + write_mem_barrier();
20     return (VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_CRTC_DATA_OFFSET));
21     }
22     static void NVWriteGr(vgaHWPtr pVga, CARD8 index, CARD8 value)
23     @@ -61,11 +63,13 @@
24     NVPtr pNv = (NVPtr)pVga->MMIOBase;
25     VGA_WR08(pNv->PVIO, VGA_GRAPH_INDEX, index);
26     VGA_WR08(pNv->PVIO, VGA_GRAPH_DATA, value);
27     + write_mem_barrier();
28     }
29     static CARD8 NVReadGr(vgaHWPtr pVga, CARD8 index)
30     {
31     NVPtr pNv = (NVPtr)pVga->MMIOBase;
32     VGA_WR08(pNv->PVIO, VGA_GRAPH_INDEX, index);
33     + write_mem_barrier();
34     return (VGA_RD08(pNv->PVIO, VGA_GRAPH_DATA));
35     }
36     static void NVWriteSeq(vgaHWPtr pVga, CARD8 index, CARD8 value)
37     @@ -73,11 +77,16 @@
38     NVPtr pNv = (NVPtr)pVga->MMIOBase;
39     VGA_WR08(pNv->PVIO, VGA_SEQ_INDEX, index);
40     VGA_WR08(pNv->PVIO, VGA_SEQ_DATA, value);
41     + write_mem_barrier();
42     +#if defined(linux) && defined(__ia64__)
43     + usleep(250);
44     +#endif
45     }
46     static CARD8 NVReadSeq(vgaHWPtr pVga, CARD8 index)
47     {
48     NVPtr pNv = (NVPtr)pVga->MMIOBase;
49     VGA_WR08(pNv->PVIO, VGA_SEQ_INDEX, index);
50     + write_mem_barrier();
51     return (VGA_RD08(pNv->PVIO, VGA_SEQ_DATA));
52     }
53     static void NVWriteAttr(vgaHWPtr pVga, CARD8 index, CARD8 value)
54     @@ -92,6 +101,7 @@
55     index |= 0x20;
56     VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, index);
57     VGA_WR08(pNv->PCIO, VGA_ATTR_DATA_W, value);
58     + write_mem_barrier();
59     }
60     static CARD8 NVReadAttr(vgaHWPtr pVga, CARD8 index)
61     {
62     @@ -104,12 +114,14 @@
63     else
64     index |= 0x20;
65     VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, index);
66     + write_mem_barrier();
67     return (VGA_RD08(pNv->PCIO, VGA_ATTR_DATA_R));
68     }
69     static void NVWriteMiscOut(vgaHWPtr pVga, CARD8 value)
70     {
71     NVPtr pNv = (NVPtr)pVga->MMIOBase;
72     VGA_WR08(pNv->PVIO, VGA_MISC_OUT_W, value);
73     + write_mem_barrier();
74     }
75     static CARD8 NVReadMiscOut(vgaHWPtr pVga)
76     {
77     @@ -123,6 +135,7 @@
78    
79     tmp = VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_IN_STAT_1_OFFSET);
80     VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, 0x00);
81     + write_mem_barrier();
82     pVga->paletteEnabled = TRUE;
83     }
84     static void NVDisablePalette(vgaHWPtr pVga)
85     @@ -132,12 +145,14 @@
86    
87     tmp = VGA_RD08(pNv->PCIO, pVga->IOBase + VGA_IN_STAT_1_OFFSET);
88     VGA_WR08(pNv->PCIO, VGA_ATTR_INDEX, 0x20);
89     + write_mem_barrier();
90     pVga->paletteEnabled = FALSE;
91     }
92     static void NVWriteDacMask(vgaHWPtr pVga, CARD8 value)
93     {
94     NVPtr pNv = (NVPtr)pVga->MMIOBase;
95     VGA_WR08(pNv->PDIO, VGA_DAC_MASK, value);
96     + write_mem_barrier();
97     }
98     static CARD8 NVReadDacMask(vgaHWPtr pVga)
99     {
100     @@ -148,16 +163,19 @@
101     {
102     NVPtr pNv = (NVPtr)pVga->MMIOBase;
103     VGA_WR08(pNv->PDIO, VGA_DAC_READ_ADDR, value);
104     + write_mem_barrier();
105     }
106     static void NVWriteDacWriteAddr(vgaHWPtr pVga, CARD8 value)
107     {
108     NVPtr pNv = (NVPtr)pVga->MMIOBase;
109     VGA_WR08(pNv->PDIO, VGA_DAC_WRITE_ADDR, value);
110     + write_mem_barrier();
111     }
112     static void NVWriteDacData(vgaHWPtr pVga, CARD8 value)
113     {
114     NVPtr pNv = (NVPtr)pVga->MMIOBase;
115     VGA_WR08(pNv->PDIO, VGA_DAC_DATA, value);
116     + write_mem_barrier();
117     }
118     static CARD8 NVReadDacData(vgaHWPtr pVga)
119     {