linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@infradead.org>
To: Andy Walls <awalls@md.metrocast.net>
Cc: "David Härdeman" <david@hardeman.nu>,
	"Jon Smirl" <jonsmirl@gmail.com>,
	linux-input@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [RFC3] Teach drivers/media/IR/ir-raw-event.c to use durations
Date: Sat, 10 Apr 2010 09:10:49 -0300	[thread overview]
Message-ID: <4BC06AC9.4060203@infradead.org> (raw)
In-Reply-To: <1270900579.3034.25.camel@palomino.walls.org>

Andy Walls wrote:
> On Sat, 2010-04-10 at 08:48 +0200, David Härdeman wrote:
>> On Fri, Apr 09, 2010 at 11:00:41AM -0300, Mauro Carvalho Chehab wrote:
>>> struct {
>>> 	unsigned mark : 1;
>>> 	unsigned duration :31;
>>> }
>>>
>>> There's no memory spend at all: it will use just one unsigned int and it is
>>> clearly indicated what's mark and what's duration.
>> If all three of you agree on this approch, I'll write a patch to convert 
>> ir-core to use it instead.
> 
> I'm OK with it.
> 
> I haven't been paying close attention,so I must ask: What will the units
> of duration be?
> 
> a. If we use nanoseconds the max duration is 2.147 seconds.
> 
> If passing pulse measurments out to LIRC, there are cases where irrecord
> and lircd want the duration of the long silence between the
> transmissions from the remote. Do any remotes have silence periods
> longer than 2.1 seconds?
> 
> b. If we use microseconds, the max duration is 214.7 seconds or 3.6
> minutes.  That's too high to be useful.
> 
> c.  Something in between, like 1/8 (or 1/2, 1/4, or 1/10) of a
> microsecond?  1/8 gives a max duration of 26.8 seconds and a little
> extra precision.

(c) is really ugly.

(b) max limit is too high. Currently, the core assumes that everything longer
than one second is enough to re-start the state machine. So, I think (a)
is the better option.

Another way to see it: it is not reasonable for someone to press a key and wait
for 2.1 seconds to see one bit of the key to be recognized.

So, IMHO, let's just use nanoseconds with 31 bits. the sampling event function
should check for ktime value: if bigger than 2^32-1, then assume it is a
long event, resetting the state machine.

Cheers,
Mauro

  reply	other threads:[~2010-04-10 12:10 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-08 11:39 [RFC3] Teach drivers/media/IR/ir-raw-event.c to use durations David Härdeman
2010-04-08 12:01 ` Mauro Carvalho Chehab
2010-04-08 12:21 ` Mauro Carvalho Chehab
2010-04-09 11:25 ` Andy Walls
2010-04-09 12:31   ` Jon Smirl
2010-04-09 14:00     ` Mauro Carvalho Chehab
2010-04-09 15:14       ` Jon Smirl
2010-04-09 20:44       ` Found NEC IR specification in NEC uPD6122 datasheet (Re: [RFC3] Teach drivers/media/IR/ir-raw-event.c to use durations) Andy Walls
2010-04-10  6:48       ` [RFC3] Teach drivers/media/IR/ir-raw-event.c to use durations David Härdeman
2010-04-10 11:56         ` Andy Walls
2010-04-10 12:10           ` Mauro Carvalho Chehab [this message]
2010-04-10 12:34             ` Andy Walls
2010-04-10 12:16         ` Jon Smirl
2010-04-10  0:35   ` Mauro Carvalho Chehab

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=4BC06AC9.4060203@infradead.org \
    --to=mchehab@infradead.org \
    --cc=awalls@md.metrocast.net \
    --cc=david@hardeman.nu \
    --cc=jonsmirl@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-media@vger.kernel.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).