linux/drivers/input/joystick
Cameron Gutman ae3b4469db Input: xpad - fix Xbox One rumble stopping after 2.5 secs
Unlike previous Xbox pads, the Xbox One pad doesn't have "sticky" rumble
packets. The duration is encoded into the command and expiration is handled
by the pad firmware.

ff-memless needs pseudo-sticky behavior for rumble effects to behave
properly for long duration effects. We already specify the maximum rumble
on duration in the command packets, but it's still only good for about 2.5
seconds of rumble. This is easily reproducible running fftest's sine
vibration test.

It turns out there's a repeat count encoded in the rumble command. We can
abuse that to get the pseudo-sticky behavior needed for rumble to behave as
expected for effects with long duration.

By my math, this change should allow a single ff_effect to rumble for 10
minutes straight, which should be more than enough for most needs.

Signed-off-by: Cameron Gutman <aicommander@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-11-27 20:45:13 -08:00
..
iforce Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
a3d.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
adi.c Input: adi - remove an unnecessary check 2015-02-11 23:07:13 -08:00
amijoy.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-03-29 23:17:44 -07:00
analog.c x86/cpufeature: Replace cpu_has_tsc with boot_cpu_has() usage 2016-04-13 11:37:41 +02:00
as5011.c Input: as5011 - fix error return code in as5011_probe() 2013-08-24 17:44:25 -07:00
cobra.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
db9.c Input: db9 - clear unused function pointers 2015-11-17 10:00:12 -08:00
gamecon.c Input: gamecon - clear unused function pointers 2015-11-17 10:00:13 -08:00
gf2k.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
grip_mp.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
grip.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
guillemot.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
interact.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
joydump.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
Kconfig drivers/input/joystick/Kconfig: zhenhua.c needs BITREVERSE 2015-10-01 21:42:35 -04:00
magellan.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
Makefile Input: add Austria Microsystem AS5011 joystick driver 2011-01-10 11:01:43 -08:00
maplecontrol.c Input: joysticks - use dev_get_platdata() 2013-08-12 22:32:30 -07:00
sidewinder.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
spaceball.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
spaceorb.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
stinger.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
tmdc.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
turbografx.c Input: turbografx - clear unused function pointers 2015-11-17 10:00:14 -08:00
twidjoy.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
walkera0701.c Merge branch 'next' into for-linus 2016-01-11 17:47:25 -08:00
warrior.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
xpad.c Input: xpad - fix Xbox One rumble stopping after 2.5 secs 2016-11-27 20:45:13 -08:00
zhenhua.c Input: zhenhua - switch to using bitrev8() 2015-08-20 17:44:34 -07:00