From: Vignesh R <vigneshr@ti.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Tony Lindgren <tony@atomide.com>,
Jonathan Corbet <corbet@lwn.net>, Johan Hovold <johan@kernel.org>,
Sylvain Rochet <sylvain.rochet@finsecur.com>,
Masanari Iida <standby24x7@gmail.com>,
Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
S Twiss <stwiss.opensource@diasemi.com>,
Krzysztof Kozlowski <k.kozlowski@samsung.com>,
Moritz Fischer <moritz.fischer@ettus.com>,
Arnd Bergmann <arnd@arndb.de>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Timo Teras <timo.teras@iki.fi>,
Clifton Barnes <clifton.a.barnes@gmail.com>,
"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-omap@vger.kernel.org" <linux-omap@>
Subject: Re: [RFC PATCH 1/2] Input: rotary-encoder- Add support for absolute encoder
Date: Wed, 25 May 2016 14:14:12 +0530 [thread overview]
Message-ID: <574565DC.4010502@ti.com> (raw)
In-Reply-To: <20160524082040.GR23704@pengutronix.de>
On 05/24/2016 01:50 PM, Uwe Kleine-König wrote:
> Hello,
>
> On Tue, May 24, 2016 at 10:39:26AM +0530, Vignesh R wrote:
>> On 05/23/2016 06:48 PM, Uwe Kleine-König wrote:
>>> On Mon, May 23, 2016 at 04:48:40PM +0530, R, Vignesh wrote:
>>>> On 5/22/2016 3:56 PM, Uwe Kleine-König wrote:
>>>>> On Thu, May 19, 2016 at 02:34:00PM +0530, Vignesh R wrote:
[...]
>>>
>>> OK, we have code that is more complex than it needs to be for your
>>> device. But your device is a special case of the supported devices, so
>>> I'd say don't bother that there is more logic in the driver than you
>>> need and be lucky.
>>
>> More complexity is just a overhead. Since, encoder can be turned at a
>> rate faster than handling of IRQs (rotary_encoder_quarter_period_irq()
>> is threaded IRQ hence, priority is not close to real time), some states
>
> This problem isn't unique to your hardware. An "ordinary" encoder with
> just two GPIOs and more than one period can be rotated faster than
> 1/irq_latency, too.
But my hardware should not be affected by this problem. The whole point
of absolute encoder is to overcome the difficulty of software keeping
track of steps, one can read the gpios state anytime and find out what
value is the encoder pointing to.
> There are two things that can be done:
>
> - undo the conversion to threaded irqs; or
> - read out the gpios in the fast handler and only delay decoding and
> reporting of the event
>
> Both approaches have their disadvantages.
>
And both cannot guarantee that an event is not missed (on a loaded
system) and all of the state logic goes for a toss. For binary encoding
multiple IRQs(thats why incremental encoders are usually gray coded)
will fire at same time and handling all of the them is a considerable
overhead, there is good chance that some events are missed.
>> can be missed. rotary_encoder_quarter_period_irq() is not robust in this
>> case, reading gpios directly is more suitable option. I see similar
>> views expressed in previously[1]
>>
>> [1]http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/391196.html
>
> IMHO the right thing to do is to improve
> rotary_encoder_quarter_period_irq (and also the other handlers for full
> and half period mode) to make use of additional GPIOs.
I doubt there exists any incremental encoder with more than 2
gpios(except for the extra reference GPIO or Z signal). So modifying
full/half period handlers maybe unnecessary.
> This way all types of devices benefit and more code is shared.
Sorry.. but IMHO, there is little code sharing and more complexity. So,
I will leave it to the maintainer to decide whats the best approach here.
--
Regards
Vignesh
next prev parent reply other threads:[~2016-05-25 8:44 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-19 9:03 [RFC PATCH 0/2] AM335x-ICE: Add support for rotary-encoder Vignesh R
2016-05-19 9:04 ` [RFC PATCH 1/2] Input: rotary-encoder- Add support for absolute encoder Vignesh R
2016-05-19 11:25 ` Krzysztof Kozlowski
2016-05-19 11:44 ` Vignesh R
2016-05-20 16:34 ` Dmitry Torokhov
2016-05-23 9:18 ` R, Vignesh
2016-05-25 8:44 ` Vignesh R
2016-06-16 10:47 ` Vignesh R
2016-07-19 13:04 ` R, Vignesh
2016-05-20 21:49 ` Rob Herring
2016-05-22 10:26 ` Uwe Kleine-König
2016-05-23 11:18 ` R, Vignesh
[not found] ` <5742E710.9-l0cyMroinI0@public.gmane.org>
2016-05-23 13:18 ` Uwe Kleine-König
2016-05-24 5:09 ` Vignesh R
2016-05-24 8:20 ` Uwe Kleine-König
2016-05-25 8:44 ` Vignesh R [this message]
2016-05-19 9:04 ` [RFC PATCH 2/2] ARM: dts: am335x-icev2: Add rotary-encoder node Vignesh R
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=574565DC.4010502@ti.com \
--to=vigneshr@ti.com \
--cc=arnd@arndb.de \
--cc=clifton.a.barnes@gmail.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=geert@linux-m68k.org \
--cc=johan@kernel.org \
--cc=k.kozlowski@samsung.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=moritz.fischer@ettus.com \
--cc=robh+dt@kernel.org \
--cc=standby24x7@gmail.com \
--cc=stwiss.opensource@diasemi.com \
--cc=sylvain.rochet@finsecur.com \
--cc=timo.teras@iki.fi \
--cc=tony@atomide.com \
--cc=u.kleine-koenig@pengutronix.de \
/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).