atkbdc(4): Serialize hardware access with mutex
In 4.x days it was serialized with spl() calls and kbdc lock flag
After 5.x it became protected with giant lock.
Restore 4.x logic with replacing kbdc lock flag acquiring with
atkbdc lock aquiring.
psm(4): Serialize softc access with mutex
psm(4): Add EVDEV support
psm(4): Several minor fixes and adjustments to psm tunables, mostly touchpads-related
1. Fix rare but quite annoying issue in Elan hw v.4 touchpads support.
Triple-finger taps are reported as double-finger taps under several
circumstances.
2. Adjust tap min queue size on Elans to make multifinger tap detection
more reliable.
3. Adjust Elantech palm width threshold to nearly match synaptics defaults
4. Discard pointer movements rather then mouse packets on palm detection
to reduce cursor jumping.
5. Enable palm detection on two finger touches for multitouch trackpads.
6. 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.
7. Set predefined logical touchpad sizes for several ancient Elan hw v.2
models. This change is based on Linux driver. Not tested
8. Determine logical trace size. It used for calculation of touch sizes
in surface units for MT-protocol type B evdev reports.
9. Remove direct inclusion of sys/libkern.h header as it is a style bug.