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
- 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.
- Adjust tap min queue size on Elans to make multifinger tap detection more reliable.
- Adjust Elantech palm width threshold to nearly match synaptics defaults
- Discard pointer movements rather then mouse packets on palm detection to reduce cursor jumping.
- Enable palm detection on two finger touches for multitouch trackpads.
- 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.
- Set predefined logical touchpad sizes for several ancient Elan hw v.2 models. This change is based on Linux driver. Not tested
- Determine logical trace size. It used for calculation of touch sizes in surface units for MT-protocol type B evdev reports.
- Remove direct inclusion of sys/libkern.h header as it is a style bug.
- 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.