[pkg-fso-commits] [SCM] xf86-video-glamo, SMedia Glamo video driver for X.Org branch, master, updated. upstream/0.0.0+20090707.git98c012f7-57-g9918e08

Thomas White taw at bitwiz.org.uk
Fri Jan 8 13:24:35 UTC 2010


The following commit has been merged in the master branch:
commit 6bd6ca43176dccac91fd5ddffeb0da81f0bcd6f6
Author: Thomas White <taw at bitwiz.org.uk>
Date:   Mon Jul 20 01:16:53 2009 +0100

    Initial KMS stuff

diff --git a/src/glamo-driver.c b/src/glamo-driver.c
index 0a42eb3..9debf57 100644
--- a/src/glamo-driver.c
+++ b/src/glamo-driver.c
@@ -292,42 +292,71 @@ GlamoProbe(DriverPtr drv, int flags)
 	if (flags & PROBE_DETECT)
 		return FALSE;
 
-	if ((numDevSections = xf86MatchDevice(GLAMO_DRIVER_NAME, &devSections)) <= 0)
+	numDevSections = xf86MatchDevice(GLAMO_DRIVER_NAME, &devSections);
+	if (numDevSections <= 0)
 		return FALSE;
 
-	if (!xf86LoadDrvSubModule(drv, "fbdevhw"))
-		return FALSE;
+	/* Is today a good day to use KMS? */
+	if ( GlamoKernelModesettingAvailable(pScrn) ) {
+
+		foundScreen = TRUE;
+
+		pScrn->driverVersion = GLAMO_VERSION;
+		pScrn->driverName    = GLAMO_DRIVER_NAME;
+		pScrn->name          = GLAMO_NAME;
+		pScrn->PreInit       = GlamoKMSPreInit;
+		pScrn->ScreenInit    = GlamoKMSScreenInit;
+		pScrn->SwitchMode    = GlamoKMSSwitchMode;
+		pScrn->AdjustFrame   = GlamoKMSAdjustFrame;
+		pScrn->EnterVT       = GlamoKMSEnterVT;
+		pScrn->LeaveVT       = GlamoKMSLeaveVT;
+		pScrn->ValidMode     = GlamoKMSValidMode;
 
-	for (i = 0; i < numDevSections; i++) {
-		dev = xf86FindOptionValue(devSections[i]->options, "Device");
-		if (fbdevHWProbe(NULL, dev, NULL)) {
-			int entity;
-			pScrn = NULL;
-
-			entity = xf86ClaimFbSlot(drv, 0, devSections[i], TRUE);
-			pScrn = xf86ConfigFbEntity(pScrn,0,entity,
-			                           NULL, NULL, NULL, NULL);
-
-			if (pScrn) {
-				foundScreen = TRUE;
-
-				pScrn->driverVersion = GLAMO_VERSION;
-				pScrn->driverName    = GLAMO_DRIVER_NAME;
-				pScrn->name          = GLAMO_NAME;
-				pScrn->Probe         = GlamoProbe;
-				pScrn->PreInit       = GlamoPreInit;
-				pScrn->ScreenInit    = GlamoScreenInit;
-				pScrn->SwitchMode    = GlamoSwitchMode;
-				pScrn->AdjustFrame   = fbdevHWAdjustFrameWeak();
-				pScrn->EnterVT       = GlamoEnterVT;
-				pScrn->LeaveVT       = GlamoLeaveVT;
-				pScrn->ValidMode     = fbdevHWValidModeWeak();
-
-				xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-					   "using %s\n", dev ? dev : "default device");
+		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using KMS!");
+
+	} else {
+
+		if (!xf86LoadDrvSubModule(drv, "fbdevhw"))
+			return FALSE;
+
+		for (i = 0; i < numDevSections; i++) {
+			dev = xf86FindOptionValue(devSections[i]->options,
+			                          "Device");
+			if (fbdevHWProbe(NULL, dev, NULL)) {
+				int entity;
+				pScrn = NULL;
+
+				entity = xf86ClaimFbSlot(drv, 0, devSections[i],
+				                         TRUE);
+				pScrn = xf86ConfigFbEntity(pScrn,0,entity, NULL,
+					                   NULL, NULL, NULL);
+
+				if (pScrn) {
+					foundScreen = TRUE;
+
+					pScrn->driverVersion = GLAMO_VERSION;
+					pScrn->driverName    = GLAMO_DRIVER_NAME;
+					pScrn->name          = GLAMO_NAME;
+					pScrn->Probe         = GlamoProbe;
+					pScrn->PreInit       = GlamoPreInit;
+					pScrn->ScreenInit    = GlamoScreenInit;
+					pScrn->SwitchMode    = GlamoSwitchMode;
+					pScrn->AdjustFrame
+					             = fbdevHWAdjustFrameWeak();
+					pScrn->EnterVT       = GlamoEnterVT;
+					pScrn->LeaveVT       = GlamoLeaveVT;
+					pScrn->ValidMode
+					             = fbdevHWValidModeWeak();
+
+					xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+						   "using %s\n",
+						   dev ? dev : "default device");
+				}
 			}
 		}
+
 	}
+
 	xfree(devSections);
 	TRACE("probe done");
 	return foundScreen;
@@ -806,4 +835,3 @@ GlamoLoadColormap(ScrnInfoPtr pScrn, int numColors, int *indices,
             (colors[indices[i]].blue >> 3);
     }
 }
-
diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c
new file mode 100644
index 0000000..5102f4b
--- /dev/null
+++ b/src/glamo-kms-driver.c
@@ -0,0 +1,51 @@
+/*
+ * KMS Support for the SMedia Glamo3362 X.org Driver
+ *
+ * Copyright 2009 Thomas White <taw at bitwiz.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+
+Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags)
+{
+}
+
+Bool GlamoKMSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc,
+                        char **argv)
+{
+}
+
+Bool SwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+{
+}
+
+void AdjustFrame(int scrnIndex, int x, int y, int flags)
+{
+}
+
+Bool EnterVT(int scrnIndex, int flags)
+{
+}
+
+void LeaveVT(int scrnIndex, int flags)
+{
+}
+
+ModeStatus ValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose,
+                     int flags)
+{
+}
diff --git a/src/glamo-kms-driver.h b/src/glamo-kms-driver.h
new file mode 100644
index 0000000..84069a3
--- /dev/null
+++ b/src/glamo-kms-driver.h
@@ -0,0 +1,31 @@
+/*
+ * KMS Support for the SMedia Glamo3362 X.org Driver
+ *
+ * Copyright 2009 Thomas White <taw at bitwiz.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+
+extern Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags);
+extern Bool GlamoKMSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc,
+                               char **argv);
+extern Bool SwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
+extern void AdjustFrame(int scrnIndex, int x, int y, int flags);
+extern Bool EnterVT(int scrnIndex, int flags);
+extern void LeaveVT(int scrnIndex, int flags);
+extern ModeStatus ValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose,
+                            int flags);

-- 
xf86-video-glamo, SMedia Glamo video driver for X.Org



More information about the pkg-fso-commits mailing list