summaryrefslogtreecommitdiffstats
path: root/sys/dev/atkbdc
Commit message (Collapse)AuthorAgeFilesLines
* Include "opt_kbd.h" since certain structures size depend on the valuephk2002-10-151-0/+2
| | | | | | | | | | | | | | of KBDIO_DEBUG which may be defined in the kernel config (as it is in NOTES). This kind of bug is a _really_ horribly thing as we end up with one bit of code thinking a particular structure is 136 bytes and another that it is only 112 bytes. Ideally all places would remember to #include the right "opt_foo.h" file, but I think in practice file containing the variable sized struct should #include it explicitly as a precaution. Detected by: FlexeLint
* Replace various spelling with FALLTHROUGH which is lint()ablecharnier2002-08-252-5/+5
|
* de-count atkbdc. I have more extensive patches to make properly dynamic,peter2002-08-191-2/+1
| | | | | | but since pc hardware only allows one AT-style keyboard controller, this doesn't seem particularly urgent. (I do not know what the old sunriver remote keyboard/mouse/vga cards do, that might be an exception).
* GC various bits and pieces of USERCONFIG from all over the place.phk2002-04-091-1/+1
|
* Fix typo: conole -> consoleasmodai2002-04-081-1/+1
| | | | | PR: 33965 Submitted by: Nicola Vitale <nivit@libero.it>
* Fix spelling and grammar bogons in a comment.murray2002-03-271-7/+7
| | | | | | PR: kern/30540 Submitted by: Tony Finch <dot@dotat.at> MFC after: 3 days
* Remove __P.alfred2002-03-201-29/+29
|
* Add the ia64 bus space tag for the IO ports (!).peter2002-03-191-0/+4
| | | | Add a #else and #error so that this doesn't go unnoticed again.
* Fixes to make select/poll mpsafe.alfred2002-03-141-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: selwakeup required calling pfind which would cause lock order reversals with the allproc_lock and the per-process filedesc lock. Solution: Instead of recording the pid of the select()'ing process into the selinfo structure, actually record a pointer to the thread. To avoid dereferencing a bad address all the selinfo structures that are in use by a thread are kept in a list hung off the thread (protected by sellock). When a selwakeup occurs the selinfo is removed from that threads list, it is also removed on the way out of select or poll where the thread will traverse its list removing all the selinfos from its own list. Problem: Previously the PROC_LOCK was used to provide the mutual exclusion needed to ensure proper locking, this couldn't work because there was a single condvar used for select and poll and condvars can only be used with a single mutex. Solution: Introduce a global mutex 'sellock' which is used to provide mutual exclusion when recording events to wait on as well as performing notification when an event occurs. Interesting note: schedlock is required to manipulate the per-thread TDF_SELECT flag, however if given its own field it would not need schedlock, also because TDF_SELECT is only manipulated under sellock one doesn't actually use schedlock for syncronization, only to protect against corruption. Proc locks are no longer used in select/poll. Portions contributed by: davidc
* Add SONY VAIO psm controller ISA-PnP ID.takawata2002-03-101-0/+1
|
* Add another PS2 PNP id.sheldonh2001-12-191-0/+1
| | | | | PR: 32973 Submitted by: KT Sin <ktsin@acm.org>
* Hack for the "out-of-sync" error.yokota2001-10-131-109/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | - Count the number of this error. - When the error is detected for the first time, the psm driver will throw few data bytes (up to entire packet size) and see if it can get back to sync. - If the error still persists, the psm driver disable/enable the mouse and see if it works. - If the error still persists and the count goes up to 20, the psm driver reset and reinitialize the mouse. The counter is reset to zero. - It also discards an incomplete data packet when the interval between two consequtive bytes are longer than pre-defined timeout (2 seconds). The last byte which arrived late will be regarded as the first byte of a new packet. This is louie's idea. You may see the following error logs during the above operations: "psmintr: delay too long; resetting byte count" "psmintr: out of sync (%04x != %04x)" "psmintr: discard a byte (%d)" "psmintr: re-enable the mouse" "psmintr: reset the mouse" MFC after: 1 month
* Add PnP ID 'IBM3781' for TP240 mouse.takawata2001-10-031-0/+1
|
* Yet another turn of workaround for psm/ACPI/PnP BIOSyokota2001-09-253-40/+85
| | | | | | | problems currently experienced in -CURRENT. This should fix the problem that the PS/2 mouse is detected twice if the acpi module is not loaded on some systems.
* Reinitialize the keyboard after the ACPI resume event.yokota2001-09-232-2/+20
| | | | | | | | | I am not sure if this is absolutely necessary on all systems. Yet, there certainly are motherboards and notebook systems which require this, although there are other systems which just don't. I hope we shall know when to do this on which systems, as the development of our ACPI subsystem progresses... (I know we didn't need this for the APM resume.)
* Refine ACPI/PnP BIOS probe/attach routines a bit.yokota2001-09-154-17/+38
| | | | | | | | | | | - Add workaround for the problematic PnP BIOS which does not assign irq resource for the PS/2 mouse device node; if there is no irq assigned for the PS/2 mouse node, refer to device.hints for an irq number. If we still don't find an irq number in the hints database, use a hard-coded value. - Delete unused ivars. - Bit of clean up in probe/attach. - Add PnP ID for the PS/2 mouse port on some IBM ThinkPad models.
* KSE Milestone 2julian2001-09-121-5/+5
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Update the atkbdc, atkbd, and psm drivers to probe/attachyokota2001-09-066-210/+446
| | | | | | | | more cleanly and consistently in all APCI, PnP BIOS, and "hint" cases. NOTE: this doesn't necessarily solve the problem that the PS/2 mouse is not detected after the recent ACPI update.
* Add ACPI attachments.msmith2001-08-302-0/+2
|
* Return consistent key action codes at key press and releaseyokota2001-07-203-1/+3
| | | | | | | | | | events. Otherwise you would see unexpected results if shift or locking keys are defined to give different actions depending on other shift/locking keys' state. Please keep the ukbd module and the kernel in sync, otherwise the USB keyboard won't work after this change. MFC after: 10 days
* Add the device resume method to keyboard drivers.yokota2001-06-302-0/+28
| | | | MFC after: 4 weeks
* Hints overhaul:peter2001-06-122-20/+16
| | | | | | | | | - Replace some very poorly thought out API hacks that should have been fixed a long while ago. - Provide some much more flexible search functions (resource_find_*()) - Use strings for storage instead of an outgrowth of the rather inconvenient temporary ioconf table from config(). We already had a fallback to using strings before malloc/vm was running anyway.
* Send the remains (such as I have located) of "block major numbers" tophk2001-03-261-1/+0
| | | | the bit-bucket.
* Free the kbd pointer when it isn't NULL, as opposed to when it is.dwmalone2001-01-221-1/+1
| | | | | | This was a typo in the M_ZERO patches. Submitted by: Mike Silbersack <silby@silby.com>
* select() DKI is now in <sys/selinfo.h>.wollman2001-01-091-1/+1
|
* Convert more malloc+bzero to malloc+M_ZERO.dwmalone2000-12-084-15/+11
| | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net>
* Staticize some malloc M_ instances.phk2000-12-082-2/+2
|
* - Add a hack for "psmintr: out of sync.." This is NOT a fix,yokota2000-12-011-0/+11
| | | | | | | | | | | but a hack! Add `flags 0x8000' to the psm driver to enable it. The psm driver will try to get out of out-of-sync situation by disabling the mouse and immediately enable it again. If you are seeing this out-of-sync problem because of an incompetent(?!) KVM switch, this hack will NOT be good for you. However, if you are occasionally seeing the problem because of lost mouse interrupt, this might help.
* - Slightly rearrnage IntelliMouse Explorer and Logitechyokota2000-12-011-30/+39
| | | | | MouseMan+ identification routines for efficiency. No functional change.
* Remove unneeded #include <machine/clock.h>phk2000-10-153-3/+0
|
* Untangle some resource matching loops that were getting on my nervespeter2000-10-152-16/+14
| | | | and seemed to be getting cut/pasted to places they shouldn't be.
* Initiate deorbit burn sequence for <machine/mouse.h>.phk2000-10-091-1/+1
| | | | | | | | | | Replace all in-tree uses with <sys/mouse.h> which repo-copied a few moments ago from src/sys/i386/include/mouse.h by peter. This is also the appropriate fix for exo-tree sources. Put warnings in <machine/mouse.h> to discourage use. November 15th 2000 the warnings will be converted to errors. January 15th 2001 the <machine/mouse.h> files will be removed.
* Initiate deorbit burn sequence for <machine/console.h>.phk2000-10-081-1/+1
| | | | | | | | | Replace all in-tree uses with necessary subset of <sys/{fb,kb,cons}io.h>. This is also the appropriate fix for exo-tree sources. Put warnings in <machine/console.h> to discourage use. November 15th 2000 the warnings will be converted to errors. January 15th 2001 the <machine/console.h> files will be removed.
* Fix several 64-bit-ism warnings due to sizeof(int) != sizeof(void *) onjhb2000-09-221-6/+6
| | | | the alpha.
* * Completely rewrite the alpha busspace to hide the implementation fromdfr2000-08-281-1/+1
| | | | | | | | | | | | the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly. With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
* Add spltty()/splx() in the watchdog timer routine.yokota2000-08-241-0/+3
|
* Fix GENERIC_MOUSE_ENTRY.yokota2000-07-281-1/+1
| | | | Submitted by: Graham Wheeler <gram@cequrux.com> and gibbs
* This is yet another attempt to fix "psmintr out of sync.." problems.yokota2000-07-221-13/+9
| | | | | | - Properly protect the watchdog timer routine. - Relocate the sync check statement so that we don't see too many error messages.
* Manipulate with AltGR Led (really CapsLock Led) only in K_XLATE mode, becauseache2000-05-281-1/+2
| | | | | | | | | all other modes not set ALKED flag and it means that CapsLock always turned off for them. Real bug example is X11 which never turn on CapsLock with Russian keyboard. PR: 18651 Submitted by: "Mike E. Matsnev" <mike@po.cs.msu.su>
* Fixed the type of some ivar access functions. Ivars have type uintptr_t,bde2000-04-302-8/+8
| | | | | | | 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().
* Remove ~25 unneeded #include <sys/conf.h>phk2000-04-191-1/+0
| | | | Remove ~60 unneeded #include <sys/malloc.h>
* - Add temporary workaround to fool some "clever" KVM switch productsyokota2000-04-021-5/+22
| | | | | | 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.
* Missing pieces of the last commit ;-(yokota2000-03-192-22/+64
|
* - Properly keep track of I/O port resources.yokota2000-03-198-174/+278
| | | | - Use bus_space_read/write() to access the ports.
* - Add Support for the following PS/2 mice:yokota2000-03-182-87/+398
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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).
* One more patch for the atkbd driver. It will make sure that theyokota2000-03-111-0/+12
| | | | | | | | | | | | | | 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
* Don't free(sc) before returning an error from probe, it does not "belong"peter2000-03-011-1/+0
| | | | | | | | 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)
* Do not add children (atkbd and psm) if they are disabled.yokota2000-02-252-0/+6
| | | | Approved by: jkh
* - Be slightly more cautious and try to make more sure the keyboardyokota2000-02-111-4/+9
| | | | | | | input queue is emptied when initializing the keyboard controller. - Remove an unnecessary `if' statement. Approved by: jkh
* Use config's conditional compilation rather than using #ifdefs that makepeter2000-01-297-39/+1
| | | | | modular compilation harder. I'm doing this because people seem to like cut/pasting examples of bad practices in existing code.
OpenPOWER on IntegriCloud