Send only screen index instead the whole rec for lock and remove the argument
of unlock.

This changes will ease the ones in the next commit.

Signed-off-by: Tiago Vignatti <[email protected]>
---
 hw/xfree86/common/xf86DPMS.c       |    4 ++--
 hw/xfree86/common/xf86Init.c       |   14 +++++++-------
 hw/xfree86/common/xf86VGAarbiter.c |   19 +++++++++++--------
 hw/xfree86/common/xf86VGAarbiter.h |    6 +++---
 4 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c
index cd025dc..483b13f 100644
--- a/hw/xfree86/common/xf86DPMS.c
+++ b/hw/xfree86/common/xf86DPMS.c
@@ -160,9 +160,9 @@ DPMSSet(ClientPtr client, int level)
        pScrn = xf86Screens[i];
        pDPMS = dixLookupPrivate(&screenInfo.screens[i]->devPrivates, DPMSKey);
        if (pDPMS && pScrn->DPMSSet && pDPMS->Enabled && pScrn->vtSema) { 
-           xf86VGAarbiterLock(pScrn);
+           xf86VGAarbiterLock(i);
            pScrn->DPMSSet(pScrn, level, 0);
-           xf86VGAarbiterUnlock(pScrn);
+           xf86VGAarbiterUnlock();
        }
     }
     return Success;
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 18df8c9..6355d4c 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -521,12 +521,12 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
      */
 
     for (i = 0; i < xf86NumScreens; i++) {
-       xf86VGAarbiterScrnInit(xf86Screens[i]);
-       xf86VGAarbiterLock(xf86Screens[i]);
+       xf86VGAarbiterScrnInit(i);
+       xf86VGAarbiterLock(i);
        if (xf86Screens[i]->PreInit &&
            xf86Screens[i]->PreInit(xf86Screens[i], 0))
            xf86Screens[i]->configured = TRUE;
-       xf86VGAarbiterUnlock(xf86Screens[i]);
+       xf86VGAarbiterUnlock();
     }
     for (i = 0; i < xf86NumScreens; i++)
        if (!xf86Screens[i]->configured)
@@ -745,7 +745,7 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
       FatalError("Cannot register DDX private keys");
 
   for (i = 0; i < xf86NumScreens; i++) {
-       xf86VGAarbiterLock(xf86Screens[i]);
+       xf86VGAarbiterLock(i);
        /*
         * Almost everything uses these defaults, and many of those that
         * don't, will wrap them.
@@ -760,7 +760,7 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
        xf86Screens[i]->DriverFunc = NULL;
        xf86Screens[i]->pScreen = NULL;
        scr_index = AddScreen(xf86Screens[i]->ScreenInit, argc, argv);
-       xf86VGAarbiterUnlock(xf86Screens[i]);
+       xf86VGAarbiterUnlock();
       if (scr_index == i) {
        /*
         * Hook in our ScrnInfoRec, and initialise some other pScreen
@@ -971,9 +971,9 @@ AbortDDX(void)
               * we might not have been wrapped yet. Therefore enable
               * screen explicitely.
               */
-             xf86VGAarbiterLock(xf86Screens[i]);
+             xf86VGAarbiterLock(i);
              (xf86Screens[i]->LeaveVT)(i, 0);
-             xf86VGAarbiterUnlock(xf86Screens[i]);
+             xf86VGAarbiterUnlock();
          }
   }
 
diff --git a/hw/xfree86/common/xf86VGAarbiter.c 
b/hw/xfree86/common/xf86VGAarbiter.c
index a58d21a..185b9c2 100644
--- a/hw/xfree86/common/xf86VGAarbiter.c
+++ b/hw/xfree86/common/xf86VGAarbiter.c
@@ -86,8 +86,10 @@ xf86VGAarbiterFini(void)
 }
 
 void
-xf86VGAarbiterLock(ScrnInfoPtr pScrn)
+xf86VGAarbiterLock(int scrnIdx)
 {
+    ScrnInfoPtr pScrn = xf86Screens[scrnIdx];
+
     if (vga_no_arb)
        return;
     pci_device_vgaarb_set_target(pScrn->vgaDev);
@@ -95,7 +97,7 @@ xf86VGAarbiterLock(ScrnInfoPtr pScrn)
 }
 
 void
-xf86VGAarbiterUnlock(ScrnInfoPtr pScrn)
+xf86VGAarbiterUnlock(void)
 {
     if (vga_no_arb)
        return;
@@ -121,8 +123,9 @@ Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen)
 }
 
 void
-xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn)
+xf86VGAarbiterScrnInit(int scrnIdx)
 {
+    ScrnInfoPtr pScrn = xf86Screens[scrnIdx];
     struct pci_device *dev;
     EntityPtr pEnt;
 
@@ -254,9 +257,9 @@ VGAarbiterCloseScreen (int i, ScreenPtr pScreen)
     UNWRAP_SPRITE;
 
     free((pointer) pScreenPriv);
-    xf86VGAarbiterLock(xf86Screens[i]);
+    xf86VGAarbiterLock(i);
     val = (*pScreen->CloseScreen) (i, pScreen);
-    xf86VGAarbiterUnlock(xf86Screens[i]);
+    xf86VGAarbiterUnlock();
     return val;
 }
 
@@ -1094,10 +1097,10 @@ VGAarbiterCompositeRects(CARD8 op, PicturePtr pDst, 
xRenderColor *color, int nRe
 void xf86VGAarbiterInit(void) {}
 void xf86VGAarbiterFini(void) {}
 
-void xf86VGAarbiterLock(ScrnInfoPtr pScrn) {}
-void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn) {}
+void xf86VGAarbiterLock(int scrnIdx) {}
+void xf86VGAarbiterUnlock(void) {}
 Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen) { return TRUE; }
-void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn) {}
+void xf86VGAarbiterScrnInit(int scrnIdx) {}
 void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn) {}
 Bool xf86VGAarbiterWrapFunctions(void) { return FALSE; }
 
diff --git a/hw/xfree86/common/xf86VGAarbiter.h 
b/hw/xfree86/common/xf86VGAarbiter.h
index 904b6b0..f883b00 100644
--- a/hw/xfree86/common/xf86VGAarbiter.h
+++ b/hw/xfree86/common/xf86VGAarbiter.h
@@ -33,10 +33,10 @@
 /* Functions */
 extern void xf86VGAarbiterInit(void);
 extern void xf86VGAarbiterFini(void);
-void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn);
+void xf86VGAarbiterScrnInit(int scrnIdx);
 extern Bool xf86VGAarbiterWrapFunctions(void);
-extern void xf86VGAarbiterLock(ScrnInfoPtr pScrn);
-extern void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn);
+extern void xf86VGAarbiterLock(int scrnIdx);
+extern void xf86VGAarbiterUnlock(void);
 
 /* allow a driver to remove itself from arbiter - really should be
  * done in the kernel though */
-- 
1.6.0.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to