195 lines
7.2 KiB
Groff
195 lines
7.2 KiB
Groff
.\" $NetBSD: pms.4,v 1.24 2008/12/14 13:51:33 wiz Exp $
|
|
.\"
|
|
.\" Copyright (c) 1993 Christopher G. Demetriou
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed for the
|
|
.\" NetBSD Project. See http://www.NetBSD.org/ for
|
|
.\" information about NetBSD.
|
|
.\" 4. The name of the author may not be used to endorse or promote products
|
|
.\" derived from this software without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
|
|
.\"
|
|
.Dd December 13, 2008
|
|
.Dt PMS 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm pms
|
|
.Nd PS/2 auxiliary port mouse driver
|
|
.Sh SYNOPSIS
|
|
.Cd pckbc* at isa?
|
|
.Cd pms* at pckbc?
|
|
.Cd wsmouse* at pms?
|
|
.Pp
|
|
.Cd options PMS_DISABLE_POWERHOOK
|
|
.Cd options PMS_SYNAPTICS_TOUCHPAD
|
|
.Cd options PMS_ELANTECH_TOUCHPAD
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
driver provides an interface to PS/2 auxiliary port mice within the
|
|
.Xr wscons 4
|
|
framework.
|
|
Parent device in terms of the autoconfiguration framework is
|
|
.Xr pckbc 4 ,
|
|
the PC keyboard controller.
|
|
.Dq pms
|
|
is a generic driver which supports mice using common variants of the PS/2
|
|
protocol, including wheel mice of the
|
|
.Dq IntelliMouse
|
|
breed.
|
|
Wheel movements are mapped to a third (z-) axis.
|
|
The driver is
|
|
believed to work with both 3-button and 5-button mice with scroll wheels.
|
|
Mice which use other protocol extensions are not currently supported, but
|
|
might be if protocol documentation could be found.
|
|
Mouse related data are accessed by
|
|
.Xr wsmouse 4
|
|
devices.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
driver has been updated to attempt to renegotiate mouse protocol after seeing
|
|
suspicious or defective mouse protocol packets, or unusual delays in the
|
|
middle of a packet; this should improve the chances that a mouse will recover
|
|
after being switched away or reset (for instance, by a console switch).
|
|
.Pp
|
|
The
|
|
.Va PMS_DISABLE_POWERHOOK
|
|
kernel option disables PS/2 reset on resume.
|
|
.Pp
|
|
In addition, the
|
|
.Nm
|
|
driver supports the
|
|
.Dq Synaptics
|
|
and
|
|
.Dq Elantech
|
|
touchpads in native mode, enabled with the
|
|
.Va PMS_SYNAPTICS_TOUCHPAD
|
|
and
|
|
.Va PMS_ELANTECH_TOUCHPAD
|
|
kernel options.
|
|
This allows the driver to take advantage of extra
|
|
features available on Synaptics and Elantech Touchpads.
|
|
The following
|
|
.Xr sysctl 8
|
|
variables control behavior of Synaptics touchpads:
|
|
.Bl -tag
|
|
.It Dv hw.synaptics.up_down_emulation
|
|
If the touchpad reports the existence of Up/Down buttons, this value
|
|
determines if they should be reported as button 4 and 5 events or if
|
|
they should be used to emulate some other event.
|
|
When set to 0, report Up/Down events as buttons 4 and 5.
|
|
When set to 1, the Up and Down buttons are both mapped to the middle button.
|
|
When set to 2 (default), the Up and Down buttons are used for Z-axis
|
|
emulation, which more closely resembles how mouse wheels operate.
|
|
.It Dv hw.synaptics.up_down_motion_delta
|
|
When the Up/Down buttons are used for Z-axis emulation, this value specifies
|
|
the emulated delta-Z value per click.
|
|
.It Dv hw.synaptics.gesture_move
|
|
Gestures will not be recognised if the finger moves by more than this
|
|
amount between taps.
|
|
.It Dv hw.synaptics.gesture_length
|
|
Gestures will not be recognised if the number of packets (at 80 packets
|
|
per second) between taps exceeds this value.
|
|
.It Dv hw.synaptics.edge_left
|
|
.It Dv hw.synaptics.edge_right
|
|
.It Dv hw.synaptics.edge_top
|
|
.It Dv hw.synaptics.edge_bottom
|
|
These values define a border around the touchpad which will be used for
|
|
edge motion emulation during a drag gesture.
|
|
If a drag gesture is in progress and the finger moves into this border,
|
|
the driver will behave as if the finger continues to move in the same
|
|
direction beyond the edge of the touchpad.
|
|
.It Dv hw.synaptics.edge_motion_delta
|
|
This specifies the pointer speed when edge motion is in effect.
|
|
.It Dv hw.synaptics.finger_high
|
|
The driver will ignore new finger events until the reported pressure exceeds
|
|
this value.
|
|
.It Dv hw.synaptics.finger_low
|
|
The driver will assume a finger remains on the touchpad until the
|
|
reported pressure drops below this value.
|
|
.It Dv hw.synaptics.two_fingers_emulation
|
|
More recent touchpads can report the presence of more than one finger
|
|
on the pad.
|
|
This value determines how such events are used.
|
|
If set to 0 (default), two-finger events are ignored.
|
|
If set to 1, two-finger events generate a right button click.
|
|
If set to 2, two-finger events generate a middle button click.
|
|
.It Dv hw.synaptics.scale_x
|
|
.It Dv hw.synaptics.scale_y
|
|
Scale factor used to divide movement deltas derived from Synaptics
|
|
coordinates (0-6143) to yield more reasonable values (default 16).
|
|
.It Dv hw.synaptics.max_speed_x
|
|
.It Dv hw.synaptics.max_speed_y
|
|
Limits pointer rate of change (after scaling) per reported movement
|
|
event (default 32).
|
|
.It Dv hw.synaptics.movement_threshold
|
|
Movements of less than this value (in Synaptics coordinates) are
|
|
ignored (default 4).
|
|
.El
|
|
.Pp
|
|
The following
|
|
.Xr sysctl 8
|
|
variables control behavior of Elantech touchpads:
|
|
.Bl -tag
|
|
.It Dv hw.elantech.xy_precision_shift
|
|
.It Dv hw.elantech.z_precision_shift
|
|
Increased values improve the accuracy of X, Y, and Z-axis reporting
|
|
at the expense of slower mouse movement (default 2 for xy,
|
|
and 3 for z).
|
|
.El
|
|
.Pp
|
|
For Elantech touchpads, the Z-axis is emulated using two-finger
|
|
Y-axis reporting.
|
|
.Sh SEE ALSO
|
|
.Xr pckbc 4 ,
|
|
.Xr ums 4 ,
|
|
.Xr wsmouse 4
|
|
.Sh AUTHORS
|
|
The
|
|
.Nm
|
|
driver was originally written by Christopher G. Demetriou.
|
|
The changes to merge the
|
|
.Dq IntelliMouse
|
|
protocol in, and reset the mouse in the event of protocol problems, were
|
|
contributed by Peter Seebach.
|
|
Special thanks to Ray Trent, at Synaptics, who contributed valuable
|
|
insight into how to identify bogus mouse data.
|
|
The changes to add
|
|
.Dq Synaptics
|
|
pad support were by Ales Krenek, Kentaro A. Kurahone, and Steve C. Woodford.
|
|
The changes to add
|
|
.Dq Elantech
|
|
pad support were by Jared D. McNeill.
|
|
.Sh BUGS
|
|
It is possible for the driver to mistakenly negotiate the non-scroll-wheel
|
|
protocol, after which it is unlikely to recover until the device is closed
|
|
and reopened.
|
|
.Pp
|
|
The
|
|
.Dq Elantech
|
|
pad code only supports trackpads with firmware version 2.48 or above.
|