View | Details | Raw Unified | Return to bug 117726
Collapse All | Expand All

(-)Makefile (-1 / +2 lines)
Lines 6-12 Link Here
6
#
6
#
7
7
8
PORTNAME=	xf86-video-mga
8
PORTNAME=	xf86-video-mga
9
PORTVERSION=	1.9.100
9
PORTVERSION=	1.4.7
10
PORTEPOCH=	1
10
CATEGORIES=	x11-drivers
11
CATEGORIES=	x11-drivers
11
12
12
MAINTAINER=	x11@FreeBSD.org
13
MAINTAINER=	x11@FreeBSD.org
(-)distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
MD5 (xorg/driver/xf86-video-mga-1.9.100.tar.bz2) = 3e80cfb84b62866d2f94774ecbf3e46c
1
MD5 (xorg/driver/xf86-video-mga-1.4.7.tar.bz2) = a7f0857a1d7fa0f615bd18515775d2af
2
SHA256 (xorg/driver/xf86-video-mga-1.9.100.tar.bz2) = e8efee8d5269eb29f9bd499db3d47a6a4d3c320d4b0a24874cdf7b598ad77a5c
2
SHA256 (xorg/driver/xf86-video-mga-1.4.7.tar.bz2) = a1c3a91f3d5f17ffc21fdb5ed3c1bcc953ab6602fbfaae2954ae7bd5e9ee5952
3
SIZE (xorg/driver/xf86-video-mga-1.9.100.tar.bz2) = 369119
3
SIZE (xorg/driver/xf86-video-mga-1.4.7.tar.bz2) = 389212
(-)files/patch-src_mga_driver.c (+104 lines)
Added Link Here
1
--- src/mga_driver.c.orig	2007-11-02 23:07:21.000000000 +0300
2
+++ src/mga_driver.c	2007-11-02 23:08:19.000000000 +0300
3
@@ -2775,30 +2775,31 @@
4
     MGAPtr pMga = MGAPTR(pScrn);
5
 #ifdef XSERVER_LIBPCIACCESS
6
     struct pci_device *const dev = pMga->PciInfo;
7
-    int err;
8
+    struct pci_mem_region *region;
9
+    void **memory[2];
10
+    int i, err;
11
 #endif
12
 
13
 
14
     if (!pMga->FBDev) {
15
 #ifdef XSERVER_LIBPCIACCESS
16
-	err = pci_device_map_region(dev, 0, TRUE);
17
-	if (err) {
18
-	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
19
-		       "Unable to map BAR 0.  %s (%d)\n",
20
-		       strerror(err), err);
21
-	    return FALSE;
22
-	}
23
+        memory[pMga->io_bar] = &pMga->IOBase;
24
+        memory[pMga->framebuffer_bar] = &pMga->FbBase;
25
 
26
-	err = pci_device_map_region(dev, 1, TRUE);
27
-	if (err) {
28
-	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
29
-		       "Unable to map BAR 1.  %s (%d)\n",
30
-		       strerror(err), err);
31
-	    return FALSE;
32
-	}
33
+        for (i = 0; i < 2; i++) {
34
+            region = &dev->regions[i];
35
+            err = pci_device_map_range(dev,
36
+                                       region->base_addr, region->size,
37
+                                       PCI_DEV_MAP_FLAG_WRITABLE,
38
+                                       memory[i]);
39
 
40
-	pMga->IOBase = dev->regions[ pMga->io_bar ].memory;
41
-	pMga->FbBase = dev->regions[ pMga->framebuffer_bar ].memory;
42
+            if (err) {
43
+                xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
44
+                           "Unable to map BAR %i.  %s (%d)\n",
45
+                           i, strerror(err), err);
46
+                return FALSE;
47
+            }
48
+        }
49
 #else
50
 	/*
51
 	 * For Alpha, we need to map SPARSE memory, since we need
52
@@ -2839,15 +2840,17 @@
53
     pMga->ILOADBase = NULL;
54
     if (pMga->iload_bar != -1) {
55
 #ifdef XSERVER_LIBPCIACCESS
56
-	err = pci_device_map_region(dev, pMga->iload_bar, TRUE);
57
+        region = &dev->regions[pMga->iload_bar];
58
+        err = pci_device_map_range(dev,
59
+                                   region->base_addr, region->size,
60
+                                   PCI_DEV_MAP_FLAG_WRITABLE,
61
+                                   (void *) &pMga->ILOADBase);
62
 	if (err) {
63
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
64
 		       "Unable to map BAR 2 (ILOAD region).  %s (%d)\n",
65
 		       strerror(err), err);
66
 	    return FALSE;
67
 	}
68
-
69
-	pMga->ILOADBase = dev->regions[pMga->iload_bar].memory;
70
 #else
71
 	pMga->ILOADBase = xf86MapPciMem(pScrn->scrnIndex,
72
 					VIDMEM_MMIO | VIDMEM_MMIO_32BIT |
73
@@ -2877,8 +2880,10 @@
74
     
75
     if (!pMga->FBDev) {
76
 #ifdef XSERVER_LIBPCIACCESS
77
-	pci_device_unmap_region(dev, 0);
78
-	pci_device_unmap_region(dev, 1);
79
+        pci_device_unmap_range(dev, pMga->IOBase, 
80
+			       dev->regions[pMga->io_bar].size);
81
+        pci_device_unmap_range(dev, pMga->FbBase, 
82
+			       dev->regions[pMga->framebuffer_bar].size);
83
 #else
84
 	xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pMga->IOBase, 0x4000);
85
 	xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pMga->FbBase, pMga->FbMapSize);
86
@@ -2889,15 +2894,10 @@
87
 	fbdevHWUnmapMMIO(pScrn);
88
     }
89
 
90
-    if ((pMga->iload_bar != -1)
91
-#ifdef XSERVER_LIBPCIACCESS
92
-	 && (dev->regions[pMga->iload_bar].memory != NULL)
93
-#else
94
-	 && (pMga->ILOADBase != NULL)
95
-#endif
96
-	) {
97
+    if ((pMga->iload_bar != -1) && (pMga->ILOADBase != NULL)) {
98
 #ifdef XSERVER_LIBPCIACCESS
99
-	pci_device_unmap_region(dev, pMga->iload_bar);
100
+        pci_device_unmap_range(dev, pMga->ILOADBase,
101
+			       dev->regions[pMga->iload_bar].size);
102
 #else
103
 	xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pMga->ILOADBase, 0x800000);
104
 #endif
(-)files/patch-src_mga_exa.c (+29 lines)
Added Link Here
1
--- src/mga_exa.c.orig	2007-11-02 23:07:24.000000000 +0300
2
+++ src/mga_exa.c	2007-11-02 23:08:14.000000000 +0300
3
@@ -758,6 +758,7 @@
4
     while (INREG (MGAREG_Status) & 0x10000);
5
 }
6
 
7
+#ifdef XF86DRI
8
 static void
9
 init_dri(ScrnInfoPtr pScrn)
10
 {
11
@@ -831,6 +832,7 @@
12
                        MGA_BUFFER_ALIGN) & ~MGA_BUFFER_ALIGN;
13
     dri->backPitch = widthBytes;
14
 }
15
+#endif /* XF86DRI */
16
 
17
 Bool
18
 mgaExaInit(ScreenPtr pScreen)
19
@@ -891,8 +893,10 @@
20
     pExa->UploadToScreen = mgaUploadToScreen;
21
     pExa->DownloadFromScreen = mgaDownloadFromScreen;
22
 
23
+#ifdef XF86DRI
24
     if (pMga->directRenderingEnabled)
25
         init_dri(pScrn);
26
+#endif
27
 
28
     return exaDriverInit(pScreen, pExa);
29
 }

Return to bug 117726