Re: [PATCH 3/3] Input: xpad - Poweroff XBOX360W on mode button long press

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

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@xxxxxxxxxxxxx>

We need a real name here please.

> Signed-off-by: Pavel Rojtberg <rojtberg@xxxxxxxxx>
> ---
>  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



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux