04 Aug, 2011

2 commits

  • Wheel range of certain Logitech wheels - namely Driving Force GT, Driving Force
    Pro, G25 and G27 can be adjusted. Minimu is 40 degrees, maximum 900. DFGT, G25
    and G27 all use a common command, DFP uses another one. Range can be set from
    userspace by writing to
    "/sys/module/hid_logitech/drivers/hid:logitech/range". The driver use list
    to store range of each connected wheel; it's not possible to use driver_data in
    hid_device struct as it's already b hig-lg driver.

    Signed-off-by: Michal Malý
    Signed-off-by: Simon Wood
    Signed-off-by: Jiri Kosina

    Michal Malý
     
  • This is the first out of five patches me and Simon Wood (CC'd) have been
    working on. It separates the handling of Logite from the generic lgff driver
    and adds additional features specific for the Logitech wheels, namely

    - Native mode support for Driving Force GT, Driving Force Pro, G25 and G27
    wheels Every Logitech wheel reports itself as generic Logitech Driving Force
    wheel (VID 046d, PID c294). This is done to ensu wheel will work on every USB
    HID-aware system even when no Logitech driver is available. It however limits
    the capabilit wheel - range is limited to 200 degrees, G25/G27 don't report the
    clutch pedal and there is only one combined axis for t brake. The switch to
    native mode is done via hardware-specific command which is different for each
    wheel. When the wheel receives such command, it simulates reconnect and reports
    to the OS with its actual PID.

    - Adjustable wheel range DFGT, DFP, G25 and G27 have variable range of the
    steering wheel. The range is limited by applying a maximum constant when the
    wheel is turned beyond the allowed range. The limit as also set by a
    hardware-specific command. There is a comm command for DFGT, G25 and G27 and
    another one for DFP. It is probably possible to use the DFP command to limit
    the range other Logitech wheels too, but this is not supported by the official
    Logitech driver for Windows. The patch adds a sysfs interface which allows for
    the range to be set from userspace.

    - Fixed autocentering command All Logitech wheels support FF_AUTOCENTER effect.
    The original implementation in the lgff driver didn't work well with patch
    fixes it. According to USB communication sniffs the Formula Force EX (pretty
    much rebranded original Driving Force accept the generic autocentering command,
    this issue is also addressed by the patch

    There are still some features this patch doesn't cover, but since some of them
    will most likely require modifications of memless driver we have decided not to
    include them yet.

    As first we decided to move the handling of Logitech wheels from hid-lgff
    driver to hid-lg4ff driver (originally used fo At also adds PID of Logitech
    Driving Force GT.

    Signed-off-by: Michal Malý
    Signed-off-by: Simon Wood
    Signed-off-by: Jiri Kosina

    Michal Malý
     

07 Jun, 2011

1 commit

  • - Add the quirk "NOGET" to make the wheel work at all in native mode.
    - Replace the somehow broken report descriptor with a custom one to have
    separate throttle and brake axes.

    As there are significant differences in the descriptor (original descriptor
    "hides" the separate axes in a 24 bit FF00 usagepage, new descripter replaces
    that with two individual 8 bit desktop.y and desktop.rz usages) I provided a
    complete replacement descriptor instead trying to patch the original one.
    Patching the descriptor seems not feasible as the new one is much larger.

    Note: To actually test this you have to use the tool "ltwheelconf" to put the
    DFP into it's native mode - See below for more info.

    Background:
    Most Logitech wheels are initially reporting themselves with a "fallback"
    deviceID (USB_DEVICE_ID_LOGITECH_WHEEL - 0xc294), in order to make sure they
    are working even without having the proper driver installed.

    If the Logitech driver is installed it sends a special command to the wheel
    which sets the wheel to "native mode", enabling enhance features like:
    - Clutch pedal
    - extended wheel rotation range (up to 900 degrees)
    - H-gate shifter
    - separate axis for throttle / brake
    - all buttons

    When the wheel is set to native mode it basically disconnects and reconnects
    with a different deviceID (USB_DEVICE_ID_LOGITECH_DFP_WHEEL - 0xc298 in this
    case).

    I am working on a userspace tool [1] which does the switching from fallback to
    native mode. During development I found out that the Driving Force Pro wheel
    is not supported in native mode - quierk NOGET is missing and the throttle and
    brake axes are reported in a combined way only.

    Signed-off-by: Michael Bauer
    Signed-off-by: Simon Wood

    [1] https://github.com/TripleSpeeder/LTWheelConf
    Signed-off-by: Jiri Kosina

    Michael Bauer
     

03 May, 2011

1 commit

  • Gere's a small patch to add support for the Logitech G27 wheel, since
    the prior patch only added FF support for the Driving Force Pro and G25.
    The patch contains the changes from the G25 and DFP, too.

    I tested the changes with wine/LFS and got full support for all axes and
    buttons.

    Signed-off: Peter Gundermann

    Signed-off-by: Jiri Kosina

    Peter Gundermann
     

17 Mar, 2011

1 commit


10 Dec, 2010

1 commit

  • Neaten current uses of dev_ by adding and using
    hid specific hid_ macros.

    Convert existing uses of dev_ uses to hid_.
    Convert hid-pidff printk uses to hid_.

    Remove err_hid and use hid_err instead.

    Add missing newlines to logging messages where necessary.
    Coalesce format strings.

    Add and use pr_fmt(fmt) KBUILD_MODNAME ": " fmt

    Other miscellaneous changes:

    Add const struct hid_device * argument to hid-core functions
    extract() and implement() so hid_ can be used by them.
    Fix bad indentation in hid-core hid_input_field function
    that calls extract() function above.

    Signed-off-by: Joe Perches
    Signed-off-by: Jiri Kosina

    Joe Perches
     

24 Oct, 2010

2 commits


04 Oct, 2010

1 commit


22 Sep, 2010

1 commit

  • The following patch adds support for the Logitech Speed Force Wireless gaming
    wheel. Originally designed for the WII console. Details on the protocol:

    http://wiibrew.org/wiki/Logitech_USB_steering_wheel

    This patch relies on previous patch:
    "Don't Send Feature Reports on Interrupt Endpoint"

    Logitech as produce a very similar wheel for the PS2/PS3, it is expected that
    this patch could also support the PS2/PS3 wheel if the USB ID's are added and
    (if required) the HID descriptor is modified.

    Signed-off-by: Simon Wood
    Signed-off-by: Jiri Kosina

    Simon Wood
     

10 Aug, 2010

1 commit

  • Update hid_driver's report_fixup prototype to allow changing report
    descriptor size and/or returning completely different report descriptor.
    Update existing usage accordingly.

    This is to give more freedom in descriptor fixup and to allow having a whole
    fixed descriptor in the code for the sake of readability.

    Signed-off-by: Nikolai Kondrashov
    Signed-off-by: Jiri Kosina

    Nikolai Kondrashov
     

19 Apr, 2010

1 commit


13 Jan, 2010

1 commit

  • Implements a new USB-HID for Force Feedback based on the normal
    Logitech Force Feedback code and FF-Memless.

    Currently only supports the FF_CONSTANT effect although the joystick
    appears to support additional non-standard ones.

    Signed-off-by: Gary Stein
    Signed-off-by: Jiri Kosina

    Gary Stein
     

08 Dec, 2009

1 commit


25 Nov, 2009

1 commit


13 Nov, 2009

1 commit


23 Jul, 2009

2 commits


17 Apr, 2009

1 commit

  • Add Product Id 0xc299 for the Logitech G25 force feedback wheel
    The Logitech G25 force feedback wheel, is first recognize by the kernel
    with the product id "0xc294". In this mode, we can't use all the axes
    and buttons of the wheel.

    Using a userland utility, it is possible to make the wheel switch to native
    mode -- http://svn.vdrift.net/viewvc.cgi/trunk/tools/G25manage/?root=VDrift
    In native mode, the wheel change its id number to "0xc299".

    The packet that needs to be sent to the wheel to swtich to native mode and
    change its PID is

    { 0xf8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 }

    Signed-off-by: Christophe Borivant
    Signed-off-by: Jiri Kosina

    Christophe Borivant
     

30 Mar, 2009

1 commit

  • This removal was scheduled and there is no problem with later
    distros to adapt for the new bus, thanks to aliases.

    module-init-tools map files are deprecated nowadays, so that
    the patch which introduced hid ones into the m-i-t won't be
    accepted and hence there is no reason for leaving compat stuff in.

    Signed-off-by: Jiri Slaby
    Cc: Jiri Kosina
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     

04 Jan, 2009

1 commit

  • This patch (as1146c) makes usbhid automatically call usbhid_set_leds()
    for any device that supports the keyboard boot protocol.

    In theory this should be perfectly safe. BIOSes send the LED output
    report as part of their normal device initialization, so any keyboard
    device supporting the boot protocol has to be able to handle it.

    As a side effect, the hid-dell and hid-bright drivers are no longer
    needed, and the Logitech keyboard driver can be removed from hid-lg.

    CC: Mauro Carvalho Chehab
    Signed-off-by: Alan Stern
    Signed-off-by: Jiri Kosina

    Alan Stern
     

17 Oct, 2008

1 commit

  • This reverts commit 740f370dc61dc478d891d7d47660bb3ae39ddb4f.

    It turned out to be correct in the first place: a positive value should
    be sent when the wheel is moved to the right, and a negative value when
    moved to the left. This is the behavior expected by the Xorg evdev
    driver. I must have had a remapping somewhere else in my system when
    originally testing this. Testing on another system shows that the
    unpatched kernel is correct.

    Here is a bug report from Mandriva that brought the problem to my
    attention:

    https://qa.mandriva.com/show_bug.cgi?id=44309#c19

    Signed-off-by: Dan Nicholson
    Signed-off-by: Jiri Kosina

    Dan Nicholson
     

15 Oct, 2008

1 commit