[gpm] [PATCH 0/18] GPM evdev support + more

Dmitry Torokhov dtor_core@ameritech.net
Tue Aug 10 08:48:43 CEST 2004


Hi,

Please take a look at the patches below and consider for inclusion. The main
goal is to add proper evdev support to GPM, in process the old code has been
refactored and split into more manageable chunks. For what it worth most of
the patches have been included in gpm shipped with Fedora Core 2 so they
should be reasonably tested.

The patches are against the latest devel monotone tree. Please consider for
inclusion.

01-other-scms.patch
	- change make process to be more friendly to SCMs other than monotone
	  that keep revision data in subdirectories by explicitely spelling
	  out which directories contain source code.

02-separate-console-handling.patch
	- move console handling functions to console.c module to reduce
	  clutter in gpm.c.

03-separate-repeater-handling.patch
	- split repeater-handling code into separate data structures
	  and functions.

04-separate-client-handling.patch
	- move client handling functions to client.c module to reduce
	  clutter in gpm.c, cleanups.

05-optparser.patch
	- split option parsing (-o text) into separate file suitable for
	  use outside of mice.c

06-many-mice.patch
	- get rid of 2 mice limitation. This is necessary for evdev support
	  as at least on my laaptop I have 3 active evdevs (touchpad, track
	  stck and USB mouse).

07-absolute-device-attr.patch
	- allow same protocol control devices in absolute and relative mode.
	  Before, if a protocold driver supported devices in both relative
  	  and absolute mode it would, like Wacom, change absolute attribute
  	  right in the Gpm_Type structure. It obviously does not work if you
  	  have 2 devices using 2 different methods at the same time. Again,
	  very important for proper evdev support.

08-gpm-cleanup.patch
	- remove global "state" structure, code cleanups.

09-better-button-multiplex.patch
	- Correctly multiplex button events from several mice. This allows
	  me use my track stick that does not have buttons as they are all
	  connected to the touchpad.

10-remove-T-option.patch
	- Kill it, not useful as it stands.

11-synaptics-warning.patch
	- Suppress harmless warning about unused debug code in synaptics
	  driver.

12-evdev-support.patch
	- Extended support for event devices - supports relative, absolute
	  devices and touchpads. Uses ioctls to retrieve device capabilities
	  and select best mode.

13-evdev-tap-and-select.patch
	- Tap-and-select support in evdev driver (for "touchpad" and
	  "synaptics" types).

14-evdev-2.6-update.patch
	- Update evdev protocol to support kernels >= 2.6.0-test.
	  Do not use Oops in evdev in case of crazy input parameters.
	  Use "get ID" IOCTL to detect Synaptics hardware.

15-evdev-man-update.patch
	- Add evdev protocol documentation.

16-remove-pts-console.patch
	- Remove GPM_PTS_CONSOLE and have Gpm_Open simply return -1 if local
	  console (/dev/ttyX or /dev/vc/X) is not accessible and client is not
	  running inside xterm.
	  GPM services are only available locally, TIOCLINUX is not valid on
  	  /dev/pts/X and using it will cause GPM (server) to oops. And it does
	  unless one uses devfs.

17-liblow-cleanup.patch
	- split into smaller functions, fixed some memory leaks in Gpm_Open.

18-console-selection-split.patch
	- Separate console and selection handling, separate library and
	  server console implementation so server can be changed freely
	  without fear of breaking clients API.

-- 
Dmitry


More information about the gpm mailing list