public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dtor@insightbb.com>
To: johann deneux <johann.deneux@gmail.com>
Cc: "Jiri Slaby" <jirislaby@gmail.com>,
	"\"STenyaK (Bruno González)\"" <stenyak@gmail.com>,
	"Anssi Hannula" <anssi.hannula@gmail.com>,
	"Linux kernel mailing list" <linux-kernel@vger.kernel.org>,
	linux-input@atrey.karlin.mff.cuni.cz
Subject: Re: FF layer restrictions [Was: [PATCH 1/1] Input: add sensable phantom driver]
Date: Thu, 22 Mar 2007 11:50:11 -0400	[thread overview]
Message-ID: <200703221150.12403.dtor@insightbb.com> (raw)
In-Reply-To: <38b3b7c0703211503s3a8ee177v5b149cfd5975de8c@mail.gmail.com>

On Wednesday 21 March 2007 18:03, johann deneux wrote:
> On 3/21/07, Jiri Slaby <jirislaby@gmail.com> wrote:
> > Dmitry Torokhov napsal(a):
> > > On 3/21/07, johann deneux <johann.deneux@gmail.com> wrote:
> > >> I would suggest adding a new effect type (3d effect) and extending the
> > >> union in struct ff_effect.
> > >> Let me know if I'm too vague, I already suggested that solution but
> > >> got no answer. I wonder if my mail got lost, nobody understood what I
> > >> said, or if it's just a plain bad idea.
> > >>
> > >
> > > My concern with a new 3D effect is that it will be a very "simple"
> > > effect with only constant force apllied. That might be enough for
> > > phantom but may not be sufficient for future devices. If we add
> > > ability to specify a "plane" for an effect we will be able to add
> > > envelopes on top of more complex effects and get desired combined
> > > effcet.
> >
> > I didn't get this too much, because I don't understand the FF layer well so
> > far. How is this going to work? Let's say, we have 3 torque values computed
> > in US, and this structure:
> >
> > struct ff_effect {
> >     __u16 direction;
> >     struct ff_trigger trigger;
> >     struct ff_replay replay;
> >
> >     struct ff_constant_effect {
> >         __s16 level;
> >         struct ff_envelope {
> >              __u16 attack_length;
> >              __u16 attack_level;
> >              __u16 fade_length;
> >              __u16 fade_level;
> >         };
> >     };
> > };
> >
> > and need to pass the three 16bits torques into s16 ioaddr[0..2]. How?
> >
> 
> Stupid question, I have forgotten the details of ioctl: Wouldn't the
> following work?
> 
> struct ff_effect {
>         __u16 type;
>         __s16 id;
>         __u16 direction;
>         struct ff_trigger trigger;
>         struct ff_replay replay;
> 
>         union {
>                 struct ff_constant_effect constant;
>                 struct ff_ramp_effect ramp;
>                 struct ff_periodic_effect periodic;
>                 struct ff_condition_effect condition[2]; /* One for each axis */
>                 struct ff_rumble_effect rumble;
>         } u;
> 
>         /* New member: Specify a plane in the 3d space. */
>         struct ff_ruct ff_plane plane;
> };
> 
> Would that pose compatibility issues? If the input layer knows the
> size of the struct the user-space application is sending, it knows if
> it's safe to look into the "plane" member. If it is, and the device
> driver is capable of handling 3d effects, then fine. If it is but the
> device driver can't handle it, return an error code. If it isn't, just
> do whatever it's currently doing.

No, the kernel would not know that there is more data unless we add a new
ioctl number.

> 
> Alternatively, one could leave ff_effect effect untouched and find
> another way to specify the plane, e.g. another ioctl.

I was thinking about a new ioctl to specify a plane for a specific effect,
but probably extending the structure and having 2 distinct ioctls (with
and without plane) is cleaner.

-- 
Dmitry

  reply	other threads:[~2007-03-22 15:53 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-07 11:36 [PATCH 1/1] Input: add sensable phantom driver Jiri Slaby
2007-03-07 14:47 ` Dmitry Torokhov
2007-03-07 16:38   ` Jiri Slaby
2007-03-07 16:50     ` Greg KH
2007-03-07 16:56     ` Dmitry Torokhov
2007-03-13 16:19       ` Jiri Slaby
     [not found]         ` <38b3b7c0703131450v2646e63fj2be4b9dda7f928c0@mail.gmail.com>
2007-03-13 22:16           ` FF layer restrictions [Was: [PATCH 1/1] Input: add sensable phantom driver] Jiri Slaby
2007-03-14 15:02             ` Dmitry Torokhov
2007-03-14 16:43               ` Jiri Slaby
2007-03-14 16:45                 ` Jiri Slaby
2007-03-14 18:04                 ` Anssi Hannula
2007-03-14 18:15                   ` Jiri Slaby
     [not found]                   ` <8e4ff20a0703141147n4b690ab8g4cc8138d1ecc94e1@mail.gmail.com>
2007-03-14 19:12                     ` STenyaK (Bruno González)
2007-03-14 19:13                     ` Dmitry Torokhov
2007-03-14 19:18                       ` STenyaK (Bruno González)
2007-03-15 20:51                         ` johann deneux
2007-03-15 21:06                           ` STenyaK (Bruno González)
2007-03-21 13:31                         ` Jiri Slaby
2007-03-21 13:32                           ` Jiri Slaby
2007-03-21 19:02                           ` johann deneux
2007-03-21 19:22                             ` Dmitry Torokhov
2007-03-21 20:04                               ` Jiri Slaby
2007-03-21 22:03                                 ` johann deneux
2007-03-22 15:50                                   ` Dmitry Torokhov [this message]
2007-03-27 12:20                                     ` Jiri Slaby
2007-03-27 18:36                                       ` johann deneux
2007-03-27 20:11                                         ` Jiri Slaby
2007-03-27 20:43                                           ` johann deneux
2007-03-27 20:51                                             ` Jiri Slaby
2007-03-27 21:34                                               ` johann deneux
2007-03-28  3:08                                                 ` Dmitry Torokhov
2007-03-28  9:28                                                   ` Jiri Slaby
2007-03-28 22:16                                                   ` Jiri Slaby
2007-03-28 22:22                                                     ` Jiri Slaby
2007-03-30 16:46                                                       ` Dmitry Torokhov
2007-03-30 19:11                                                 ` Anssi Hannula
2007-03-15 20:43                       ` johann deneux
2007-03-16 16:28               ` Pavel Machek
2007-03-17  7:28                 ` johann deneux

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=200703221150.12403.dtor@insightbb.com \
    --to=dtor@insightbb.com \
    --cc=anssi.hannula@gmail.com \
    --cc=jirislaby@gmail.com \
    --cc=johann.deneux@gmail.com \
    --cc=linux-input@atrey.karlin.mff.cuni.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stenyak@gmail.com \
    /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