Re: [PATCH v3 00/17] *** Implement simple haptic HID support ***

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

 



On Sun, 22 May 2022, Angela Czubak wrote:

> > This patch series introduces changes necessary to support devices
> > using simple haptic HID pages.
> > Implementation attempts to follow the discussion below:
> > https://www.spinics.net/lists/linux-input/msg61091.html
> >
> > Introduce new haptic defines as specified in HID Usage Tables.
> >
> > Add new force feedback effect type in order to facilitate using
> > simple haptic force feedback.
> >
> > Add INPUT_PROP_HAPTIC_TOUCHPAD to mark touchpad exposing simple haptic
> > support.
> >
> > Add new struct hid_haptic_device so as to gather simple haptic related
> > configuration and current state of the device.
> >
> > Add new functions to be triggered during HID input mapping and
> > configuration in order to detect simple haptic devices.
> >
> > Modify HID input so that haptic output reports are parsed.
> >
> > Initialize a haptic device.
> >
> > Modify FF core so that effect IDs can be shared between multiple open file
> > handles.
> >
> > Add shared release and press effects for a simple haptic device.
> >
> > Calculate pressure resolution if units are grams or newtons.
> >
> > Add support for kernel-driven mode of simple haptic device.
> >
> > Toggle ABS_PRESSURE generation by input-mt on request.
> >
> > Implement functions allowing switching between kernel-managed mode
> > and autonomous mode.
> >
> > Add simple haptic support for hid-multitouch driver.
> >
> > Implement EVIOCFF(TAKE|RELEASE)CONTROL ioctls so that userspace can take
> > and release control of shared release and press effects.
> >
> > Fix i2c hid sending and getting report so that report IDs larger than 0xF
> > are handled correctly.
> >
> > v2:
> > - Describe INPUT_PROP_HAPTIC_TOUCHPAD in
> >   Documentation/input/event-codes.rst
> > - Do not extract mt_get_feature(), use hid_hw_wait() instead
> > - Define HID_UNIT_GRAM and HID_UNIT_NEWTON
> > - Calculate pressure sum in input-mt if INPUT_MT_TOTAL_FORCE flags set
> > - Use u* instead of __u* in struct hid_haptic_device
> > - Solve problems with report IDS >= 0xF as Dmitry suggests
> >
> > v3:
> > - Get rid of INPUT_PROP_HAPTIC_TOUCHPAD property as haptic device does not
> >   gave to be a touchpad
> > - Introduce notion of haptic forcepads; generate haptic feedback in kernel
> >   mode only for forcepads
> > - Generate clicks based on maximum pressure across slots instead of the sum
> > - Fix off-by-one bug in hid_haptic_upload_effect()
> > - Fix resume/suspend: issue hid_haptic_resume() in mt_resume() and
> >   hid_haptic_suspend() in mt_suspend()
> > - Add reset callback for HID i2c devices
> > - Implement reset callback for HID multitouch haptic devices
> > - Implement lid handler triggering touchpad recalibration for Redrix
> >
> > Angela Czubak (17):
> >   HID: add haptics page defines
> >   Input: add FF_HID effect type
> >   HID: haptic: introduce hid_haptic_device
> >   HID: input: allow mapping of haptic output
> >   HID: haptic: initialize haptic device
> >   Input: add shared effects
> >   HID: haptic: implement release and press effects
> >   HID: input: calculate resolution for pressure
> >   HID: haptic: add functions handling events
> >   Input: MT - add INPUT_MT_MAX_FORCE flags
> >   HID: haptic: add hid_haptic_switch_mode
> >   HID: multitouch: add haptic multitouch support
> >   Input: introduce EVIOCFF(TAKE|RELEASE)CONTROL
> >   HID: haptic: add hid_haptic_change_control
> >   HID: add HID device reset callback
> >   HID: haptic: implement HID haptic reset callback
> >   HID: multitouch: Add lid handler for touchpad on Redrix chromebook
> >
> >  drivers/hid/Kconfig                |  14 +
> >  drivers/hid/Makefile               |   1 +
> >  drivers/hid/hid-haptic.c           | 753 +++++++++++++++++++++++++++++
> >  drivers/hid/hid-haptic.h           | 152 ++++++
> >  drivers/hid/hid-input.c            |  18 +-
> >  drivers/hid/hid-multitouch.c       | 313 +++++++++++-
> >  drivers/hid/i2c-hid/i2c-hid-core.c |  21 +
> >  drivers/input/evdev.c              |   6 +
> >  drivers/input/ff-core.c            | 129 ++++-
> >  drivers/input/input-mt.c           |  16 +-
> >  include/linux/hid.h                |  31 ++
> >  include/linux/input.h              |   5 +
> >  include/linux/input/mt.h           |   1 +
> >  include/uapi/linux/input.h         |  26 +-
> >  14 files changed, 1469 insertions(+), 17 deletions(-)
> >  create mode 100644 drivers/hid/hid-haptic.c
> >  create mode 100644 drivers/hid/hid-haptic.h
> >
> > --
> > 2.36.0.550.gb090851708-goog
> >
> 
> Hi, could I get any feedback? :) Or should I wait for some features to
> land in the upstream kernel?

Hi Angela,

I am in the process of reviewing the patchset, but I am not done with it 
yet. It won't land in 5.19 anyway, so if all goes good (and we also 
eventually get Ack from Dmitry at least for the Input-specific bits), we 
can potentially target 5.20 unless something substantial pops up.

Please give me/us a few more days to process this.

Thanks,

-- 
Jiri Kosina
SUSE Labs




[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