It looks like SteamOS has always used this rumble packet for Xbox One per [0]. Commit 0604949ce3b9a59c ("Input: xpad - add rumble support for Xbox One controller") implemented a different rumble packet than Valve did in their fork. Pierre-Loup A. Griffais pushed some of their changes upstream in commit 2a6d7527b35cf987 ("Input: xpad - update Xbox One Force Feedback Support") but seemed to have missed these differences in the packet format. [0]: https://github.com/ValveSoftware/steamos_kernel/commit/f5f73eb889cac32cbabfc40362fe5635a2255836 On 05/31/2016 05:32 PM, Dmitry Torokhov wrote: > Hi Cameron, > > On Tue, May 31, 2016 at 05:19:51PM -0500, Cameron Gutman wrote: >> Xbox One controllers that shipped with or were upgraded to the 2015 >> firmware discard the current rumble packets we send. This patch changes >> the Xbox One rumble packet to a form that the newer firmware will accept. > > But what do we do with the older devices? > > Thanks. > >> >> It is based on changes made to support newer Xbox One controllers in >> the SteamOS brewmaster-4.1 kernel branch. >> >> Signed-off-by: Cameron Gutman <aicommander@xxxxxxxxx> >> --- >> drivers/input/joystick/xpad.c | 16 ++++++++-------- >> 1 file changed, 8 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c >> index 804dbcc..923c572 100644 >> --- a/drivers/input/joystick/xpad.c >> +++ b/drivers/input/joystick/xpad.c >> @@ -1031,17 +1031,17 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect >> >> case XTYPE_XBOXONE: >> packet->data[0] = 0x09; /* activate rumble */ >> - packet->data[1] = 0x08; >> + packet->data[1] = 0x00; >> packet->data[2] = xpad->odata_serial++; >> - packet->data[3] = 0x08; /* continuous effect */ >> - packet->data[4] = 0x00; /* simple rumble mode */ >> - packet->data[5] = 0x03; /* L and R actuator only */ >> - packet->data[6] = 0x00; /* TODO: LT actuator */ >> - packet->data[7] = 0x00; /* TODO: RT actuator */ >> + packet->data[3] = 0x09; >> + packet->data[4] = 0x00; >> + packet->data[5] = 0x0F; >> + packet->data[6] = 0x00; >> + packet->data[7] = 0x00; >> packet->data[8] = strong / 512; /* left actuator */ >> packet->data[9] = weak / 512; /* right actuator */ >> - packet->data[10] = 0x80; /* length of pulse */ >> - packet->data[11] = 0x00; /* stop period of pulse */ >> + packet->data[10] = 0xFF; >> + packet->data[11] = 0x00; >> packet->data[12] = 0x00; >> packet->len = 13; >> packet->pending = true; >> -- >> 2.7.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html