FreeBSD Bugzilla – Attachment 198926 Details for
Bug 231058
no support for active PS/2 multiplexing results in erratic behaviour of Synaptics touchpad on HP 8560w
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
prefer trackpoint buttons over touchpad's + touchpad button state hysteresis
psm-disable-middle.patch (text/plain), 1.53 KB, created by
Vladimir Kondratyev
on 2018-11-04 08:23:31 UTC
(
hide
)
Description:
prefer trackpoint buttons over touchpad's + touchpad button state hysteresis
Filename:
MIME Type:
Creator:
Vladimir Kondratyev
Created:
2018-11-04 08:23:31 UTC
Size:
1.53 KB
patch
obsolete
>diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c >index a34de641a08a..406dd5e6272b 100644 >--- a/sys/dev/atkbdc/psm.c >+++ b/sys/dev/atkbdc/psm.c >@@ -4948,6 +4948,9 @@ psmsoftintr(void *arg) > > case MOUSE_MODEL_SYNAPTICS: > if (pb->inputbytes == MOUSE_PS2_PACKETSIZE) { >+ static int trbutt; >+ int tpbutt; >+ static int otpbutt; > /* Don't rely on bit 3. It is garbled by mux */ > switch (pb->ipacket[0] & 0xc0) { > case 0x80: >@@ -4960,8 +4963,32 @@ psmsoftintr(void *arg) > bcopy(pb->ipacket, pb->ipacket + 3, 3); > bcopy(sc->muxsave, pb->ipacket, 3); > sc->muxsave[0] &= 0x03; >+ pb->ipacket[0] &= ~trbutt; >+ pb->ipacket[3] &= ~trbutt; >+ tpbutt = (pb->ipacket[3] & 0x03) << 2 | >+ (pb->ipacket[0] & 0x03); >+ if (tpbutt != otpbutt && >+ sc->fpcount < 3) { >+ pb->ipacket[0] &= 0xfc; >+ pb->ipacket[0] |= otpbutt & 0x03; >+ pb->ipacket[3] &= 0xfc; >+ pb->ipacket[3] |= otpbutt >> 2 & 0x03; >+ ++sc->fpcount; >+ } else { >+ sc->fpcount = 0; >+ otpbutt = tpbutt; >+ } >+ if (sc->synhw.capExtended && >+ !sc->synhw.capPassthrough && >+ (pb->ipacket[0] & 0x34) == 0x04 && >+ (pb->ipacket[3] & 0x04) == 0x04) { >+ pb->ipacket[0] &= 0xfb; >+ pb->ipacket[3] &= 0xfb; >+ } >+VLOG(3, (LOG_DEBUG, "buttons: [%02x],[%02x]\n", pb->ipacket[0], pb->ipacket[3])); > break; > default: >+ trbutt = pb->ipacket[0] & 0x07; > /* Convert generic -> pass-through */ > pb->ipacket[5] = pb->ipacket[2]; > pb->ipacket[4] = pb->ipacket[1];
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 231058
:
196747
|
197498
|
197499
|
197500
|
197560
|
197561
|
197562
|
197580
|
197603
|
197619
|
197625
|
197626
|
197637
|
197658
|
197703
|
197704
|
198030
|
198791
|
198807
|
198824
|
198852
|
198863
|
198878
|
198880
|
198898
|
198926
|
198934
|
199114
|
199294
|
199322
|
199327
|
199329