svn commit: r359015 - head/sys/dev/usb/input
Alfredo Dal'Ava Junior
alfredo at FreeBSD.org
Mon Mar 16 13:53:31 UTC 2020
Author: alfredo
Date: Mon Mar 16 13:53:29 2020
New Revision: 359015
URL: https://svnweb.freebsd.org/changeset/base/359015
Log:
atp: fix mouse attachment on PowerBook5,6 (G4)
Skip device mode switch step on Fountain-based devices as they don't
support RAW_SENSOR_MODE command, so failing to attach.
This was reproduced on PowerBook G4 (model PowerBook5,6) equipped with
product ID 0x020e
Reviewed by: hselasky
Approved by: jhibbits (mentor)
Differential Revision: https://reviews.freebsd.org/D24005
Modified:
head/sys/dev/usb/input/atp.c
Modified: head/sys/dev/usb/input/atp.c
==============================================================================
--- head/sys/dev/usb/input/atp.c Mon Mar 16 12:33:57 2020 (r359014)
+++ head/sys/dev/usb/input/atp.c Mon Mar 16 13:53:29 2020 (r359015)
@@ -2219,6 +2219,9 @@ atp_attach(device_t dev)
return (ENXIO);
}
+ di = USB_GET_DRIVER_INFO(uaa);
+ sc->sc_family = DECODE_FAMILY_FROM_DRIVER_INFO(di);
+
/*
* By default the touchpad behaves like an HID device, sending
* packets with reportID = 2. Such reports contain only
@@ -2227,17 +2230,18 @@ atp_attach(device_t dev)
* sensors. The device input mode can be switched from HID
* reports to raw sensor data using vendor-specific USB
* control commands.
+ * FOUNTAIN devices will give an error when trying to switch
+ * input mode, so we skip this command
*/
- if ((err = atp_set_device_mode(sc, RAW_SENSOR_MODE)) != 0) {
+ if ((sc->sc_family == TRACKPAD_FAMILY_FOUNTAIN_GEYSER) &&
+ (DECODE_PRODUCT_FROM_DRIVER_INFO(di) == FOUNTAIN))
+ DPRINTF("device mode switch skipped: Fountain device\n");
+ else if ((err = atp_set_device_mode(sc, RAW_SENSOR_MODE)) != 0) {
DPRINTF("failed to set mode to 'RAW_SENSOR' (%d)\n", err);
return (ENXIO);
}
mtx_init(&sc->sc_mutex, "atpmtx", NULL, MTX_DEF | MTX_RECURSE);
-
- di = USB_GET_DRIVER_INFO(uaa);
-
- sc->sc_family = DECODE_FAMILY_FROM_DRIVER_INFO(di);
switch(sc->sc_family) {
case TRACKPAD_FAMILY_FOUNTAIN_GEYSER:
More information about the svn-src-head
mailing list