362209 |
15-Jun-2020 |
wulf |
MFC r361715:
[psm] Do not disable trackpoint when hw.psm.elantech.touchpad_off is enabled
PR: 246117 Reported by: Alexander Sieg <ports@xanderio.de>
MFC r361718:
[psm] Workaround active PS/2 multiplexor hang
which happens on some laptops after returning to legacy multiplexing mode at initialization stage.
PR: 242542 Reported by: Felix Palmen <felix@palmen-it.de> |
360782 |
07-May-2020 |
dim |
MFC r306679 (by glebius):
Fix indentation.
CID: 1363671 |
360617 |
03-May-2020 |
wulf |
MFC r360353:
psm(4): Fix wrong key-release event occuring after trackpoint use.
Some models of laptops e.g. "X1 Carbon 3rd Gen Thinkpad" have LRM buttons wired as so called "Synaptic touchpads extended buttons" rather thah real trackpoint buttons. Handle this case with merging of events from both sources.
PR: 245877 Reported by: Raichoo <raichoo@googlemail.com> |
357666 |
07-Feb-2020 |
kevans |
MFC r357509-r357510: small psm cleanup
r357509: psm: release resources on attach failure
In exactly 1/3 cases we'll release resources on failure; touch up the other two to do so as well.
r357510: psm: use make_dev_s instead of make_dev
This most importantly reduces duplication, but it also removes any potential race with usage of dev->si_drv1 since it's now set prior to the device being constructed enough to be accessible. |
356013 |
22-Dec-2019 |
kevans |
MFC r355796-r355797, r355799: kbd: defaults for get_fkeystr/diag
The genkbd version of these remains exposed for stable branches, but keyboard drivers that just want to use the defaults can simply not provide their own. There shouldn't be any unset in the wild.
r355796: kbd: provide default implementations of get_fkeystr/diag
Most keyboard drivers are using the genkbd implementations as it is; formally use them for any that aren't set.
r355797: chrome_kb: remove default get_fkeystr/diag implementations
This file was missed in r355796, but no harm would have come from this.
r355799: kbd: patch linker set methods, too
This is needed after r355796. Some double-registration of kbd drivers needs to be sorted out, then this sysinit will simply add these drivers into the normal list and kill off any other bits in the driver that are aware of the linker set, for simplicity. |
356007 |
22-Dec-2019 |
kevans |
MFC r355794: keyboard switch definitions: standardize on c99 initializers |
349541 |
29-Jun-2019 |
wulf |
MFC r346455-r346458, r348520, r348529, r348817, r348818
r346455: psm(4): Add support for 4 and 5 finger touches in synaptics driver
While 4-th and 5-th finger positions are not exported through PS/2 interface, total number of touches is reported by MT trackpads.
r346456: psm(4): do not process gestures when palm is present
Ignoring of gesture processing when the palm is detected helps to reduce some of the erratic pointer behavior.
This fixes regression introduced in r317814
Reported by: Ben LeMasurier <ben@crypt.ly>
r346457: psm(4): respect tap_disabled configuration with enabled Extended support
This fixes a bug where, even when hw.psm.tap_enabled=0, touchpad taps were processed. tap_enabled has three states: unconfigured, disabled, and enabled (-1, 0, 1). To respect PR kern/139272, taps are ignored only when explicity disabled.
Submitted by: Ben LeMasurier <ben@crypt.ly> (initial version)
r346458: psm(4): give names to synaptics commands
Submitted by: Ben LeMasurier <ben@crypt.ly>
r348520: psm(4): Add Elantech touchpad IC type 15 found on Thinkpad L480 laptops
PR: 238291 Submitted by: Andrey Kosachenko <andrey.kosachenko@gmail.com>
r348529: psm(4): Add natural scrolling support to sysmouse protocol
This change enables natural scrolling with two finger scroll enabled and when user is using a trackpad (mouse and trackpoint are not affected). Depending on trackpad model it can be activated with setting of hw.psm.synaptics.natural_scroll or hw.psm.elantech.natural_scroll sysctl values to 1.
Evdev protocol is not affected by this change too. Tune userland client e.g. libinput to enable natural scrolling in that case.
Submitted by: nyan_myuji.xyz Reviewed by: wulf Differential Revision: https://reviews.freebsd.org/D20447
r348817: psm(4): Fix Elantech trackpoint support.
Sign bits for X and Y motion data were taken from wrong places.
PR: 238291 Reported by: Andrey Kosachenko <andrey.kosachenko@gmail.com> Tested by: Andrey Kosachenko <andrey.kosachenko@gmail.com>
r348818: psm(4): Add extra sanity checks to Elantech trackpoint packet parser.
Add strict checks for unused bit states in Elantech trackpoint packet parser to filter out spurious events produces by some hardware which are detected as trackpoint packets. See comment on r328191 for example.
Tested by: Andrey Kosachenko <andrey.kosachenko@gmail.com> |
344165 |
15-Feb-2019 |
wulf |
MFC r343163:
psm(4): detect Lenovo top-button clickpads
libinput has special handling for Lenovo ThinkPad *40 series, where it treats clicks on the top button area as if they came from the TrackPoint: https://wayland.freedesktop.org/libinput/doc/latest/t440-support.html
Detect these devices and set the corresponding evdev property.
Submitted by: Greg V <greg@unrelenting.technology> Differential Revision: https://reviews.freebsd.org/D18676 |
343158 |
18-Jan-2019 |
wulf |
MFC r340912,r340913:
psm(4): Revert r328640 and add minimal support for active AUX port multiplexers
Active PS/2 multiplexing is a method for attaching up to four PS/2 pointing devices to a computer. Enabling of multiplexed mode allows commands to be directed to individual devices using routing prefixes. Multiplexed mode reports input with each byte tagged to identify its source. This method differs from one currently supported by psm(4) where so called guest device (trackpoint) is attached to special interface located on the host device (touchpad) and latter performs guest protocol conversion to special encapsulation packet format.
At present time active PS/2 multiplexing is used in some models of HP laptops e.g. EliteBook 8560w, 9470m. Enabling of absolute operation mode on such touchpads is connected with following problems: 1. Touchpad's port priority is lower than trackpoint's. That blocks information queries thus prevents touchpad detection and configuration. 2. Touchpad and trackpoint have different protocol packet sizes and sync bytes.
As PS/2 usage is on decline only minimal possible set of changes to support Synaptics touchpad and generic mouses is implemented. Active multiplexing mode is enabled only at probe stage to scan through attached PS/2 devices to query and configure Synaptics touchpad. After touchpad has been configured, mux is switched back to legacy (hidden multiplexing) mode to perform normal interrupt-driven input data processing. Overflow bit values rather than tags are used to separate packets produced by different devices. Switching back to legacy mode allows to avoid psm(4) and atkbd(4) rework to support 4 instances of mouse driver.
Note: While in hidden multiplexing mode KBC does some editing of the packet stream. It remembers the button bits from the last packet received from each device, and replaces the button bits of every packet with the logical OR of all devices’ most recent button bits. This sort of button crosstalk results in spurious button events which are inhibitted with various tricks. E.g. trackpoint middle button events are suppressed while trackpad surface is touched and touchpad left and right button events are suppressed if corresponding trackpoint buttons are pressed.
PR: 231058 Reported by: Michael Figiel <mifigiel at gmail.com> Tested by: Michael Figiel <mifigiel at gmail.com> |
334763 |
07-Jun-2018 |
hselasky |
MFC r334422: Correct argument for evdev_push_rel().
This is a regression issue after r319162.
Submitted by: Johannes Lundberg <johalun0@gmail.com> Sponsored by: Mellanox Technologies |
331722 |
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re) |
331172 |
19-Mar-2018 |
eadler |
MFC r328640:
psm: Add a kludge to support 0x46 identity middle byte Synaptics touchpads
Most synaptics touchpads return 0x47 in middle byte in responce to identify command as stated in p.4.4 of "Synaptics PS/2 TouchPad Interfacing Guide". But some devices e.g. found on HP EliteBook 9470m return 0x46 here. Allow them to be identified as Synaptics as well as 0x47. ExtendedQueries return incorrect data on such a touchpads so we ignore their result and set conservative defaults.
PR: 222667 |
331171 |
19-Mar-2018 |
eadler |
MFC r328638:
psm(4): Reduce psm watchdog verbosity
Modern touchpads do not issue interrupts on inactivity so "lost interrupt" message became annoying spam nowadays. This change quiets the message if debug.psm.loglevel=5 (or less) is set in /boot/loader.conf
Approved by: gonzo |
331170 |
19-Mar-2018 |
eadler |
MFC r328636:
psm(4): Add support for HP EliteBook 1040 ForcePads.
ForcePads do not have any physical buttons, instead they detect click based on finger pressure. Forcepads erroneously report button click if there are 2 or more fingers on the touchpad breaking multifinger gestures. To workaround this start reporting a click only after 4 consecutive single touch packets has been received. Skip these packets in case more contacts appear.
PR: 223369 |
330897 |
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg |
329532 |
18-Feb-2018 |
wulf |
MFC r328864:
psm(4): Fix panic occuring soon after PS/2 packet has been rejected by synaptics or elantech sanity checker.
After packet has been rejected contents of packet buffer is not cleared with setting of inputbytes counter to 0. So when this packet buffer is filled again being an element of circular queue, new data appends to old data rather than overwrites it. This leads to packet buffer overflow after 10 rounds.
Fix it with setting of packet's inputbytes counter to 0 after rejection.
While here add extra logging of rejected packets.
PR: 222667 (for reference) Reported by: Neel Chauhan <neel@neelc.org> Tested by: Neel Chauhan <neel@neelc.org> |
328484 |
27-Jan-2018 |
dumbbell |
psm: Log syncmask[1], not syncmask[0] twice
MFC of: r328208 |
328482 |
27-Jan-2018 |
dumbbell |
psm: Don't try to detect trackpoint packets if the Elantech device has none
This fixes a panic when `EVDEV_SUPPORT` is enabled: if a trackpoint packet was detected but there was no trackpoint, we still tried to emit an evdev event even though the associated relative evdev device (`evdev_r`) was not initialized.
PR: 225339 MFC of: r328191 |
328481 |
27-Jan-2018 |
dumbbell |
psm: Skip sync check when `PSM_CONFIG_NOCHECKSYNC` is set
In psmprobe(), we set the initial `syncmask` to the vendor default value if the `PSM_CONFIG_NOCHECKSYNC` bit is unset. However, we currently only set it for the Elantech touchpad later in psmattach(), thus `syncmask` is always configured.
Now, we check `PSM_CONFIG_NOCHECKSYNC` and skip sync check if it is set. This fixes Elantech touchpad support for units which have `hascrc` set.
To clarify that, when we log the `syncmask` and `syncbits` fields, also mention if they are actually used.
Finally, when we set `PSM_CONFIG_NOCHECKSYNC`, clear `PSM_NEED_SYNCBITS` flag.
PR: 225338 MFC of: r328190 |
325345 |
02-Nov-2017 |
wulf |
MFC: r324774 psm(4): Add sanity checks to Synaptics touchpad driver resolution parser.
This fixes "Kernel has only x or y resolution, not both" libinput error.
Reported by: Ivan <bsd@abinet.ru> Tested by: Ivan <bsd@abinet.ru> Approved by: gonzo (mentor) |
321060 |
16-Jul-2017 |
wulf |
MFC r319162: psm: add support for evdev protocol
Approved by: gonzo (mentor) |
318500 |
18-May-2017 |
wulf |
MFC r317811:
Fix triple-finger taps reported as double-finger for Elan hw v.4 touchpads
Wait for all advertised head packets after status packet have been received. This fixes rare but quite annoying issue in Elan hw v.4 touchpads support when triple-finger taps are reported as double-finger taps under several circumstances.
MFC r317812:
Reduce default tap_min_queue size for Elan touchpads
Elan hw v.4 touchpads often sends touchpad release packet right after touchpad touch one. Most probably this happens due to PS/2 limited bandwith. Reducing of tap_min_queue size to 1 makes multifinger tap detection more reliable in this case.
MFC r317813:
Adjust Elantech palm width threshold to nearly match synaptics defaults
MFC r317814:
psm(4): reduce cursor jumping on palm detection
This is done with discarding pointer movements rather then mouse packets
MFC r317815:
Enable palm detection on two finger touches for multitouch trackpads.
MFC r317816:
Report 3-rd and 4-th fingers as first finger for Elan hw v.2 and v.3 as Linux does. It should not affect gesture processing in current state as it ignores finger coords on 3-finger tap detection but it should make evdev reports looking more Linux-alike.
MFC r317817:
Set predefined logical touchpad sizes for several ancient Elan hw v.2 models. This change is based on Linux driver. Determine logical trace size. It used for calculation of touch sizes in surface units for MT-protocol type B evdev reports.
MFC r317818:
psm(4): Remove sys/libkern.h header inclusion
It is already included via sys/systm.h
MFC r317819:
Reduce synaptics touch sensitivity
Increase hw.psm.synaptics.min_pressure default value from 16 to 32 to nearly match Linux driver (30-35 hysteresis loop). This makes libinput tap detection more reliable. |
314361 |
27-Feb-2017 |
gonzo |
MFC r313757:
[psm] Fix calculation for clickpad softbuttons at the top
On laptops like the ThinkPad X240, ClickPad buttons are located at the top. The hw.psm.synaptics.softbuttons_y sysctl was supposed to allow this by setting the value to a negative one (e.g. -1700). However, the condition was wrong (double negative), and doing that placed the buttons in an unreachable area.
PR: 216342 Submitted by: Greg V <greg@unrelenting.technology> |
308654 |
14-Nov-2016 |
gonzo |
MFC r308240:
[evdev] Add evdev support to atkbd(4) driver
To enable event sourcing from atkbd kern.evdev.rcpt_mask value should have bit 3 set.
Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru> MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D8381 |
308652 |
14-Nov-2016 |
gonzo |
MFC r308189:
[psm] Fix choosing wrong mode for synaptic device + trackpoint
With guest trackpoint present trackpoint probing switched synaptics device to absolute mode with different protocol instead of keeping it in relative mode.
PR: 213757 Submitted by: Vladimir Kondratyev <wulf@cicgroup.ru> MFC after: 1 week |
307576 |
18-Oct-2016 |
gonzo |
MFC r306355, r306474, r306746:
r306355: Add Elantech trackpad support
Elantech trackpads are found in some laptops like the Asus UX31E. They are "synaptics compatible" but use a slightly different protocol.
Elantech hardware support is not enabled by default and just like Synaptic or TrackPoint devices it should be enabled by setting tunable, in this case hw.psm.elantech_support, to non-zero value
PR: 205690 Submitted by: Vladimir Kondratyev <wulf@cicgroup.ru> MFC after: 1 week
r306474: Replace explicit TUNABLE_INT to sysctl with CTLFLAG_TUN
- Replace tunables-only hw.psm.synaptics_support, hw.psm.trackpoint_support, and hw.psm.elantech_support with respective sysctls declared with CTLFLAG_TUN. It simplifies checking them in userland, also makes them easier to get discovered by user - Get rid of debug.psm.loglevel and hw.psm.tap_enabled TUNABLE_INT declaration by adding CTLFLAG_TUN to read/write sysctls that were already declared for these tunables.
Suggested by: jhb
r306746: Fix extended buttons support on synaptic clickpad
Fix regression introduced by r306355 on synaptic clickpads with extended buttons (buttons stopped working)
PR: 205690 Submitted by: Vladimir Kondratyev <wulf@cicgroup.ru> |
302408 |
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
300173 |
18-May-2016 |
gonzo |
Use OF_prop_free instead of direct call to free(9)
Reviewed by: marius
|
298955 |
03-May-2016 |
pfg |
sys/dev: minor spelling fixes.
Most affect comments, very few have user-visible effects.
|
298307 |
19-Apr-2016 |
pfg |
sys/dev: use our nitems() macro when it is avaliable through param.h.
No functional change, only trivial cases are done in this sweep, Drivers that can get further enhancements will be done independently.
Discussed in: freebsd-current
|
297000 |
18-Mar-2016 |
jhibbits |
Use uintmax_t (typedef'd to rman_res_t type) for rman ranges.
On some architectures, u_long isn't large enough for resource definitions. Particularly, powerpc and arm allow 36-bit (or larger) physical addresses, but type `long' is only 32-bit. This extends rman's resources to uintmax_t. With this change, any resource can feasibly be placed anywhere in physical memory (within the constraints of the driver).
Why uintmax_t and not something machine dependent, or uint64_t? Though it's possible for uintmax_t to grow, it's highly unlikely it will become 128-bit on 32-bit architectures. 64-bit architectures should have plenty of RAM to absorb the increase on resource sizes if and when this occurs, and the number of resources on memory-constrained systems should be sufficiently small as to not pose a drastic overhead. That being said, uintmax_t was chosen for source clarity. If it's specified as uint64_t, all printf()-like calls would either need casts to uintmax_t, or be littered with PRI*64 macros. Casts to uintmax_t aren't horrible, but it would also bake into the API for resource_list_print_type() either a hidden assumption that entries get cast to uintmax_t for printing, or these calls would need the PRI*64 macros. Since source code is meant to be read more often than written, I chose the clearest path of simply using uintmax_t.
Tested on a PowerPC p5020-based board, which places all device resources in 0xfxxxxxxxx, and has 8GB RAM. Regression tested on qemu-system-i386 Regression tested on qemu-system-mips (malta profile)
Tested PAE and devinfo on virtualbox (live CD)
Special thanks to bz for his testing on ARM.
Reviewed By: bz, jhb (previous) Relnotes: Yes Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D4544
|
294883 |
27-Jan-2016 |
jhibbits |
Convert rman to use rman_res_t instead of u_long
Summary: Migrate to using the semi-opaque type rman_res_t to specify rman resources. For now, this is still compatible with u_long.
This is step one in migrating rman to use uintmax_t for resources instead of u_long.
Going forward, this could feasibly be used to specify architecture-specific definitions of resource ranges, rather than baking a specific integer type into the API.
This change has been broken out to facilitate MFC'ing drivers back to 10 without breaking ABI.
Reviewed By: jhb Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D5075
|
292197 |
14-Dec-2015 |
andrew |
When exiting two-finger scroll the Synaptics device may report a jump in absolute position. This seems to be correlated with only removing a single finger. To work around this report no movement on from the first packet when the user exits scrolling.
|
284585 |
19-Jun-2015 |
rpaulo |
Synaptics: fix a problem with trackpoint passthrough.
There was a inconsistency which led to enable passthrough commands being interpreted as actual touchpad commands.
Submitted by: Jan KokemĂĽller <jan.kokemueller at gmail.com> MFC after: 1 week
|
284450 |
16-Jun-2015 |
glebius |
Fix miss from r284320.
Coverity: 1018895
|
284320 |
12-Jun-2015 |
glebius |
Unbreak mouse on resume on Thinkpads when hw.psm.trackpoint_support=0, which is default. It was broken in r281441.
It appears that set_trackpoint_parameters() call on resume disables the mouse. So, we need not call it on resume if hw.psm.trackpoint_support=0.
The problem is that the probe functions are used both for probing and for reiniting on resume. And the absense of the softc parameter is used as a mark to distinguish reinit and probe, which is quite ugly. At the same time the softc parameter is needed to call set_trackpoint_parameters().
o Change the arguments of probefunc_t to always supply the softc, and use additional enum argument to tell probing from initing. o Don't call set_trackpoint_parameters() from global doinitialize(), instead call it from the enable_trackpoint() only. o In enable_synaptics() call enable_trackpoint() in both probe and reinit cases.
Together with: Jan KokemĂĽller <jan.kokemueller gmail.com>
|
282734 |
10-May-2015 |
rpaulo |
synaptics: more support for semi-MT trackpads.
Several improvements to the Synaptics driver to support semi-multitouch trackpads and some other fixes:
- Two finger scrolling support for "semi-MT" touchpads. Those include many of the older Synaptics touchpads before "true" multitouch support (indicated by capMultiFinger). Semi-MT touchpads can report a second finger position, but the X or Y coordinate may be swapped with some coordinate of the first finger. This is a result of how the hardware works internally. Therefore, all that can be reliably extracted is the bounding box of the two finger positions. Semi-MT touchpads can be recognized by the capAdvancedGestures capability bit. After setting the mode byte, advanced gestures mode has to be enabled. Then, data packets compatible with the capMultiFinger format are sent, so the same two finger scrolling code can be leveraged. Enabling advanced gestures mode on true multitouch touchpads should be harmless. Linux seems to always enable advanced gestures mode.
- Put mode setting logic into own functions synaptics_preferred_mode() and synaptics_set_mode() to have this in one place. synaptics_passthrough_on() and synaptics_passthrough_off() currently always use 0xc1 as the mode byte, which may be wrong for touchpads that don't have capExtended.
- Expose X and Y resolution of touchpad to userland. Also expose minimum and maximum X and Y coordinates. This is useful for programs in userspace that read raw PSM packets (with PSM_LEVEL_NATIVE enabled) and need to interpret the coordinates.
- Also send "extended w mode" packets (see section 3.2.9 of 511-000275-01_RevB.pdf) to userspace if PSM_LEVEL_NATIVE is enabled. This is useful for userspace programs/drivers such as xf86-input-synaptics that can handle these packets.
- Fix parsing of nExtendedQueries, and request extended/continued capability bits depending on this value.
- capReportsMax, capClearPad, capAdvancedGestures and capCoveredPad must be extracted from status[0] and not status[2], I think.
Submitted by: Jan KokemĂĽller jan.kokemueller at gmail.com
|
282277 |
30-Apr-2015 |
jkim |
Remove leftover from r282269.
MFC after: 2 weeks X-MFC with: r282269
|
282269 |
30-Apr-2015 |
royger |
atkbd: remove usage of x86bios
Instead of trying to get the keyboard repeat rate set by the BIOS just set a default one. This allows removing the usage of x86bios from atkbd.
Sponsored by: Citrix Systems R&D Reviewed by: jkim, delphij Differential Revision: https://reviews.freebsd.org/D2399 MFC after: 2 weeks
|
281704 |
18-Apr-2015 |
rpaulo |
Synaptics: don't report the middle button when clickPad is used.
On trackpads that had support for both, we were sending two button events when the trackpad was pressed.
Tested by: Jakob Alvermark <jakob at alvermark.net> MFC after: 1 week
|
281441 |
11-Apr-2015 |
rpaulo |
Add support for controlling the trackpoint when Synaptics is enabled.
To accomplish this, we must put the Synaptics hardware in passthrough mode when talking to the trackpoint.
I only performed minor style modifications.
Submitted by: Jan KokemĂĽller <jan.kokemueller at gmail.com> MFC after: 1 week
|
281440 |
11-Apr-2015 |
rpaulo |
Improve Synaptics support for newer touchpads.
Enable two finger scrolling by default and disable the edge scrolling if the touchpad has no physical zone for it. Disable directional scrolling by default to avoid using extended buttons as scroll buttons.
Add support for ClickPad. On Lenovo laptops, this is the button reported when one presses the touchpad.
While there, fix a problem where the extended buttons were not reporting the button release event correctly: we need to save the state of the buttons and report it to sysmouse until we receive a packet from the touchpad indicating the button has been released. This makes it possible to use an extended button to resize a window. On Lenovo laptops, the major buttons are actually reported as extended buttons.
Tested by: many (current@) MFC after: 1 week
|
281127 |
06-Apr-2015 |
rpaulo |
psm: print newer Synaptics Touchpad capabilities.
|
278787 |
14-Feb-2015 |
grembo |
Quirk based support of Chromebook keyboard found in Acer C720
This probably supports other devices based on SeaBIOS, which need to be added to the smbios based quirks table.
The functionality has been ported from DragonFlyBSD and adapted to FreeBSD's more general purpose environment.
Devices not covered by a quirk shouldn't be affected at all. Thanks to jhb and kostikbel for reviewing the code.
Reviewed by: kostikbel, jhb Approved by: jhb, kostikbel Differential Revision: https://reviews.freebsd.org/D1802
|
271963 |
22-Sep-2014 |
jhb |
Convert from timeout(9) to callout(9).
|
268351 |
07-Jul-2014 |
marcel |
Remove ia64.
This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation
This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h
Discussed at: BSDcan
|
255210 |
04-Sep-2013 |
eadler |
Revert r255152:
It turns out that synaptics_support was turned off by default because its probing method is too intrusive not because it was unstable.
Once this is fixed it should be enabled once again.
Reported by: delphij, jkim
|
255153 |
02-Sep-2013 |
dumbbell |
psm: Add support for middle and extended buttons on Synaptics touchpads
PR: kern/170834 Submitted by: Brandon Gooch <jamesbrandongooch@gmail.com> Tested by: Artyom Mirgorodskiy <artyom.mirgorodsky@gmail.com> MFC after: 1 month
|
255152 |
02-Sep-2013 |
eadler |
synaptics and trackpoint support are stable enough to be on by default.
Eventually both options should be removed.
Reviewed by: dumbbell
|
250615 |
13-May-2013 |
jkim |
Remove a bogus re-assignment.
MFC after: 3 days
|
248479 |
18-Mar-2013 |
jkim |
List TrackPoint device before generic model.
|
248478 |
18-Mar-2013 |
jkim |
Add preliminary support for IBM/Lenovo TrackPoint.
PR: kern/147237 (based on the initial patch for 8.x) Tested by: glebius (device detection and suspend/resume) MFC after: 1 month
|
245315 |
11-Jan-2013 |
imp |
Pass the device_t into atkbd_{probe,attach}_unit and get the controller unit and keyboard unit from there. It will be needed for other things in the future as well...
|
245314 |
11-Jan-2013 |
imp |
style(9) changes before I do more real changes.
|
244405 |
18-Dec-2012 |
dumbbell |
psm: Support detection of Synaptics touchpad v7.5 and above
Starting with firmware v7.5, the "Read TouchPad Modes" ($01) and "Read Capabilities" ($02) commands changed: previously constant bytes now carry variable information.
We now compare those bytes to expected constants only for firmware prior to v7.5.
Tested by: Zeus Panchenko <zeus@gnu.org.ua> MFC after: 1 week
|
240743 |
20-Sep-2012 |
kevlo |
Fix typo: s/protocl/protocol
|
240211 |
07-Sep-2012 |
jhb |
Use callout(9) instead of timeout(9) to manage timers.
|
238164 |
06-Jul-2012 |
jhb |
Add another PS/2 keyboard PNP ID. This ID is listed as "Reserved by Microsoft" in the standard PNP ID table, but has been seen in the wild on at least one laptop.
PR: kern/169571 Submitted by: Matthias Apitz guru unixarea de MFC after: 3 days
|
233619 |
28-Mar-2012 |
jkim |
Add a PNP ID for Japanese 106-key keyboard.
PR: kern/166459 MFC after: 3 days
|
233580 |
27-Mar-2012 |
jkim |
- Do not clobber softc when psm(4) is reintialized. - Make INITAFTERSUSPEND flag independent of HOOKRESUME flag. - Automatically set INITAFTERSUSPEND flag when ALPS GlidePoint is detected. - Always probe Synaptics Touchpad. Allow MOUSE_SYN_GETHWINFO ioctl and automatically set INITAFTERSUSPEND flag when a supported device is detected, regardless of "hw.psm.synaptics_support" tunable setting. - Update psm(4) to reflect the above changes. - Remove long-time defunct SYNCHACK flag while I am in the neighborhood.
MFC after: 1 month
|
227309 |
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
224126 |
17-Jul-2011 |
ed |
Restore binary compatibility for GIO_KEYMAP and PIO_KEYMAP.
Back in 2009 I changed the ABI of the GIO_KEYMAP and PIO_KEYMAP ioctls to support wide characters. I created a patch to add ABI compatibility for the old calls, but I didn't get any feedback to that.
It seems now people are upgrading from 8 to 9 they experience this issue, so add it anyway.
|
223341 |
20-Jun-2011 |
delphij |
Correct a typo.
Submitted by: Fabian Keil <fk fabiankeil de> MFC after: 3 days
|
222967 |
11-Jun-2011 |
delphij |
Add comments about the validation.
|
222795 |
06-Jun-2011 |
jkim |
Validate INT 15h and 16h vectors more strictly. Traditionally these entry points are fixed addresses and (U)EFI CSM specification also mandated that. Unfortunately, (U)EFI CSM specification does not specifically mention this is to call service routine via interrupt vector table or to jump directly to the entry point. As a result, some CSM seems to install two routines and acts differently, depending on how it was executed, unfortunately. When INT 15h is used, it calls a function pointer (which is probably a UEFI service function). When it jumps directly to the entry point, it executes a simple and traditional INT 15h service routine. Therefore, actually there are two possible fixes, i. e., this fix or jumping directly to the fixed entry point. However, we chose this fix because a) keyboard typematic support via BIOS is becoming extremely rarer and b) we cannot support random service routine installed by a firmware or a boot loader. This should fix Lenovo X220 laptop, specifically.
Reviewed by: delphij MFC after: 3 days
|
222793 |
06-Jun-2011 |
jkim |
Revert r222152. The root cause was analysed and better fix is upcoming.
Discussed with: delphij
|
222152 |
20-May-2011 |
delphij |
Add a new knob to atkbd(4) to enable typematic rate detection on boot, which is now disabled by default. The detection is known to cause hangs on boot with some new Lenovo laptops on FreeBSD/amd64.
Reported by: gnn Discussed with: jkim MFC after: 3 months
|
216614 |
21-Dec-2010 |
jhb |
Only use the BIOS-supplied IRQ for the atkbdc device for a child atkbd device. Specifically, do not reuse it for a child psm device.
Tested by: many
|
216592 |
20-Dec-2010 |
tijl |
Merge amd64 and i386 bus.h and move the resulting header to x86. Replace the original amd64 and i386 headers with stubs.
Rename (AMD64|I386)_BUS_SPACE_* to X86_BUS_SPACE_* everywhere.
Reviewed by: imp (previous version), jhb Approved by: kib (mentor)
|
216492 |
16-Dec-2010 |
jhb |
- If the atkbdc device is assigned an IRQ resource by ACPI or the PnPBIOS, allow the child atkbd device to reuse that IRQ resource instead of reallocating the same IRQ from the parent bus inside the atkbd driver. - Don't allocate a shared IRQ for the atkbd driver. For AT keyboard devices on an ISA bus the IRQ is not shareable. Instead, the bus driver should mark the IRQ shareable if the bus supports shared IRQs. - Don't identify child devices until after the atkbdc device itself has attached.
|
216491 |
16-Dec-2010 |
jhb |
- When moving the IRQ resource from the psmcpnp device to the psm device, delete the IRQ resource from the psmcpnp device completely. - Don't allocate the IRQ resource shared. It is not a shareable interrupt on ISA. The bus driver can set RF_SHAREABLE if the IRQ is actually shareable on a non-ISA bus.
|
215473 |
18-Nov-2010 |
jhb |
Various small typos and grammar nits in comments.
|
212413 |
10-Sep-2010 |
avg |
bus_add_child: change type of order parameter to u_int
This reflects actual type used to store and compare child device orders. Change is mostly done via a Coccinelle (soon to be devel/coccinelle) semantic patch. Verified by LINT+modules kernel builds.
Followup to: r212213 MFC after: 10 days
|
212355 |
09-Sep-2010 |
ed |
Let psm(4) use si_drv1 to refer to its softc.
|
207354 |
29-Apr-2010 |
sobomax |
On certain chipsets AT keyboard controller isn't present and is emulated by BIOS using SMI interrupt. On those chipsets reading from the status port may be thousand times slower than usually. Sometimes this emilation is not working properly resulting in commands timing out and since we assume that inb() operation takes very little time to complete we need to adjust number of retries to keep waiting time within a designed limits (100ms). Measure time it takes to make read_status() call and adjust number of retries accordingly.
To keep it simple, use TSC to measure inb() performance and keep it to amd64-only, since TSC may not available on older CPUs.
Also enable detection of the AT controller absence on amd64.
Reviewed by: jhb MFC after: 1 month
|
200674 |
18-Dec-2009 |
dumbbell |
Add new "hw.psm.tap_enabled" tunable and sysctl.
This tunable allows one to enable (1) or disable (0) gestures like tap and tap-hold on Synaptics TouchPad when the Extended mode isn't enabled (ie. "hw.psm.synaptics_support" not set).
By default, the value is -1 in order to keep the current behaviour of not enabling/disabling gestures explicitly.
PR: kern/139272 Submitted by: David Horn <dhorn2000 AT gmail DOT com> Reviewed by: David Horn <dhorn2000 AT gmail DOT com>
|
198251 |
19-Oct-2009 |
jkim |
Rewrite x86bios and update its dependent drivers.
- Do not map entire real mode memory (1MB). Instead, we map IVT/BDA and ROM area separately. Most notably, ROM area is mapped as device memory (uncacheable) as it should be. User memory is dynamically allocated and free'ed with contigmalloc(9) and contigfree(9). Remove now redundant and potentially dangerous x86bios_alloc.c. If this emulator ever grows to support non-PC hardware, we may implement it with rman(9) later. - Move all host-specific initializations from x86emu_util.c to x86bios.c and remove now unnecessary x86emu_util.c. Currently, non-PC hardware is not supported. We may use bus_space(9) later when the KPI is fixed. - Replace all bzero() calls for emulated registers with more obviously named x86bios_init_regs(). This function also initializes DS and SS properly. - Add x86bios_get_intr(). This function checks if the interrupt vector is available for the platform. It is not necessary for PC-compatible hardware but it may be needed later. ;-) - Do not try turning off monitor if DPMS does not support the state. - Allocate stable memory for VESA OEM strings instead of just holding pointers to them. They may or may not be accessible always. Fix a memory leak of video mode table while I am here. - Add (experimental) BIOS POST call for vesa(4). This function calls VGA BIOS POST code from the current VGA option ROM. Some video controllers cannot save and restore the state properly even if it is claimed to be supported. Usually the symptom is blank display after resuming from suspend state. If the video mode does not match the previous mode after restoring, we try BIOS POST and force the known good initial state. Some magic was taken from NetBSD (and it was taken from vbetool, I believe.) - Add a loader tunable for vgapci(4) to give a hint to dpms(4) and vesa(4) to identify who owns the VESA BIOS. This is very useful for multi-display adapter setup. By default, the POST video controller is automatically probed and the tunable "hw.pci.default_vgapci_unit" is set to corresponding vgapci unit number. You may override it from loader but it is very unlikely to be necessary. Unfortunately only AGP/PCI/PCI-E controllers can be matched because ISA controller does not have necessary device IDs. - Fix a long standing bug in state save/restore function. The state buffer pointer should be ES:BX, not ES:DI according to VBE 3.0. If it ever worked, that's because BX was always zero. :-) - Clean up register initializations more clearer per VBE 3.0. - Fix a lot of style issues with vesa(4).
|
197504 |
25-Sep-2009 |
jkim |
Fix couple of style nits missed in the previous commit.
|
197501 |
25-Sep-2009 |
jkim |
- Use x86bios_offset() instead of BIOS_PADDRTOVADDR() macro.[1] - Clear all registers before calling real mode interrupt handlers as we did for dpms and vesa and re-enable the function as it should be fixed by this. - Tidy up register access. For example, when we call INT 0x15, AH=0xc0, we used to initialize AX=0xc000 to clear AL at the same time but it is very confusing. We don't have to do this any more because we are explicitly clearing all registers now. - Check size of system configuration table although it is almost always 8. This is to make sure we are not reading some random low physical memory. Hopefully it is just zero in that case. :-) - Fix some style nits and add more comments.
Submitted by: paradox (ddkprog yahoo com)[1]
|
197466 |
24-Sep-2009 |
jkim |
- Use FreeBSD function naming convention. - Change x86biosCall() to more appropriate x86bios_intr().[1]
Discussed with: delphij, paradox (ddkprog yahoo com) Submitted by: paradox (ddkprog yahoo com)[1]
|
197444 |
23-Sep-2009 |
jkim |
Move sys/dev/x86bios to sys/compat/x86bios.
It may not be optimal but it is clearly better than the old place.
OK'ed by: delphij, paradox (ddkprog yahoo com)
|
197416 |
22-Sep-2009 |
delphij |
Temporarily disable typematic retrieving code until we get a real fix, which currently causes hangs in some configurations.
Reported by: joel Submitted by: swell.k at gmail.com
|
197384 |
21-Sep-2009 |
delphij |
Allow atkbd to obtain keyboard repeat rate from BIOS on amd64.
Submitted by: swell.k at gmail.com
|
196403 |
20-Aug-2009 |
jhb |
Temporarily revert the new-bus locking for 8.0 release. It will be reintroduced after HEAD is reopened for commits by re@.
Approved by: re (kib), attilio
|
196037 |
02-Aug-2009 |
attilio |
Make the newbus subsystem Giant free by adding the new newbus sxlock. The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races.
Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped.
For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens.
Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing.
Bump __FreeBSD_version in order to reflect the newbus lock introduction.
Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith)
|
191164 |
17-Apr-2009 |
emax |
Prevent atkbd(4) interrupt handler from calling keyboard callback function when polled mode is enabled. This should help with duplicated/missing characters problem at mountroot, geli, etc. prompts on multi CPU systems while kbdmux(4) is enabled.
Tested by: Tobias Grosser <grosser -at- fim -dot- uni-passau -dot- de> Tested by: Fabian Keil <freebsd-listen -at- fabiankeil -dot- de> MFC after: 3 days
|
189870 |
16-Mar-2009 |
rnoland |
Teach psm about O_ASYNC
This makes Xorg happy if you aren't using moused.
MFC after: 3 days
|
188160 |
05-Feb-2009 |
imp |
bus_add_child takes a const char *.
|
186218 |
17-Dec-2008 |
dumbbell |
Synaptics touchpads must be reinitialized after suspend/resume.
This fixes touchpad resume on Asus EeePC among others.
Submitted by: rpaulo
|
186175 |
16-Dec-2008 |
dumbbell |
Rephrase and/or fix some comments in Synaptics touchpad initialization function.
|
183888 |
14-Oct-2008 |
dumbbell |
Rewrite Synaptics touchpads support with the following goals in mind: o better quality of the movement smoothing o more features such as tap-hold and virtual scrolling
Support must still be enabled with this line in your /boot/loader.conf: hw.psm.synaptics_support="1"
The following sysctls were removed: hw.psm.synaptics.low_speed_threshold hw.psm.synaptics.min_movement hw.psm.synaptics.squelch_level
An overview of this new driver and a short documentation about the added sysctls is available on the wiki: http://wiki.freebsd.org/SynapticsTouchpad
|
183397 |
27-Sep-2008 |
ed |
Replace all calls to minor() with dev2unit().
After I removed all the unit2minor()/minor2unit() calls from the kernel yesterday, I realised calling minor() everywhere is quite confusing. Character devices now only have the ability to store a unit number, not a minor number. Remove the confusion by using dev2unit() everywhere.
This commit could also be considered as a bug fix. A lot of drivers call minor(), while they should actually be calling dev2unit(). In -CURRENT this isn't a problem, but it turns out we never had any problem reports related to that issue in the past. I suspect not many people connect more than 256 pieces of the same hardware.
Reviewed by: kib
|
180818 |
26-Jul-2008 |
trhodes |
Fill in sysctl descriptions.
Approved by: philip
|
179474 |
01-Jun-2008 |
philip |
Try to detect a Synaptics touchpad before IntelliMouse. Some touchpads will pretend to be IntelliMouse (which have a few more features than generic mice) causing the IntelliMouse probe to work and the Synaptics code never to be called.
This should not break "real" IntelliMouse because the Synaptics detection code is fairly specific.
PR: kern/120833 Submitted by: Eygene Ryabinkin <rea-fbsd -at- codelabs.ru> MFC after: 1 week
|
178019 |
08-Apr-2008 |
jkim |
Clean up and fix style(9) nits.
|
178017 |
08-Apr-2008 |
jkim |
- Add write(2) support for psm(4) in native operation level. Now arbitrary commands can be written to /dev/psm%d and status can be read back from it. - Reflect the change in psm(4) and bump version for ports.
MFC after: 1 week
|
176554 |
25-Feb-2008 |
rink |
Some PS/2 mice (at least the A4Tech X-7xx) need to be set to Intelli mode first before they can be set to Explorer mode.
PR: kern/118578 Submitted by: Andriy Gapon <avg@icyb.net.ua> (I added some comments) Reviewed by: philip MFC after: 1 month
|
174984 |
29-Dec-2007 |
wkoszek |
Remove explicit calls to keyboard methods with their respective variants implemented with macros. This patch improves code readability. Reasoning behind kbdd_* is a "keyboard discipline".
List of macros is supposed to be complete--all methods of keyboard_switch should have their respective macros from now on.
Functionally, this code should be no-op. My intention is to leave current behaviour of code as is.
Glanced at by: rwatson Reviewed by: emax, marcel Approved by: cognet
|
170868 |
17-Jun-2007 |
mjacob |
Initialize mouse resolution to zero if converting from OLD to NEW.
|
166901 |
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
166492 |
04-Feb-2007 |
dumbbell |
Synaptics TouchPad seems to go back to Relative Mode after the call to set_controller_command_byte() call; by issueing a Read Mode Byte command, the touchpad is in Absolute Mode again.
This problem occursed at least on Asus V6V laptops.
|
165335 |
18-Dec-2006 |
keramida |
Spell "Kensington Thinking Mouse" correctly.
|
163687 |
25-Oct-2006 |
ru |
Fix LEDs not working when atkbd is an active keyboard and the physical keyboard is attached only after the system has already booted.
If USB keyboard is also present, and there's no kbdmux(4), the problem has been hiding itself because as soon as we get to multi-user, the USB keyboard becomes an active keyboard (see devd.conf), thus marking atkbd inactive and letting the old code initialize the keyboard.
With kbdmux(4), or if there's no USB keyboard, the atkbd keyboard is always active, whether it's physically attached or not, thus it never initialized itself properly on a physical attach.
To fix this, move block that initialized the keyboard on attach upper so it doesn't depend on the (KBD_IS_ACTIVE(kbd) && KBD_IS_BUSY(kbd)) condition. Also move KBD_FOUND_DEVICE() a few lines upper so that KDSETLED and KDSETREPEAT that follow it propagate to the controller.
MFC after: 3 days
|
162711 |
27-Sep-2006 |
ru |
Fix our ioctl(2) implementation when the argument is "int". New ioctls passing integer arguments should use the _IOWINT() macro. This fixes a lot of ioctl's not working on sparc64, most notable being keyboard/syscons ioctls.
Full ABI compatibility is provided, with the bonus of fixing the handling of old ioctls on sparc64.
Reviewed by: bde (with contributions) Tested by: emax, marius MFC after: 1 week
|
161969 |
04-Sep-2006 |
dwhite |
Avoid an infinite loop in empty_both_buffers() by adding a timeout. This helps systems that don't actually have atkbd controllers, such as the Intel SBX82 blade, boot without device.hints hacks.
Hardware for this fix provided by iXsystems.
PR: 94822 Submitted by: Devon H. O'Dell <devon.odell@coyotepoint.com> MFC After: 3 days
|
160091 |
03-Jul-2006 |
jkim |
Make sure command/data port (0x60) and status port (0x64) are in correct order. Some brain-damaged ACPI BIOS has reversed resources.
|
159541 |
12-Jun-2006 |
imp |
MFp4: need machine/bus.h here since we use bus space macros. It used to be brought in by name-space polluted sys/rman.h.
Pointy hat to: imp
|
158687 |
17-May-2006 |
phk |
Send the pcvt(4) driver off to retirement.
|
158471 |
12-May-2006 |
jhb |
Remove various bits of conditional Alpha code and fixup a few comments.
|
158041 |
26-Apr-2006 |
sobomax |
Use the same method for detecting actual presence of AT-style keyboard controller as we use in boot blocks (querying status register until bit 1 goes off). If that doesn't happed during reasonable period assume that the hardware doesn't have AT-style keyboard controller. This makes FreeBSD working almost OOB on MacBook Pro (still there are issues with putting second CPU core on-line, but since installation CD comes with UP kernel with this change one should be able to install FreeBSD without playing tricks with hints). Other legacy-free hardware (e.g. IBM NetVista S40) should benefit from this as well, but since I don't have any I can't verify.
It should make no difference on the ordinary i386 hardware (since in that case that hardware already would be having an issues with A20 routines in boot blocks). I don't know much about AT-style keyboard controller on other platforms (and don't have dedicated access to one), therefore, the code is restricted to i386 for now. I suspect that amd64 may need this as well, but I would rather leave this decision to someone who knows better about the platform(s) in question.
I have tested this change on as many "ordinary i386 boxes" as I can get my hands on, and it doesn't create any false negatives on hardware with AT-style keyboard present.
MFC after: 1 month
|
156730 |
15-Mar-2006 |
takawata |
Add ALPS glide point ID and some compatibility IDs.
PR: kern/75008
|
154059 |
05-Jan-2006 |
dumbbell |
Fix a bug in Synaptics Touchapd support where psm(4) will enter an infinite loop if it receives an out of sync packet.
Reviewed by: mux (mentor) MFC after: 4 days
|
153072 |
04-Dec-2005 |
ru |
Fix -Wundef.
|
147271 |
10-Jun-2005 |
marius |
- Hook up the new locations of the atkbdc(4), atkbd(4) and psm(4) source files after they were repo-copied to sys/dev/atkbdc. The sources of atkbdc(4) and its children were moved to the new location in preparation for adding an EBus front-end to atkbdc(4) for use on sparc64; i.e. in order to not further scatter them over the whole tree which would have been the result of adding atkbdc_ebus.c in e.g. sys/sparc64/ebus. Another reason for the repo-copies was that some of the sources were misfiled, e.g. sys/isa/atkbd_isa.c wasn't ISA-specific at all but for hanging atkbd(4) off of atkbdc(4) and was renamed to atkbd_atkbdc.c accordingly. Most of sys/isa/psm.c, i.e. expect for its PSMC PNP part, also isn't ISA-specific. - Separate the parts of atkbdc_isa.c which aren't actually ISA-specific but are shareable between different atkbdc(4) bus front-ends into atkbdc_subr.c (repo-copied from atkbdc_isa.c). While here use bus_generic_rl_alloc_resource() and bus_generic_rl_release_resource() respectively in atkbdc_isa.c instead of rolling own versions. - Add sparc64 MD bits to atkbdc(4) and atkbd(4) and an EBus front-end for atkbdc(4). PS/2 controllers and input devices are used on a couple of Sun OEM boards and occur on either the EBus or the ISA bus. Depending on the board it's either the only on-board mean to connect a keyboard and mouse or an alternative to either RS232 or USB devices. - Wrap the PSMC PNP part of psm.c in #ifdef DEV_ISA so it can be compiled without isa(4) (e.g. for EBus-only machines). This ISA-specific part isn't separated into its own source file, yet, as it requires more work than was feasible for 6.0 in order to do it in a clean way. Actually philip@ is working on a rewrite of psm(4) so a more comprehensive clean-up and separation of hardware dependent and independent parts is expected to happen after 6.0.
Tested on: i386, sparc64 (AX1105, AXe and AXi boards) Reviewed by: philip
|
147264 |
10-Jun-2005 |
marius |
Delete a file that was meant to be renamed while repo-copying it but wasn't and now is superfluous.
|
146734 |
29-May-2005 |
nyan |
Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 and amd64. The optimization is a trivial on recent machines.
Reviewed by: -arch (imp, marcel, dfr)
|
144768 |
07-Apr-2005 |
sobomax |
Backout previous diffs - this functionality is already provided by the hints to the atkbd(4).
PR: Submitted by: jhb
|
144753 |
07-Apr-2005 |
sobomax |
Make previous commit actually working by replacing TUNABLE_INT() with TUNABLE_INT_FETCH(). Apparently keyboard init is performed earlier in the boot process than fetching all static tunables.
MFC after: 1 day
|
144749 |
07-Apr-2005 |
sobomax |
Provide a new tunable hw.atkbdc.broken_kit_cmd, which if set to 1 instructs the driver to avoid using Keyboard Interface Test command. This command causes problems with some non-compliant hardware, resulting in machine being abruptly powered down early in the boot process.
Particularly it's known that HP ZV5000 and Compaq R3000Z notebooks are affected by this problem.
Due to popularity of those models this patch is good MFC5.4 candidate.
PR: 67745 Submitted by: Jung-uk Kim jkim at niksun.com MFC after: 1 days
|
142569 |
26-Feb-2005 |
sam |
plug memory leak
Noticed by: Coverity Prevent analysis tool
|
139982 |
10-Jan-2005 |
philip |
Make life for owners of Synaptics Touchpads more pleasant :-)
o Implement a shiny new algorithm to keep track of finger movement at slow speeds. This dramatically reduces the level of questionable language from users trying to resize windows.
o Properly catch the many extra buttons and dials which manufacturers are known to screw onto Synaptics touchpad controllers. Currently, up to seven buttons are known to work, more should work too.
o Add a number of sysctls allowing one to tune the driver to taste in a simple way:
# Should the extra buttons act as axes or as middle button hw.psm.synaptics.directional_scrolls
# These control the 'stickiness' at low speeds hw.psm.synaptics.low_speed_threshold hw.psm.synaptics.min_movement hw.psm.synaptics.squelch_level
PR: kern/75725 Submitted by: Jason Kuri <jay@oneway.com> MFC after: 1 month
|
139628 |
03-Jan-2005 |
philip |
Reduce diffs to work in progress before checking in serious changes.
o Move the sysctls under debug.psm.* and hw.psm.* making them a bit clearer and more consistent with other drivers.
o Remove the debug.psm_soft_timeout sysctl. It was introduced many moons ago in r1.64 but never referenced anywhere.
o Introduce hw.psm.tap_threshold and hw.psm.tap_timeout to control the behaviour of taps on touchpads. People might like to fiddle with these if tapping seems to slow or too fast for them.
o Add debug.psm.loglevel as a tunable so that verbosity can be set easily at boot-time (to watch probes and such) without having to compile a kernel with options PSM_DEBUG=N.
|
138900 |
15-Dec-2004 |
jhb |
Add a new flag to the atkbd(4) driver to disable testing the keyboard port during the device probe as this can cause hangs on some machines, specifically Compaq R3000Z series amd64 laptops. The flag is bit 3, or 0x8.
PR: amd64/67745 Reported by: Neil Winterbauer newntrbr at ucla dot edu, many others Tested by: ade, astrodog at gmail dot com, many others MFC after: 1 week
|
136520 |
14-Oct-2004 |
njl |
Remove local hacks to set flags now that the device probe does this for us. Tested on every device except sio_pci and the pc98 fd.c. Perhaps something similar should be done for the "disabled" hints also.
MFC after: 2 weeks
|
135945 |
29-Sep-2004 |
philip |
Introduce a tunable to disable support for Synaptics touchpads. A number of people have reported problems (stickyness, aiming difficulty) which is proving difficult to fix, so this will default to disable until sometime after 5.3R.
To enable Synaptics support, set the 'hw.psm.synaptics_support=1' tunable.
MT5 candidate.
Approved by: njl
|
134405 |
27-Aug-2004 |
gibbs |
Improve sync recovery algorithm: o Remove PSM_SYNCERR_THRESHOLD1. This value specified how many sync errors were required before the mouse is re-initialised. Re-initialisation is now done after (packetsize * 2) sync errors as things aren't likely to improve after that.
o Reset lastinputerror when re-initialisation occurs. We don't want to continue to drop data after re-initialisation.
o Count the number of failed packets independently of the syncerrors statistic. syncerrors is useful for recovering sync within a single packet. pkterrors allows us to detect when the mouse changes its packet mode due to some external event (e.g. KVM switch).
o Reinitialize the mouse if we see more than psmpkterrthresh errors during the validation period. The validation period begins as soon as a sync error is detected and continues until psmerrsecs/msecs time has elapsed. The defaults for these two values force a reset if we see two packet errors in a 2 second period. This allows rapid detection of packet framing errors caused by the mouse changing packet modes.
o Export psmpkterrthresh as a sysctl
o Export psmloglevel as a sysctl.
o Enable more debugging code to be enabled at runtime via psmloglevel.
o Simplify verbose conditioned loging by using a VLOG macro.
o Add several comments describing the sync recovery algorithm of this driver.
Large Portions by: Brian Somers <brian@Awfulhak.org> Inspired and Frustrated by: Belkin KVMs Reviewed by: njl, philip
|
133918 |
17-Aug-2004 |
gibbs |
Defer the capture of the "expected sync bits" until the first "normal" data packet is received from the mouse. In the case of many KVM's, this avoids a bug in their mouse emulation that sends back incorrect sync when you explicitly request a data packet from the mouse. Without this change, you must force the driver into stock PS/2 mode or be flooded with a never ending stream of "out of sync" messages on these KVMs.
Approved by: re
|
133882 |
16-Aug-2004 |
philip |
Don't initialize static variables to 0 (C should just take care of that).
Spotted by: njl
|
133868 |
16-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume V)
o Add (long awaited) support for guest devices
Submitted by: Arne Schwabe <arne@rfc2549.org> Approved by: njl (in a former revision)
|
133301 |
08-Aug-2004 |
philip |
Assume a finger of regular width when no width value is reported by the touchpad (which happens when it has no extended capabilities).
Spotted by: dhw Forgotten by: philip
|
133298 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume IV)
o Change the motion calculation to result in a more reasonable speed of motion
This should fix the 'aiming' problems people have reported. It also mitigates (but doesn't completely solve) the 'stalling' problems at very low speeds.
Tested by: many subscribers to -current Approved by: njl
|
133297 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume III)
o Catch 'taps' as button presses
o One finger sends button1, two fingers send button3, three fingers send button2 (double-click)
Tested by: many subscribers to -current Approved by: njl
|
133296 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume II)
o Handle the 'up/down' buttons some touchpads have as a z-axis (scrollwheel) as recommended by the specs
o Report the buttons as button4 and button5 instead of button2 and button4, button2 can be emulated by pressing button1 and button3 simultaneously. This allows one to use the two extra buttons for other purposes if one so desires.
Tested by: many subscribers to -current Approved by: njl
|
133295 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume I)
o Clean up whitespace and comments in the enable_synaptics() probing function
o Only use (and rely on) the extended capability bits when we are told they actually exist
o Partly ignore the (possibly dated?) part of the specification about the mode byte so that we can support 'guest devices' too.
Tested by: many subscribers to -current Approved by: njl
|
132865 |
30-Jul-2004 |
njl |
Add support for the Synaptics Touchpad mouse driver. I reworked the submitted version with style cleanups and changes to comments. I also modified the ioctl interface. This version only has one ioctl (to get the Synaptics-specific config parameters) since this is the only information a user might want.
Submitted by: Arne Schwabe <arne -at- rfc2549.org>
|
132270 |
16-Jul-2004 |
mux |
Ignore more strange return values of the test_aux_port() function, because some notebooks (apparently Compaq, Toshiba and Acer ones) erroneously return 2 or 3 there.
PR: kern/61482, kern/54188 Submitted by: Ulf Lilleengen <lulf@kerneled.org>, Victor Balada Diaz <victor@alf.dyndns.ws> MFC after: 3 days
|
130585 |
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
130312 |
10-Jun-2004 |
jhb |
Remove atdevbase and replace it's remaining uses with direct references to KERNBASE instead.
|
129880 |
30-May-2004 |
phk |
add missing #include <sys/module.h>
|
128353 |
17-Apr-2004 |
mux |
Don't check for device_get_softc() returning NULL, it can't happen.
|
127841 |
04-Apr-2004 |
markm |
Put a bunch of output that us really only useful in a debug scenario into #ifdef DEBUG. This makes my cluster with Belkin KVM switch completely usable, even if the KVM switch and mouse get a bit confused sometimes.
Without this, when the mouse gets confused, all sorts of crud gets spammed all over the screen. With this, the mouse may appear dead for a second or three, but it recovers silently.
|
127135 |
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
126080 |
21-Feb-2004 |
phk |
Device megapatch 4/6:
Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION.
Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
|
126076 |
21-Feb-2004 |
phk |
Device megapatch 1/6:
Free approx 86 major numbers with a mostly automatically generated patch.
A number of strategic drivers have been left behind by caution, and a few because they still (ab)use their major number.
|
123442 |
11-Dec-2003 |
alfred |
Significantly reduce the "jitter" that is typical for PS/2 mice when using a KVM.
There is no actual solution possible, but this gets us pretty close.
Typically when switching back to a FreeBSD box and moving the mouse wild data is produced, because the protocol's validation/checksum system is extremely weak it is impossible to determine that we're out of sync before dropping several bogus packets to user land.
The actual solution that appears to offer the best clamping of jitter is to buffer the mouse packets if we've not seen mouse activity for more than .5 seconds. Then waiting to flush that data for 1/20th of a second. If within that 20th of a second we get any packets that do fail the weak test we drop the entire queue and back off accepting data from the mouse for 2 seconds and then repeat the whole deal.
You can still get _some_ jitter, notably if you switch to the FreeBSD box, then move the mouse just enough to generate one or two packets. Those packets may be bogus, but may still pass the validity check.
One way to finally kill the problem once and for all is to check the initial packets for "wild" values. Typically one sees packets in the +/-60 range during normal operation, however when bogus data is generated it's typically near the outer range of +/-120 or more, those packets would be a good candidate for dropping or clamping.
I've been running with this for several weeks now and it has significantly helped me stay sane even with a piece of junk Belkin KVM causing wild jitter each and every time I switch.
Lastly I'd like to note that my experience with Windows shows me that somehow the Microsoft PS/2 driver typically avoids this problem, but that may only be possible when running the mouse in a dumb-ed down PS/2 mode that Belkin recommends on their site.
|
122352 |
09-Nov-2003 |
tanimura |
- Implement selwakeuppri() which allows raising the priority of a thread being waken up. The thread waken up can run at a priority as high as after tsleep().
- Replace selwakeup()s with selwakeuppri()s and pass appropriate priorities.
- Add cv_broadcastpri() which raises the priority of the broadcast threads. Used by selwakeuppri() if collision occurs.
Not objected in: -arch, -current
|
120875 |
07-Oct-2003 |
fjoe |
Assign keycodes for Power, Sleep and Wake keys.
Submitted by: Eugene Grosbein <eugen@grosbein.pp.ru>
|
119418 |
24-Aug-2003 |
obrien |
Use __FBSDID(). Also some minor style cleanups.
|
117513 |
13-Jul-2003 |
simokawa |
Fix for FAIL_IF_NO_KBD case as expected.
Even if we have no AT keyboard, an AT keyboard is registered because it's probed with KB_CONF_PROBE_ONLY flag set during console initialization. Unregister the keyboard if it doesn't present while second probe.
This should fix USB keyboard only case without 'kbdcontrol -k /dev/kbd1'.
|
117478 |
12-Jul-2003 |
mikeh |
Add support for the A4 Tech RFSW-35 mouse wheel. Probe is similar to 4D Plus.
PR: 44333
|
117302 |
07-Jul-2003 |
mikeh |
Reset the PSM aux device twice to help pierce through some KVM's to get the correct data from the attached mouse. Multiple resets should be harmless, but just in case, the second one is non-fatal and is just ignored.
|
117167 |
02-Jul-2003 |
jhb |
- Use the new resource_disabled() helper function to see if devices are disabled. - Change the apm driver to match the acpi driver's behavior by checking to see if the device is disabled in the identify routine instead of in the probe routine. This way if the device is disabled it is never created.
Note that a few places (ips(4), Alpha SMP) used "disable" instead of "disabled" for their hint names, and these hints must be changed to "disabled". If this is a big problem, resource_disabled() can always be changed to honor both names.
|
117117 |
01-Jul-2003 |
mikeh |
Add PnP PS/2 id for Dell Latitude X200.
PR: 48516 MFC after: 2 weeks
|
116181 |
11-Jun-2003 |
obrien |
Use __FBSDID().
|
115569 |
31-May-2003 |
phk |
wrap macro in do {...} while(0)
|
115480 |
31-May-2003 |
phk |
Remove extra ';'
Found by: FlexeLint
|
114930 |
12-May-2003 |
peter |
AMD64 physical space is much larger than i386, de-i386 the bus_space and bus_dma MD code for AMD64. (And a trivial ifdef update in dev/kbd because of this). More updates are needed here to take advantage of the 64 bit instructions.
Approved by: re (blanket amd64/*)
|
114382 |
01-May-2003 |
peter |
Update the hardcoded bus tags for early console support for amd64.
|
114293 |
30-Apr-2003 |
markm |
Fix some easy, global, lint warnings. In most cases, this means making some local variables static. In a couple of cases, this means removing an unused variable.
|
114216 |
29-Apr-2003 |
kan |
Deprecate machine/limits.h in favor of new sys/limits.h. Change all in-tree consumers to include <sys/limits.h>
Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
111815 |
03-Mar-2003 |
phk |
Gigacommit to improve device-driver source compatibility between branches:
Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values.
This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386.
Approved by: re(scottl)
|
111748 |
02-Mar-2003 |
des |
More low-hanging fruit: kill caddr_t in calls to wakeup(9) / [mt]sleep(9).
|
110398 |
05-Feb-2003 |
charnier |
Spelling.
|
109710 |
22-Jan-2003 |
marcel |
YAM: This id is found in a Sony Vaio GRX-670. When will this end?
Submitted by: Chuck McCrobie <mccrobie2000@yahoo.com>
|
109679 |
22-Jan-2003 |
hsu |
Add yet another Sony Vaio PS/2 mouse ID. This one is found on a VX88.
Submitted by: marcel
|
109626 |
21-Jan-2003 |
marcel |
Add yet another Sony Vaio PS/2 mouse ID. This one is found in a R505GL. The ACPI data for the mouse includes the compatibility ID, but we apparently don't make use of it.
|
109269 |
15-Jan-2003 |
mdodd |
- GC a few more hand-rolled 'abs' macros. - GC a few hand-rolled min()/max() macros while I'm here.
|
105181 |
15-Oct-2002 |
phk |
Include "opt_kbd.h" since certain structures size depend on the value 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
|
102412 |
25-Aug-2002 |
charnier |
Replace various spelling with FALLTHROUGH which is lint()able
|
102149 |
19-Aug-2002 |
peter |
de-count atkbdc. I have more extensive patches to make properly dynamic, 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).
|
94275 |
09-Apr-2002 |
phk |
GC various bits and pieces of USERCONFIG from all over the place.
|
94228 |
08-Apr-2002 |
asmodai |
Fix typo: conole -> console
PR: 33965 Submitted by: Nicola Vitale <nivit@libero.it>
|
93279 |
27-Mar-2002 |
murray |
Fix spelling and grammar bogons in a comment.
PR: kern/30540 Submitted by: Tony Finch <dot@dotat.at> MFC after: 3 days
|
92756 |
20-Mar-2002 |
alfred |
Remove __P.
|
92661 |
19-Mar-2002 |
peter |
Add the ia64 bus space tag for the IO ports (!). Add a #else and #error so that this doesn't go unnoticed again.
|
92252 |
14-Mar-2002 |
alfred |
Fixes to make select/poll mpsafe.
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
|
92000 |
10-Mar-2002 |
takawata |
Add SONY VAIO psm controller ISA-PnP ID.
|
88188 |
19-Dec-2001 |
sheldonh |
Add another PS2 PNP id.
PR: 32973 Submitted by: KT Sin <ktsin@acm.org>
|
84880 |
13-Oct-2001 |
yokota |
Hack for the "out-of-sync" error.
- 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
|
84407 |
03-Oct-2001 |
takawata |
Add PnP ID 'IBM3781' for TP240 mouse.
|
83931 |
25-Sep-2001 |
yokota |
Yet another turn of workaround for psm/ACPI/PnP BIOS 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.
|
83855 |
23-Sep-2001 |
yokota |
Reinitialize the keyboard after the ACPI resume event.
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.)
|
83492 |
15-Sep-2001 |
yokota |
Refine ACPI/PnP BIOS probe/attach routines a bit.
- 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.
|
83366 |
12-Sep-2001 |
julian |
KSE Milestone 2 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
|
83147 |
06-Sep-2001 |
yokota |
Update the atkbdc, atkbd, and psm drivers to probe/attach 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.
|
82555 |
30-Aug-2001 |
msmith |
Add ACPI attachments.
|
80040 |
20-Jul-2001 |
yokota |
Return consistent key action codes at key press and release 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
|
79022 |
30-Jun-2001 |
yokota |
Add the device resume method to keyboard drivers. MFC after: 4 weeks
|
78135 |
12-Jun-2001 |
peter |
Hints overhaul: - 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.
|
74810 |
26-Mar-2001 |
phk |
Send the remains (such as I have located) of "block major numbers" to the bit-bucket.
|
71394 |
22-Jan-2001 |
dwmalone |
Free the kbd pointer when it isn't NULL, as opposed to when it is. This was a typo in the M_ZERO patches.
Submitted by: Mike Silbersack <silby@silby.com>
|
70834 |
09-Jan-2001 |
wollman |
select() DKI is now in <sys/selinfo.h>.
|
69781 |
08-Dec-2000 |
dwmalone |
Convert more malloc+bzero to malloc+M_ZERO.
Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net>
|
69774 |
08-Dec-2000 |
phk |
Staticize some malloc M_ instances.
|
69439 |
01-Dec-2000 |
yokota |
- Add a hack for "psmintr: out of sync.." This is NOT a fix, 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.
|
69438 |
01-Dec-2000 |
yokota |
- Slightly rearrnage IntelliMouse Explorer and Logitech MouseMan+ identification routines for efficiency. No functional change.
|
67164 |
15-Oct-2000 |
phk |
Remove unneeded #include <machine/clock.h>
|
67153 |
15-Oct-2000 |
peter |
Untangle some resource matching loops that were getting on my nerves and seemed to be getting cut/pasted to places they shouldn't be.
|
66860 |
09-Oct-2000 |
phk |
Initiate deorbit burn sequence for <machine/mouse.h>.
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.
|
66834 |
08-Oct-2000 |
phk |
Initiate deorbit burn sequence for <machine/console.h>.
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.
|
66229 |
22-Sep-2000 |
jhb |
Fix several 64-bit-ism warnings due to sizeof(int) != sizeof(void *) on the alpha.
|
65176 |
28-Aug-2000 |
dfr |
* Completely rewrite the alpha busspace to hide the implementation from 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.
|
65045 |
24-Aug-2000 |
yokota |
Add spltty()/splx() in the watchdog timer routine.
|
63951 |
28-Jul-2000 |
yokota |
Fix GENERIC_MOUSE_ENTRY.
Submitted by: Graham Wheeler <gram@cequrux.com> and gibbs
|
63746 |
22-Jul-2000 |
yokota |
This is yet another attempt to fix "psmintr out of sync.." problems.
- Properly protect the watchdog timer routine. - Relocate the sync check statement so that we don't see too many error messages.
|
61004 |
28-May-2000 |
ache |
Manipulate with AltGR Led (really CapsLock Led) only in K_XLATE mode, because 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>
|
59783 |
30-Apr-2000 |
bde |
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().
|
59391 |
19-Apr-2000 |
phk |
Remove ~25 unneeded #include <sys/conf.h> Remove ~60 unneeded #include <sys/malloc.h>
|
58923 |
02-Apr-2000 |
yokota |
- 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.
|
58272 |
19-Mar-2000 |
yokota |
Missing pieces of the last commit ;-(
|
58271 |
19-Mar-2000 |
yokota |
- Properly keep track of I/O port resources. - Use bus_space_read/write() to access the ports.
|
58230 |
18-Mar-2000 |
yokota |
- 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).
|
57902 |
11-Mar-2000 |
yokota |
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
|
57677 |
01-Mar-2000 |
peter |
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)
|
57481 |
25-Feb-2000 |
yokota |
Do not add children (atkbd and psm) if they are disabled.
Approved by: jkh
|
57131 |
11-Feb-2000 |
yokota |
- 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
|
56836 |
29-Jan-2000 |
peter |
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.
|
56334 |
20-Jan-2000 |
yokota |
- Add some comment from bde on the keyboard interrupt. - Fix obsolete comments.
|
55820 |
11-Jan-2000 |
yokota |
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.
|
55731 |
10-Jan-2000 |
yokota |
Obtain the initial key repeat rate setting via BIOS in i386 if possible.
|
55730 |
10-Jan-2000 |
yokota |
Add some keyboard IDs.
|
55205 |
29-Dec-1999 |
peter |
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.
|
54629 |
15-Dec-1999 |
yokota |
- 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.
|
54543 |
13-Dec-1999 |
yokota |
- Remember the keyboard repeat delay and rate. - Add a new ioctl, KDGETREPEAT, to retrieve the keyboard repeat rate. - Delete unnecessary #include.
|
54382 |
10-Dec-1999 |
yokota |
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
|
54073 |
03-Dec-1999 |
mdodd |
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
|
52997 |
08-Nov-1999 |
peter |
Use DEVICE_MODULE() directly instead of DEV_DRIVER_MODULE. psm.c uses make_dev() already.
|
51658 |
25-Sep-1999 |
phk |
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
|
50477 |
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
50254 |
23-Aug-1999 |
phk |
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().
|
50154 |
22-Aug-1999 |
yokota |
- 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
|
50149 |
22-Aug-1999 |
yokota |
Improve the detection code for GlidePoint. This is still a kludge, but better than before...
PR: kern/13215
|
49965 |
17-Aug-1999 |
yokota |
Recognize Interlink VersaPad. `Tap' action will be recognized as the button 4.
Submitted by: Masachika ISHIZUKA <ishizuka@ish.org>
|
49820 |
15-Aug-1999 |
yokota |
Correctly save `flags' bits.
|
49195 |
29-Jul-1999 |
mdodd |
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
|
48878 |
18-Jul-1999 |
yokota |
- Move the `return' statement the correct place so that the keyboard won't be initialized if `atkbd?' is disabled.
|
48778 |
12-Jul-1999 |
yokota |
Improve Logitech MouseMan+ protocol support.
|
48773 |
12-Jul-1999 |
yokota |
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.
|
48557 |
04-Jul-1999 |
phk |
Remove cmaj and bmaj args from DEV_DRIVER_MODULE.
|
48341 |
29-Jun-1999 |
yokota |
Allocate the port resource when attaching the keyboard controller, rather than when the individual child device is attached.
|
47705 |
03-Jun-1999 |
yokota |
Fix PS/2 MouseMan+ protocol. We have been looking at a wrong place for the sign bit for roller movement!
|
47625 |
30-May-1999 |
phk |
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.
|
47618 |
30-May-1999 |
dfr |
No support for pnp yet.
|
47400 |
22-May-1999 |
dfr |
Use the resource apis to manipulate resources.
|
47336 |
20-May-1999 |
yokota |
- Include isa/isareg.h rather than i386/isa/isa.h for i386. - Remove unused (thus, commented out) section of code.
|
47335 |
20-May-1999 |
yokota |
Include sys/isa/isareg.h rather than i386/isa/isa.h for i386.
|
47296 |
18-May-1999 |
yokota |
Slight reorganization of internal interface in the keyboard controller driver.
|
47293 |
18-May-1999 |
yokota |
The previous commit was wrong! This is the correct one ;-<
|
46836 |
09-May-1999 |
peter |
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)
|
46792 |
09-May-1999 |
phk |
Unconfuse DEV_MODULE() and DEV_DRIVER_MODULE() about the difference between a major number for a dev_t.
|
46765 |
09-May-1999 |
yokota |
Don't confuse cursor keys with numpad keys when composing a char code.
PR: kern/10988
|
46764 |
09-May-1999 |
yokota |
Minor tweak after the introduction of new-bus to i386; properly check "disabled" and "flags" probe hints.
|
46763 |
09-May-1999 |
yokota |
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.)
|
46743 |
08-May-1999 |
dfr |
Move the declaration of the interrupt type from the driver structure to the BUS_SETUP_INTR call.
|
46729 |
08-May-1999 |
peter |
Print the child IRQ on it's identification line.
|
46635 |
07-May-1999 |
phk |
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.)
|
45789 |
18-Apr-1999 |
peter |
Merge revs 1.57 and 1.60 of i386/isa/psm.c
|
45723 |
16-Apr-1999 |
peter |
As a temporary anti-foot-shooting measure, don't let the user attach the atkbd device to isa, as was in the old (and 3.x) GENERIC config.
|
45720 |
16-Apr-1999 |
peter |
Bring the 'new-bus' to the i386. This extensively changes the way the i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA.
(Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.)
This is a checkpoint of work-in-progress, but is quite functional.
The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman.
Approved by: core
|
44628 |
10-Mar-1999 |
yokota |
Keyboard driver update in preparation for the USB keyboard driver.
- Refined internal interface in keyboard drivers so that: 1. the side effect of device probe is kept minimal, 2. polling mode function is added, 3. and new ioctl and configuration options are added (see below).
- Added new ioctl: KDSETREPEAT Set keyboard typematic rate. There has existed an ioctl command, KDSETRAD, for the same purpose. However, KDSETRAD is dependent on the AT keyboard. KDSETREPEAT provides more generic interface. KDSETRAD will still be supported in the atkbd driver.
- Added new configuration options: ATKBD_DFLT_KEYMAP Specify a keymap to be used as the default, built-in keymap. (There has been undocumented options, DKKEYMAP, UKKEYMAP, GRKEYMAP, SWKEYMAP, RUKEYMAP, ESKEYMAP, and ISKEYMAP to set the default keymap. These options are now gone for good. The new option is more general.)
KBD_DISABLE_KEYMAP_LOADING Don't allow the user to change the keymap.
|
43337 |
28-Jan-1999 |
yokota |
- Fixed the bug which always ignored Ctrl-Pause/Break on the AT 101 keyboard. - Translate some keycode for the 84 keyboard so that the 84 keyboard and the 101 keyboard become more compatible in terms of keycodes. - Updated the built-in keymaps so that it is in line with the recent changes in share/syscons/keymaps. - Added some comment on the Pause/Break key on the 101 keyboard.
|
43105 |
23-Jan-1999 |
dfr |
Update the alpha port to use the new syscons.
Submitted by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> (partly)
|
42831 |
19-Jan-1999 |
yokota |
syscons - Bring down the splash screen when a vty is opened for the first time. - Make sure the splash screen/screen saver is stopped before switching vtys. - Read and save initial values in the BIOS data area early. VESA BIOS may change BIOS data values when switching modes. - Fix missing '&' operator. - Move ISA specific part of driver initialization to syscons_isa.c.
atkbd - kbdtables.h is now in /sys/dev/kbd.
all - Adjust for forthcoming alpha port. Submitted by: dfr
|
42626 |
13-Jan-1999 |
yokota |
Use the correct macro to test flags; we need KBD_IS_INITIALIZED here, not KBD_IS_PROBED.
|
42421 |
09-Jan-1999 |
yokota |
Add the new keyboard driver and video card driver. They will be used by console drivers.
(They are not yet activated yet. Wait for announcement later.)
|
41181 |
15-Nov-1998 |
dfr |
* Add hooks to allow the X server to access I/O ports and memory. * Update drivers to the latest version of the bus interface.
The ISA drivers' use of the new resource api is minimal. Garrett has some much cleaner drivers which should be more easily shared between i386 and alpha. This has only been tested on cia based machines. It should work on lca and apecs but I might have broken something.
|
41016 |
08-Nov-1998 |
dfr |
Port the ps/2 mouse driver to the alpha.
|