aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hid
diff options
context:
space:
mode:
authorMajed Alkhaleefah <majedalkhaleefah@gmail.com>2026-03-24 06:37:09 +0000
committerAymeric Wibo <obiwac@FreeBSD.org>2026-03-24 06:37:19 +0000
commitc586944fa20899ab0f6b58b550e753d13d889c5b (patch)
tree81393ed673ed649d9523853f26f41cd293437e8a /sys/dev/hid
parentc6bcf6e6fd507d952a48226b51cc161b8ef972a2 (diff)
Diffstat (limited to 'sys/dev/hid')
-rw-r--r--sys/dev/hid/hgame.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/sys/dev/hid/hgame.c b/sys/dev/hid/hgame.c
index 8dde6b5550c9..693c5afee034 100644
--- a/sys/dev/hid/hgame.c
+++ b/sys/dev/hid/hgame.c
@@ -134,28 +134,20 @@ hgame_dpad_cb(HIDMAP_CB_ARGS)
data = ctx.data;
switch (HIDMAP_CB_UDATA64) {
case HUG_D_PAD_UP:
- if (sc->dpad_down)
- return (ENOMSG);
- evdev_push_abs(evdev, ABS_HAT0Y, (data == 0) ? 0 : -1);
sc->dpad_up = (data != 0);
+ evdev_push_abs(evdev, ABS_HAT0Y, sc->dpad_down - sc->dpad_up);
break;
case HUG_D_PAD_DOWN:
- if (sc->dpad_up)
- return (ENOMSG);
- evdev_push_abs(evdev, ABS_HAT0Y, (data == 0) ? 0 : 1);
sc->dpad_down = (data != 0);
+ evdev_push_abs(evdev, ABS_HAT0Y, sc->dpad_down - sc->dpad_up);
break;
case HUG_D_PAD_RIGHT:
- if (sc->dpad_left)
- return (ENOMSG);
- evdev_push_abs(evdev, ABS_HAT0X, (data == 0) ? 0 : 1);
sc->dpad_right = (data != 0);
+ evdev_push_abs(evdev, ABS_HAT0X, sc->dpad_right - sc->dpad_left);
break;
case HUG_D_PAD_LEFT:
- if (sc->dpad_right)
- return (ENOMSG);
- evdev_push_abs(evdev, ABS_HAT0X, (data == 0) ? 0 : -1);
sc->dpad_left = (data != 0);
+ evdev_push_abs(evdev, ABS_HAT0X, sc->dpad_right - sc->dpad_left);
break;
}
break;