summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorVladimir Kondratyev <wulf@FreeBSD.org>2020-12-21 15:24:09 +0000
committerVladimir Kondratyev <wulf@FreeBSD.org>2020-12-23 08:09:25 +0000
commita223aa8abd6d1bf9547262c9a52333bcf4d0d13a (patch)
tree0d596e4079639db98d99c208daddd016e84a52b3 /sys
parent659f1a6aad04adf0a0d27415f7a967d231ce4cfb (diff)
downloadsrc-test-a223aa8abd6d1bf9547262c9a52333bcf4d0d13a.tar.gz
src-test-a223aa8abd6d1bf9547262c9a52333bcf4d0d13a.zip
cyapa(4): Make button detection matching ChromeOS driver
Tested-by: Matthias Apitz <guru@unixarea.de> MFC-after: 2 weeks
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/cyapa/cyapa.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/cyapa/cyapa.c b/sys/dev/cyapa/cyapa.c
index 293d68e9abdc3..644d59ae095fb 100644
--- a/sys/dev/cyapa/cyapa.c
+++ b/sys/dev/cyapa/cyapa.c
@@ -536,13 +536,14 @@ cyapa_attach(device_t dev)
cap.phy_siz_x_low;
sc->cap_phyy = ((cap.phy_siz_xy_high << 8) & 0x0F00) |
cap.phy_siz_y_low;
- sc->cap_buttons = cap.buttons;
+ sc->cap_buttons = cap.buttons >> 3 &
+ (CYAPA_FNGR_LEFT | CYAPA_FNGR_RIGHT | CYAPA_FNGR_MIDDLE);
device_printf(dev, "%5.5s-%6.6s-%2.2s buttons=%c%c%c res=%dx%d\n",
cap.prod_ida, cap.prod_idb, cap.prod_idc,
- ((cap.buttons & CYAPA_FNGR_LEFT) ? 'L' : '-'),
- ((cap.buttons & CYAPA_FNGR_MIDDLE) ? 'M' : '-'),
- ((cap.buttons & CYAPA_FNGR_RIGHT) ? 'R' : '-'),
+ ((sc->cap_buttons & CYAPA_FNGR_LEFT) ? 'L' : '-'),
+ ((sc->cap_buttons & CYAPA_FNGR_MIDDLE) ? 'M' : '-'),
+ ((sc->cap_buttons & CYAPA_FNGR_RIGHT) ? 'R' : '-'),
sc->cap_resx, sc->cap_resy);
sc->hw.buttons = 5;