Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Oct 1996 17:00:53 +0900
From:      Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
To:        hackers@freebsd.org
Cc:        yokota@zodiac.mech.utsunomiya-u.ac.jp
Subject:   PS/2 mouse driver
Message-ID:  <199610030800.RAA06463@zodiac.mech.utsunomiya-u.ac.jp>

next in thread | raw e-mail | index | archive | help
Hi. This is the first time for me to send an e-mail to this mailing
list.

I have been using FreeBSD 2.1-RELEASE for a few months by now.
Recently I obtained a PS/2 mouse.  I recompiled the kernel with the
`psm' driver, and found the driver sometimes fails to recognize my
mouse upon boot up.  As I remember troubles with the `psm' device are
discussed in comp.unix.bsd.freebsd from time to time, I decided to do
some programming to improve the driver. Here is the result of my
little effort.  I attached the uuencoded gzip'ed source file at the
end of this mail.  If you kindly test the driver and find it useful, I
would be pleased.

Few notes:

1. The file can be compiled under 2.1-RELEASE. I expect it is also OK
with 2.1.5-RELEASE, though I haven't verified.  I also incorporated
the code found in `psm.c' in the `-current' tree, in the hope that
this driver can be tested under the latest development environment.
Define `PSM_CURRENT' to compile the driver for the `-current' tree
(see comments near the top of the file). However, since I don't run
the `-current' system, I can't guarantee if it actually works...

2. The probe routine (`psmprobe()') will succeed only when the PS/2
mouse port exists AND a mouse is attached to the port.  It will fail
if the port doesn't exist, or the port exists but a mouse doesn't.

3. If a PS/2 mouse exists and the driver still cannot find it, there
is a possible timing problem.  It appears it takes awhile to reset
the PS/2 mouse, and keyboard too, for that matter (I don't know
exactly how long we should wait).  You may need to increase
`PSM_RESETDELAY' or `PSM_MAXWAIT' to make the probe routine to find
your mouse.

4. The `PSM_NORESET' option, which will exclude the code to reset the
mouse while probing the mouse, is gone.  I understand this option was
for systems which hang the keyboard if the mouse reset command is
issued.  I now included the code which, I hope, will recover the
keyboard after the failed mouse reset (because a mouse doesn't exist). 
This is a kludge, but it works with motherboards with which I tested
the driver.

5. The `PSM_DEBUG' option controls debug output. When defined to 0, no
debug information is logged. When defined to 1 or 2, debug information
will be logged, using the `syslog' facility, at the `LOG_DEBUG' level
(see comments near the top of the file).  Currently `PSM_DEBUG' is
defined as 1 by default.  I will change this default to 0 once my code
is found to work.

6. I tested the driver with the following motherboards:
    ASUS P/I-P55TP4XE - This motherboard has the PS/2 mouse port.
    SHUTTLE HOT-433 - This motherboard doesn't have the mouse port, but 
    I suspect the keyboard controller may support the port, because the 
    manual says there is a version of the board with the mouse port.
I also tested the probe logic with the following machines by writing
a test program under DOS :-)
    Dell 310 - An old, 386-based machine without the mouse port.
    Dell 466/M - It has the mouse port.

If you have any questions or suggestions, do contact me. 
Please note that I don't subscribe to this mailing list; you have 
to send e-mail to me directly.  Thank you.

-----------------------------------------------------------------
Kazutaka YOKOTA
Dept. of Mechanical Systems Eng., 
Faculty of Eng., Utsunomiya University,
2753 Ishii-machi, Utsunomiya-shi, Tochigi 321, JAPAN.
E-mail: yokota@zodiac.mech.utsunomiya-u.ac.jp

-----------------  cut here  ------------------------------------
begin 640 psm.c.gz
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
8TXVIUZ4%D+[N&WWS&#[^!X1L:8Q(=0  
 
end




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610030800.RAA06463>