linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Input: xpad - sync with github fork
@ 2022-04-17 16:15 Pavel Rojtberg
  2022-04-17 16:15 ` [PATCH 1/3] Input: xpad - add supported devices as contributed on github Pavel Rojtberg
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Pavel Rojtberg @ 2022-04-17 16:15 UTC (permalink / raw)
  To: linux-input, dmitry.torokhov, gregkh; +Cc: Pavel Rojtberg

From: Pavel Rojtberg <rojtberg@gmail.com>

This upstreams some changes contributed on github.
The first patch merely updates the list of supported devices.
The remaining patches improve xbox360w gamepad support.
Those were verified by me, as I own that device.

Cameron Gutman (1):
  Input: xpad - fix wireless 360 controller breaking after suspend

Pavel Rojtberg (2):
  Input: xpad - add supported devices as contributed on github
  Input: xpad - Poweroff XBOX360W on mode button long press

 drivers/input/joystick/xpad.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] Input: xpad - add supported devices as contributed on github
  2022-04-17 16:15 [PATCH 0/3] Input: xpad - sync with github fork Pavel Rojtberg
@ 2022-04-17 16:15 ` Pavel Rojtberg
  2022-04-18  6:16   ` Greg KH
  2022-04-17 16:15 ` [PATCH 2/3] Input: xpad - fix wireless 360 controller breaking after suspend Pavel Rojtberg
  2022-04-17 16:15 ` [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press Pavel Rojtberg
  2 siblings, 1 reply; 8+ messages in thread
From: Pavel Rojtberg @ 2022-04-17 16:15 UTC (permalink / raw)
  To: linux-input, dmitry.torokhov, gregkh
  Cc: Pavel Rojtberg, Jasper Poppe, Jeremy Palmer, Ruineka

From: Pavel Rojtberg <rojtberg@gmail.com>

This is based on multiple commits at https://github.com/paroj/xpad

Signed-off-by: Jasper Poppe <jgpoppe@gmail.com>
Signed-off-by: Jeremy Palmer <jpalmer@linz.govt.nz>
Signed-off-by: Ruineka <ruinairas1992@gmail.com>
Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
---
 drivers/input/joystick/xpad.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 53126d9..257fc2c 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -244,6 +244,7 @@ static const struct xpad_device {
 	{ 0x0f0d, 0x0063, "Hori Real Arcade Pro Hayabusa (USA) Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
 	{ 0x0f0d, 0x0067, "HORIPAD ONE", 0, XTYPE_XBOXONE },
 	{ 0x0f0d, 0x0078, "Hori Real Arcade Pro V Kai Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
+	{ 0x0f0d, 0x00c5, "Hori Fighting Commander ONE", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
 	{ 0x0f30, 0x010b, "Philips Recoil", 0, XTYPE_XBOX },
 	{ 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX },
 	{ 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX },
@@ -260,6 +261,7 @@ static const struct xpad_device {
 	{ 0x1430, 0x8888, "TX6500+ Dance Pad (first generation)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
 	{ 0x1430, 0xf801, "RedOctane Controller", 0, XTYPE_XBOX360 },
 	{ 0x146b, 0x0601, "BigBen Interactive XBOX 360 Controller", 0, XTYPE_XBOX360 },
+	{ 0x146b, 0x0604, "Bigben Interactive DAIJA Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
 	{ 0x1532, 0x0037, "Razer Sabertooth", 0, XTYPE_XBOX360 },
 	{ 0x1532, 0x0a00, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
 	{ 0x1532, 0x0a03, "Razer Wildcat", 0, XTYPE_XBOXONE },
@@ -325,6 +327,7 @@ static const struct xpad_device {
 	{ 0x24c6, 0x5502, "Hori Fighting Stick VX Alt", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
 	{ 0x24c6, 0x5503, "Hori Fighting Edge", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
 	{ 0x24c6, 0x5506, "Hori SOULCALIBUR V Stick", 0, XTYPE_XBOX360 },
+	{ 0x24c6, 0x5510, "Hori Fighting Commander ONE (Xbox 360/PC Mode)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
 	{ 0x24c6, 0x550d, "Hori GEM Xbox controller", 0, XTYPE_XBOX360 },
 	{ 0x24c6, 0x550e, "Hori Real Arcade Pro V Kai 360", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
 	{ 0x24c6, 0x551a, "PowerA FUSION Pro Controller", 0, XTYPE_XBOXONE },
@@ -337,6 +340,8 @@ static const struct xpad_device {
 	{ 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 },
 	{ 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX },
 	{ 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX },
+	{ 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 },
+	{ 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE },
 	{ 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN }
 };
 
@@ -429,9 +434,11 @@ static const struct usb_device_id xpad_table[] = {
 	{ USB_DEVICE(0x0738, 0x4540) },		/* Mad Catz Beat Pad */
 	XPAD_XBOXONE_VENDOR(0x0738),		/* Mad Catz FightStick TE 2 */
 	XPAD_XBOX360_VENDOR(0x07ff),		/* Mad Catz GamePad */
+	XPAD_XBOX360_VENDOR(0x0c12),		/* Zeroplus X-Box 360 controllers */
 	XPAD_XBOX360_VENDOR(0x0e6f),		/* 0x0e6f X-Box 360 controllers */
 	XPAD_XBOXONE_VENDOR(0x0e6f),		/* 0x0e6f X-Box One controllers */
 	XPAD_XBOX360_VENDOR(0x0f0d),		/* Hori Controllers */
+	XPAD_XBOX360_VENDOR(0x24c6),		/* Hori Controllers */
 	XPAD_XBOXONE_VENDOR(0x0f0d),		/* Hori Controllers */
 	XPAD_XBOX360_VENDOR(0x1038),		/* SteelSeries Controllers */
 	XPAD_XBOX360_VENDOR(0x11c9),		/* Nacon GC100XF */
@@ -453,6 +460,8 @@ static const struct usb_device_id xpad_table[] = {
 	XPAD_XBOXONE_VENDOR(0x2e24),		/* Hyperkin Duke X-Box One pad */
 	XPAD_XBOX360_VENDOR(0x2f24),		/* GameSir Controllers */
 	XPAD_XBOX360_VENDOR(0x3285),		/* Nacon GC-100 */
+	XPAD_XBOX360_VENDOR(0x2563),		/* OneXPlayer Gamepad */
+	XPAD_XBOXONE_VENDOR(0x2dc8),		/* 8BitDo Pro 2 Wired Controller for Xbox */
 	{ }
 };
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] Input: xpad - fix wireless 360 controller breaking after suspend
  2022-04-17 16:15 [PATCH 0/3] Input: xpad - sync with github fork Pavel Rojtberg
  2022-04-17 16:15 ` [PATCH 1/3] Input: xpad - add supported devices as contributed on github Pavel Rojtberg
@ 2022-04-17 16:15 ` Pavel Rojtberg
  2022-04-17 16:15 ` [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press Pavel Rojtberg
  2 siblings, 0 replies; 8+ messages in thread
From: Pavel Rojtberg @ 2022-04-17 16:15 UTC (permalink / raw)
  To: linux-input, dmitry.torokhov, gregkh; +Cc: Cameron Gutman, Pavel Rojtberg

From: Cameron Gutman <aicommander@gmail.com>

Suspending and resuming the system can sometimes cause the out
URB to get hung after a reset_resume. This causes LED setting
and force feedback to break on resume. To avoid this, just drop
the reset_resume callback so the USB core rebinds xpad to the
wireless pads on resume if a reset happened.

A nice side effect of this change is the LED ring on wireless
controllers is now set correctly on system resume.

Signed-off-by: Cameron Gutman <aicommander@gmail.com>
Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
---
 drivers/input/joystick/xpad.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 257fc2c..7640cbb 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -1981,7 +1981,6 @@ static struct usb_driver xpad_driver = {
 	.disconnect	= xpad_disconnect,
 	.suspend	= xpad_suspend,
 	.resume		= xpad_resume,
-	.reset_resume	= xpad_resume,
 	.id_table	= xpad_table,
 };
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press
  2022-04-17 16:15 [PATCH 0/3] Input: xpad - sync with github fork Pavel Rojtberg
  2022-04-17 16:15 ` [PATCH 1/3] Input: xpad - add supported devices as contributed on github Pavel Rojtberg
  2022-04-17 16:15 ` [PATCH 2/3] Input: xpad - fix wireless 360 controller breaking after suspend Pavel Rojtberg
@ 2022-04-17 16:15 ` Pavel Rojtberg
  2022-04-18  6:18   ` Greg KH
  2 siblings, 1 reply; 8+ messages in thread
From: Pavel Rojtberg @ 2022-04-17 16:15 UTC (permalink / raw)
  To: linux-input, dmitry.torokhov, gregkh; +Cc: Pavel Rojtberg, lawl

From: Pavel Rojtberg <rojtberg@gmail.com>

Newer gamepads turn themselves off when the mode button is held down.
For XBOX360W gamepads we must do this this in the driver.

Signed-off-by: lawl <github@dumbinter.net>
Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
---
 drivers/input/joystick/xpad.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 7640cbb..a9894a6 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -620,11 +620,13 @@ struct usb_xpad {
 	int pad_nr;			/* the order x360 pads were attached */
 	const char *name;		/* name of the device */
 	struct work_struct work;	/* init/remove device from callback */
+	time64_t mode_btn_down_ts;
 };
 
 static int xpad_init_input(struct usb_xpad *xpad);
 static void xpad_deinit_input(struct usb_xpad *xpad);
 static void xpadone_ack_mode_report(struct usb_xpad *xpad, u8 seq_num);
+static void xpad360w_poweroff_controller(struct usb_xpad *xpad);
 
 /*
  *	xpad_process_packet
@@ -776,6 +778,23 @@ static void xpad360_process_packet(struct usb_xpad *xpad, struct input_dev *dev,
 	}
 
 	input_sync(dev);
+
+	/* XBOX360W controllers can't be turned off without driver assistance */
+	if (xpad->xtype == XTYPE_XBOX360W) {
+		if (xpad->mode_btn_down_ts > 0
+		&& xpad->pad_present
+		&& (ktime_get_seconds() - xpad->mode_btn_down_ts) >= 5) {
+			xpad360w_poweroff_controller(xpad);
+			xpad->mode_btn_down_ts = 0;
+			return;
+		}
+
+		/* mode button down/up */
+		if (data[3] & 0x04)
+			xpad->mode_btn_down_ts = ktime_get_seconds();
+		else
+			xpad->mode_btn_down_ts = 0;
+	}
 }
 
 static void xpad_presence_work(struct work_struct *work)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] Input: xpad - add supported devices as contributed on github
  2022-04-17 16:15 ` [PATCH 1/3] Input: xpad - add supported devices as contributed on github Pavel Rojtberg
@ 2022-04-18  6:16   ` Greg KH
  0 siblings, 0 replies; 8+ messages in thread
From: Greg KH @ 2022-04-18  6:16 UTC (permalink / raw)
  To: Pavel Rojtberg
  Cc: linux-input, dmitry.torokhov, Jasper Poppe, Jeremy Palmer,
	Ruineka

On Sun, Apr 17, 2022 at 06:15:24PM +0200, Pavel Rojtberg wrote:
> From: Pavel Rojtberg <rojtberg@gmail.com>
> 
> This is based on multiple commits at https://github.com/paroj/xpad
> 
> Signed-off-by: Jasper Poppe <jgpoppe@gmail.com>
> Signed-off-by: Jeremy Palmer <jpalmer@linz.govt.nz>
> Signed-off-by: Ruineka <ruinairas1992@gmail.com>
> Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
> ---
>  drivers/input/joystick/xpad.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> index 53126d9..257fc2c 100644
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -244,6 +244,7 @@ static const struct xpad_device {
>  	{ 0x0f0d, 0x0063, "Hori Real Arcade Pro Hayabusa (USA) Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
>  	{ 0x0f0d, 0x0067, "HORIPAD ONE", 0, XTYPE_XBOXONE },
>  	{ 0x0f0d, 0x0078, "Hori Real Arcade Pro V Kai Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
> +	{ 0x0f0d, 0x00c5, "Hori Fighting Commander ONE", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
>  	{ 0x0f30, 0x010b, "Philips Recoil", 0, XTYPE_XBOX },
>  	{ 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX },
>  	{ 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX },
> @@ -260,6 +261,7 @@ static const struct xpad_device {
>  	{ 0x1430, 0x8888, "TX6500+ Dance Pad (first generation)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
>  	{ 0x1430, 0xf801, "RedOctane Controller", 0, XTYPE_XBOX360 },
>  	{ 0x146b, 0x0601, "BigBen Interactive XBOX 360 Controller", 0, XTYPE_XBOX360 },
> +	{ 0x146b, 0x0604, "Bigben Interactive DAIJA Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
>  	{ 0x1532, 0x0037, "Razer Sabertooth", 0, XTYPE_XBOX360 },
>  	{ 0x1532, 0x0a00, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
>  	{ 0x1532, 0x0a03, "Razer Wildcat", 0, XTYPE_XBOXONE },
> @@ -325,6 +327,7 @@ static const struct xpad_device {
>  	{ 0x24c6, 0x5502, "Hori Fighting Stick VX Alt", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
>  	{ 0x24c6, 0x5503, "Hori Fighting Edge", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
>  	{ 0x24c6, 0x5506, "Hori SOULCALIBUR V Stick", 0, XTYPE_XBOX360 },
> +	{ 0x24c6, 0x5510, "Hori Fighting Commander ONE (Xbox 360/PC Mode)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
>  	{ 0x24c6, 0x550d, "Hori GEM Xbox controller", 0, XTYPE_XBOX360 },
>  	{ 0x24c6, 0x550e, "Hori Real Arcade Pro V Kai 360", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
>  	{ 0x24c6, 0x551a, "PowerA FUSION Pro Controller", 0, XTYPE_XBOXONE },
> @@ -337,6 +340,8 @@ static const struct xpad_device {
>  	{ 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 },
>  	{ 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX },
>  	{ 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX },
> +	{ 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 },
> +	{ 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE },
>  	{ 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN }
>  };
>  
> @@ -429,9 +434,11 @@ static const struct usb_device_id xpad_table[] = {
>  	{ USB_DEVICE(0x0738, 0x4540) },		/* Mad Catz Beat Pad */
>  	XPAD_XBOXONE_VENDOR(0x0738),		/* Mad Catz FightStick TE 2 */
>  	XPAD_XBOX360_VENDOR(0x07ff),		/* Mad Catz GamePad */
> +	XPAD_XBOX360_VENDOR(0x0c12),		/* Zeroplus X-Box 360 controllers */
>  	XPAD_XBOX360_VENDOR(0x0e6f),		/* 0x0e6f X-Box 360 controllers */
>  	XPAD_XBOXONE_VENDOR(0x0e6f),		/* 0x0e6f X-Box One controllers */
>  	XPAD_XBOX360_VENDOR(0x0f0d),		/* Hori Controllers */
> +	XPAD_XBOX360_VENDOR(0x24c6),		/* Hori Controllers */
>  	XPAD_XBOXONE_VENDOR(0x0f0d),		/* Hori Controllers */
>  	XPAD_XBOX360_VENDOR(0x1038),		/* SteelSeries Controllers */
>  	XPAD_XBOX360_VENDOR(0x11c9),		/* Nacon GC100XF */

Why isn't this kept in sorted order?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press
  2022-04-17 16:15 ` [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press Pavel Rojtberg
@ 2022-04-18  6:18   ` Greg KH
  2022-04-18  6:45     ` Santosh De Massari
  0 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2022-04-18  6:18 UTC (permalink / raw)
  To: Pavel Rojtberg; +Cc: linux-input, dmitry.torokhov, lawl

On Sun, Apr 17, 2022 at 06:15:26PM +0200, Pavel Rojtberg wrote:
> From: Pavel Rojtberg <rojtberg@gmail.com>

Wait, who wrote this, "lawl" or you?


> Newer gamepads turn themselves off when the mode button is held down.
> For XBOX360W gamepads we must do this this in the driver.
> 
> Signed-off-by: lawl <github@dumbinter.net>

We need a real name here please.

> Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
> ---
>  drivers/input/joystick/xpad.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> index 7640cbb..a9894a6 100644
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -620,11 +620,13 @@ struct usb_xpad {
>  	int pad_nr;			/* the order x360 pads were attached */
>  	const char *name;		/* name of the device */
>  	struct work_struct work;	/* init/remove device from callback */
> +	time64_t mode_btn_down_ts;
>  };
>  
>  static int xpad_init_input(struct usb_xpad *xpad);
>  static void xpad_deinit_input(struct usb_xpad *xpad);
>  static void xpadone_ack_mode_report(struct usb_xpad *xpad, u8 seq_num);
> +static void xpad360w_poweroff_controller(struct usb_xpad *xpad);
>  
>  /*
>   *	xpad_process_packet
> @@ -776,6 +778,23 @@ static void xpad360_process_packet(struct usb_xpad *xpad, struct input_dev *dev,
>  	}
>  
>  	input_sync(dev);
> +
> +	/* XBOX360W controllers can't be turned off without driver assistance */
> +	if (xpad->xtype == XTYPE_XBOX360W) {
> +		if (xpad->mode_btn_down_ts > 0
> +		&& xpad->pad_present
> +		&& (ktime_get_seconds() - xpad->mode_btn_down_ts) >= 5) {

Did you run this through checkpatch?  Please indent properly and put the
"&&" on the end of the lines.

And what does "5" mean here?

> +			xpad360w_poweroff_controller(xpad);
> +			xpad->mode_btn_down_ts = 0;
> +			return;
> +		}
> +
> +		/* mode button down/up */
> +		if (data[3] & 0x04)

BIT(2)?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press
  2022-04-18  6:18   ` Greg KH
@ 2022-04-18  6:45     ` Santosh De Massari
  2022-04-18  6:58       ` Greg KH
  0 siblings, 1 reply; 8+ messages in thread
From: Santosh De Massari @ 2022-04-18  6:45 UTC (permalink / raw)
  To: Greg KH; +Cc: Pavel Rojtberg, linux-input, dmitry.torokhov



On Mon, Apr 18, 2022 at 08:18, Greg KH <gregkh@linuxfoundation.org> 
wrote:
> On Sun, Apr 17, 2022 at 06:15:26PM +0200, Pavel Rojtberg wrote:
>>  From: Pavel Rojtberg <rojtberg@gmail.com>
> 
> Wait, who wrote this, "lawl" or you?

I wrote this. Santosh De Massari. But I never submitted it to LKML
because e-mail sounded too hard and the LKML too scary. Apologies
in advance for any misconfigured mail client etc. on my side.

If Pavel or anyone else wants to get this patch merged, they're
more than welcome to from my side.


> 
>>  Newer gamepads turn themselves off when the mode button is held 
>> down.
>>  For XBOX360W gamepads we must do this this in the driver.
>> 
>>  Signed-off-by: lawl <github@dumbinter.net>
> 
> We need a real name here please.

You can use Santosh De Massari <s.demassari@gmail.com>

> 
>>  Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
>>  ---
>>   drivers/input/joystick/xpad.c | 19 +++++++++++++++++++
>>   1 file changed, 19 insertions(+)
>> 
>>  diff --git a/drivers/input/joystick/xpad.c 
>> b/drivers/input/joystick/xpad.c
>>  index 7640cbb..a9894a6 100644
>>  --- a/drivers/input/joystick/xpad.c
>>  +++ b/drivers/input/joystick/xpad.c
>>  @@ -620,11 +620,13 @@ struct usb_xpad {
>>   	int pad_nr;			/* the order x360 pads were attached */
>>   	const char *name;		/* name of the device */
>>   	struct work_struct work;	/* init/remove device from callback */
>>  +	time64_t mode_btn_down_ts;
>>   };
>> 
>>   static int xpad_init_input(struct usb_xpad *xpad);
>>   static void xpad_deinit_input(struct usb_xpad *xpad);
>>   static void xpadone_ack_mode_report(struct usb_xpad *xpad, u8 
>> seq_num);
>>  +static void xpad360w_poweroff_controller(struct usb_xpad *xpad);
>> 
>>   /*
>>    *	xpad_process_packet
>>  @@ -776,6 +778,23 @@ static void xpad360_process_packet(struct 
>> usb_xpad *xpad, struct input_dev *dev,
>>   	}
>> 
>>   	input_sync(dev);
>>  +
>>  +	/* XBOX360W controllers can't be turned off without driver 
>> assistance */
>>  +	if (xpad->xtype == XTYPE_XBOX360W) {
>>  +		if (xpad->mode_btn_down_ts > 0
>>  +		&& xpad->pad_present
>>  +		&& (ktime_get_seconds() - xpad->mode_btn_down_ts) >= 5) {
> 
> Did you run this through checkpatch?  Please indent properly and put 
> the
> "&&" on the end of the lines.
> 
> And what does "5" mean here?

Assuming Pavel will take care of this, but since I'm replying anyways. 
Seconds.
Chosen arbitrarily.

> 
>>  +			xpad360w_poweroff_controller(xpad);
>>  +			xpad->mode_btn_down_ts = 0;
>>  +			return;
>>  +		}
>>  +
>>  +		/* mode button down/up */
>>  +		if (data[3] & 0x04)
> 
> BIT(2)?
> 
> thanks,
> 
> greg k-h



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press
  2022-04-18  6:45     ` Santosh De Massari
@ 2022-04-18  6:58       ` Greg KH
  0 siblings, 0 replies; 8+ messages in thread
From: Greg KH @ 2022-04-18  6:58 UTC (permalink / raw)
  To: Santosh De Massari; +Cc: Pavel Rojtberg, linux-input, dmitry.torokhov

On Mon, Apr 18, 2022 at 08:45:53AM +0200, Santosh De Massari wrote:
> 
> 
> On Mon, Apr 18, 2022 at 08:18, Greg KH <gregkh@linuxfoundation.org> wrote:
> > On Sun, Apr 17, 2022 at 06:15:26PM +0200, Pavel Rojtberg wrote:
> > >  From: Pavel Rojtberg <rojtberg@gmail.com>
> > 
> > Wait, who wrote this, "lawl" or you?
> 
> I wrote this. Santosh De Massari. But I never submitted it to LKML
> because e-mail sounded too hard and the LKML too scary. Apologies
> in advance for any misconfigured mail client etc. on my side.
> 
> If Pavel or anyone else wants to get this patch merged, they're
> more than welcome to from my side.
> 
> 
> > 
> > >  Newer gamepads turn themselves off when the mode button is held
> > > down.
> > >  For XBOX360W gamepads we must do this this in the driver.
> > > 
> > >  Signed-off-by: lawl <github@dumbinter.net>
> > 
> > We need a real name here please.
> 
> You can use Santosh De Massari <s.demassari@gmail.com>

Wonderful, thanks!

> > >  Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
> > >  ---
> > >   drivers/input/joystick/xpad.c | 19 +++++++++++++++++++
> > >   1 file changed, 19 insertions(+)
> > > 
> > >  diff --git a/drivers/input/joystick/xpad.c
> > > b/drivers/input/joystick/xpad.c
> > >  index 7640cbb..a9894a6 100644
> > >  --- a/drivers/input/joystick/xpad.c
> > >  +++ b/drivers/input/joystick/xpad.c
> > >  @@ -620,11 +620,13 @@ struct usb_xpad {
> > >   	int pad_nr;			/* the order x360 pads were attached */
> > >   	const char *name;		/* name of the device */
> > >   	struct work_struct work;	/* init/remove device from callback */
> > >  +	time64_t mode_btn_down_ts;
> > >   };
> > > 
> > >   static int xpad_init_input(struct usb_xpad *xpad);
> > >   static void xpad_deinit_input(struct usb_xpad *xpad);
> > >   static void xpadone_ack_mode_report(struct usb_xpad *xpad, u8
> > > seq_num);
> > >  +static void xpad360w_poweroff_controller(struct usb_xpad *xpad);
> > > 
> > >   /*
> > >    *	xpad_process_packet
> > >  @@ -776,6 +778,23 @@ static void xpad360_process_packet(struct
> > > usb_xpad *xpad, struct input_dev *dev,
> > >   	}
> > > 
> > >   	input_sync(dev);
> > >  +
> > >  +	/* XBOX360W controllers can't be turned off without driver
> > > assistance */
> > >  +	if (xpad->xtype == XTYPE_XBOX360W) {
> > >  +		if (xpad->mode_btn_down_ts > 0
> > >  +		&& xpad->pad_present
> > >  +		&& (ktime_get_seconds() - xpad->mode_btn_down_ts) >= 5) {
> > 
> > Did you run this through checkpatch?  Please indent properly and put the
> > "&&" on the end of the lines.
> > 
> > And what does "5" mean here?
> 
> Assuming Pavel will take care of this, but since I'm replying anyways.
> Seconds.
> Chosen arbitrarily.

Then perhaps a #define somewhere saying this would be good for when in
the future it has to be changed :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-04-18  6:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-17 16:15 [PATCH 0/3] Input: xpad - sync with github fork Pavel Rojtberg
2022-04-17 16:15 ` [PATCH 1/3] Input: xpad - add supported devices as contributed on github Pavel Rojtberg
2022-04-18  6:16   ` Greg KH
2022-04-17 16:15 ` [PATCH 2/3] Input: xpad - fix wireless 360 controller breaking after suspend Pavel Rojtberg
2022-04-17 16:15 ` [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press Pavel Rojtberg
2022-04-18  6:18   ` Greg KH
2022-04-18  6:45     ` Santosh De Massari
2022-04-18  6:58       ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).