• Edwin Velds's avatar
    HID: logitech-hidpp: Force feedback support for the Logitech G920 · ff21a635
    Edwin Velds authored
    This patch implements force feedback support for the Logitech
    G920 Driving Force Racing Wheel. It is a generic implementation
    of feature 0x8123 of the Logitech HID++ protocol and should be
    usable for any future devices that implement this feature.
    
    This patch should be applied after the basic G920 support patch
    by Simon Wood:
    http://www.spinics.net/lists/linux-input/msg42174.html
    
    The driving supports everything that is supported by the G920
    firmware:
        FF_CONSTANT
        FF_PERIODIC
        FF_SINE
        FF_SQUARE
        FF_SAW_UP
        FF_SAW_DOWN
        FF_TRIANGLE
        FF_SPRING
        FF_DAMPER
        FF_AUTOCENTER
        FF_GAIN
    and for version 2 firmware also:
        FF_FRICTION
        FF_INERTIA
        FF_RAMP
    
    Both envelopes and replay values are supported as well, but some
    problems may occur when using firmware release 1. There is also a
    small residual clockwise damper in the wheel when using the first
    firmware release. All problems are fixed in the soon te be released
    firmware version 2.
    
    The default spring is disabled by permanently placing a spring
    force in the wheel. This spring is also used as the autocenter
    spring.
    
    Note: The wheel _DOES_NOT_ auto switch to Logitech/HID mode (it is stuck
    in XBox since the xpad changes where not included). Michal has an
    alternative approach documented here (and the changes should be submitted
    upstream to usb_modeswitch project):
    
    ===
    Create a file named "046d:c261" in "/etc/usb_modeswitch.d" with the
    following content:
    
    DefaultVendor=046d
    DefaultProduct=c261
    MessageEndpoint=01
    ResponseEndpoint=01
    TargetClass=0x03
    MessageContent="0f00010142"
    
    Then run "usb_modeswitch -c /etc/modeswitch.d/046d:c291" as root and
    watch the magic happen:)
    ===
    
    [jkosina@suse.cz: added information about mode switching from Simon]
    [jkosina@suse.cz: fixed a few stylistic issues pointed out by Simon]
    [jkosina@suse.cz: fix merge conflict due to to_hid_device() changes]
    Signed-off-by: default avatarEdwin Velds <e.velds@gmail.com>
    Tested-by: default avatarElias Vanderstuyft <elias.vds@gmail.com>
    Tested-by: default avatarSimon Wood <simon@mungewell.org>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    ff21a635
hid-logitech-hidpp.c 64.6 KB