All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Henrik Rydberg" <rydberg@euromail.se>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: simon.budig@kernelconcepts.de, linux-input@vger.kernel.org,
	olivier@sobrie.be, agust@denx.de, yanok@emcraft.com
Subject: Re: [PATCH v6] Touchscreen driver for FT5x06 based EDT displays
Date: Tue, 26 Jun 2012 21:17:56 +0200	[thread overview]
Message-ID: <20120626191756.GA271@polaris.bitmath.org> (raw)
In-Reply-To: <20120626020600.GD24705@core.coreip.homeip.net>

> Regarding extending input interface - let's talk about what is missing.
> You mentioned memory-mapped access, but I am not sure if it should be
> implemented within current input structure or if it should be a
> completely separate interface. If we implement it we should also make
> sure we stabdardize the data stream and not simply dump raw device
> data, as this would be a sep backwards.

>From a data perspective, what is missing is the notion of a large
collection of values of the same kind. The immediate usecase in mind
is of course a pressure or intensity value, mapped onto a surface. The
current (key, value) event model works in principle, but becomes
increasingly inefficient with increasing collection size. A simple way
of transporting a large collection where values change sparsely is via
a memory-mapped multi-dimensional array.

True, it is not given that such data needs to be incorporated into the
current input structure, and it may be benficial not to do so; the
memory map, be it real or device memory, serves as its own state and
there is no need to keep any other state. However, it seems reasonable
to inherit the input event semantics, since the data to transport is
not new, there are only more data points of the same kind. Other
possibilities exist, of course, such as using descriptors similar to
HID, or a more elaborate sysfs tree, but it does not seem necessary.

Therefore, what I propose initially is a model of an n-dimensional,
memory-mapped array, specififed by a set of input event types. For
example, to formulate a matrix of pressure values in the X-Y plane,
all you need to specify are the three values (ABS_PRESSURE, ABS_X,
ABS_Y), listed in the preferred loop order. The value ranges are given
by the absinfo structs, which also gives the dimension of the array.

The above does not need to be implemented using struct input_dev, it
could be its own machinery, possibly using uio. Since no event drivers
such as evdev are needed, no bus structure is needed either. The files
could simply be exported in a manner quite similar to sysfs nodes.

Thanks,
Henrik

  parent reply	other threads:[~2012-06-26 19:14 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1326413229-30282-1-git-send-email-simon.budig@kernelconcepts.de>
2012-01-13  0:13 ` [PATCH v3] Touchscreen driver for FT5x06 based EDT displays simon.budig
2012-01-13  0:13   ` [PATCH] " simon.budig
2012-03-06 16:15   ` [PATCH v4] " simon.budig
2012-03-06 16:15     ` simon.budig
2012-03-07 10:42       ` Simon Budig
2012-03-07 13:36       ` Anatolij Gustschin
2012-03-07 14:50         ` Simon Budig
2012-04-04 18:27     ` [PATCH v5] " simon.budig
2012-04-04 18:27       ` [PATCH] " simon.budig
2012-04-04 19:10         ` Dmitry Torokhov
2012-04-04 20:52           ` Simon Budig
2012-04-04 21:09             ` Dmitry Torokhov
2012-04-05 10:27               ` Simon Budig
2012-04-05 12:54           ` Simon Budig
2012-05-07  6:57             ` Dmitry Torokhov
2012-06-22 23:48         ` [PATCH v6] " simon.budig
2012-06-22 23:48           ` simon.budig
2012-06-25  7:20             ` Dmitry Torokhov
2012-06-25  8:53               ` Henrik Rydberg
2012-06-25  8:51             ` Henrik Rydberg
2012-06-25  9:27               ` Simon Budig
2012-06-25 11:34                 ` Henrik Rydberg
2012-06-26  1:36                   ` Dmitry Torokhov
2012-06-26  5:37                 ` Olivier Sobrie
2012-06-26  2:06               ` Dmitry Torokhov
2012-06-26  9:06                 ` Simon Budig
2012-06-26 18:21                   ` Henrik Rydberg
2012-06-26 19:17                 ` Henrik Rydberg [this message]
2012-06-24 12:31           ` Simon Budig
2012-07-01 20:36           ` [PATCH v7] " simon.budig
2012-07-01 20:36             ` simon.budig
2012-07-02  9:31               ` Henrik Rydberg
2012-07-02  9:55                 ` Simon Budig
2012-07-08 16:05             ` [PATCH v8] " simon.budig
2012-07-08 16:05               ` simon.budig
2012-07-09  8:06                 ` Henrik Rydberg
2012-07-19  4:16                   ` Dmitry Torokhov
2012-07-19 13:50                     ` Henrik Rydberg
2012-07-19 13:56                       ` Simon Budig
2012-07-22 15:02               ` [PATCH v9] " simon.budig
2012-07-23 16:54                 ` Dmitry Torokhov
2012-07-23 17:45                   ` Henrik Rydberg
2012-07-24 20:06                     ` Simon Budig
2012-07-24 20:26                       ` Dmitry Torokhov

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=20120626191756.GA271@polaris.bitmath.org \
    --to=rydberg@euromail.se \
    --cc=agust@denx.de \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=olivier@sobrie.be \
    --cc=simon.budig@kernelconcepts.de \
    --cc=yanok@emcraft.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.