xfree86: vgaarb: rework wrapping function
No semantical changes. Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
422cd7a674
commit
49b98d092e
|
@ -521,30 +521,15 @@ xf86PostProbe(void)
|
||||||
void
|
void
|
||||||
xf86PostScreenInit(void)
|
xf86PostScreenInit(void)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_PCI_DEVICE_VGAARB_INIT
|
|
||||||
int vga_count;
|
|
||||||
#endif
|
|
||||||
if (doFramebufferMode) {
|
if (doFramebufferMode) {
|
||||||
SetSIGIOForState(OPERATING);
|
SetSIGIOForState(OPERATING);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
xf86VGAarbiterWrapFunctions();
|
||||||
* we need to wrap the arbiter if we have more than
|
|
||||||
* one VGA card - hotplug cries.
|
|
||||||
*/
|
|
||||||
#ifdef HAVE_PCI_DEVICE_VGAARB_INIT
|
|
||||||
pci_device_vgaarb_get_info(NULL, &vga_count, NULL);
|
|
||||||
if (vga_count > 1 && xf86Screens) {
|
|
||||||
int i;
|
|
||||||
xf86Msg(X_INFO,"Number of VGA devices: %d: arbiter wrapping enabled\n", vga_count);
|
|
||||||
for (i = 0; i < xf86NumScreens; i++)
|
|
||||||
xf86VGAarbiterWrapFunctions(xf86Screens[i]->pScreen);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
DebugF("PostScreenInit generation: %i\n",serverGeneration);
|
DebugF("PostScreenInit generation: %i\n",serverGeneration);
|
||||||
xf86EnterServerState(OPERATING);
|
xf86EnterServerState(OPERATING);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#ifdef HAVE_PCI_DEVICE_VGAARB_INIT
|
#ifdef HAVE_PCI_DEVICE_VGAARB_INIT
|
||||||
#include "xf86VGAarbiterPriv.h"
|
#include "xf86VGAarbiterPriv.h"
|
||||||
#include "xf86Bus.h"
|
#include "xf86Bus.h"
|
||||||
|
#include "xf86Priv.h"
|
||||||
#include "pciaccess.h"
|
#include "pciaccess.h"
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -153,59 +154,77 @@ xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn)
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
xf86VGAarbiterWrapFunctions(ScreenPtr pScreen)
|
xf86VGAarbiterWrapFunctions(void)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn;
|
ScrnInfoPtr pScrn;
|
||||||
VGAarbiterScreenPtr pScreenPriv;
|
VGAarbiterScreenPtr pScreenPriv;
|
||||||
miPointerScreenPtr PointPriv;
|
miPointerScreenPtr PointPriv;
|
||||||
#ifdef RENDER
|
#ifdef RENDER
|
||||||
PictureScreenPtr ps = GetPictureScreenIfSet(pScreen);
|
PictureScreenPtr ps;
|
||||||
#endif
|
#endif
|
||||||
|
ScreenPtr pScreen;
|
||||||
|
int vga_count, i;
|
||||||
|
|
||||||
if (vga_no_arb)
|
if (vga_no_arb)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
pScrn = xf86Screens[pScreen->myNum];
|
/*
|
||||||
PointPriv = dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
|
* we need to wrap the arbiter if we have more than
|
||||||
|
* one VGA card - hotplug cries.
|
||||||
|
*/
|
||||||
|
pci_device_vgaarb_get_info(NULL, &vga_count, NULL);
|
||||||
|
if (vga_count < 2 || !xf86Screens)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
DPRINT_S("VGAarbiterWrapFunctions",pScreen->myNum);
|
xf86Msg(X_INFO,"Found %d VGA devices: arbiter wrapping enabled\n",
|
||||||
|
vga_count);
|
||||||
|
|
||||||
if (!dixRequestPrivate(VGAarbiterGCKey, sizeof(VGAarbiterGCRec)))
|
for (i = 0; i < xf86NumScreens; i++) {
|
||||||
return FALSE;
|
pScreen = xf86Screens[i]->pScreen;
|
||||||
|
ps = GetPictureScreenIfSet(pScreen);
|
||||||
|
pScrn = xf86Screens[pScreen->myNum];
|
||||||
|
PointPriv = dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
|
||||||
|
|
||||||
if (!(pScreenPriv = xalloc(sizeof(VGAarbiterScreenRec))))
|
DPRINT_S("VGAarbiterWrapFunctions",pScreen->myNum);
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
dixSetPrivate(&pScreen->devPrivates, VGAarbiterScreenKey, pScreenPriv);
|
if (!dixRequestPrivate(VGAarbiterGCKey, sizeof(VGAarbiterGCRec)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
WRAP_SCREEN(CloseScreen, VGAarbiterCloseScreen);
|
if (!(pScreenPriv = xalloc(sizeof(VGAarbiterScreenRec))))
|
||||||
WRAP_SCREEN(SaveScreen, VGAarbiterSaveScreen);
|
return FALSE;
|
||||||
WRAP_SCREEN(WakeupHandler, VGAarbiterWakeupHandler);
|
|
||||||
WRAP_SCREEN(BlockHandler, VGAarbiterBlockHandler);
|
dixSetPrivate(&pScreen->devPrivates, VGAarbiterScreenKey, pScreenPriv);
|
||||||
WRAP_SCREEN(CreateGC, VGAarbiterCreateGC);
|
|
||||||
WRAP_SCREEN(GetImage, VGAarbiterGetImage);
|
WRAP_SCREEN(CloseScreen, VGAarbiterCloseScreen);
|
||||||
WRAP_SCREEN(GetSpans, VGAarbiterGetSpans);
|
WRAP_SCREEN(SaveScreen, VGAarbiterSaveScreen);
|
||||||
WRAP_SCREEN(SourceValidate, VGAarbiterSourceValidate);
|
WRAP_SCREEN(WakeupHandler, VGAarbiterWakeupHandler);
|
||||||
WRAP_SCREEN(CopyWindow, VGAarbiterCopyWindow);
|
WRAP_SCREEN(BlockHandler, VGAarbiterBlockHandler);
|
||||||
WRAP_SCREEN(ClearToBackground, VGAarbiterClearToBackground);
|
WRAP_SCREEN(CreateGC, VGAarbiterCreateGC);
|
||||||
WRAP_SCREEN(CreatePixmap, VGAarbiterCreatePixmap);
|
WRAP_SCREEN(GetImage, VGAarbiterGetImage);
|
||||||
WRAP_SCREEN(StoreColors, VGAarbiterStoreColors);
|
WRAP_SCREEN(GetSpans, VGAarbiterGetSpans);
|
||||||
WRAP_SCREEN(DisplayCursor, VGAarbiterDisplayCursor);
|
WRAP_SCREEN(SourceValidate, VGAarbiterSourceValidate);
|
||||||
WRAP_SCREEN(RealizeCursor, VGAarbiterRealizeCursor);
|
WRAP_SCREEN(CopyWindow, VGAarbiterCopyWindow);
|
||||||
WRAP_SCREEN(UnrealizeCursor, VGAarbiterUnrealizeCursor);
|
WRAP_SCREEN(ClearToBackground, VGAarbiterClearToBackground);
|
||||||
WRAP_SCREEN(RecolorCursor, VGAarbiterRecolorCursor);
|
WRAP_SCREEN(CreatePixmap, VGAarbiterCreatePixmap);
|
||||||
WRAP_SCREEN(SetCursorPosition, VGAarbiterSetCursorPosition);
|
WRAP_SCREEN(StoreColors, VGAarbiterStoreColors);
|
||||||
|
WRAP_SCREEN(DisplayCursor, VGAarbiterDisplayCursor);
|
||||||
|
WRAP_SCREEN(RealizeCursor, VGAarbiterRealizeCursor);
|
||||||
|
WRAP_SCREEN(UnrealizeCursor, VGAarbiterUnrealizeCursor);
|
||||||
|
WRAP_SCREEN(RecolorCursor, VGAarbiterRecolorCursor);
|
||||||
|
WRAP_SCREEN(SetCursorPosition, VGAarbiterSetCursorPosition);
|
||||||
#ifdef RENDER
|
#ifdef RENDER
|
||||||
WRAP_PICT(Composite,VGAarbiterComposite);
|
WRAP_PICT(Composite,VGAarbiterComposite);
|
||||||
WRAP_PICT(Glyphs,VGAarbiterGlyphs);
|
WRAP_PICT(Glyphs,VGAarbiterGlyphs);
|
||||||
WRAP_PICT(CompositeRects,VGAarbiterCompositeRects);
|
WRAP_PICT(CompositeRects,VGAarbiterCompositeRects);
|
||||||
#endif
|
#endif
|
||||||
WRAP_SCREEN_INFO(AdjustFrame, VGAarbiterAdjustFrame);
|
WRAP_SCREEN_INFO(AdjustFrame, VGAarbiterAdjustFrame);
|
||||||
WRAP_SCREEN_INFO(SwitchMode, VGAarbiterSwitchMode);
|
WRAP_SCREEN_INFO(SwitchMode, VGAarbiterSwitchMode);
|
||||||
WRAP_SCREEN_INFO(EnterVT, VGAarbiterEnterVT);
|
WRAP_SCREEN_INFO(EnterVT, VGAarbiterEnterVT);
|
||||||
WRAP_SCREEN_INFO(LeaveVT, VGAarbiterLeaveVT);
|
WRAP_SCREEN_INFO(LeaveVT, VGAarbiterLeaveVT);
|
||||||
WRAP_SCREEN_INFO(FreeScreen, VGAarbiterFreeScreen);
|
WRAP_SCREEN_INFO(FreeScreen, VGAarbiterFreeScreen);
|
||||||
WRAP_SPRITE;
|
WRAP_SPRITE;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1152,6 +1171,6 @@ void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn) {}
|
||||||
Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen) { return TRUE; }
|
Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen) { return TRUE; }
|
||||||
void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn) {}
|
void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn) {}
|
||||||
void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn) {}
|
void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn) {}
|
||||||
Bool xf86VGAarbiterWrapFunctions(ScreenPtr pScreen) { return FALSE; }
|
Bool xf86VGAarbiterWrapFunctions(void) { return FALSE; }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
extern void xf86VGAarbiterInit(void);
|
extern void xf86VGAarbiterInit(void);
|
||||||
extern void xf86VGAarbiterFini(void);
|
extern void xf86VGAarbiterFini(void);
|
||||||
void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn);
|
void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn);
|
||||||
extern Bool xf86VGAarbiterWrapFunctions(ScreenPtr pScreen);
|
extern Bool xf86VGAarbiterWrapFunctions(void);
|
||||||
extern void xf86VGAarbiterLock(ScrnInfoPtr pScrn);
|
extern void xf86VGAarbiterLock(ScrnInfoPtr pScrn);
|
||||||
extern void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn);
|
extern void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue