Hi, When Zephaniah Hull sent in a patch for the OLPC touchpad [0], it was suggested that the psmouse driver be split out into separate components. What's currently there is way too fat, and people are not happy about adding even more code to the driver. I've taken a stab at doing just that. The attached patch splits the various protocol extensions into their own modules, defines a protocol registration layer, and allows modules to define their own psmouse protocols. Psmouse-base now only registers a few extensions, and then scans the ps/2 ports. Other modules (ie, psmouse-alps) register their extension, and force a rescan of all serio ports that the psmouse driver happens to be using. The max_proto stuff has been removed, with the intention that people should be loading (or unloading) only the modules they need, rather than playing around w/ module arguments. Rather than playing games w/ extension detection ordering, I opted to just reset the port before every scan. The patch is attached, and I have a git repository here: git://dev.laptop.org/users/dilinger/psmouse-split There's also a gitweb interface: http://dev.laptop.org/git?p=users/dilinger/psmouse-split;a=summary Comments and feedback are welcome. I intend to do a few further cleanups (at the very least, there are now stale header files that need to go away, and further testing is needed). [0] http://thread.gmane.org/gmane.linux.kernel/441574/