Device must support FF_CONSTANT for this to work. */
#define FFPL_MEMLESS_RAMP BIT(8) /* Device cannot process FF_RAMP by itself and requires KLGD-FF to calculate the overall force.
Device must support FF_CONSTANT for this to work. */
-#define FFPL_TIMING_CONDITION BIT(9) /* Let the plugin take care of starting and stopping of condition effects */
+#define FFPL_MEMLESS_RUMBLE BIT(9) /* Device cannot process FF_RUMBLE by itself and requires KLGD-FF to calculate the overall force.
+ Device must support FF_RUMBLE for this to work. */
+
+#define FFPL_TIMING_CONDITION BIT(10) /* Let the plugin take care of starting and stopping of condition effects */
#define FFPL_HAS_NATIVE_GAIN BIT(15) /* Device can adjust the gain by itself */
- #define FFPL_HAS_AUTOCENTER BIT(16) /* Device supports autocentering */
enum ffpl_control_command {
/* Force feedback state transitions */
input_set_capability(dev, EV_KEY, BTN_TRIGGER);
input_set_abs_params(dev, ABS_X, -0x7fff, 0x7fff, 0, 0);
input_set_abs_params(dev, ABS_Y, -0x7fff, 0x7fff, 0, 0);
+ set_bit(FF_AUTOCENTER, &ffbits);
ret = ffpl_init_plugin(&ff_plugin, dev, EFFECT_COUNT, ffbits,
- FFPL_HAS_EMP_TO_SRT | FFPL_REPLACE_STARTED | FFPL_HAS_AUTOCENTER |
- FFPL_HAS_EMP_TO_SRT | FFPL_REPLACE_STARTED | FFPL_MEMLESS_RAMP | FFPL_TIMING_CONDITION,
++ FFPL_HAS_EMP_TO_SRT | FFPL_REPLACE_STARTED |
+ FFPL_MEMLESS_CONSTANT | FFPL_MEMLESS_RUMBLE | FFPL_TIMING_CONDITION,
klgdff_control, &test_user);
if (ret) {
printk(KERN_ERR "KLGDFF-TD: Cannot init plugin\n");