lkml.org 
[lkml]   [2018]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 48/86] Input: xpad - move reporting xbox one home button to common function
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit 4f88476c75429ba9ab71c428b4cd2f67575bc9c1 ]

    xbox one was the only device that has a *_process_buttons routine.

    Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/input/joystick/xpad.c | 52 +++++++++++++----------------------
    1 file changed, 19 insertions(+), 33 deletions(-)

    diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
    index 8b7fc47f7ffb..b06f4b0785f7 100644
    --- a/drivers/input/joystick/xpad.c
    +++ b/drivers/input/joystick/xpad.c
    @@ -610,14 +610,28 @@ static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned cha
    }

    /*
    - * xpadone_process_buttons
    + * xpadone_process_packet
    *
    - * Process a button update packet from an Xbox one controller.
    + * Completes a request by converting the data into events for the
    + * input subsystem. This version is for the Xbox One controller.
    + *
    + * The report format was gleaned from
    + * https://github.com/kylelemons/xbox/blob/master/xbox.go
    */
    -static void xpadone_process_buttons(struct usb_xpad *xpad,
    - struct input_dev *dev,
    - unsigned char *data)
    +static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data)
    {
    + struct input_dev *dev = xpad->dev;
    +
    + /* the xbox button has its own special report */
    + if (data[0] == 0X07) {
    + input_report_key(dev, BTN_MODE, data[4] & 0x01);
    + input_sync(dev);
    + return;
    + }
    + /* check invalid packet */
    + else if (data[0] != 0X20)
    + return;
    +
    /* menu/view buttons */
    input_report_key(dev, BTN_START, data[4] & 0x04);
    input_report_key(dev, BTN_SELECT, data[4] & 0x08);
    @@ -680,34 +694,6 @@ static void xpadone_process_buttons(struct usb_xpad *xpad,
    input_sync(dev);
    }

    -/*
    - * xpadone_process_packet
    - *
    - * Completes a request by converting the data into events for the
    - * input subsystem. This version is for the Xbox One controller.
    - *
    - * The report format was gleaned from
    - * https://github.com/kylelemons/xbox/blob/master/xbox.go
    - */
    -
    -static void xpadone_process_packet(struct usb_xpad *xpad,
    - u16 cmd, unsigned char *data)
    -{
    - struct input_dev *dev = xpad->dev;
    -
    - switch (data[0]) {
    - case 0x20:
    - xpadone_process_buttons(xpad, dev, data);
    - break;
    -
    - case 0x07:
    - /* the xbox button has its own special report */
    - input_report_key(dev, BTN_MODE, data[4] & 0x01);
    - input_sync(dev);
    - break;
    - }
    -}
    -
    static void xpad_irq_in(struct urb *urb)
    {
    struct usb_xpad *xpad = urb->context;
    --
    2.17.1


    \
     
     \ /
      Last update: 2018-11-29 16:01    [W:6.104 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site