diff options
author | Keith Packard <keithp@keithp.com> | 2005-02-08 22:43:54 +0000 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2005-02-08 22:43:54 +0000 |
commit | db2c83551cd3516800b88784c461fb33ee15aacf (patch) | |
tree | de3e28f129911c4de73eeb5dfff325d7fb9b6994 /hw/kdrive/linux | |
parent | 70d3a9192feefd54be93ea71231574c3ed815bf2 (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.am | 2 | ||||
-rw-r--r-- | hw/kdrive/linux/linux.c | 43 |
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); |