All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Input: xpad - sync with github fork
@ 2022-04-18 11:40 Pavel Rojtberg
  2022-04-18 11:40 ` [PATCH v2 1/3] Input: xpad - add supported devices as contributed on github Pavel Rojtberg
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Pavel Rojtberg @ 2022-04-18 11:40 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.
Compared to github and v1, sorting of the lists is preserved.

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 (1):
  Input: xpad - add supported devices as contributed on github

Santosh De Massari (1):
  Input: xpad - Poweroff XBOX360W on mode button long press

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

-- 
2.25.1


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

* [PATCH v2 1/3] Input: xpad - add supported devices as contributed on github
  2022-04-18 11:40 [PATCH v2 0/3] Input: xpad - sync with github fork Pavel Rojtberg
@ 2022-04-18 11:40 ` Pavel Rojtberg
  2022-04-18 11:40 ` [PATCH v2 2/3] Input: xpad - fix wireless 360 controller breaking after suspend Pavel Rojtberg
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Pavel Rojtberg @ 2022-04-18 11:40 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 | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 53126d9..b9c2e58 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 },
@@ -334,6 +337,8 @@ static const struct xpad_device {
 	{ 0x24c6, 0x5b03, "Thrustmaster Ferrari 458 Racing Wheel", 0, XTYPE_XBOX360 },
 	{ 0x24c6, 0x5d04, "Razer Sabertooth", 0, XTYPE_XBOX360 },
 	{ 0x24c6, 0xfafe, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 },
+	{ 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 },
+	{ 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE },
 	{ 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 },
@@ -429,6 +434,7 @@ 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 */
@@ -450,6 +456,8 @@ static const struct usb_device_id xpad_table[] = {
 	XPAD_XBOXONE_VENDOR(0x20d6),		/* PowerA Controllers */
 	XPAD_XBOX360_VENDOR(0x24c6),		/* PowerA Controllers */
 	XPAD_XBOXONE_VENDOR(0x24c6),		/* PowerA Controllers */
+	XPAD_XBOX360_VENDOR(0x2563),		/* OneXPlayer Gamepad */
+	XPAD_XBOXONE_VENDOR(0x2dc8),		/* 8BitDo Pro 2 Wired Controller for Xbox */
 	XPAD_XBOXONE_VENDOR(0x2e24),		/* Hyperkin Duke X-Box One pad */
 	XPAD_XBOX360_VENDOR(0x2f24),		/* GameSir Controllers */
 	XPAD_XBOX360_VENDOR(0x3285),		/* Nacon GC-100 */
-- 
2.25.1


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

* [PATCH v2 2/3] Input: xpad - fix wireless 360 controller breaking after suspend
  2022-04-18 11:40 [PATCH v2 0/3] Input: xpad - sync with github fork Pavel Rojtberg
  2022-04-18 11:40 ` [PATCH v2 1/3] Input: xpad - add supported devices as contributed on github Pavel Rojtberg
@ 2022-04-18 11:40 ` Pavel Rojtberg
  2022-04-18 11:40 ` [PATCH v2 3/3] Input: xpad - Poweroff XBOX360W on mode button long press Pavel Rojtberg
  2022-04-18 12:03 ` [PATCH v2 0/3] Input: xpad - sync with github fork Greg KH
  3 siblings, 0 replies; 6+ messages in thread
From: Pavel Rojtberg @ 2022-04-18 11:40 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 b9c2e58..2a45733 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -1980,7 +1980,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] 6+ messages in thread

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

From: Santosh De Massari <s.demassari@gmail.com>

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

Do not use BIT() macro for consistency within the file.

Signed-off-by: Santosh De Massari <s.demassari@gmail.com>
Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
---
 drivers/input/joystick/xpad.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 2a45733..ca4efa5 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -89,6 +89,11 @@
 #define XTYPE_XBOXONE     3
 #define XTYPE_UNKNOWN     4
 
+/* Send power-off packet to xpad360w after holding the mode button for this many
+ * seconds
+ */
+#define XPAD360W_POWEROFF_TIMEOUT 5
+
 static bool dpad_to_buttons;
 module_param(dpad_to_buttons, bool, S_IRUGO);
 MODULE_PARM_DESC(dpad_to_buttons, "Map D-PAD to buttons rather than axes for unknown pads");
@@ -619,11 +624,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
@@ -775,6 +782,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) >=
+		     XPAD360W_POWEROFF_TIMEOUT)) {
+			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] 6+ messages in thread

* Re: [PATCH v2 0/3] Input: xpad - sync with github fork
  2022-04-18 11:40 [PATCH v2 0/3] Input: xpad - sync with github fork Pavel Rojtberg
                   ` (2 preceding siblings ...)
  2022-04-18 11:40 ` [PATCH v2 3/3] Input: xpad - Poweroff XBOX360W on mode button long press Pavel Rojtberg
@ 2022-04-18 12:03 ` Greg KH
  2022-04-18 12:23   ` Pavel Rojtberg
  3 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2022-04-18 12:03 UTC (permalink / raw)
  To: Pavel Rojtberg; +Cc: linux-input, dmitry.torokhov

On Mon, Apr 18, 2022 at 01:40:19PM +0200, Pavel Rojtberg wrote:
> From: Pavel Rojtberg <rojtberg@gmail.com>
> 
> This upstreams some changes contributed on github.
> The first patch merely updates the list of supported devices.
> Compared to github and v1, sorting of the lists is preserved.
> 
> 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 (1):
>   Input: xpad - add supported devices as contributed on github
> 
> Santosh De Massari (1):
>   Input: xpad - Poweroff XBOX360W on mode button long press
> 
>  drivers/input/joystick/xpad.c | 33 ++++++++++++++++++++++++++++++++-
>  1 file changed, 32 insertions(+), 1 deletion(-)
> 
> -- 
> 2.25.1
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- This looks like a new version of a previously submitted patch, but you
  did not list below the --- line any changes from the previous version.
  Please read the section entitled "The canonical patch format" in the
  kernel file, Documentation/SubmittingPatches for what needs to be done
  here to properly describe this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot

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

* Re: [PATCH v2 0/3] Input: xpad - sync with github fork
  2022-04-18 12:03 ` [PATCH v2 0/3] Input: xpad - sync with github fork Greg KH
@ 2022-04-18 12:23   ` Pavel Rojtberg
  0 siblings, 0 replies; 6+ messages in thread
From: Pavel Rojtberg @ 2022-04-18 12:23 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-input, dmitry.torokhov



Am 18.04.22 um 14:03 schrieb Greg KH:
> On Mon, Apr 18, 2022 at 01:40:19PM +0200, Pavel Rojtberg wrote:
>> From: Pavel Rojtberg <rojtberg@gmail.com>
>>
>> This upstreams some changes contributed on github.
>> The first patch merely updates the list of supported devices.
>> Compared to github and v1, sorting of the lists is preserved.
>>
>> 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 (1):
>>   Input: xpad - add supported devices as contributed on github
>>
>> Santosh De Massari (1):
>>   Input: xpad - Poweroff XBOX360W on mode button long press
>>
>>  drivers/input/joystick/xpad.c | 33 ++++++++++++++++++++++++++++++++-
>>  1 file changed, 32 insertions(+), 1 deletion(-)
>>
>> -- 
>> 2.25.1
>>
> 
> Hi,
> 
> This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
> a patch that has triggered this response.  He used to manually respond
> to these common problems, but in order to save his sanity (he kept
> writing the same thing over and over, yet to different people), I was
> created.  Hopefully you will not take offence and will fix the problem
> in your patch and resubmit it so that it can be accepted into the Linux
> kernel tree.
> 
> You are receiving this message because of the following common error(s)
> as indicated below:
> 
> - This looks like a new version of a previously submitted patch, but you
>   did not list below the --- line any changes from the previous version.
>   Please read the section entitled "The canonical patch format" in the
>   kernel file, Documentation/SubmittingPatches for what needs to be done
>   here to properly describe this.
> 
> If you wish to discuss this problem further, or you have questions about
> how to resolve this issue, please feel free to respond to this email and
> Greg will reply once he has dug out from the pending patches received
> from other developers.
> 
> thanks,
> 
> greg k-h's patch email bot

should I spin a v3 to fix this?
Without knowing better, I put the changes to v1 into the cover letter.
Also, PATCH 3 was carried over unchanged.

Greetings, Pavel

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

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

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.