summaryrefslogtreecommitdiff
path: root/hw/kdrive/linux
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2005-02-08 22:43:54 +0000
committerKeith Packard <keithp@keithp.com>2005-02-08 22:43:54 +0000
commitdb2c83551cd3516800b88784c461fb33ee15aacf (patch)
treede3e28f129911c4de73eeb5dfff325d7fb9b6994 /hw/kdrive/linux
parent70d3a9192feefd54be93ea71231574c3ed815bf2 (diff)
hw/kdrive/ati/radeon_composite.c Support linear filtering
Change how touch screens work -- make them just another 'mouse' device. Add unfinished (and unused) code to accelerate tiled fills.
Diffstat (limited to 'hw/kdrive/linux')
-rw-r--r--hw/kdrive/linux/Makefile.am2
-rw-r--r--hw/kdrive/linux/linux.c43
2 files changed, 25 insertions, 20 deletions
diff --git a/hw/kdrive/linux/Makefile.am b/hw/kdrive/linux/Makefile.am
index 1edd7713f..c12adc29d 100644
--- a/hw/kdrive/linux/Makefile.am
+++ b/hw/kdrive/linux/Makefile.am
@@ -21,6 +21,7 @@ liblinux_a_SOURCES = \
klinux.h \
linux.c \
mouse.c \
+ evdev.c \
ms.c \
ps2.c \
$(TSLIB_C) \
@@ -32,6 +33,7 @@ liblinux_a_DEPENDENCIES = \
keyboard.c \
linux.c \
mouse.c \
+ evdev.c \
ms.c \
ps2.c \
$(TSLIB_C) \
diff --git a/hw/kdrive/linux/linux.c b/hw/kdrive/linux/linux.c
index 23ae50452..9c06c8008 100644
--- a/hw/kdrive/linux/linux.c
+++ b/hw/kdrive/linux/linux.c
@@ -429,28 +429,31 @@ LinuxFini (void)
}
memset (&vts, '\0', sizeof (vts)); /* valgrind */
ioctl (LinuxConsoleFd, VT_GETSTATE, &vts);
- /*
- * Find a legal VT to switch to, either the one we started from
- * or the lowest active one that isn't ours
- */
- if (activeVT < 0 ||
- activeVT == vts.v_active ||
- !(vts.v_state & (1 << activeVT)))
+ if (vtno == vts.v_active)
{
- for (activeVT = 1; activeVT < 16; activeVT++)
- if (activeVT != vtno && (vts.v_state & (1 << activeVT)))
- break;
- if (activeVT == 16)
+ /*
+ * Find a legal VT to switch to, either the one we started from
+ * or the lowest active one that isn't ours
+ */
+ if (activeVT < 0 ||
+ activeVT == vts.v_active ||
+ !(vts.v_state & (1 << activeVT)))
+ {
+ for (activeVT = 1; activeVT < 16; activeVT++)
+ if (activeVT != vtno && (vts.v_state & (1 << activeVT)))
+ break;
+ if (activeVT == 16)
+ activeVT = -1;
+ }
+ /*
+ * Perform a switch back to the active VT when we were started
+ */
+ if (activeVT >= -1)
+ {
+ ioctl (LinuxConsoleFd, VT_ACTIVATE, activeVT);
+ ioctl (LinuxConsoleFd, VT_WAITACTIVE, activeVT);
activeVT = -1;
- }
- /*
- * Perform a switch back to the active VT when we were started
- */
- if (activeVT >= -1)
- {
- ioctl (LinuxConsoleFd, VT_ACTIVATE, activeVT);
- ioctl (LinuxConsoleFd, VT_WAITACTIVE, activeVT);
- activeVT = -1;
+ }
}
close(LinuxConsoleFd); /* make the vt-manager happy */
fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0);