FreeBSD Bugzilla – Attachment 226336 Details for
Bug 253279
kern/atkbdc/psm: Synaptics Touchpad detection fix when connected to both PS/2 and SMBus.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
psm.patch
psm.patch (text/plain), 2.65 KB, created by
Vladimir Kondratyev
on 2021-07-09 23:36:28 UTC
(
hide
)
Description:
psm.patch
Filename:
MIME Type:
Creator:
Vladimir Kondratyev
Created:
2021-07-09 23:36:28 UTC
Size:
2.65 KB
patch
obsolete
>diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c >index e1ee0ed900a..67772047b80 100644 >--- a/sys/dev/atkbdc/psm.c >+++ b/sys/dev/atkbdc/psm.c >@@ -473,6 +473,7 @@ struct psm_softc { /* Driver status information */ > int muxtpbuttons; /* Touchpad button state */ > int muxmsbuttons; /* Mouse (trackpoint) button state */ > struct timeval muxmidtimeout; /* middle button supression timeout */ >+ int muxsinglesyna; /* One active port with Synaptics */ > #ifdef EVDEV_SUPPORT > struct evdev_dev *evdev_a; /* Absolute reporting device */ > struct evdev_dev *evdev_r; /* Relative reporting device */ >@@ -673,6 +674,7 @@ static probefunc_t enable_4dplus; > static probefunc_t enable_mmanplus; > static probefunc_t enable_synaptics; > static probefunc_t enable_synaptics_mux; >+static probefunc_t enable_single_synaptics_mux; > static probefunc_t enable_trackpoint; > static probefunc_t enable_versapad; > static probefunc_t enable_elantech; >@@ -695,6 +697,8 @@ static struct { > */ > { MOUSE_MODEL_SYNAPTICS, /* Synaptics Touchpad on Active Mux */ > 0x00, MOUSE_PS2_PACKETSIZE, enable_synaptics_mux }, >+ { MOUSE_MODEL_SYNAPTICS, /* Single synaptics on Active Mux */ >+ 0xc0, MOUSE_SYNAPTICS_PACKETSIZE, enable_single_synaptics_mux }, > { MOUSE_MODEL_NET, /* Genius NetMouse */ > 0x08, MOUSE_PS2INTELLI_PACKETSIZE, enable_gmouse }, > { MOUSE_MODEL_NETSCROLL, /* Genius NetScroll */ >@@ -6342,18 +6346,16 @@ enable_synaptics_mux(struct psm_softc *sc, enum probearg arg) > active_ports_count); > > /* psm has a special support for GenMouse + SynTouchpad combination */ >- if (active_ports_count >= 2) { >- for (port = 0; port < KBDC_AUX_MUX_NUM_PORTS; port++) { >- if ((active_ports_mask & 1 << port) == 0) >- continue; >- VLOG(3, (LOG_DEBUG, "aux_mux: probe port %d\n", port)); >- set_active_aux_mux_port(kbdc, port); >- probe = enable_synaptics(sc, arg); >- if (probe) { >- if (arg == PROBE) >- sc->muxport = port; >- break; >- } >+ for (port = 0; port < KBDC_AUX_MUX_NUM_PORTS; port++) { >+ if ((active_ports_mask & 1 << port) == 0) >+ continue; >+ VLOG(3, (LOG_DEBUG, "aux_mux: probe port %d\n", port)); >+ set_active_aux_mux_port(kbdc, port); >+ probe = enable_synaptics(sc, arg); >+ if (probe) { >+ if (arg == PROBE) >+ sc->muxport = port; >+ break; > } > } > >@@ -6375,7 +6377,15 @@ enable_synaptics_mux(struct psm_softc *sc, enum probearg arg) > } > empty_both_buffers(kbdc, 10); /* remove stray data if any */ > >- return (probe); >+ if (active_ports_count == 1) >+ sc->muxsinglesyna = probe; >+ return (active_ports_count != 1 ? probe : FALSE); >+} >+ >+static int >+enable_single_synaptics_mux(struct psm_softc *sc, enum probearg arg) >+{ >+ return (sc->muxsinglesyna); > } > > static int
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 253279
: 226336