summaryrefslogtreecommitdiff
path: root/driver/xf86-video-rendition
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2015-08-23 17:43:12 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2015-08-23 17:43:12 +0000
commit2635a8ab63a9cca6997365347b274ff3487e8192 (patch)
tree9b4801d283236d61ebfd5102c4e9da3715830278 /driver/xf86-video-rendition
parentee67b35b3de37f1851735d1bce03d226936e69cf (diff)
Merge from upstreams in preparation for xserver 1.17
Diffstat (limited to 'driver/xf86-video-rendition')
-rw-r--r--driver/xf86-video-rendition/src/rendition.c20
-rw-r--r--driver/xf86-video-rendition/src/rendition.h7
2 files changed, 17 insertions, 10 deletions
diff --git a/driver/xf86-video-rendition/src/rendition.c b/driver/xf86-video-rendition/src/rendition.c
index 888bb4ac1..967785089 100644
--- a/driver/xf86-video-rendition/src/rendition.c
+++ b/driver/xf86-video-rendition/src/rendition.c
@@ -1371,6 +1371,18 @@ renditionMapMem(ScrnInfoPtr pScreenInfo)
/* Override on users request */
WriteCombine
= xf86ReturnOptValBool(pRendition->Options, OPTION_FBWC, WriteCombine);
+#ifdef XSERVER_LIBPCIACCESS
+ mapOption = PCI_DEV_MAP_FLAG_WRITABLE;
+ if (WriteCombine)
+ mapOption |= PCI_DEV_MAP_FLAG_WRITE_COMBINE;
+
+ err = pci_device_map_range(pRendition->PciInfo,
+ pRendition->PciInfo->regions[0].base_addr,
+ pRendition->PciInfo->regions[0].size,
+ mapOption, (void *)&pRendition->board.vmem_base);
+
+ return (err == 0);
+#else
if (WriteCombine) {
xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG,
("Requesting Write-Combined memory access\n"));
@@ -1381,12 +1393,6 @@ renditionMapMem(ScrnInfoPtr pScreenInfo)
mapOption = VIDMEM_MMIO;
}
-#ifdef XSERVER_LIBPCIACCESS
- err = pci_device_map_region(pRendition->PciInfo, 0, TRUE);
- pRendition->board.vmem_base = pRendition->PciInfo->regions[0].memory;
-
- return (err == 0);
-#else
pRendition->board.vmem_base=
xf86MapPciMem(pScreenInfo->scrnIndex, mapOption,
pRendition->pcitag,
@@ -1415,7 +1421,7 @@ renditionUnmapMem(ScrnInfoPtr pScreenInfo)
#else
pci_device_unmap_range(pRendition->PciInfo,
pRendition->board.vmem_base,
- pScreenInfo->videoRam * 1024);
+ pRendition->PciInfo->regions[0].size);
#endif
return TRUE;
#ifdef DEBUG0
diff --git a/driver/xf86-video-rendition/src/rendition.h b/driver/xf86-video-rendition/src/rendition.h
index 297117eeb..4ef03a7bc 100644
--- a/driver/xf86-video-rendition/src/rendition.h
+++ b/driver/xf86-video-rendition/src/rendition.h
@@ -14,9 +14,6 @@
/* Everything using inb/outb, etc needs "compiler.h" */
#include "compiler.h"
-/* Drivers for PCI hardware need this */
-#include "xf86PciInfo.h"
-
/* Drivers that need to access the PCI config space directly need this */
#include "xf86Pci.h"
@@ -66,4 +63,8 @@
#include "compat-api.h"
/* end of __RENDITION_H__ */
+
+#define PCI_CHIP_V1000 0x0001
+#define PCI_CHIP_V2x00 0x2000
+
#endif