[PATCH v3 00/24] input: Introduce ff-memless-next as an improved replacement for ff-memless

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ff-memless-next (MLNX) is a largely improved version of the current ff-memless
(FFML) driver. MLNX supports all force feedback effects currently available in
the Linux force feedback userspace API. All effects are handled in accordance
with Microsoft's DirectInput/XInput. Most notable changes include support for
conditional effects, proper handling of all periodic waveforms and improved
emulation of rumble effects through periodic effects. MLNX also uses its own
kernel API to pass processed effects to hardware-specific drivers instead of
abusing "ff_effect" struct. The API is documented in the respective header
file.

MLNX has been expanded to be a direct replacement for FFML.

Support for FF_PERIODIC and FF_RAMP has been added to all devices that
support FF_CONSTANT as a part of the port to the new API.

This patch series:
1) Adds "ff-memless-next" module [1]
2) Ports all hardware-specific drivers to MLNX's API [2-23]
3) Removes FFML and replaces it with MLNX [24]

Signed-off-by: Michal Malý <madcatxster@xxxxxxxxxxxxxxxxxx>

v3:
 - Rebase against latest linux-next. Fixes conflict in hid-sony.c and
   max8997_haptic.c
 - Updated documentation in ff-memless-next.h. The documentation now describes
   parameters of the callback function and specifically mentions that
   HW-specific drivers must not keep a reference to mlnx_effect_command struct
   to which a pointer is passed in the callback function.
 - Fix a minor brace inconsistency in hid-lgff
 I believe that all concerns regarding v2 have been resolved as false alarms.

v2:
 - Add missing msecs to jiffies conversion in ff-memless-next
 - lgff: Properly convert force on Y axis from MLNX to device range
         Support periodic effects for "joystick_ac" device class
 - lg3ff: Properly convert forces from MLNX to device range
 - Very minor coding style issues fixed

Michal Malý (24):
  Add ff-memless-next module
  Port arizona-haptics to ff-memless-next
  Port twl4030-vibra to ff-memless-next
  Port twl6040-vibra to ff-memless-next
  Port max8997_haptic to ff-memless-next
  Port pm8xxx-vibrator to ff-memless-next
  Port hid-axff to ff-memless-next
  Port hid-emsff to ff-memless-next
  Port hid-dr to ff-memless-next
  Port hid-gaff to ff-memless-next
  Port hid-holtekff to ff-memless-next
  Port hid-lgff to ff-memless-next
  Port hid-lg3ff to ff-memless-next
  Port hid-pl to ff-memless-next
  Port hid-sjoy to ff-memless-next
  Port hid-sony to ff-memless-next
  Port hid-tmff to ff-memless-next
  Port hid-wiimote-modules to ff-memless-next
  Port hid-zpff to ff-memless-next
  Port gamecon to ff-memless-next
  Port xpad to ff-memless-next
  - Port hid-lg2ff to ff-memless-next     - Clamp vibration magnitude to
    range <0x02; 0xfd> to prevent irregular       shaking of the
    vibration motors.
  Port hid-lg4ff to ff-memless-next
  Replace ff-memless with ff-memless-next

 drivers/hid/Kconfig                   |   30 +-
 drivers/hid/hid-axff.c                |   32 +-
 drivers/hid/hid-dr.c                  |   59 +-
 drivers/hid/hid-emsff.c               |   38 +-
 drivers/hid/hid-gaff.c                |   32 +-
 drivers/hid/hid-holtekff.c            |   47 +-
 drivers/hid/hid-lg2ff.c               |   65 ++-
 drivers/hid/hid-lg3ff.c               |   60 +-
 drivers/hid/hid-lg4ff.c               |   93 +--
 drivers/hid/hid-lgff.c                |   70 ++-
 drivers/hid/hid-pl.c                  |   38 +-
 drivers/hid/hid-sjoy.c                |   35 +-
 drivers/hid/hid-sony.c                |   24 +-
 drivers/hid/hid-tmff.c                |   83 +--
 drivers/hid/hid-wiimote-modules.c     |   74 ++-
 drivers/hid/hid-zpff.c                |   30 +-
 drivers/input/Kconfig                 |    4 +-
 drivers/input/Makefile                |    2 +-
 drivers/input/ff-memless-next.c       | 1037 +++++++++++++++++++++++++++++++++
 drivers/input/ff-memless.c            |  547 -----------------
 drivers/input/joystick/Kconfig        |    4 +-
 drivers/input/joystick/gamecon.c      |   57 +-
 drivers/input/joystick/xpad.c         |  125 ++--
 drivers/input/misc/Kconfig            |   10 +-
 drivers/input/misc/arizona-haptics.c  |   39 +-
 drivers/input/misc/max8997_haptic.c   |   25 +-
 drivers/input/misc/pm8xxx-vibrator.c  |   28 +-
 drivers/input/misc/twl4030-vibra.c    |   31 +-
 drivers/input/misc/twl6040-vibra.c    |   27 +-
 include/linux/input.h                 |    3 -
 include/linux/input/ff-memless-next.h |  162 +++++
 31 files changed, 1952 insertions(+), 959 deletions(-)
 create mode 100644 drivers/input/ff-memless-next.c
 delete mode 100644 drivers/input/ff-memless.c
 create mode 100644 include/linux/input/ff-memless-next.h

-- 
1.9.2

--
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




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux