Commit Graph

61 Commits

Author SHA1 Message Date
Bruce Evans
3aae7b16d2 Fixed the type of some ivar access functions. Ivars have type uintptr_t,
not u_long.  On i386's with 64-bit longs, returning u_longs indirectly
in (more than) the space reserved for uintptr_t's tended to corrupt the
previous frame pointer in the stack frame, so it was not easy to debug.
The type mismatches are hidden by the bogus cast in DEVMETHOD().
2000-04-30 10:01:56 +00:00
Poul-Henning Kamp
3389ae9350 Remove ~25 unneeded #include <sys/conf.h>
Remove ~60 unneeded #include <sys/malloc.h>
2000-04-19 14:58:28 +00:00
Kazutaka YOKOTA
d0a99324a3 - Add temporary workaround to fool some "clever" KVM switch products
which think they know the IntelliMouse 4-byte packet and believe,
  wrongly, that any other protocols use 3-byte packets.
- Update a couple of comment lines for A4 Tech mice.
2000-04-02 08:28:21 +00:00
Kazutaka YOKOTA
ea20901db7 Missing pieces of the last commit ;-( 2000-03-19 04:37:18 +00:00
Kazutaka YOKOTA
db3e34cb71 - Properly keep track of I/O port resources.
- Use bus_space_read/write() to access the ports.
2000-03-19 03:25:13 +00:00
Kazutaka YOKOTA
3346e881c1 - Add Support for the following PS/2 mice:
- Microsoft IntelliMouse Explorer: 2 buttons on top, 2 side buttons
    and a wheel which also acts as the middle button.  The mouse is
    recognized as "IntelliMouse Explorer".
  - Genius NetScroll Optical: 2 buttons on top, 2 side buttons and a
    wheel which also acts as the middle button.  The mouse is recognized
    as "NetMouse/NetScroll Optical".
  - MouseSystems SmartScroll Mouse (OEM from Genius?): 3 buttons on top,
    1 side button and a wheel.  The mouse is recognized as Genius
    "NetScroll".
  - IBM ScrollPoint: 2 buttons on top and a stick between the buttons.
    The stick can perform "horizontal scroll" in W*ndows environment.
    The horizontal movement of the stick is detected.  It is currently
    mapped to the Z axis movement in the same way as the first wheel.
    The mouse is recognized as "MouseMan+", as it is considered to be
    a variation of MouseMan.
  - A4 Tech 4D and 4D+ mice. These mice have two wheels! The movement
    of the second wheel is reported as the Z axis movement in the
    same way as the first wheel. These mice are recognized as "4D
    Mouse" and "4D+ Mouse".
  - Tweak IntelliMouse support code a bit so that less-than-compatible
    wheel mice can work properly with the psm driver.
- Add driver configuration flags which correspond to the kernel
  options PSM_HOOKRESUME and PSM_RESETAFTERSUSPEND, so that we don't
  need to recompile the kernel when we need these functions.
- Properly keep track of the irq resource.
- Add a watchdog timer in case interrupts are lost (experimental).
- Add `detach' function (experimental).
2000-03-18 15:21:40 +00:00
Kazutaka YOKOTA
a68d00e3fe One more patch for the atkbd driver. It will make sure that the
keyboard port and interrupt is enabled and the driver is attached even
when the keyboard itself is not present when the system is booting.
(This has been the behavior through out 2.X and 3.X, but is somehow
broken in 4.0.)

# I certainly don't recommend people to `hot-plug' the AT keyboard,
# because the interface isn't designed for hot-plugging and such act
# will often break the keyboard controller.  But, so many people want to
# do that anyway...

Approved by: jkh
2000-03-11 07:44:10 +00:00
Peter Wemm
a6b8513096 Don't free(sc) before returning an error from probe, it does not "belong"
to us, subr_bus.c will free it.  This bug (panic: freeing already free)
was exposed by kern/subr_bus.c rev 1.54

Not explicitly approved by: jkh (but this is a showstopper and fallout of
the above approved change)
2000-03-01 19:30:36 +00:00
Kazutaka YOKOTA
9e6f8bee0e Do not add children (atkbd and psm) if they are disabled.
Approved by: jkh
2000-02-25 11:40:31 +00:00
Kazutaka YOKOTA
aec1fa1ca3 - Be slightly more cautious and try to make more sure the keyboard
input queue is emptied when initializing the keyboard controller.
- Remove an unnecessary `if' statement.

Approved by: jkh
2000-02-11 01:22:30 +00:00
Peter Wemm
8f8e587948 Use config's conditional compilation rather than using #ifdefs that make
modular compilation harder.  I'm doing this because people seem to like
cut/pasting examples of bad practices in existing code.
2000-01-29 15:08:56 +00:00
Kazutaka YOKOTA
7c6f57a384 - Add some comment from bde on the keyboard interrupt.
- Fix obsolete comments.
2000-01-20 13:32:53 +00:00
Kazutaka YOKOTA
7642cc829e Rework shifta/ctla/alta key handling. It appears that there was
misunderstanding between the PR originator and me.  I hope I got it
right this time.
2000-01-11 13:39:05 +00:00
Kazutaka YOKOTA
56f5e27c4b Obtain the initial key repeat rate setting via BIOS in i386 if
possible.
2000-01-10 08:52:32 +00:00
Kazutaka YOKOTA
934d11e395 Add some keyboard IDs. 2000-01-10 08:50:43 +00:00
Peter Wemm
664a31e496 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 04:46:21 +00:00
Kazutaka YOKOTA
273157da59 - Add the device resume method. It supercedes the existing resume
routine which hooks the apm driver.
- Rename the PSM_HOOKAPM option to PSM_HOOKRESUME.
- Delete unnecessary #include.
1999-12-15 10:04:05 +00:00
Kazutaka YOKOTA
579958932a - Remember the keyboard repeat delay and rate.
- Add a new ioctl, KDGETREPEAT, to retrieve the keyboard repeat rate.
- Delete unnecessary #include.
1999-12-13 09:31:43 +00:00
Kazutaka YOKOTA
82d654e855 Add support new keys: lshifta, rshifta, lctrla, rctrla, lalta, and
ralta.  These keys combine shift/ctrl/alt function and the AltLock
function.  When these keys pressed together with another key, they act
just like the ordinary shift/ctrl/alt keys.  When these keys are
pressed and released alone, Alt lock state is toggled.

PR: kern/12475
1999-12-10 04:31:33 +00:00
Matthew N. Dodd
fe0d408987 Remove the 'ivars' arguement to device_add_child() and
device_add_child_ordered().  'ivars' may now be set using the
device_set_ivars() function.

This makes it easier for us to change how arbitrary data structures are
associated with a device_t.  Eventually we won't be modifying device_t
to add additional pointers for ivars, softc data etc.

Despite my best efforts I've probably forgotten something so let me know
if this breaks anything.  I've been running with this change for months
and its been quite involved actually isolating all the changes from
the rest of the local changes in my tree.

Reviewed by:	peter, dfr
1999-12-03 08:41:24 +00:00
Peter Wemm
1faa5a84a8 Use DEVICE_MODULE() directly instead of DEV_DRIVER_MODULE. psm.c uses
make_dev() already.
1999-11-08 07:29:23 +00:00
Poul-Henning Kamp
d6a0e38a1b Remove five now unused fields from struct cdevsw. They should never
have been there in the first place.  A GENERIC kernel shrinks almost 1k.

Add a slightly different safetybelt under nostop for tty drivers.

Add some missing FreeBSD tags
1999-09-25 18:24:47 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Poul-Henning Kamp
9dcbe2404a Convert DEVFS hooks in (most) drivers to make_dev().
Diskslice/label code not yet handled.

Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers)

Add the correct hook for devfs to kern_conf.c

The net result of this excercise is that a lot less files depends on DEVFS,
and devtoname() gets more sensible output in many cases.

A few drivers had minor additional cleanups performed relating to cdevsw
registration.

A few drivers don't register a cdevsw{} anymore, but only use make_dev().
1999-08-23 20:59:21 +00:00
Kazutaka YOKOTA
800da3b22a - Remove cdevsw entry points in individual keyboard drivers;
instead, use generic entry points for all drivers.
- Eliminate bogus makedev().
- Eliminate softc in the lower drivers, as it is no longer necessary.

Submitted (95%) by: phk
1999-08-22 09:52:33 +00:00
Kazutaka YOKOTA
7d27f93ac4 Improve the detection code for GlidePoint. This is still a kludge,
but better than before...

PR: kern/13215
1999-08-22 06:11:52 +00:00
Kazutaka YOKOTA
e6d37e188f Recognize Interlink VersaPad. `Tap' action will be recognized
as the button 4.

Submitted by: Masachika ISHIZUKA <ishizuka@ish.org>
1999-08-17 12:14:13 +00:00
Kazutaka YOKOTA
6c6028fffb Correctly save `flags' bits. 1999-08-15 06:06:14 +00:00
Matthew N. Dodd
15317dd875 Alter the behavior of sys/kern/subr_bus.c:device_print_child()
- device_print_child() either lets the BUS_PRINT_CHILD
	  method produce the entire device announcement message or
	  it prints "foo0: not found\n"

Alter sys/kern/subr_bus.c:bus_generic_print_child() to take on
the previous behavior of device_print_child() (printing the
"foo0: <FooDevice 1.1>" bit of the announce message.)

Provide bus_print_child_header() and bus_print_child_footer()
to actually print the output for bus_generic_print_child().
These functions should be used whenever possible (unless you can
just use bus_generic_print_child())

The BUS_PRINT_CHILD method now returns int instead of void.

Modify everything else that defines or uses a BUS_PRINT_CHILD
method to comply with the above changes.

	- Devices are 'on' a bus, not 'at' it.
	- If a custom BUS_PRINT_CHILD method does the same thing
	  as bus_generic_print_child(), use bus_generic_print_child()
	- Use device_get_nameunit() instead of both
	  device_get_name() and device_get_unit()
	- All BUS_PRINT_CHILD methods return the number of
	  characters output.

Reviewed by: dfr, peter
1999-07-29 01:03:04 +00:00
Kazutaka YOKOTA
29e59d7deb - Move the `return' statement the correct place so that the keyboard
won't be initialized if `atkbd?' is disabled.
1999-07-18 06:16:25 +00:00
Kazutaka YOKOTA
01533d852e Improve Logitech MouseMan+ protocol support. 1999-07-12 15:16:14 +00:00
Kazutaka YOKOTA
551e01b126 Implement a kludge for some wheeled mice for which infamous "psmintr:
out of sync..." messages is generated and the wheel movement is not
recognized.

The trick is found by Takashi Nishida.
1999-07-12 13:40:21 +00:00
Poul-Henning Kamp
03016f421b Remove cmaj and bmaj args from DEV_DRIVER_MODULE. 1999-07-04 14:58:56 +00:00
Kazutaka YOKOTA
a6c5d058bc Allocate the port resource when attaching the keyboard controller,
rather than when the individual child device is attached.
1999-06-29 17:35:09 +00:00
Kazutaka YOKOTA
2b9e6c7549 Fix PS/2 MouseMan+ protocol. We have been looking at a wrong place
for the sign bit for roller movement!
1999-06-03 12:42:10 +00:00
Poul-Henning Kamp
4e2f199e0c This commit should be a extensive NO-OP:
Reformat and initialize correctly all "struct cdevsw".

        Initialize the d_maj and d_bmaj fields.

        The d_reset field was not removed, although it is never used.

I used a program to do most of this, so all the files now use the
same consistent format.  Please keep it that way.

Vinum and i4b not modified, patches emailed to respective authors.
1999-05-30 16:53:49 +00:00
Doug Rabson
f7f2df54bb No support for pnp yet. 1999-05-30 11:12:30 +00:00
Doug Rabson
6f50cfb43a Use the resource apis to manipulate resources. 1999-05-22 15:47:34 +00:00
Kazutaka YOKOTA
d3c87b8512 - Include isa/isareg.h rather than i386/isa/isa.h for i386.
- Remove unused (thus, commented out) section of code.
1999-05-20 09:49:33 +00:00
Kazutaka YOKOTA
aee1b285f1 Include sys/isa/isareg.h rather than i386/isa/isa.h for i386. 1999-05-20 09:48:13 +00:00
Kazutaka YOKOTA
ec6948ccea Slight reorganization of internal interface in the keyboard controller
driver.
1999-05-18 11:33:14 +00:00
Kazutaka YOKOTA
83fc7c6ced The previous commit was wrong! This is the correct one ;-< 1999-05-18 11:05:58 +00:00
Peter Wemm
e2eb6a14cd Remove hackish foot protection.. If you ask for an atkbd on an isa bus
rather than on the keyboard controller, you will get it.. (and shoot your
feet)
1999-05-09 20:45:53 +00:00
Poul-Henning Kamp
52400704e9 Unconfuse DEV_MODULE() and DEV_DRIVER_MODULE() about the difference between
a major number for a dev_t.
1999-05-09 13:00:50 +00:00
Kazutaka YOKOTA
194da42d48 Don't confuse cursor keys with numpad keys when composing a char code.
PR: kern/10988
1999-05-09 05:00:19 +00:00
Kazutaka YOKOTA
57600c2385 Minor tweak after the introduction of new-bus to i386; properly
check "disabled" and "flags" probe hints.
1999-05-09 04:59:24 +00:00
Kazutaka YOKOTA
d1a67a9435 Revive APM hooking code for i386 arch now that the same source file is
used for both i386 and alpha (the code was in sys/i386/isa/psm.c, but
was disabled when ported to alpha.)
1999-05-09 04:58:35 +00:00
Doug Rabson
566643e39e Move the declaration of the interrupt type from the driver structure
to the BUS_SETUP_INTR call.
1999-05-08 21:59:43 +00:00
Peter Wemm
6d9ecc2ba7 Print the child IRQ on it's identification line. 1999-05-08 20:25:38 +00:00
Poul-Henning Kamp
46eede0058 Continue where Julian left off in July 1998:
Virtualize bdevsw[] from cdevsw.  bdevsw() is now an (inline)
        function.

        Join CDEV_MODULE and BDEV_MODULE to DEV_MODULE (please pay attention
        to the order of the cmaj/bmaj arguments!)

        Join CDEV_DRIVER_MODULE and BDEV_DRIVER_MODULE to DEV_DRIVER_MODULE
        (ditto!)

(Next step will be to convert all bdev dev_t's to cdev dev_t's
before they get to do any damage^H^H^H^H^H^Hwork in the kernel.)
1999-05-07 10:11:40 +00:00