Lines 473-478
struct psm_softc { /* Driver status information */
Link Here
|
473 |
int muxtpbuttons; /* Touchpad button state */ |
473 |
int muxtpbuttons; /* Touchpad button state */ |
474 |
int muxmsbuttons; /* Mouse (trackpoint) button state */ |
474 |
int muxmsbuttons; /* Mouse (trackpoint) button state */ |
475 |
struct timeval muxmidtimeout; /* middle button supression timeout */ |
475 |
struct timeval muxmidtimeout; /* middle button supression timeout */ |
|
|
476 |
int muxsinglesyna; /* One active port with Synaptics */ |
476 |
#ifdef EVDEV_SUPPORT |
477 |
#ifdef EVDEV_SUPPORT |
477 |
struct evdev_dev *evdev_a; /* Absolute reporting device */ |
478 |
struct evdev_dev *evdev_a; /* Absolute reporting device */ |
478 |
struct evdev_dev *evdev_r; /* Relative reporting device */ |
479 |
struct evdev_dev *evdev_r; /* Relative reporting device */ |
Lines 673-678
static probefunc_t enable_4dplus;
Link Here
|
673 |
static probefunc_t enable_mmanplus; |
674 |
static probefunc_t enable_mmanplus; |
674 |
static probefunc_t enable_synaptics; |
675 |
static probefunc_t enable_synaptics; |
675 |
static probefunc_t enable_synaptics_mux; |
676 |
static probefunc_t enable_synaptics_mux; |
|
|
677 |
static probefunc_t enable_single_synaptics_mux; |
676 |
static probefunc_t enable_trackpoint; |
678 |
static probefunc_t enable_trackpoint; |
677 |
static probefunc_t enable_versapad; |
679 |
static probefunc_t enable_versapad; |
678 |
static probefunc_t enable_elantech; |
680 |
static probefunc_t enable_elantech; |
Lines 695-700
static struct {
Link Here
|
695 |
*/ |
697 |
*/ |
696 |
{ MOUSE_MODEL_SYNAPTICS, /* Synaptics Touchpad on Active Mux */ |
698 |
{ MOUSE_MODEL_SYNAPTICS, /* Synaptics Touchpad on Active Mux */ |
697 |
0x00, MOUSE_PS2_PACKETSIZE, enable_synaptics_mux }, |
699 |
0x00, MOUSE_PS2_PACKETSIZE, enable_synaptics_mux }, |
|
|
700 |
{ MOUSE_MODEL_SYNAPTICS, /* Single synaptics on Active Mux */ |
701 |
0xc0, MOUSE_SYNAPTICS_PACKETSIZE, enable_single_synaptics_mux }, |
698 |
{ MOUSE_MODEL_NET, /* Genius NetMouse */ |
702 |
{ MOUSE_MODEL_NET, /* Genius NetMouse */ |
699 |
0x08, MOUSE_PS2INTELLI_PACKETSIZE, enable_gmouse }, |
703 |
0x08, MOUSE_PS2INTELLI_PACKETSIZE, enable_gmouse }, |
700 |
{ MOUSE_MODEL_NETSCROLL, /* Genius NetScroll */ |
704 |
{ MOUSE_MODEL_NETSCROLL, /* Genius NetScroll */ |
Lines 6342-6359
enable_synaptics_mux(struct psm_softc *sc, enum probearg arg)
Link Here
|
6342 |
active_ports_count); |
6346 |
active_ports_count); |
6343 |
|
6347 |
|
6344 |
/* psm has a special support for GenMouse + SynTouchpad combination */ |
6348 |
/* psm has a special support for GenMouse + SynTouchpad combination */ |
6345 |
if (active_ports_count >= 2) { |
6349 |
for (port = 0; port < KBDC_AUX_MUX_NUM_PORTS; port++) { |
6346 |
for (port = 0; port < KBDC_AUX_MUX_NUM_PORTS; port++) { |
6350 |
if ((active_ports_mask & 1 << port) == 0) |
6347 |
if ((active_ports_mask & 1 << port) == 0) |
6351 |
continue; |
6348 |
continue; |
6352 |
VLOG(3, (LOG_DEBUG, "aux_mux: probe port %d\n", port)); |
6349 |
VLOG(3, (LOG_DEBUG, "aux_mux: probe port %d\n", port)); |
6353 |
set_active_aux_mux_port(kbdc, port); |
6350 |
set_active_aux_mux_port(kbdc, port); |
6354 |
probe = enable_synaptics(sc, arg); |
6351 |
probe = enable_synaptics(sc, arg); |
6355 |
if (probe) { |
6352 |
if (probe) { |
6356 |
if (arg == PROBE) |
6353 |
if (arg == PROBE) |
6357 |
sc->muxport = port; |
6354 |
sc->muxport = port; |
6358 |
break; |
6355 |
break; |
|
|
6356 |
} |
6357 |
} |
6359 |
} |
6358 |
} |
6360 |
} |
6359 |
|
6361 |
|
Lines 6375-6381
enable_synaptics_mux(struct psm_softc *sc, enum probearg arg)
Link Here
|
6375 |
} |
6377 |
} |
6376 |
empty_both_buffers(kbdc, 10); /* remove stray data if any */ |
6378 |
empty_both_buffers(kbdc, 10); /* remove stray data if any */ |
6377 |
|
6379 |
|
6378 |
return (probe); |
6380 |
if (active_ports_count == 1) |
|
|
6381 |
sc->muxsinglesyna = probe; |
6382 |
return (active_ports_count != 1 ? probe : FALSE); |
6383 |
} |
6384 |
|
6385 |
static int |
6386 |
enable_single_synaptics_mux(struct psm_softc *sc, enum probearg arg) |
6387 |
{ |
6388 |
return (sc->muxsinglesyna); |
6379 |
} |
6389 |
} |
6380 |
|
6390 |
|
6381 |
static int |
6391 |
static int |