lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 18 Jan 2024 10:41:31 -0800
From: Brenton Simpson <appsforartists@...gle.com>
To: Dmitry Torokhov <dmitry.torokhov@...il.com>, Hans de Goede <hdegoede@...hat.com>
Cc: Cameron Gutman <aicommander@...il.com>, Erica Taylor <rickytaylor26@...il.com>, 
	Ismael Ferreras Morezuelas <swyterzone@...il.com>, Jonathan Frederick <doublej472@...il.com>, 
	Matthias Benkmann <matthias.benkmann@...il.com>, Matthias Berndt <matthias_berndt@....de>, nate@...om.org, 
	Sam Lantinga <slouken@...sdl.org>, Vicki Pfau <vi@...rift.com>, linux-input@...r.kernel.org, 
	linux-kernel@...r.kernel.org, trivial@...nel.org
Subject: Re: [PATCH] Input: xpad - add Lenovo Legion Go controllers

A bunch of internal wrangling and one holiday codefreeze later, my git
alias has finally been enabled for send-email.

Sorry for the hassle, and thanks for your help.

On Thu, Jan 18, 2024 at 10:35 AM Brenton Simpson
<appsforartists@...gle.com> wrote:
>
> The Lenovo Legion Go is a handheld gaming system, similar to a Steam Deck.
> It has a gamepad (including rear paddles), 3 gyroscopes, a trackpad,
> volume buttons, a power button, and 2 LED ring lights.
>
> The Legion Go firmware presents these controls as a USB hub with various
> devices attached.  In its default state, the gamepad is presented as an
> Xbox controller connected to this hub.  (By holding a combination of
> buttons, it can be changed to use the older DirectInput API.)
>
> This patch teaches the existing Xbox controller module `xpad` to bind to
> the controller in the Legion Go, which enables support for the:
>
> - directional pad,
> - analog sticks (including clicks),
> - X, Y, A, B,
> - start and select (or menu and capture),
> - shoulder buttons, and
> - rumble.
>
> The trackpad, touchscreen, volume controls, and power button are already
> supported via existing kernel modules.  Two of the face buttons, the
> gyroscopes, rear paddles, and LEDs are not.
>
> After this patch lands, the Legion Go will be mostly functional in Linux,
> out-of-the-box.  The various components of the USB hub can be synthesized
> into a single logical controller (including the additional buttons) in
> userspace with [Handheld Daemon](https://github.com/hhd-dev/hhd), which
> makes the Go fully functional.
>
> Signed-off-by: Brenton Simpson <appsforartists@...gle.com>
> ---
>  drivers/input/joystick/xpad.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> index f5c21565bb3c..ecfcea8740a0 100644
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -127,6 +127,7 @@ static const struct xpad_device {
>         u8 mapping;
>         u8 xtype;
>  } xpad_device[] = {
> +       { 0x17ef, 0x6182, "Lenovo Legion Controller for Windows", 0, XTYPE_XBOX360 },
>         { 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 },
>         { 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 },
>         { 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 },
> @@ -459,6 +460,7 @@ static const signed short xpad_btn_paddles[] = {
>
>  static const struct usb_device_id xpad_table[] = {
>         { USB_INTERFACE_INFO('X', 'B', 0) },    /* Xbox USB-IF not-approved class */
> +       XPAD_XBOX360_VENDOR(0x17ef),            /* Lenovo */
>         XPAD_XBOX360_VENDOR(0x0079),            /* GPD Win 2 controller */
>         XPAD_XBOX360_VENDOR(0x03eb),            /* Wooting Keyboards (Legacy) */
>         XPAD_XBOXONE_VENDOR(0x03f0),            /* HP HyperX Xbox One controllers */
> --
> 2.43.0.275.g3460e3d667-goog
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ