summaryrefslogtreecommitdiff
path: root/hw/kdrive/ipaq
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2001-05-23 17:28:39 +0000
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2001-05-23 17:28:39 +0000
commit0e1a49a7dd00ae494d92ab480d9776ec5320cb3e (patch)
treedde232159906d4b7179b793aaf3c56c350b77caa /hw/kdrive/ipaq
parent85d827f5329fa93dea1125788457fac6835cd134 (diff)
add missing pieces for the pcmcia driver
Diffstat (limited to 'hw/kdrive/ipaq')
-rw-r--r--hw/kdrive/ipaq/Imakefile13
-rw-r--r--hw/kdrive/ipaq/ipaq.c90
2 files changed, 103 insertions, 0 deletions
diff --git a/hw/kdrive/ipaq/Imakefile b/hw/kdrive/ipaq/Imakefile
new file mode 100644
index 000000000..1c09a15a0
--- /dev/null
+++ b/hw/kdrive/ipaq/Imakefile
@@ -0,0 +1,13 @@
+XCOMM $XFree86$
+KDRIVE=..
+#include "../Kdrive.tmpl"
+
+SRCS = ipaq.c
+
+OBJS = ipaq.o
+
+INCLUDES = -I. $(KDINCS) -I$(KDRIVE)/fbdev -I$(KDRIVE)/pcmcia
+
+NormalLibraryObjectRule()
+NormalLibraryTarget(ipaq,$(OBJS))
+DependTarget()
diff --git a/hw/kdrive/ipaq/ipaq.c b/hw/kdrive/ipaq/ipaq.c
new file mode 100644
index 000000000..fae416157
--- /dev/null
+++ b/hw/kdrive/ipaq/ipaq.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright © 1999 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Adapted from ts300.c by Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * For the Compaq IPAQ handheld, with the HP VGA Out Card (F1252A).
+ */
+/* $XFree86: $ */
+
+#include "pcmcia.h"
+
+extern KdCardFuncs pcmciaFuncs;
+extern KdCardFuncs fbdevFuncs;
+
+void
+InitCard (char *name)
+{
+ KdCardAttr attr;
+ if (name && !strcmp(name, "pcmcia"))
+ KdCardInfoAdd (&pcmciaFuncs, &attr, 0);
+ else
+ KdCardInfoAdd (&fbdevFuncs, &attr, 0);
+}
+
+void
+InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv)
+{
+ KdInitOutput (pScreenInfo, argc, argv);
+}
+
+void
+InitInput (int argc, char **argv)
+{
+#ifdef __powerpc__
+ KdInitInput (&BusMouseFuncs, &LinuxKeyboardFuncs);
+#else
+ KdInitInput (&Ps2MouseFuncs, &LinuxKeyboardFuncs);
+#endif
+#ifdef TOUCHSCREEN
+ KdInitTouchScreen (&TsFuncs);
+#endif
+}
+
+extern pcmciaDisplayModeRec pcmciaDefaultModes[];
+
+int
+ddxProcessArgument (int argc, char **argv, int i)
+{
+ int ret;
+
+ if (!strcmp (argv[i], "-listmodes"))
+ {
+ int j = 0, bpp = 0;
+ ErrorF("Valid modes are....\n\n");
+
+ for (bpp = 8; bpp < 24; bpp += 8) {
+ while (pcmciaDefaultModes[j].Width != 0) {
+ if ((pcmciaDefaultModes[j].Width *
+ pcmciaDefaultModes[j].Height * bpp/8) <= 512 * 1024) {
+ ErrorF("%dx%dx%dx%d\n",
+ pcmciaDefaultModes[j].Width,
+ pcmciaDefaultModes[j].Height,
+ bpp,
+ pcmciaDefaultModes[j].Refresh);
+ }
+ j++;
+ }
+ j = 0;
+ }
+ exit(1);
+ }
+ return KdProcessArgument (argc, argv, i);
+}