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
next prev parent 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