This is really a vga-specific hack anyway.  The only modern driver that
uses it is trident, but it's already loaded vgahw by the time it would
call xf86GetClocks.

Signed-off-by: Adam Jackson <[email protected]>
---
 hw/xfree86/common/xf86.h       |    6 ---
 hw/xfree86/common/xf86Helper.c |   90 ---------------------------------------
 hw/xfree86/vgahw/vgaHW.c       |   91 ++++++++++++++++++++++++++++++++++++++++
 hw/xfree86/vgahw/vgaHW.h       |    6 +++
 4 files changed, 97 insertions(+), 96 deletions(-)

diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 886c25b..588872c 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -243,12 +243,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/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 90e0c67..f53f8ce 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -1507,96 +1507,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/vgahw/vgaHW.c b/hw/xfree86/vgahw/vgaHW.c
index ee045d1..7f0ad28 100644
--- a/hw/xfree86/vgahw/vgaHW.c
+++ b/hw/xfree86/vgahw/vgaHW.c
@@ -1992,3 +1992,94 @@ SaveScreenProcPtr vgaHWSaveScreenWeak(void)
 {
     return vgaHWSaveScreen;
 }
+
+/*
+ * 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);
+}
+
diff --git a/hw/xfree86/vgahw/vgaHW.h b/hw/xfree86/vgahw/vgaHW.h
index 7e63492..d1d87a1 100644
--- a/hw/xfree86/vgahw/vgaHW.h
+++ b/hw/xfree86/vgahw/vgaHW.h
@@ -231,5 +231,11 @@ extern _X_EXPORT Bool vgaHWAllocDefaultRegs(vgaRegPtr 
regp);
 
 extern _X_EXPORT DDC1SetSpeedProc vgaHWddc1SetSpeedWeak(void);
 extern _X_EXPORT SaveScreenProcPtr vgaHWSaveScreenWeak(void);
+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);
 
 #endif /* _VGAHW_H */
-- 
1.7.2.2

_______________________________________________
[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