View | Details | Raw Unified | Return to bug 253279
Collapse All | Expand All

(-)b/sys/dev/atkbdc/psm.c (-13 / +23 lines)
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

Return to bug 253279