From nobody Tue Mar 24 06:44:52 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fg0s64802z6WDpD for ; Tue, 24 Mar 2026 06:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fg0s61rgLz3Xsk for ; Tue, 24 Mar 2026 06:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774334698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2fgUyY/1dpIvRilQPsKGYShFSXaKhAo1vmExcHfEp9I=; b=qLMJzlTrI2QAuWZSBlCO3IZlcoULcKe+kan1s6fOBbcPhLEDowzdlZuraZDKz7PPhWi6Bz YTTzhjGhypkf9nhOmXZrbD8bjzMFrEWXXd+pZ20HajfbvDpQNjA3E8GMBqV4LKIvURTLEs rrx9d9KTP3tg2jn7rnQWcGSWyPqy3Jl00cToYfMgEc2iO7RsJbhHgJccOBWU50IS8pdjrQ fkf4f2lnYhEd1vwzJN6w8ge0drLfpSGYq6H1SCTe8Zx7+iFpEJSgkWI2y/MPZnskKy5ieo NhxNHAfsPhnl0Zum5rDvkEoZ90hyRP13u6vxLuBzBERtOmUCrByXetpMy4MS7g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774334698; a=rsa-sha256; cv=none; b=oyIwwFvlkxcvw9CCEaxDWODPAUbtAtZohbuCAJARXqG6tekvyPeX0b+zWvK7454Azynq5N UK/Br1skJCbVL1q3BPejo7AhHqTtIozLs7++sznckfWsQlQsuTyUfkE0I4nvI4EkNozXda fO7bgvFcAmyK35+TCpoODZTtbvPPrKOfob5EiQ4sJkhibmHfiMadoXjXT7oeCUW0CJC8RL SFIBA1SCBucgkDWs//3bLmr7ZX24rdBmN2abAOoqRwX+/zavF+qd0D2dNKwJzfp+qOy4U8 r1wCesd5izTFY9PVzt0e1R41pHXkEJf9NgqMN+QeO+vc5xdbDgJQsbUiUNKLiw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774334698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2fgUyY/1dpIvRilQPsKGYShFSXaKhAo1vmExcHfEp9I=; b=WNVAubaJLXb+ORrnWuCs4aJk0FEffpMYfGMMd7zEa2WwZ8t4n+SZDsAq5p9QPOAvdXFxNW 9UNXynuEfuGplrhj8rSZFIqLz/wlQYeby69XK2aESMNsMA+EhDMgq9tkoEbj1yOP7b0q13 9Z+coB9kV4mZruwLXU2UVuYCDRNh1lhWO0rDSmcYs5Z4MFHyWdS2yqMuBnIsb+07/18C/H TTIy9/zv7DqSz30MTBoT/8WDBZf3Hr3lxsLpQdDIQfunYqinrLw/kk6JckC5uCLKASJS/h 9XLTU/H+mxnHPG6e6j965TnjL4b6M5Q+ffbE9uIkrPA0B4N1zOOOLlZ6lMLlqw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fg0s574vwz1Lp4 for ; Tue, 24 Mar 2026 06:44:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 426fe by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Mar 2026 06:44:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Majed Alkhaleefah From: Aymeric Wibo Subject: git: c586944fa208 - main - hid/hgame: Fix desync in hgame_dpad_cb() List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: obiwac X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c586944fa20899ab0f6b58b550e753d13d889c5b Auto-Submitted: auto-generated Date: Tue, 24 Mar 2026 06:44:52 +0000 Message-Id: <69c232e4.426fe.64e62e4b@gitrepo.freebsd.org> The branch main has been updated by obiwac: URL: https://cgit.FreeBSD.org/src/commit/?id=c586944fa20899ab0f6b58b550e753d13d889c5b commit c586944fa20899ab0f6b58b550e753d13d889c5b Author: Majed Alkhaleefah AuthorDate: 2026-03-24 06:37:09 +0000 Commit: Aymeric Wibo CommitDate: 2026-03-24 06:37:19 +0000 hid/hgame: Fix desync in hgame_dpad_cb() hgame_dpad_cb() previously exited early whenever conflicting directions were input (e.g., UP + DOWN) without saving said input to the hgame_softc state. This led to a desync between the driver and the gamepad. This patch instead handles conflicting inputs by cancelling them out with each other. Remove early return. Calculate axis value by subtraction. Reviewed by: obiwac Approved by: obiwac Differential Revision: https://reviews.freebsd.org/D55849 --- sys/dev/hid/hgame.c | 16 ++++------------ 1 file 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;