From: Jarod Wilson <jarod@redhat.com>
To: Andy Walls <awalls@md.metrocast.net>
Cc: "Jarod Wilson" <jarod@wilsonet.com>,
"Maxim Levitsky" <maximlevitsky@gmail.com>,
lirc-list@lists.sourceforge.net,
"David Härdeman" <david@hardeman.nu>,
mchehab@infradead.org, linux-input@vger.kernel.org,
linux-media@vger.kernel.org
Subject: Re: [PATCH 7/8] IR: extend ir_raw_event and do refactoring
Date: Wed, 8 Sep 2010 13:27:08 -0400 [thread overview]
Message-ID: <20100908172708.GH22323@redhat.com> (raw)
In-Reply-To: <1283964646.6372.90.camel@morgan.silverblock.net>
On Wed, Sep 08, 2010 at 12:50:46PM -0400, Andy Walls wrote:
> On Wed, 2010-09-08 at 11:26 -0400, Jarod Wilson wrote:
> > On Mon, Sep 6, 2010 at 5:26 PM, Maxim Levitsky <maximlevitsky@gmail.com> wrote:
> > > Add new event types for timeout & carrier report
> > > Move timeout handling from ir_raw_event_store_with_filter to
> > > ir-lirc-codec, where it is really needed.
> > > Now lirc bridge ensures proper gap handling.
> > > Extend lirc bridge for carrier & timeout reports
> > >
> > > Note: all new ir_raw_event variables now should be initialized
> > > like that: DEFINE_IR_RAW_EVENT(ev);
> > >
> > > To clean an existing event, use init_ir_raw_event(&ev);
> > >
> > > Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
> > > ---
> > > drivers/media/IR/ene_ir.c | 4 +-
> > > drivers/media/IR/ir-core-priv.h | 13 ++++++-
> > > drivers/media/IR/ir-jvc-decoder.c | 5 +-
> > > drivers/media/IR/ir-lirc-codec.c | 78 +++++++++++++++++++++++++++++++-----
> > > drivers/media/IR/ir-nec-decoder.c | 5 +-
> > > drivers/media/IR/ir-raw-event.c | 45 +++++++-------------
> > > drivers/media/IR/ir-rc5-decoder.c | 5 +-
> > > drivers/media/IR/ir-rc6-decoder.c | 5 +-
> > > drivers/media/IR/ir-sony-decoder.c | 5 +-
> > > drivers/media/IR/mceusb.c | 3 +-
> > > drivers/media/IR/streamzap.c | 8 ++-
> > > include/media/ir-core.h | 40 ++++++++++++++++---
> > > 12 files changed, 153 insertions(+), 63 deletions(-)
> > ...
> > > @@ -162,22 +164,48 @@ u32 ir_g_keycode_from_table(struct input_dev *input_dev, u32 scancode);
> > > /* From ir-raw-event.c */
> > >
> > > struct ir_raw_event {
> > > - unsigned pulse:1;
> > > - unsigned duration:31;
> > > + union {
> > > + u32 duration;
> > > +
> > > + struct {
> > > + u32 carrier;
> > > + u8 duty_cycle;
> > > + };
> > > + };
> > > +
> > > + unsigned pulse:1;
> > > + unsigned reset:1;
> > > + unsigned timeout:1;
> > > + unsigned carrier_report:1;
> > > };
> >
> > I'm generally good with this entire patch, but the union usage looks a
> > bit odd, as the members aren't of the same size, which is generally
> > what I've come to expect looking at other code.
>
> Having a union with different sized members is perfectly valid C code.
>
> Just look at the definition of the XEvent in Xlib.h. The "int type;" is
> smaller than everything, and the XAnyEvent is smaller than the other
> event types.
>
> The size of the union will be the size of its largest member.
Yeah, no, I know that it'll work, just that most of the unions I've
actually paid any attention to had members all of the same size. Seemed
like sort of an unwritten rule for in-kernel use. But its probably just
fine.
> > I'd be inclined to
> > simply move duty_cycle out of the union and leave just duration and
> > carrier in it.
>
> That's not necessary and it could be confusing depending on where you
> put duty_cycle.
There's that. But without having code that actually uses duty_cycle in a
meaningful way yet, its hard to say for sure. If carrier and duty_cycle
were only being sent out in their own events, you might actually want a
union of duration, carrier and duty_cycle. Though I suspect we'll probably
want to pass along carrier and duty_cycle at the same time.
--
Jarod Wilson
jarod@redhat.com
next prev parent reply other threads:[~2010-09-08 17:27 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-06 21:26 [PATCH 0/8 V5] Many fixes for in-kernel decoding and for the ENE driver Maxim Levitsky
2010-09-06 21:26 ` [PATCH 1/8] IR: plug races in IR raw thread Maxim Levitsky
2010-09-09 4:13 ` Jarod Wilson
2010-10-14 19:29 ` [1/8] " Jarod Wilson
2010-09-06 21:26 ` [PATCH 2/8] IR: make sure we register the input device when it is safe to do so Maxim Levitsky
2010-09-09 4:19 ` Jarod Wilson
2010-10-14 19:30 ` [2/8] " Jarod Wilson
2010-09-06 21:26 ` [PATCH 3/8] IR: fix duty cycle capability Maxim Levitsky
2010-09-08 14:44 ` Jarod Wilson
2010-09-06 21:26 ` [PATCH 4/8] IR: fix keys beeing stuck down forever Maxim Levitsky
2010-09-08 14:47 ` Jarod Wilson
2010-09-06 21:26 ` [PATCH 5/8] IR: extend MCE keymap Maxim Levitsky
2010-09-08 14:47 ` Jarod Wilson
2010-09-10 0:40 ` Maxim Levitsky
2010-09-10 1:37 ` Jarod Wilson
2010-09-10 8:27 ` David Härdeman
2010-09-10 13:18 ` Jarod Wilson
2010-09-10 8:40 ` Maxim Levitsky
2010-09-10 13:11 ` Jarod Wilson
2010-09-06 21:26 ` [PATCH 6/8] IR: ene_ir: updates Maxim Levitsky
2010-09-06 21:26 ` [PATCH 7/8] IR: extend ir_raw_event and do refactoring Maxim Levitsky
2010-09-08 15:26 ` Jarod Wilson
2010-09-08 16:50 ` Andy Walls
2010-09-08 17:27 ` Jarod Wilson [this message]
2010-09-08 23:02 ` Andy Walls
2010-09-08 23:08 ` David Härdeman
2010-09-08 23:49 ` Mauro Carvalho Chehab
2010-09-08 22:42 ` Mauro Carvalho Chehab
2010-09-08 22:49 ` David Härdeman
2010-09-08 22:54 ` Mauro Carvalho Chehab
2010-10-14 21:46 ` Jarod Wilson
2010-09-06 21:26 ` [PATCH 8/8] IR: ene_ir: add support for carrier reports Maxim Levitsky
2010-09-06 21:56 ` [PATCH 0/8 V5] Many fixes for in-kernel decoding and for the ENE driver David Härdeman
2010-09-06 22:38 ` Maxim Levitsky
2010-09-08 21:54 ` Mauro Carvalho Chehab
2010-09-08 22:42 ` Jarod Wilson
2010-09-09 4:34 ` Jarod Wilson
2010-09-10 2:01 ` Jarod Wilson
2010-09-10 8:08 ` David Härdeman
2010-09-10 13:03 ` Jarod Wilson
2010-09-10 8:35 ` Maxim Levitsky
2010-09-10 13:21 ` Jarod Wilson
[not found] ` <1283808373-27876-1-git-send-email-maximlevitsky-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-10-14 2:36 ` Maxim Levitsky
-- strict thread matches above, loose matches on Subject: below --
2010-09-05 22:22 [PATCH 0/8 V4] " Maxim Levitsky
2010-09-05 22:22 ` [PATCH 7/8] IR: extend ir_raw_event and do refactoring Maxim Levitsky
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=20100908172708.GH22323@redhat.com \
--to=jarod@redhat.com \
--cc=awalls@md.metrocast.net \
--cc=david@hardeman.nu \
--cc=jarod@wilsonet.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=lirc-list@lists.sourceforge.net \
--cc=maximlevitsky@gmail.com \
--cc=mchehab@infradead.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).