diff options
Diffstat (limited to 'hw/xfree86/common')
-rw-r--r-- | hw/xfree86/common/Makefile.am | 9 | ||||
-rw-r--r-- | hw/xfree86/common/xf86.h | 16 | ||||
-rw-r--r-- | hw/xfree86/common/xf86AutoConfig.c | 4 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Bus.c | 19 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Bus.h | 1 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Config.c | 4 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Configure.c | 6 | ||||
-rw-r--r-- | hw/xfree86/common/xf86DPMS.c | 3 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Helper.c | 90 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Init.c | 7 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Module.h | 2 | ||||
-rw-r--r-- | hw/xfree86/common/xf86VGAarbiter.c | 15 | ||||
-rw-r--r-- | hw/xfree86/common/xf86fbBus.c | 2 | ||||
-rw-r--r-- | hw/xfree86/common/xf86pciBus.c | 19 | ||||
-rw-r--r-- | hw/xfree86/common/xf86str.h | 8 |
15 files changed, 64 insertions, 141 deletions
diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am index 23ddb5c34..a27372103 100644 --- a/hw/xfree86/common/Makefile.am +++ b/hw/xfree86/common/Makefile.am @@ -1,5 +1,10 @@ noinst_LTLIBRARIES = libcommon.la +if XORG_BUS_PCI +PCI_SOURCES = xf86pciBus.c xf86VGAarbiter.c xf86VGAarbiter.h \ + xf86VGAarbiterPriv.h +endif + if XORG_BUS_SPARC SBUS_SOURCES = xf86sbusBus.c endif @@ -19,7 +24,7 @@ endif RANDRSOURCES = xf86RandR.c -BUSSOURCES = xf86pciBus.c xf86fbBus.c xf86noBus.c $(SBUS_SOURCES) +BUSSOURCES = xf86fbBus.c xf86noBus.c $(PCI_SOURCES) $(SBUS_SOURCES) MODEDEFSOURCES = $(srcdir)/vesamodes $(srcdir)/extramodes @@ -33,7 +38,7 @@ AM_LDFLAGS = -r libcommon_la_SOURCES = xf86Configure.c xf86ShowOpts.c xf86Bus.c xf86Config.c \ xf86Cursor.c $(DGASOURCES) xf86DPMS.c \ xf86Events.c xf86Globals.c xf86AutoConfig.c \ - xf86Option.c xf86Init.c xf86VGAarbiter.c \ + xf86Option.c xf86Init.c \ xf86VidMode.c xf86fbman.c xf86cmap.c \ xf86Helper.c xf86PM.c xf86Xinput.c xisb.c \ xf86Mode.c xorgHelper.c \ diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h index 1b6c9984c..3185baf3a 100644 --- a/hw/xfree86/common/xf86.h +++ b/hw/xfree86/common/xf86.h @@ -92,6 +92,7 @@ extern _X_EXPORT Bool VTSwitchEnabled; /* kbd driver */ #ifndef _NO_XF86_PROTOTYPES /* PCI related */ +#ifdef XSERVER_LIBPCIACCESS #include <pciaccess.h> extern _X_EXPORT Bool pciSlotClaimed; @@ -118,6 +119,15 @@ extern _X_EXPORT ScrnInfoPtr xf86ConfigPciEntity(ScrnInfoPtr pScrn, extern _X_EXPORT Bool xf86ConfigActivePciEntity(ScrnInfoPtr pScrn, int entityIndex,PciChipsets *p_chip, void *dummy, EntityProc init, EntityProc enter, EntityProc leave, pointer private); +#else +#define xf86VGAarbiterInit() do {} while (0) +#define xf86VGAarbiterFini() do {} while (0) +#define xf86VGAarbiterLock(x) do {} while (0) +#define xf86VGAarbiterUnlock(x) do {} while (0) +#define xf86VGAarbiterScrnInit(x) do {} while (0) +#define xf86VGAarbiterDeviceDecodes() do {} while (0) +#define xf86VGAarbiterWrapFunctions() do {} while (0) +#endif /* xf86Bus.c */ @@ -239,12 +249,6 @@ extern _X_EXPORT void xf86ShowClocks(ScrnInfoPtr scrp, MessageType from); extern _X_EXPORT void xf86PrintChipsets(const char *drvname, const char *drvmsg, SymTabPtr chips); extern _X_EXPORT int xf86MatchDevice(const char *drivername, GDevPtr **driversectlist); -extern _X_EXPORT void xf86GetClocks(ScrnInfoPtr pScrn, int num, - Bool (*ClockFunc)(ScrnInfoPtr, int), - void (*ProtectRegs)(ScrnInfoPtr, Bool), - void (*BlankScreen)(ScrnInfoPtr, Bool), - IOADDRESS vertsyncreg, int maskval, - int knownclkindex, int knownclkvalue); extern _X_EXPORT const char *xf86GetVisualName(int visual); extern _X_EXPORT int xf86GetVerbosity(void); extern _X_EXPORT Pix24Flags xf86GetPix24(void); diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c index 5c6e7210c..7fc6518d3 100644 --- a/hw/xfree86/common/xf86AutoConfig.c +++ b/hw/xfree86/common/xf86AutoConfig.c @@ -255,9 +255,9 @@ listPossibleVideoDrivers(char *matches[], int nmatches) matches[i++] = xnfstrdup(sbusDriver); } #endif - +#ifdef XSERVER_LIBPCIACCESS i = xf86PciMatchDriver(matches, nmatches); - +#endif /* Fallback to platform default hardware */ if (i < (nmatches - 1)) { #if defined(__i386__) || defined(__amd64__) || defined(__hurd__) diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c index 3b0896863..c665a2019 100644 --- a/hw/xfree86/common/xf86Bus.c +++ b/hw/xfree86/common/xf86Bus.c @@ -47,8 +47,9 @@ #define XF86_OS_PRIVS #include "xf86_OSproc.h" +#ifdef XSERVER_LIBPCIACCESS #include "xf86VGAarbiter.h" - +#endif /* Entity data */ EntityPtr *xf86Entities = NULL; /* Bus slots claimed by drivers */ int xf86NumEntities = 0; @@ -75,7 +76,7 @@ Bool xf86CallDriverProbe( DriverPtr drv, Bool detect_only ) { Bool foundScreen = FALSE; - +#ifdef XSERVER_LIBPCIACCESS if (drv->PciProbe != NULL) { if (xf86DoConfigure && xf86DoConfigurePass1) { assert(detect_only); @@ -86,7 +87,7 @@ xf86CallDriverProbe( DriverPtr drv, Bool detect_only ) foundScreen = xf86PciProbeDev(drv); } } - +#endif if (!foundScreen && (drv->Probe != NULL)) { xf86Msg( X_WARNING, "Falling back to old probe method for %s\n", drv->driverName); @@ -195,7 +196,9 @@ xf86BusConfig(void) void xf86BusProbe(void) { +#ifdef XSERVER_LIBPCIACCESS xf86PciProbe(); +#endif #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) xf86SbusProbe(); #endif @@ -308,7 +311,6 @@ xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex) pScrn->entityInstanceList = xnfrealloc(pScrn->entityInstanceList, pScrn->numEntities * sizeof(int)); pScrn->entityInstanceList[pScrn->numEntities - 1] = 0; - pScrn->domainIOBase = xf86Entities[entityIndex]->domainIO; } void @@ -505,9 +507,14 @@ xf86PostProbe(void) { int i; - if (fbSlotClaimed && (pciSlotClaimed + if (fbSlotClaimed && ( #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) - || sbusSlotClaimed + sbusSlotClaimed || +#endif +#ifdef XSERVER_LIBPCIACCESS + pciSlotClaimed +#else + TRUE #endif )) FatalError("Cannot run in framebuffer mode. Please specify busIDs " diff --git a/hw/xfree86/common/xf86Bus.h b/hw/xfree86/common/xf86Bus.h index e161c7f4c..0b2ebdb44 100644 --- a/hw/xfree86/common/xf86Bus.h +++ b/hw/xfree86/common/xf86Bus.h @@ -58,7 +58,6 @@ typedef struct { DevUnion * entityPrivates; int numInstances; GDevPtr * devices; - IOADDRESS domainIO; } EntityRec, *EntityPtr; #define ACCEL_IS_SHARABLE 0x100 diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index f8c1b6567..5c46152b2 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -2398,7 +2398,7 @@ xf86HandleConfigFile(Bool autoconfig) } xf86ProcessOptions(-1, xf86ConfigLayout.options, LayoutOptions); - +#ifdef XSERVER_LIBPCIACCESS if ((scanptr = xf86GetOptValString(LayoutOptions, LAYOUT_ISOLATEDEVICE))) { ; /* IsolateDevice specified; overrides SingleCard */ } else { @@ -2413,7 +2413,7 @@ xf86HandleConfigFile(Bool autoconfig) } else xf86PciIsolateDevice(scanptr); } - +#endif /* Now process everything else */ if (!configServerFlags(xf86configptr->conf_flags,xf86ConfigLayout.options)){ ErrorF ("Problem when converting the config data structures\n"); diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c index ab0751507..99b8b48d7 100644 --- a/hw/xfree86/common/xf86Configure.c +++ b/hw/xfree86/common/xf86Configure.c @@ -87,9 +87,11 @@ xf86AddBusDeviceToConfigure(const char *driver, BusType bus, void *busData, int /* Check for duplicates */ for (i = 0; i < nDevToConfig; i++) { switch (bus) { +#ifdef XSERVER_LIBPCIACCESS case BUS_PCI: ret = xf86PciConfigure(busData, DevToConfig[i].pVideo); - break; + break; +#endif #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) case BUS_SBUS: ret = xf86SbusConfigure(busData, DevToConfig[i].sVideo); @@ -118,10 +120,12 @@ xf86AddBusDeviceToConfigure(const char *driver, BusType bus, void *busData, int for (j = 0; (DevToConfig[i].GDev.driver[j] = tolower(driver[j])); j++); switch (bus) { +#ifdef XSERVER_LIBPCIACCESS case BUS_PCI: xf86PciConfigureNewDev(busData, DevToConfig[i].pVideo, &DevToConfig[i].GDev, &chipset); break; +#endif #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) case BUS_SBUS: xf86SbusConfigureNewDev(busData, DevToConfig[i].sVideo, diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c index cd025dca4..613c7cf73 100644 --- a/hw/xfree86/common/xf86DPMS.c +++ b/hw/xfree86/common/xf86DPMS.c @@ -42,8 +42,9 @@ #include <X11/extensions/dpmsconst.h> #include "dpmsproc.h" #endif +#ifdef XSERVER_LIBPCIACCESS #include "xf86VGAarbiter.h" - +#endif #ifdef DPMSExtension static DevPrivateKeyRec DPMSKeyRec; diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index a8aa316ae..cf577522a 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -1353,96 +1353,6 @@ xf86MatchDevice(const char *drivername, GDevPtr **sectlist) return i; } -/* - * xf86GetClocks -- get the dot-clocks via a BIG BAD hack ... - */ -void -xf86GetClocks(ScrnInfoPtr pScrn, int num, Bool (*ClockFunc)(ScrnInfoPtr, int), - void (*ProtectRegs)(ScrnInfoPtr, Bool), - void (*BlankScreen)(ScrnInfoPtr, Bool), IOADDRESS vertsyncreg, - int maskval, int knownclkindex, int knownclkvalue) -{ - register int status = vertsyncreg; - unsigned long i, cnt, rcnt, sync; - - /* First save registers that get written on */ - (*ClockFunc)(pScrn, CLK_REG_SAVE); - - if (num > MAXCLOCKS) - num = MAXCLOCKS; - - for (i = 0; i < num; i++) - { - if (ProtectRegs) - (*ProtectRegs)(pScrn, TRUE); - if (!(*ClockFunc)(pScrn, i)) - { - pScrn->clock[i] = -1; - continue; - } - if (ProtectRegs) - (*ProtectRegs)(pScrn, FALSE); - if (BlankScreen) - (*BlankScreen)(pScrn, FALSE); - - usleep(50000); /* let VCO stabilise */ - - cnt = 0; - sync = 200000; - - while ((inb(status) & maskval) == 0x00) - if (sync-- == 0) goto finish; - /* Something appears to be happening, so reset sync count */ - sync = 200000; - while ((inb(status) & maskval) == maskval) - if (sync-- == 0) goto finish; - /* Something appears to be happening, so reset sync count */ - sync = 200000; - while ((inb(status) & maskval) == 0x00) - if (sync-- == 0) goto finish; - - for (rcnt = 0; rcnt < 5; rcnt++) - { - while (!(inb(status) & maskval)) - cnt++; - while ((inb(status) & maskval)) - cnt++; - } - -finish: - pScrn->clock[i] = cnt ? cnt : -1; - if (BlankScreen) - (*BlankScreen)(pScrn, TRUE); - } - - for (i = 0; i < num; i++) - { - if (i != knownclkindex) - { - if (pScrn->clock[i] == -1) - { - pScrn->clock[i] = 0; - } - else - { - pScrn->clock[i] = (int)(0.5 + - (((float)knownclkvalue) * pScrn->clock[knownclkindex]) / - (pScrn->clock[i])); - /* Round to nearest 10KHz */ - pScrn->clock[i] += 5; - pScrn->clock[i] /= 10; - pScrn->clock[i] *= 10; - } - } - } - - pScrn->clock[knownclkindex] = knownclkvalue; - pScrn->numClocks = num; - - /* Restore registers that were written on */ - (*ClockFunc)(pScrn, CLK_REG_RESTORE); -} - const char * xf86GetVisualName(int visual) { diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 350918dfe..74e0bc220 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -78,7 +78,9 @@ #include "picturestr.h" #include "xf86Bus.h" +#ifdef XSERVER_LIBPCIACCESS #include "xf86VGAarbiter.h" +#endif #include "globals.h" #include "xserver-properties.h" @@ -88,7 +90,6 @@ #endif #include <hotplug.h> - #ifdef XF86PM void (*xf86OSPMClose)(void) = NULL; #endif @@ -1355,6 +1356,7 @@ ddxProcessArgument(int argc, char **argv, int i) xf86DoShowOptions = TRUE; return 1; } +#ifdef XSERVER_LIBPCIACCESS if (!strcmp(argv[i], "-isolateDevice")) { CHECK_FOR_REQUIRED_ARGUMENT(); @@ -1364,6 +1366,7 @@ ddxProcessArgument(int argc, char **argv, int i) xf86PciIsolateDevice(argv[i]); return 2; } +#endif /* Notice cmdline xkbdir, but pass to dix as well */ if (!strcmp(argv[i], "-xkbdir")) { @@ -1432,7 +1435,9 @@ ddxUseMsg(void) #endif ErrorF("-allowMouseOpenFail start server even if the mouse can't be initialized\n"); ErrorF("-ignoreABI make module ABI mismatches non-fatal\n"); +#ifdef XSERVER_LIBPCIACCESS ErrorF("-isolateDevice bus_id restrict device resets to bus_id (PCI only)\n"); +#endif ErrorF("-version show the server version\n"); ErrorF("-showDefaultModulePath show the server default module path\n"); ErrorF("-showDefaultLibPath show the server default library path\n"); diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h index 330d87ae8..a9645e77b 100644 --- a/hw/xfree86/common/xf86Module.h +++ b/hw/xfree86/common/xf86Module.h @@ -82,7 +82,7 @@ typedef enum { * mask is 0xFFFF0000. */ #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) -#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(11, 0) +#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(12, 0) #define ABI_XINPUT_VERSION SET_ABI_VERSION(14, 0) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(6, 0) #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index 215e8454a..819ad6e7c 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -31,8 +31,6 @@ #include "xorg-config.h" #include "xf86VGAarbiter.h" - -#ifdef HAVE_PCI_DEVICE_VGAARB_INIT #include "xf86VGAarbiterPriv.h" #include "xf86Bus.h" #include "xf86Priv.h" @@ -1112,16 +1110,3 @@ VGAarbiterCompositeRects(CARD8 op, PicturePtr pDst, xRenderColor *color, int nRe VGAPut(); PICTURE_EPILOGUE (CompositeRects, VGAarbiterCompositeRects); } -#else -/* dummy functions */ -void xf86VGAarbiterInit(void) {} -void xf86VGAarbiterFini(void) {} - -void xf86VGAarbiterLock(ScrnInfoPtr pScrn) {} -void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn) {} -Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen) { return TRUE; } -void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn) {} -void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn, int rsrc) {} -Bool xf86VGAarbiterWrapFunctions(void) { return FALSE; } - -#endif diff --git a/hw/xfree86/common/xf86fbBus.c b/hw/xfree86/common/xf86fbBus.c index 059e378e3..45929804f 100644 --- a/hw/xfree86/common/xf86fbBus.c +++ b/hw/xfree86/common/xf86fbBus.c @@ -54,8 +54,10 @@ xf86ClaimFbSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool active) EntityPtr p; int num; +#ifdef XSERVER_LIBPCIACCESS if (pciSlotClaimed) return -1; +#endif #if defined(__sparc__) || defined (__sparc64__) if (sbusSlotClaimed) return -1; diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c index 447b19229..eb5323cf0 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -121,12 +121,10 @@ xf86PciProbe(void) xf86PciVideoInfo[num - 1] = info; pci_device_probe(info); -#ifdef HAVE_PCI_DEVICE_IS_BOOT_VGA if (pci_device_is_boot_vga(info)) { primaryBus.type = BUS_PCI; primaryBus.id.pci = info; } -#endif info->user_data = 0; } } @@ -235,11 +233,6 @@ xf86ClaimPciSlot(struct pci_device * d, DriverPtr drvp, xf86AddDevToEntity(num, dev); pciSlotClaimed = TRUE; - if (active) { - /* Map in this domain's I/O space */ - p->domainIO = xf86MapLegacyIO(d); - } - return num; } else return -1; @@ -1357,3 +1350,15 @@ xf86PciConfigureNewDev(void *busData, struct pci_device *pVideo, if (*chipset < 0) *chipset = (pVideo->vendor_id << 16) | pVideo->device_id; } + +struct pci_io_handle * +xf86MapLegacyIO(struct pci_device *dev) +{ + return pci_legacy_open_io(dev, 0, 64 * 1024); +} + +void +xf86UnmapLegacyIO(struct pci_device *dev, struct pci_io_handle *handle) +{ + pci_device_close_io(dev, handle); +} diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h index 0493dc53c..e2ca55875 100644 --- a/hw/xfree86/common/xf86str.h +++ b/hw/xfree86/common/xf86str.h @@ -41,9 +41,6 @@ #include "colormapst.h" #include "xf86Module.h" #include "xf86Opt.h" -#include "xf86Pci.h" - -#include <pciaccess.h> /** * Integer type that is of the size of the addressable memory (machine size). @@ -309,6 +306,8 @@ typedef struct { struct _SymTabRec; struct _PciChipsets; +struct pci_device; + typedef struct _DriverRec { int driverVersion; char * driverName; @@ -350,8 +349,6 @@ typedef enum { BUS_last /* Keep last */ } BusType; -struct pci_device; - typedef struct { int fbNum; } SbusBusId; @@ -742,7 +739,6 @@ typedef struct _ScrnInfoRec { unsigned long biosBase; /* Base address of video BIOS */ unsigned long memPhysBase; /* Physical address of FB */ unsigned long fbOffset; /* Offset of FB in the above */ - IOADDRESS domainIOBase; /* Domain I/O base address */ int memClk; /* memory clock */ int textClockFreq; /* clock of text mode */ Bool flipPixels; /* swap default black/white */ |