lkml.org 
[lkml]   [2019]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 01/62] HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT
    Date
    [ Upstream commit 65f11c72780fa9d598df88def045ccb6a885cf80 ]

    Enable force feedback for the Thrustmaster Dual Trigger 2 in 1 Rumble Force
    gamepad. Compared to other Thrustmaster devices, left and right rumble
    motors here are swapped.

    Signed-off-by: Ilya Trukhanov <lahvuun@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/hid/hid-tmff.c | 12 ++++++++++++
    1 file changed, 12 insertions(+)

    diff --git a/drivers/hid/hid-tmff.c b/drivers/hid/hid-tmff.c
    index b83376077d722..cfa0cb22c9b3c 100644
    --- a/drivers/hid/hid-tmff.c
    +++ b/drivers/hid/hid-tmff.c
    @@ -34,6 +34,8 @@

    #include "hid-ids.h"

    +#define THRUSTMASTER_DEVICE_ID_2_IN_1_DT 0xb320
    +
    static const signed short ff_rumble[] = {
    FF_RUMBLE,
    -1
    @@ -88,6 +90,7 @@ static int tmff_play(struct input_dev *dev, void *data,
    struct hid_field *ff_field = tmff->ff_field;
    int x, y;
    int left, right; /* Rumbling */
    + int motor_swap;

    switch (effect->type) {
    case FF_CONSTANT:
    @@ -112,6 +115,13 @@ static int tmff_play(struct input_dev *dev, void *data,
    ff_field->logical_minimum,
    ff_field->logical_maximum);

    + /* 2-in-1 strong motor is left */
    + if (hid->product == THRUSTMASTER_DEVICE_ID_2_IN_1_DT) {
    + motor_swap = left;
    + left = right;
    + right = motor_swap;
    + }
    +
    dbg_hid("(left,right)=(%08x, %08x)\n", left, right);
    ff_field->value[0] = left;
    ff_field->value[1] = right;
    @@ -238,6 +248,8 @@ static const struct hid_device_id tm_devices[] = {
    .driver_data = (unsigned long)ff_rumble },
    { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304), /* FireStorm Dual Power 2 (and 3) */
    .driver_data = (unsigned long)ff_rumble },
    + { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, THRUSTMASTER_DEVICE_ID_2_IN_1_DT), /* Dual Trigger 2-in-1 */
    + .driver_data = (unsigned long)ff_rumble },
    { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb323), /* Dual Trigger 3-in-1 (PC Mode) */
    .driver_data = (unsigned long)ff_rumble },
    { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb324), /* Dual Trigger 3-in-1 (PS3 Mode) */
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-08-27 09:53    [W:4.081 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site