* [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
* 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
* [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 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).