linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Roland Bosa <rbosa@logitech.com>
To: "Michal Malý" <madcatxster@devoid-pointer.net>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	jkosina@suse.cz, elias.vds@gmail.com, anssi.hannula@iki.fi,
	simon@mungewell.org
Subject: Re: [PATCH v4 01/24] input: Add ff-memless-next module
Date: Tue, 20 May 2014 14:38:43 -0700	[thread overview]
Message-ID: <537BCB63.1020200@logitech.com> (raw)
In-Reply-To: <10859911.6zyzadbfH9@sigyn>

On 05/20/2014 12:00 PM, Michal Malý wrote:
> Hi,
> 
> "ff-memless-next" was designed with behavior of Logitech devices in mind, 
> however it was always meant as a general replacement for the current "ff-
> memless". After some followup discussion it's unlikely that it will be 
> mainlined in its current form. See the discussion here 
> "http://www.spinics.net/lists/linux-input/msg31426.html" for more details.
> 
> We would however really appreciate some information regarding Logitech devices 
> specifically. Although we have reverse engineered most of things, I believe 
> there are still areas we're not entirely clear about. I realize that you'd 
> probably have to take it up with the legal deparment but if someone at 
> Logitech could at least take a look at what we've found so far at fill in the 
> blanks it'd be most helpful.

I'm your guy, then. Please send any questions my way and I'll dig out
the information you need - with the lawyer's blessings, if need be.

> Please note that we found numerous bugs and DirectInput specs violations in 
> the Windows driver which might have impacted our understading of how the 
> driver works. "ff-memless-next" and "lg4ff" tries to fix or work around these. A 
> link to out-of-tree update to lg4ff which takes full advantage of "ff-memless-
> next" is also provided in this thread.

lg4ff is mostly wheels, from what I saw. We should be able to fold in
the G940 (Flight System) as well as other joysticks into the same
driver. The underlying model driving the forces of our devices is
essentially the same, there are just slight improvements made over the
years to accommodate higher resolutions and more powerful micro processors.

Each device has a unique number (say 2 or 4) of force 'slots' per axis,
which is running a force calculation in firmware. Typically, one of
these slots is allocated by the host driver for a constant force, that's
streamed to the device (and comprises all constant and periodic forces
sent by the 'game' - that's the combined type of your code, as far as I
can tell). The other slot may be used for position-based effects
(springs, centering spring) as well as velocity-based effects (dampers,
friction) - that's the un-combinable type. There's a healthy amount of
code in the Windows driver that you would call 'quirks' which deals with
deciding how to allocate multiple springs and dampers to a single slot.
Sometimes, even the springs and dampers are being streamed in via the
constants force, but that requires (as you pointed out earlier) a fast
update rate and some "smartness" (I'm getting in hot territory with the
lawyers now - let me stop).

One of the key features of the design is the decoupling of the USB
updates from the force feedback IOCTL's from the 'game'. I don't think
this is currently the case with today's drivers. I was able to send
force updates to a gamepad faster than the USB update rate, which led to
some lost packets which in turn left the device in a inconsistent state
- the motors were still rumbling although they should have stopped. If
the 'ff-memless-next' driver offers this decoupling, it is a step in the
right direction, IMO.

I will try to apply the patch mentioned in this thread and see where it
leads me...

Thanks
roland


  reply	other threads:[~2014-05-20 21:38 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-26 15:01 [PATCH v4 00/24] input: Introduce ff-memless-next as an improved replacement for ff-memless Michal Malý
2014-04-26 15:02 ` [PATCH v4 01/24] input: Add ff-memless-next module Michal Malý
2014-05-14  6:38   ` Dmitry Torokhov
2014-05-14  8:35     ` Michal Malý
2014-05-14 11:26       ` Elias Vanderstuyft
2014-05-14 15:11       ` simon
2014-05-14 17:58         ` Dmitry Torokhov
2014-05-14 18:05       ` Dmitry Torokhov
2014-05-14 19:38         ` Michal Malý
2014-05-20  9:27         ` Michal Malý
2014-05-20 18:32           ` Roland Bosa
2014-05-20 19:00             ` Michal Malý
2014-05-20 21:38               ` Roland Bosa [this message]
2014-05-21 14:53                 ` Elias Vanderstuyft
     [not found]                   ` <537D28E3.3000401@logitech.com>
2014-05-21 22:42                     ` simon
2014-05-20 19:39             ` simon
2014-05-20 22:04               ` Roland Bosa
2014-05-20 23:30                 ` simon
2014-05-21  1:17                   ` Roland Bosa
2014-05-21  2:13                     ` Michal Malý
2014-05-21 10:17                       ` Nestor Lopez Casado
2014-05-21 14:08                         ` Elias Vanderstuyft
2014-05-21 13:35                       ` Elias Vanderstuyft
2014-05-21 14:22                         ` Elias Vanderstuyft
2014-05-21 14:05                       ` Elias Vanderstuyft
2014-05-20 20:16           ` simon
2014-05-20 20:58             ` Michal Malý
2014-05-20 21:26               ` Elias Vanderstuyft
2014-05-22  9:48                 ` Elias Vanderstuyft
2014-05-20 23:45               ` simon
2014-05-21  0:08                 ` Michal Malý
2014-05-14 18:14   ` Dmitry Torokhov
2014-05-14 19:40     ` Michal Malý
2014-04-26 15:02 ` [PATCH v4 02/24] input: Port arizona-haptics to ff-memless-next Michal Malý
2014-04-26 15:02 ` [PATCH v4 03/24] input: Port twl4030-vibra " Michal Malý
2014-04-26 15:02 ` [PATCH v4 04/24] input: Port twl6040-vibra " Michal Malý
2014-04-26 15:02 ` [PATCH v4 05/24] input: Port max8997_haptic " Michal Malý
2014-04-26 15:02 ` [PATCH v4 06/24] input: Port pm8xxx-vibrator " Michal Malý
2014-04-26 15:02 ` [PATCH v4 07/24] hid: Port hid-axff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 08/24] hid: Port hid-emsff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 09/24] hid: Port hid-dr " Michal Malý
2014-04-26 15:02 ` [PATCH v4 10/24] hid: Port hid-gaff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 11/24] hid: Port hid-holtekff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 12/24] hid: Port hid-lgff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 13/24] hid: Port hid-lg3ff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 14/24] hid: Port hid-pl " Michal Malý
2014-04-26 15:02 ` [PATCH v4 15/24] hid: Port hid-sjoy " Michal Malý
2014-04-26 15:02 ` [PATCH v4 16/24] hid: Port hid-sony " Michal Malý
2014-04-26 15:02 ` [PATCH v4 17/24] hid: Port hid-tmff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 18/24] hid: Port hid-wiimote-modules " Michal Malý
2014-04-26 15:02 ` [PATCH v4 19/24] hid: Port hid-zpff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 20/24] input: Port gamecon " Michal Malý
2014-04-26 15:02 ` [PATCH v4 21/24] input: Port xpad " Michal Malý
2014-04-26 15:02 ` [PATCH v4 22/24] hid: Port hid-lg2ff " Michal Malý
2014-04-26 15:02 ` [PATCH v4 23/24] hid: Port hid-lg4ff " Michal Malý
2014-04-29 16:05   ` simon
2014-04-26 15:02 ` [PATCH v4 24/24] input: Replace ff-memless with ff-memless-next Michal Malý
2014-04-29 15:59 ` [PATCH v4 00/24] input: Introduce ff-memless-next as an improved replacement for ff-memless simon
2014-05-12  9:14 ` Jiri Kosina
2014-05-12  9:26   ` Michal Malý

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=537BCB63.1020200@logitech.com \
    --to=rbosa@logitech.com \
    --cc=anssi.hannula@iki.fi \
    --cc=dmitry.torokhov@gmail.com \
    --cc=elias.vds@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=madcatxster@devoid-pointer.net \
    --cc=simon@mungewell.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).