Commit Graph

41 Commits

Author SHA1 Message Date
bde
60639b8ee4 Removed unused #includes. 1997-07-20 14:10:18 +00:00
yokota
b50ca5ad08 Add experimental APM support for some laptops.
If the configuration option PSM_HOOKAPM is defined and the APM device
is available, the psm driver will issue the ENABLE command to the
pointing device at the resume APM event if the device was open when
the system went into suspended mode. If the option
PSM_RESETAFTERSUSPEND is specified in addition to PSM_HOOKAPM, the
driver will try to reset the pointing device before sending the
ENABLE command.

Built-in PS/2-type pointing devices in some laptops (all the reports I
heard were about Toshiba models) sometimes don't work immediately
after the system is resumed. The device MAY become available after a
while. The system may exhibit the same symptom in other OS's too
(no, FreeBSD is not the only OS that is suffering :-).

I don't know the correct way of solving this yet, but it's been
reported that issuing the ENABLE command after resumption wakes up the
pointing device.

Without PSM_HOOKAPM, the psm driver behaves in the same way as before.

Problem reported in the bsd-nomads mailing list in Japan.
1997-06-30 12:52:57 +00:00
yokota
73cf2040ba scprobe() referred to the psm_softc structure even after it was
freed ;-<

PR:		kern/3694
1997-05-27 11:55:41 +00:00
bde
85de5fc137 Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined.
Fixed everything that depended on getting fcntl.h stuff from the wrong
place.  Most things don't depend on file.h stuff at all.
1997-03-23 03:37:54 +00:00
peter
c8dcd04895 Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not
ready for it yet.
1997-02-22 09:48:43 +00:00
nate
b2be7a41d7 Bring back the fix from 1.32 that got spammed by recent changes. 1997-01-16 18:57:19 +00:00
sos
b8020f7cd2 Upgrade the kbdio rutines to provide queued kbd & mouse events.
Minor other updates to syscons by me.

Submitted by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1997-01-15 18:16:32 +00:00
jkh
9c0cd3f9df Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
nate
b73fcd71b3 Fix for PR/2333 - psm0 panics if no mouse attached:
The problem is that `psmopen()' doesn't validate a pointer before
  using it.

Submitted by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1997-01-05 06:29:40 +00:00
sos
c579cf796a Alot of fixes from kazu:
1. All the suggestions earlier made by Bruce: renaming some symbols,
stricter error checking, removing redundant code, etc.

2. The `psm' driver preserves the default counter resolution and
report rate, whatever they are after reset. (Based on reports and
suggestion from Nate and Rob Bolin).

3. The `psm' driver now does not check the so-called sync. bit in the
first byte of the data packet by default, so that the tapping feature
of ALPUS GlidePoint works (based on reports from Louis Mamakos). I
tested the code with ALPUS Desktop GlidePoint (M/N GP101) and found
no problem; tapping worked. It appears ALPUS produces several models
of GlidePoint. I hope the other models are OK too.

The check code can still be activated by defining the PSM_CHECKSYNC
option in the config file. (The bit checking slightly reduces, if not
completely eliminates, weird mouse behavior cased by unsynchronized
mouse data packets. It also helps us to detect if the mouse interrupt
can ever be lost. But, well, if there are devices which cannot be
supported this way...)

4. The `psm' driver does not include the protocol emulation code by
default. The code can still be compiled in if the PSM_EMULATION option
is specified in the config file. Louis Mamakos suggests the emulation
code is putting too much in the kernel, and `moused' works well.
I will think about this later and decide if the entire emulation
code should be removed.

5. And, of course, the fix in `scprobe()' from Bruce to cure the
UserConfig problem. My code in `kbdio.c' is slightly different from
his patch, but has the same effect. There still is a possibility that
`scprobe()' gets confused, if, for whatever reasons, the user holds
down a key for very long time during the boot process. But we cannot
cope with everything, can we?

Submitted by:	Kazutaka YOKOTA (yokota@zodiac.mech.utsunomiya-u.ac.jp)
1996-12-01 19:05:50 +00:00
phk
c6328e0dbd I broke psm.c and none of the 5 reviewers noticed :-) 1996-11-28 17:18:56 +00:00
phk
59cdfab809 Waste less space. 1996-11-27 22:52:25 +00:00
nate
b1bf3533dc Disable mouse acceleration by default to be the same as the previous
driver.
1996-11-15 17:30:29 +00:00
nate
902e1d64d0 KNF'ify and fix boo-boo I made in last commit. 1996-11-15 06:17:36 +00:00
nate
8936ec8b64 Removed 2.1-compatability code and made the debugging less verbose by
default.
1996-11-15 05:41:34 +00:00
nate
68100a4d30 New PS/2 mouse drive which uses the new 'shared' keyboard/psm read
routines.  An older version of this was tested successfully on all of my
systems with PS/2 mice.  This was brought in without testing because it
is necessary due to the previously committed syscons changes.

Submitted by:	Kazutaka Yokota <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1996-11-15 05:30:52 +00:00
phk
6eb6a7debf Remove devconf, it never grew up to be of any use. 1996-09-06 23:09:20 +00:00
nate
db1e756357 Simplify probe. Removed the DELAY() as it's not needed. 1996-05-07 22:33:19 +00:00
nate
96b60d6540 Removed one of the un-documented CTRL pokes, and replace it with a one
second delay.  My ps/2 mouse is now found reliably on my ThinkPad (it
didn't before) and still works on my NEC Versa.

Submitted by:	Richard Wiwatowski <rjwiwat@adelaide.on.net>
1996-05-07 21:59:44 +00:00
nate
2bcbe8d562 Make sure you include <sys/devconf.h> if you have devconf code. :( 1996-05-07 21:56:46 +00:00
nate
22fb7ee05e Added code to avoid keyboard 'hangs' during the probe.
Submitted by:	Richard Wiwatowski <rjwiwat@adelaide.on.net>
1996-05-07 21:48:55 +00:00
nate
2b31f09e5a Added devconf() support.
Obtained from: Richard Wiwatowski <rjwiwat@adelaide.on.net>
1996-05-07 21:32:29 +00:00
nate
7ecf2bf50b Re-wrote psm_poll_status() to use the ioport supplied in the kernel
config file instead of hard-coding it in the driver.  No functional
differences.

This is based on the code Richard Wiwatowski <rjwiwat@adelaide.on.net>
sent to the mailing list.
1996-05-07 21:11:13 +00:00
nate
a0b6bdf394 Last typo fixed (network came up for a few minutes). 1996-05-07 20:39:34 +00:00
nate
48d719d649 Augh, more typos.
(I hate *Sprint*, since the network is down it's hard to test things well.)
1996-05-07 20:08:21 +00:00
nate
6d090859db Whoops, brain-o's with the previous commit. Fix up quite a few typos. 1996-05-07 19:40:47 +00:00
nate
53d656f6d7 - KNF'ify
- Prepend PSM_ to some defines to avoid any possible name-space problems
- Use some already defined constants instead of magic #'s where appropriate.

[ No functional changes (yet) ]
1996-05-07 19:01:31 +00:00
scrappy
00f73c3d68 Switched from using devfs_add_sw() to using devfs_add_swf()
Reviewed by:	julian@freebsd.org
1996-03-28 14:29:52 +00:00
bde
7a861ac077 Removed unused #includes. 1995-12-15 00:40:38 +00:00
phk
d15f2efb88 Staticize and cleanup. 1995-12-10 13:40:44 +00:00
julian
2a6a55ef99 Pass 3 of the great devsw changes
most devsw referenced functions are now static, as they are
in the same file as their devsw structure. I've also added DEVFS
support for nearly every device in the system, however
many of the devices have 'incorrect' names under DEVFS
because I couldn't quickly work out the correct naming conventions.
(but devfs won't be coming on line for a month or so anyhow so that doesn't
matter)

If you "OWN" a device which would normally have an entry in /dev
then search for the devfs_add_devsw() entries and munge to make them right..
check out similar devices to see what I might have done in them in you
can't see what's going on..
for a laugh compare conf.c conf.h defore and after... :)
I have not doen DEVFS entries for any DISKSLICE devices yet as that will be
a much more complicated job.. (pass 5 :)

pass 4 will be to make the devsw tables of type (cdevsw * )
rather than (cdevsw)
seems to work here..
complaints to the usual places.. :)
1995-12-08 11:19:42 +00:00
julian
6458dd5afd If you're going to mechanically replicate something in 50 files
it's best to not have a (compiles cleanly) typo in it! (sigh)
1995-11-29 14:41:20 +00:00
julian
6c979de707 OK, that's it..
That's EVERY SINGLE driver that has an entry in conf.c..
my next trick will be to define cdevsw[] and bdevsw[]
as empty arrays and remove all those DAMNED defines as well..

Each of these drivers has a SYSINIT linker set entry
that comes in very early.. and asks teh driver to add it's own
entry to the two devsw[] tables.

some slight reworking of the commits from yesterday (added the SYSINIT
stuff and some usually wrong but token DEVFS entries to all these
devices.

BTW does anyone know where the 'ata' entries in conf.c actually reside?
seems we don't actually have a 'ataopen() etc...

If you want to add a new device in conf.c
please  make sure I know
so I can keep it up to date too..

as before, this is all dependent on #if defined(JREMOD)
(and #ifdef DEVFS in parts)
1995-11-29 10:49:16 +00:00
julian
c69a51501b the second set of changes in a move towards getting devices to be
totally dynamic.

this is only the devices in i386/isa
I'll do more tomorrow.
they're completely masked by #ifdef JREMOD at this stage...
the eventual aim is that every driver will do a SYSINIT
at startup BEFORE the probes, which will effectively
link it into the devsw tables etc.

If I'd thought about it more I'd have put that in in this set (damn)
The ioconf lines generated by config will also end up in the
device's own scope as well, so ioconf.c will eventually be gutted
the SYSINIT call to the driver will include a phase where the
driver links it's ioconf line into a chain of such. when this phase is done
then the user can modify them with the boot: -c
config menu if he wants, just like now..
config will put the config lines out in the .h file
(e.g. in aha.h will be the addresses for the aha driver to look.)
as I said this is a very small first step..
the aim of THIS set of edits is to not have to edit conf.c at all when
adding a new device.. the tabe will be a simple skeleton..

when this is done, it will allow other changes to be made,
all teh time still having a fully working kernel tree,
but the logical outcome is the complete REMOVAL of the devsw tables.

By the end of this, linked in drivers will be exactly the same as
run-time loaded drivers, except they JUST HAPPEN to already be linked
and present at startup..
the SYSINIT calls will be the equivalent of the "init" call
made to a newly loaded driver in every respect.

For this edit,
each of the files has the following code inserted into it:

obviously, tailored to suit..
----------------------somewhere at the top:
#ifdef JREMOD
#include <sys/conf.h>
#define CDEV_MAJOR 13
#define BDEV_MAJOR 4
static void 	sd_devsw_install();
#endif /*JREMOD */
---------------------somewhere that's run during bootup: EVENTUALLY a SYSINIT
#ifdef JREMOD
        sd_devsw_install();
#endif /*JREMOD*/
-----------------------at the bottom:
#ifdef JREMOD
struct bdevsw sd_bdevsw =
	{ sdopen,	sdclose,	sdstrategy,	sdioctl,	/*4*/
	  sddump,	sdsize,		0 };

struct cdevsw sd_cdevsw =
	{ sdopen,	sdclose,	rawread,	rawwrite,	/*13*/
	  sdioctl,	nostop,		nullreset,	nodevtotty,/* sd */
	  seltrue,	nommap,		sdstrategy };

static sd_devsw_installed = 0;

static void 	sd_devsw_install()
{
	dev_t descript;
	if( ! sd_devsw_installed ) {
		descript = makedev(CDEV_MAJOR,0);
		cdevsw_add(&descript,&sd_cdevsw,NULL);
#if defined(BDEV_MAJOR)
		descript = makedev(BDEV_MAJOR,0);
		bdevsw_add(&descript,&sd_bdevsw,NULL);
#endif /*BDEV_MAJOR*/
		sd_devsw_installed = 1;
	}
}
#endif /* JREMOD */
1995-11-28 09:42:06 +00:00
bde
55162406a8 The cmd' and addr' args to psmioctl() were in the wrong order. This
probably broke MOUSEIOCREAD which is the only ioctl supported.
1995-09-05 06:23:39 +00:00
bde
3774f7f8c9 Don't include <sys/tty.h> in drivers that aren't tty drivers or in general
files that don't depend on the internals of <sys/tty.h>
1995-07-16 10:13:08 +00:00
dfr
d45b44a63c Add an option to the psm driver to skip the parts of the probe which break
some laptops with PS/2 mice.

Submitted by:	nsayer@quack.kfu.com
1995-06-22 10:56:56 +00:00
rgrimes
b6f07b22b2 Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
bde
54897980a3 Replace all remaining instances of i386/include' by machine' and fix
nearby #include inconsistencies.
1995-02-26 05:14:53 +00:00
dg
9305e96e91 Removed inclusion of pio.h and cpufunc.h (cpufunc.h is included from
systm.h). Merged functionality of pio.h into cpufunc.h. Cleaned up some
related code.
1994-09-16 13:33:56 +00:00
dfr
677f894dea Added the psm driver from 1.1.5.
Submitted by:	dfr
1994-09-09 11:27:50 +00:00