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 22:16:43 -0800
From: Vicki Pfau <vi@...rift.com>
To: Brenton Simpson <appsforartists@...gle.com>,
 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>, linux-input@...r.kernel.org,
 linux-kernel@...r.kernel.org, trivial@...nel.org
Subject: Re: [PATCH] Input: xpad - add Lenovo Legion Go controllers

Hi Brenton,

On 1/18/24 10:35, Brenton Simpson 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 },

Please keep the items in this list sorted.

 > @@ -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 */

Ditto here.

Dmitry will sometimes take patches and fix the sorting after they're 
submitted so you might not to resubmit, but for future reference, this 
list is intended to be sorted.

Vicki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ