Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-05-26 Thread Jarod Wilson
On Tue, May 25, 2010 at 5:05 PM, Jarod Wilson  wrote:
> On Wed, Apr 28, 2010 at 12:32 AM, Jarod Wilson  wrote:
>> On Sat, Apr 24, 2010 at 1:12 AM, David Härdeman  wrote:
>>> On Fri, Apr 23, 2010 at 01:40:34PM -0400, Jarod Wilson wrote:
 So now that I'm more or less done with porting the imon driver, I
 think I'm ready to start tackling the mceusb driver. But I'm debating
 on what approach to take with respect to lirc support. It sort of
 feels like we should have lirc_dev ported as an ir "decoder"
 driver/plugin before starting to port mceusb to ir-core, so that we
 can maintain lirc compat and transmit support. Alternatively, I could
 port mceusb without lirc support for now, leaving it to only use
 in-kernel decoding and have no transmit support for the moment, then
 re-add lirc support. I'm thinking that porting lirc_dev as, say,
 ir-lirc-decoder first is probably the way to go though. Anyone else
 want to share their thoughts on this?
>>>
>>> I think it would make sense to start with a mce driver without the TX
>>> and lirc bits first. Adding lirc rx support can be done as a separate
>>> "raw" decoder later (so its scope is outside the mce driver anyway) and
>>> TX support is not implemented in ir-core yet and we haven't had any
>>> discussion yet on which form it should take.
>>
>> So after looking at folks feedback, I did settle on starting the
>> mceusb port first, my logic going more or less like this... Having a
>> well-supported general-purpose IR receiver functional is a Good Thing
>> for people wanting to work on protocol support (i.e., so they have a
>> way to actually test protocol support). Having an
>> already-ir-core-ified driver to test out an ir-lirc-decoder (lirc_dev
>> port) would also be rather helpful. So rather than trying to port
>> lirc_dev before there's anything that can actually make use of it,
>> give myself something to work with. I'm kind of thinking that
>> ir-lirc-decoder might actually be ir-lirc-codec, able to do xmit as
>> well, maintaining full compat with lirc userspace, and then we'd have
>> a separate input subsystem based xmit method at some point, which
>> might be the "preferred/blessed" route. This means ripping a bunch of
>> code out of lirc_mceusb.c only to put it back in later, but that's not
>> terribly painful. I've already got as far as having an mceusb.c that
>> has no lirc dependency, which builds, but doesn't actually do anything
>> useful yet (not wired up to ir-core). Should be able to get something
>> functional RSN, I hope...
>
> Got sidetracked for a few weeks, but I'm probably 95% of the way there
> as of this afternoon. Something isn't quite right with how I'm
> processing and handing off the raw IR data right now though, best as I
> can tell. Its also possible my first-gen mce device is throwing things
> for a loop, so I need to see if maybe things Just Work with a newer
> gen device so I know if its device-specific, or if something is still
> generally wrong. I did crib the simplified mce data processing routine
> from Jon's code, but the original lirc_mceusb.c has some changes
> specific to the first-gen mce device that were made to properly
> support it quite some time after Jon's port, so I may also try w/the
> uglier/more complex routine I know has been working on this device...
>
> David, you mentioned having something based on Jon's earlier port that
> was more or less working. I'd be curious to get a look at that if
> you're willing to drop me a copy, see if I've missed something
> blindingly stupid. :)

I was missing something blindingly stupid. Was accumulating duration
values in ms instead of us. Now alternating presses of the OK button
on the stock MCE remote get this:

ir_rc6_decode: RC6(6A) scancode 0x800f0422 (toggle: 1)
ir_rc6_decode: RC6(6A) scancode 0x800f0422 (toggle: 0)

This is with Jon's IR handling routine and a recent MCE device, still
need to go back and see how the older one behaves, but within the next
few days, I should have a patch worthy of submission.

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-05-25 Thread Jarod Wilson
On Wed, Apr 28, 2010 at 12:32 AM, Jarod Wilson  wrote:
> On Sat, Apr 24, 2010 at 1:12 AM, David Härdeman  wrote:
>> On Fri, Apr 23, 2010 at 01:40:34PM -0400, Jarod Wilson wrote:
>>> So now that I'm more or less done with porting the imon driver, I
>>> think I'm ready to start tackling the mceusb driver. But I'm debating
>>> on what approach to take with respect to lirc support. It sort of
>>> feels like we should have lirc_dev ported as an ir "decoder"
>>> driver/plugin before starting to port mceusb to ir-core, so that we
>>> can maintain lirc compat and transmit support. Alternatively, I could
>>> port mceusb without lirc support for now, leaving it to only use
>>> in-kernel decoding and have no transmit support for the moment, then
>>> re-add lirc support. I'm thinking that porting lirc_dev as, say,
>>> ir-lirc-decoder first is probably the way to go though. Anyone else
>>> want to share their thoughts on this?
>>
>> I think it would make sense to start with a mce driver without the TX
>> and lirc bits first. Adding lirc rx support can be done as a separate
>> "raw" decoder later (so its scope is outside the mce driver anyway) and
>> TX support is not implemented in ir-core yet and we haven't had any
>> discussion yet on which form it should take.
>
> So after looking at folks feedback, I did settle on starting the
> mceusb port first, my logic going more or less like this... Having a
> well-supported general-purpose IR receiver functional is a Good Thing
> for people wanting to work on protocol support (i.e., so they have a
> way to actually test protocol support). Having an
> already-ir-core-ified driver to test out an ir-lirc-decoder (lirc_dev
> port) would also be rather helpful. So rather than trying to port
> lirc_dev before there's anything that can actually make use of it,
> give myself something to work with. I'm kind of thinking that
> ir-lirc-decoder might actually be ir-lirc-codec, able to do xmit as
> well, maintaining full compat with lirc userspace, and then we'd have
> a separate input subsystem based xmit method at some point, which
> might be the "preferred/blessed" route. This means ripping a bunch of
> code out of lirc_mceusb.c only to put it back in later, but that's not
> terribly painful. I've already got as far as having an mceusb.c that
> has no lirc dependency, which builds, but doesn't actually do anything
> useful yet (not wired up to ir-core). Should be able to get something
> functional RSN, I hope...

Got sidetracked for a few weeks, but I'm probably 95% of the way there
as of this afternoon. Something isn't quite right with how I'm
processing and handing off the raw IR data right now though, best as I
can tell. Its also possible my first-gen mce device is throwing things
for a loop, so I need to see if maybe things Just Work with a newer
gen device so I know if its device-specific, or if something is still
generally wrong. I did crib the simplified mce data processing routine
from Jon's code, but the original lirc_mceusb.c has some changes
specific to the first-gen mce device that were made to properly
support it quite some time after Jon's port, so I may also try w/the
uglier/more complex routine I know has been working on this device...

David, you mentioned having something based on Jon's earlier port that
was more or less working. I'd be curious to get a look at that if
you're willing to drop me a copy, see if I've missed something
blindingly stupid. :)

What I get right now when I press a key:
...
ir_rc6_decode: RC6 decode failed at state 0 (0us space)
ir_rc6_decode: RC6 decode failed at state 0 (0us pulse)
ir_rc6_decode: RC6 decode failed at state 0 (0us pulse)
ir_rc6_decode: RC6 decode failed at state 0 (0us space)
ir_rc6_decode: RC6 decode failed at state 0 (1us pulse)
ir_rc6_decode: RC6 decode failed at state 0 (0us space)
ir_rc6_decode: RC6 decode failed at state 0 (0us pulse)
ir_rc6_decode: RC6 decode failed at state 0 (0us pulse)
ir_rc6_decode: RC6 decode failed at state 0 (0us space)
ir_rc6_decode: RC6 decode failed at state 0 (1us pulse)

Always fails at state 0, varying us values from 0 to 100, but mostly 0 and 1.

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-27 Thread Jarod Wilson
On Sat, Apr 24, 2010 at 1:12 AM, David Härdeman  wrote:
> On Fri, Apr 23, 2010 at 01:40:34PM -0400, Jarod Wilson wrote:
>> So now that I'm more or less done with porting the imon driver, I
>> think I'm ready to start tackling the mceusb driver. But I'm debating
>> on what approach to take with respect to lirc support. It sort of
>> feels like we should have lirc_dev ported as an ir "decoder"
>> driver/plugin before starting to port mceusb to ir-core, so that we
>> can maintain lirc compat and transmit support. Alternatively, I could
>> port mceusb without lirc support for now, leaving it to only use
>> in-kernel decoding and have no transmit support for the moment, then
>> re-add lirc support. I'm thinking that porting lirc_dev as, say,
>> ir-lirc-decoder first is probably the way to go though. Anyone else
>> want to share their thoughts on this?
>
> I think it would make sense to start with a mce driver without the TX
> and lirc bits first. Adding lirc rx support can be done as a separate
> "raw" decoder later (so its scope is outside the mce driver anyway) and
> TX support is not implemented in ir-core yet and we haven't had any
> discussion yet on which form it should take.

So after looking at folks feedback, I did settle on starting the
mceusb port first, my logic going more or less like this... Having a
well-supported general-purpose IR receiver functional is a Good Thing
for people wanting to work on protocol support (i.e., so they have a
way to actually test protocol support). Having an
already-ir-core-ified driver to test out an ir-lirc-decoder (lirc_dev
port) would also be rather helpful. So rather than trying to port
lirc_dev before there's anything that can actually make use of it,
give myself something to work with. I'm kind of thinking that
ir-lirc-decoder might actually be ir-lirc-codec, able to do xmit as
well, maintaining full compat with lirc userspace, and then we'd have
a separate input subsystem based xmit method at some point, which
might be the "preferred/blessed" route. This means ripping a bunch of
code out of lirc_mceusb.c only to put it back in later, but that's not
terribly painful. I've already got as far as having an mceusb.c that
has no lirc dependency, which builds, but doesn't actually do anything
useful yet (not wired up to ir-core). Should be able to get something
functional RSN, I hope...

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-24 Thread Jon Smirl
On Sat, Apr 24, 2010 at 5:23 PM, David Härdeman  wrote:
> I don't care either way. Get the input maintainers to agree and I'll
> happily write patches that follow that approach (writing TX data to the
> input dev will also have to be supported).
>
> The only real problem I see is if we implement > 1 input device per
> rc/ir device (which I think we should do - each logical remote should
> have a separate keytable and input device).

I forgot about the many to 1 aspect of the receiver. You should have
started off with this point and I would have shut up, DRM does not
have many to 1 mappings. My radio receivers show up as network
devices. So I have multiple devices too.

I don't think we want a 'rc' device. The IR transceiver should be an
'ir' device. My radios are already 'net' devices. So my complaint
really is, I don't want an three devices - input, rc and net.

-- 
Jon Smirl
jonsm...@gmail.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-24 Thread David Härdeman
On Sat, Apr 24, 2010 at 11:07:07AM -0400, Jon Smirl wrote:
> On Sat, Apr 24, 2010 at 10:15 AM, David Härdeman  wrote:
> > On Sat, Apr 24, 2010 at 08:35:48AM -0400, Jon Smirl wrote:
> >> On Sat, Apr 24, 2010 at 1:22 AM, David Härdeman  wrote:
> >> > I think we're eventually going to want to let rc-core create a 
> >> > chardev
> >> > per rc device to allow for things like reading out scancodes (when
> >> > creating keymaps for new and unknown remotes), raw timings (for
> >> > debugging in-kernel decoders and writing new ones), possibly also
> >> > ioctl's (for e.g. setting all RX parameters in one go or to
> >> > create/destroy additional keymaps, though I'm sure some will want all of
> >> > that to go through sysfs).
> >>
> >> That problem is handled differently in the graphics code.  You only
> >> have one /dev device for graphics. IOCTLs on it are divided into
> >> ranges - core and driver. The IOCTL call initially lands in the core
> >> code, but if it is in the driver range it simply gets forwarded to the
> >> specific driver and handled there.
> >>
> >> Doing it that was avoids needing two /dev devices nodes for the same
> >> device. Two device nodes has problems.  How do you keep them from
> >> being open by two different users and different privilege levels, or
> >> one is open and one closed, etc...
> >
> > I'm not sure which two devices you're talking about. ir-core currently
> > creates no device at all (unless you count the input device). And
> > further down the road I think each rc (ir) device should support
> > multiple keytables, each keytable having an associated input device.
> >
> > Input device(s) would be used by the majority of applications that only
> > want to react on keypresses, the rc device is used by rc-aware
> > applications that want to create new keytables, send ir commands, tweak
> > RX/TX parameters, etc. I do not see how any of your two-device concerns
> > would apply to that division...
> >
> >> Splitting the IOCTL range is easy to add to input core and it won't
> >> effect any existing user space code.
> >
> > The input maintainers have already NAK'ed adding any ir-specific ioctls
> > to the input layer, and I tend to agree with them.
> 
> Based on my experience with DRM adding a split to the IOCTL range is a
> good solution. The split does not add IR specific IOCTLs to the input
> core. The input core just looks at the IOCTL number and if it is out
> of range it forwards it down the chain - to IR core, which can process
> it  or forward to the specific driver.  This model is already in use
> and it works without problem.

I don't care either way. Get the input maintainers to agree and I'll 
happily write patches that follow that approach (writing TX data to the 
input dev will also have to be supported).

The only real problem I see is if we implement > 1 input device per 
rc/ir device (which I think we should do - each logical remote should 
have a separate keytable and input device).

-- 
David Härdeman
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-24 Thread Jon Smirl
On Sat, Apr 24, 2010 at 10:15 AM, David Härdeman  wrote:
> On Sat, Apr 24, 2010 at 08:35:48AM -0400, Jon Smirl wrote:
>> On Sat, Apr 24, 2010 at 1:22 AM, David Härdeman  wrote:
>> > On Fri, Apr 23, 2010 at 06:20:28PM -0400, Andy Walls wrote:
>> >> Not that my commit rate has been > 0 LOC lately, but I'd like to see
>> >> lirc_dev, just to get transmit worked out for the CX23888 chip and
>> >> cx23885 driver.
>> >>
>> >> I think this device will bring to light some assumptions LIRC currently
>> >> makes about transmit that don't apply to the CX23888 (i.e. LIRC having
>> >> to perform the pulse timing).  The cx23888-ir implementation has a kfifo
>> >> for holding outgoing pulse data and the hardware itself has an 8 pulse
>> >> measurement deep fifo.
>> >
>> > I think we're eventually going to want to let rc-core create a chardev
>> > per rc device to allow for things like reading out scancodes (when
>> > creating keymaps for new and unknown remotes), raw timings (for
>> > debugging in-kernel decoders and writing new ones), possibly also
>> > ioctl's (for e.g. setting all RX parameters in one go or to
>> > create/destroy additional keymaps, though I'm sure some will want all of
>> > that to go through sysfs).
>>
>> That problem is handled differently in the graphics code.  You only
>> have one /dev device for graphics. IOCTLs on it are divided into
>> ranges - core and driver. The IOCTL call initially lands in the core
>> code, but if it is in the driver range it simply gets forwarded to the
>> specific driver and handled there.
>>
>> Doing it that was avoids needing two /dev devices nodes for the same
>> device. Two device nodes has problems.  How do you keep them from
>> being open by two different users and different privilege levels, or
>> one is open and one closed, etc...
>
> I'm not sure which two devices you're talking about. ir-core currently
> creates no device at all (unless you count the input device). And
> further down the road I think each rc (ir) device should support
> multiple keytables, each keytable having an associated input device.
>
> Input device(s) would be used by the majority of applications that only
> want to react on keypresses, the rc device is used by rc-aware
> applications that want to create new keytables, send ir commands, tweak
> RX/TX parameters, etc. I do not see how any of your two-device concerns
> would apply to that division...
>
>> Splitting the IOCTL range is easy to add to input core and it won't
>> effect any existing user space code.
>
> The input maintainers have already NAK'ed adding any ir-specific ioctls
> to the input layer, and I tend to agree with them.

Based on my experience with DRM adding a split to the IOCTL range is a
good solution. The split does not add IR specific IOCTLs to the input
core. The input core just looks at the IOCTL number and if it is out
of range it forwards it down the chain - to IR core, which can process
it  or forward to the specific driver.  This model is already in use
and it works without problem.

> want to react on keypresses, the rc device is used by rc-aware
> applications that want to create new keytables, send ir commands, tweak
> RX/TX parameters, etc. I do not see how any of your two-device concerns

These would be implemented by IOCTL forwarding.

>> Don't forget about binary sysfs attributes. I have scars from
>> implementing sysfs attributes as text that other people thought should
>> have been binary.
>>
>> There has long been talk of implementing sysfs transactions. I think
>> the closest thing that got implemented was to not make the attributes
>> take effect until an action occurs. For example, you would set all of
>> the RX parameters using sysfs. They would be written into shadow
>> variables. Then you write to a 'commit' attribute. The write triggers
>> the copy from the shadow variables to the real ones.
>
> I still fail to understand why sysfs is preferrable over ioctls.

I don't care one way or the other. IOCTLs have portability issues with
word size and endianness. sysfs gets rid of those problems. But sysfs
doesn't have an explicit transaction mechanism. So both strategies
have issues.

>
>> Why are the TX variables being set via sysfs?
>
> There's not a single line of TX code yet.
>
>> I think the attributes
>> were read only in the code I wrote. Instead I set them via commands in
>> the input stream. Setting via the stream make it easy to change them
>> on each transmit.  The input layer already supports transactions
>> wrapping in output. The same transactions could be used to wrap input
>> parameter setting.  Start an input transaction, set the TX variables,
>> send the pulse data, end the input transaction. I don't remember if I
>> got around to implementing that.
>
> Again, the input maintainers have NAK'ed the kind of changes that would
> be necessary to support TX through the input layer. We're going to have
> to go with something ir-core specific.

We already have two way devices in the input l

Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-24 Thread David Härdeman
On Sat, Apr 24, 2010 at 08:35:48AM -0400, Jon Smirl wrote:
> On Sat, Apr 24, 2010 at 1:22 AM, David Härdeman  wrote:
> > On Fri, Apr 23, 2010 at 06:20:28PM -0400, Andy Walls wrote:
> >> Not that my commit rate has been > 0 LOC lately, but I'd like to see
> >> lirc_dev, just to get transmit worked out for the CX23888 chip and
> >> cx23885 driver.
> >>
> >> I think this device will bring to light some assumptions LIRC currently
> >> makes about transmit that don't apply to the CX23888 (i.e. LIRC having
> >> to perform the pulse timing).  The cx23888-ir implementation has a kfifo
> >> for holding outgoing pulse data and the hardware itself has an 8 pulse
> >> measurement deep fifo.
> >
> > I think we're eventually going to want to let rc-core create a chardev
> > per rc device to allow for things like reading out scancodes (when
> > creating keymaps for new and unknown remotes), raw timings (for
> > debugging in-kernel decoders and writing new ones), possibly also
> > ioctl's (for e.g. setting all RX parameters in one go or to
> > create/destroy additional keymaps, though I'm sure some will want all of
> > that to go through sysfs).
> 
> That problem is handled differently in the graphics code.  You only
> have one /dev device for graphics. IOCTLs on it are divided into
> ranges - core and driver. The IOCTL call initially lands in the core
> code, but if it is in the driver range it simply gets forwarded to the
> specific driver and handled there.
> 
> Doing it that was avoids needing two /dev devices nodes for the same
> device. Two device nodes has problems.  How do you keep them from
> being open by two different users and different privilege levels, or
> one is open and one closed, etc...

I'm not sure which two devices you're talking about. ir-core currently 
creates no device at all (unless you count the input device). And 
further down the road I think each rc (ir) device should support 
multiple keytables, each keytable having an associated input device.

Input device(s) would be used by the majority of applications that only 
want to react on keypresses, the rc device is used by rc-aware 
applications that want to create new keytables, send ir commands, tweak 
RX/TX parameters, etc. I do not see how any of your two-device concerns 
would apply to that division...

> Splitting the IOCTL range is easy to add to input core and it won't
> effect any existing user space code.

The input maintainers have already NAK'ed adding any ir-specific ioctls 
to the input layer, and I tend to agree with them.

> Don't forget about binary sysfs attributes. I have scars from
> implementing sysfs attributes as text that other people thought should
> have been binary.
> 
> There has long been talk of implementing sysfs transactions. I think
> the closest thing that got implemented was to not make the attributes
> take effect until an action occurs. For example, you would set all of
> the RX parameters using sysfs. They would be written into shadow
> variables. Then you write to a 'commit' attribute. The write triggers
> the copy from the shadow variables to the real ones.

I still fail to understand why sysfs is preferrable over ioctls.
 
> Why are the TX variables being set via sysfs? 

There's not a single line of TX code yet.

> I think the attributes
> were read only in the code I wrote. Instead I set them via commands in
> the input stream. Setting via the stream make it easy to change them
> on each transmit.  The input layer already supports transactions
> wrapping in output. The same transactions could be used to wrap input
> parameter setting.  Start an input transaction, set the TX variables,
> send the pulse data, end the input transaction. I don't remember if I
> got around to implementing that.

Again, the input maintainers have NAK'ed the kind of changes that would 
be necessary to support TX through the input layer. We're going to have 
to go with something ir-core specific.

-- 
David Härdeman
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-24 Thread Jon Smirl
On Sat, Apr 24, 2010 at 1:22 AM, David Härdeman  wrote:
> On Fri, Apr 23, 2010 at 06:20:28PM -0400, Andy Walls wrote:
>> Not that my commit rate has been > 0 LOC lately, but I'd like to see
>> lirc_dev, just to get transmit worked out for the CX23888 chip and
>> cx23885 driver.
>>
>> I think this device will bring to light some assumptions LIRC currently
>> makes about transmit that don't apply to the CX23888 (i.e. LIRC having
>> to perform the pulse timing).  The cx23888-ir implementation has a kfifo
>> for holding outgoing pulse data and the hardware itself has an 8 pulse
>> measurement deep fifo.
>
> I think we're eventually going to want to let rc-core create a chardev
> per rc device to allow for things like reading out scancodes (when
> creating keymaps for new and unknown remotes), raw timings (for
> debugging in-kernel decoders and writing new ones), possibly also
> ioctl's (for e.g. setting all RX parameters in one go or to
> create/destroy additional keymaps, though I'm sure some will want all of
> that to go through sysfs).

That problem is handled differently in the graphics code.  You only
have one /dev device for graphics. IOCTLs on it are divided into
ranges - core and driver. The IOCTL call initially lands in the core
code, but if it is in the driver range it simply gets forwarded to the
specific driver and handled there.

Doing it that was avoids needing two /dev devices nodes for the same
device. Two device nodes has problems.  How do you keep them from
being open by two different users and different privilege levels, or
one is open and one closed, etc...

Splitting the IOCTL range is easy to add to input core and it won't
effect any existing user space code.

Don't forget about binary sysfs attributes. I have scars from
implementing sysfs attributes as text that other people thought should
have been binary.

There has long been talk of implementing sysfs transactions. I think
the closest thing that got implemented was to not make the attributes
take effect until an action occurs. For example, you would set all of
the RX parameters using sysfs. They would be written into shadow
variables. Then you write to a 'commit' attribute. The write triggers
the copy from the shadow variables to the real ones.

Why are the TX variables being set via sysfs? I think the attributes
were read only in the code I wrote. Instead I set them via commands in
the input stream. Setting via the stream make it easy to change them
on each transmit.  The input layer already supports transactions
wrapping in output. The same transactions could be used to wrap input
parameter setting.  Start an input transaction, set the TX variables,
send the pulse data, end the input transaction. I don't remember if I
got around to implementing that.


>
> That same chardev could also be used to implement TX, once a suitable
> interface has been fleshed out. The end result might not look exactly
> like lirc...
>
> --
> David Härdeman
>



-- 
Jon Smirl
jonsm...@gmail.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-23 Thread David Härdeman
On Fri, Apr 23, 2010 at 06:20:28PM -0400, Andy Walls wrote:
> Not that my commit rate has been > 0 LOC lately, but I'd like to see
> lirc_dev, just to get transmit worked out for the CX23888 chip and
> cx23885 driver.
> 
> I think this device will bring to light some assumptions LIRC currently
> makes about transmit that don't apply to the CX23888 (i.e. LIRC having
> to perform the pulse timing).  The cx23888-ir implementation has a kfifo
> for holding outgoing pulse data and the hardware itself has an 8 pulse
> measurement deep fifo.

I think we're eventually going to want to let rc-core create a chardev 
per rc device to allow for things like reading out scancodes (when 
creating keymaps for new and unknown remotes), raw timings (for 
debugging in-kernel decoders and writing new ones), possibly also 
ioctl's (for e.g. setting all RX parameters in one go or to 
create/destroy additional keymaps, though I'm sure some will want all of 
that to go through sysfs).

That same chardev could also be used to implement TX, once a suitable 
interface has been fleshed out. The end result might not look exactly 
like lirc...

-- 
David Härdeman
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-23 Thread David Härdeman
On Fri, Apr 23, 2010 at 01:40:34PM -0400, Jarod Wilson wrote:
> So now that I'm more or less done with porting the imon driver, I
> think I'm ready to start tackling the mceusb driver. But I'm debating
> on what approach to take with respect to lirc support. It sort of
> feels like we should have lirc_dev ported as an ir "decoder"
> driver/plugin before starting to port mceusb to ir-core, so that we
> can maintain lirc compat and transmit support. Alternatively, I could
> port mceusb without lirc support for now, leaving it to only use
> in-kernel decoding and have no transmit support for the moment, then
> re-add lirc support. I'm thinking that porting lirc_dev as, say,
> ir-lirc-decoder first is probably the way to go though. Anyone else
> want to share their thoughts on this?

I think it would make sense to start with a mce driver without the TX 
and lirc bits first. Adding lirc rx support can be done as a separate 
"raw" decoder later (so its scope is outside the mce driver anyway) and 
TX support is not implemented in ir-core yet and we haven't had any 
discussion yet on which form it should take.

> (Actually, while sharing thoughts... Should drivers/media/IR become
> drivers/media/RC, ir-core.h become rc-core.h, ir-keytable.c become
> rc-keytable.c and so on?)

It will happen...and on a related note, I still think rc-core should in 
the end expose an API where drivers create "rc" devices and the input 
device(s) are kept as an internal detail in rc-core rather than the way 
it works now (where drivers create input devices and use ir-core to 
create a kind of addon device).

But that change is about as disruptive as the ir-core -> rc-core change, 
so it can also wait to a more convenient time.

-- 
David Härdeman
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-23 Thread Andy Walls
On Fri, 2010-04-23 at 14:06 -0400, Jon Smirl wrote:
> On Fri, Apr 23, 2010 at 1:40 PM, Jarod Wilson  wrote:
> >
> > So now that I'm more or less done with porting the imon driver, I
> > think I'm ready to start tackling the mceusb driver. But I'm debating
> > on what approach to take with respect to lirc support. It sort of
> > feels like we should have lirc_dev ported as an ir "decoder"
> > driver/plugin before starting to port mceusb to ir-core, so that we
> > can maintain lirc compat and transmit support. Alternatively, I could
> > port mceusb without lirc support for now, leaving it to only use
> > in-kernel decoding and have no transmit support for the moment, then
> > re-add lirc support. I'm thinking that porting lirc_dev as, say,
> > ir-lirc-decoder first is probably the way to go though. Anyone else
> > want to share their thoughts on this?
> 
> I'd take whatever you think is the simplest path. It is more likely
> that initial testers will want to work with the new in-kernel system
> than the compatibility layer to LIRC. Existing users that are happy
> with the current LIRC should just keep on using it.

Jarod,

Not that my commit rate has been > 0 LOC lately, but I'd like to see
lirc_dev, just to get transmit worked out for the CX23888 chip and
cx23885 driver.

I think this device will bring to light some assumptions LIRC currently
makes about transmit that don't apply to the CX23888 (i.e. LIRC having
to perform the pulse timing).  The cx23888-ir implementation has a kfifo
for holding outgoing pulse data and the hardware itself has an 8 pulse
measurement deep fifo.


But I'd recommend whatever helps you get more productive work done
first.  I've had no time for linux lately.

Regards,
Andy

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-23 Thread Mauro Carvalho Chehab
Jon Smirl wrote:
>> So now that I'm more or less done with porting the imon driver, I
>> think I'm ready to start tackling the mceusb driver. But I'm debating
>> on what approach to take with respect to lirc support. It sort of
>> feels like we should have lirc_dev ported as an ir "decoder"
>> driver/plugin before starting to port mceusb to ir-core, so that we
>> can maintain lirc compat and transmit support. Alternatively, I could
>> port mceusb without lirc support for now, leaving it to only use
>> in-kernel decoding and have no transmit support for the moment, then
>> re-add lirc support. I'm thinking that porting lirc_dev as, say,
>> ir-lirc-decoder first is probably the way to go though. Anyone else
>> want to share their thoughts on this?
> 
> I'd take whatever you think is the simplest path. It is more likely
> that initial testers will want to work with the new in-kernel system
> than the compatibility layer to LIRC. Existing users that are happy
> with the current LIRC should just keep on using it.

Agreed. You may start by adding either lirc "decoder" or mce. Both ways
will end on having the same result ;)

>> (Actually, while sharing thoughts... Should drivers/media/IR become
>> drivers/media/RC, ir-core.h become rc-core.h, ir-keytable.c become
>> rc-keytable.c and so on?)
> 
> Why aren't these files going into drivers/input/rc? My embedded system
> has a remote control and it has nothing to do with media.

Historical reasons. It were simpler to start from drivers/media, as we've
started with some already existing code there.

My intention is to write one or two big patches at the end, moving everything
to drivers/rc or drivers/input/rc and renaming the structures. The point is
that a patch like that will force people that are working on the code to rebase
to the newer names, so I prefer to postpone it to happen after we finish with
the big changes. A change like that won't affect just the new RC code, but also
several V4L/DVB drivers.

Maybe the right moment would be during the next merge window, as all pending 
work for 2.6.35 will be already finished, and people likely didn't start 
working for 2.6.36. So, my intention is to write such patch during the merge
week, just after sending the pending stuff.

-- 

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-23 Thread Jon Smirl
On Fri, Apr 23, 2010 at 1:40 PM, Jarod Wilson  wrote:
> On Wed, Apr 7, 2010 at 5:32 AM, David Härdeman  wrote:
>> On Mon, Apr 05, 2010 at 04:49:10PM -0400, Jarod Wilson wrote:
>>> On Fri, Apr 2, 2010 at 6:20 AM, David Härdeman  wrote:
>>> > Porting the msmce driver to rc-core will be high on my list of
>>> > priorities once I've done some more changes to the API.
>>>
>>> Very cool. Though note that the latest lirc_mceusb is quite heavily
>>> modified from what Jon had initially ported, and I still have a few
>>> outstanding enhancements to make, such as auto-detecting xmit mask to
>>> eliminate the crude inverted mask list and support for the mce IR
>>> keyboard/mouse, though that'll probably be trivial once RC5 and RC6
>>> in-kernel decoders are in place. I'd intended to start with porting
>>> the imon driver I'm working on over to this new infra (onboard
>>> hardware decoder, should be rather easy to port), and then hop over to
>>> the mceusb driver, but if you beat me to it, I've got no problem with
>>> you doing it instead. :)
>>
>> I'd be happy with you doing it, you seem to know the hardware better
>> than me. The mceusb driver I'm using right now with ir-core is based on
>> Jon's driver which is in turn based on a version of lirc_mceusb which is
>> quite old by now. My version of the driver is basically just random bits
>> and pieces thrown together, enough to get pulse/space durations flowing
>> through ir-core so that I can test the decoders, but not much more - so
>> it's not something I'd even consider useful as a starting point :)
>
> So now that I'm more or less done with porting the imon driver, I
> think I'm ready to start tackling the mceusb driver. But I'm debating
> on what approach to take with respect to lirc support. It sort of
> feels like we should have lirc_dev ported as an ir "decoder"
> driver/plugin before starting to port mceusb to ir-core, so that we
> can maintain lirc compat and transmit support. Alternatively, I could
> port mceusb without lirc support for now, leaving it to only use
> in-kernel decoding and have no transmit support for the moment, then
> re-add lirc support. I'm thinking that porting lirc_dev as, say,
> ir-lirc-decoder first is probably the way to go though. Anyone else
> want to share their thoughts on this?

I'd take whatever you think is the simplest path. It is more likely
that initial testers will want to work with the new in-kernel system
than the compatibility layer to LIRC. Existing users that are happy
with the current LIRC should just keep on using it.

MSMCE is a good device for debugging protocol engines. It's easy to
use and pretty much always captures the pulses correctly.

>
> (Actually, while sharing thoughts... Should drivers/media/IR become
> drivers/media/RC, ir-core.h become rc-core.h, ir-keytable.c become
> rc-keytable.c and so on?)

Why aren't these files going into drivers/input/rc? My embedded system
has a remote control and it has nothing to do with media.

-- 
Jon Smirl
jonsm...@gmail.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-23 Thread Jarod Wilson
On Wed, Apr 7, 2010 at 5:32 AM, David Härdeman  wrote:
> On Mon, Apr 05, 2010 at 04:49:10PM -0400, Jarod Wilson wrote:
>> On Fri, Apr 2, 2010 at 6:20 AM, David Härdeman  wrote:
>> > Porting the msmce driver to rc-core will be high on my list of
>> > priorities once I've done some more changes to the API.
>>
>> Very cool. Though note that the latest lirc_mceusb is quite heavily
>> modified from what Jon had initially ported, and I still have a few
>> outstanding enhancements to make, such as auto-detecting xmit mask to
>> eliminate the crude inverted mask list and support for the mce IR
>> keyboard/mouse, though that'll probably be trivial once RC5 and RC6
>> in-kernel decoders are in place. I'd intended to start with porting
>> the imon driver I'm working on over to this new infra (onboard
>> hardware decoder, should be rather easy to port), and then hop over to
>> the mceusb driver, but if you beat me to it, I've got no problem with
>> you doing it instead. :)
>
> I'd be happy with you doing it, you seem to know the hardware better
> than me. The mceusb driver I'm using right now with ir-core is based on
> Jon's driver which is in turn based on a version of lirc_mceusb which is
> quite old by now. My version of the driver is basically just random bits
> and pieces thrown together, enough to get pulse/space durations flowing
> through ir-core so that I can test the decoders, but not much more - so
> it's not something I'd even consider useful as a starting point :)

So now that I'm more or less done with porting the imon driver, I
think I'm ready to start tackling the mceusb driver. But I'm debating
on what approach to take with respect to lirc support. It sort of
feels like we should have lirc_dev ported as an ir "decoder"
driver/plugin before starting to port mceusb to ir-core, so that we
can maintain lirc compat and transmit support. Alternatively, I could
port mceusb without lirc support for now, leaving it to only use
in-kernel decoding and have no transmit support for the moment, then
re-add lirc support. I'm thinking that porting lirc_dev as, say,
ir-lirc-decoder first is probably the way to go though. Anyone else
want to share their thoughts on this?

(Actually, while sharing thoughts... Should drivers/media/IR become
drivers/media/RC, ir-core.h become rc-core.h, ir-keytable.c become
rc-keytable.c and so on?)

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-07 Thread David Härdeman
On Mon, Apr 05, 2010 at 04:49:10PM -0400, Jarod Wilson wrote:
> On Fri, Apr 2, 2010 at 6:20 AM, David Härdeman  wrote:
> > Porting the msmce driver to rc-core will be high on my list of
> > priorities once I've done some more changes to the API.
> 
> Very cool. Though note that the latest lirc_mceusb is quite heavily
> modified from what Jon had initially ported, and I still have a few
> outstanding enhancements to make, such as auto-detecting xmit mask to
> eliminate the crude inverted mask list and support for the mce IR
> keyboard/mouse, though that'll probably be trivial once RC5 and RC6
> in-kernel decoders are in place. I'd intended to start with porting
> the imon driver I'm working on over to this new infra (onboard
> hardware decoder, should be rather easy to port), and then hop over to
> the mceusb driver, but if you beat me to it, I've got no problem with
> you doing it instead. :)

I'd be happy with you doing it, you seem to know the hardware better 
than me. The mceusb driver I'm using right now with ir-core is based on 
Jon's driver which is in turn based on a version of lirc_mceusb which is 
quite old by now. My version of the driver is basically just random bits 
and pieces thrown together, enough to get pulse/space durations flowing 
through ir-core so that I can test the decoders, but not much more - so 
it's not something I'd even consider useful as a starting point :)

Note however that you won't be able to actually port the mceusb driver 
over until ir-core is taught to use durations (first version of the 
patch is at [1], second version still brewing but I still need to 
convince Mauro though).

[1] http://www.spinics.net/lists/linux-input/msg07859.html

-- 
David Härdeman
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-05 Thread Jarod Wilson
On Fri, Apr 2, 2010 at 6:20 AM, David Härdeman  wrote:
> On Thu, Apr 01, 2010 at 09:44:12PM -0400, Jon Smirl wrote:
>> On Thu, Apr 1, 2010 at 1:56 PM, Mauro Carvalho Chehab
>>  wrote:
>> > This series of 15 patches improves support for IR, as discussed at the
>> > "What are the goals for the architecture of an in-kernel IR system?"
>> > thread.
>> >
>> > It basically adds a raw decoder layer at ir-core, allowing decoders to plug
>> > into IR core, and preparing for the addition of a lirc_dev driver that will
>> > allow raw IR codes to be sent to userspace.
>> >
>> > There's no lirc patch in this series. I have also a few other patches from
>> > David Härdeman that I'm about to test/review probably later today, but
>> > as I prefer to first merge what I have at V4L/DVB tree, before applying
>> > them.
>>
>> Has anyone ported the MSMCE driver onto these patches yet? That would
>> be a good check to make sure that rc-core has the necessary API.
>
> I still plan to make lots of changes to the rc-core API (I just have to
> convince Mauro first, but I'll get there). What I have done is to port
> your port of the msmce driver to the suggested rc-core subsystem I sent
> you in private a week or so ago, and it works fine (I've bought the
> hardware and tested it with 20 or so different protocols).
>
> The subsystem I suggested is basically what I'm using as inspiration
> while working with Mauro in improving rc-core so msmce should work well
> with the end product...but there's still some ground to cover.
>
> Porting the msmce driver to rc-core will be high on my list of
> priorities once I've done some more changes to the API.

Very cool. Though note that the latest lirc_mceusb is quite heavily
modified from what Jon had initially ported, and I still have a few
outstanding enhancements to make, such as auto-detecting xmit mask to
eliminate the crude inverted mask list and support for the mce IR
keyboard/mouse, though that'll probably be trivial once RC5 and RC6
in-kernel decoders are in place. I'd intended to start with porting
the imon driver I'm working on over to this new infra (onboard
hardware decoder, should be rather easy to port), and then hop over to
the mceusb driver, but if you beat me to it, I've got no problem with
you doing it instead. :)

>> Cooler if it works both through LIRC and with an internal protocol
>> decoder. The MSMCE driver in my old patches was very simplified, it
>> removed about half of the code from the LIRC version.
>
> Yes, and it was a great help to me at least...thanks :)

Yeah, copy that. Good to see we've got some major momentum going now,
just need to get off my butt and do some more work on it myself...

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-02 Thread David Härdeman
On Thu, Apr 01, 2010 at 09:44:12PM -0400, Jon Smirl wrote:
> On Thu, Apr 1, 2010 at 1:56 PM, Mauro Carvalho Chehab
>  wrote:
> > This series of 15 patches improves support for IR, as discussed at the
> > "What are the goals for the architecture of an in-kernel IR system?"
> > thread.
> >
> > It basically adds a raw decoder layer at ir-core, allowing decoders to plug
> > into IR core, and preparing for the addition of a lirc_dev driver that will
> > allow raw IR codes to be sent to userspace.
> >
> > There's no lirc patch in this series. I have also a few other patches from
> > David Härdeman that I'm about to test/review probably later today, but
> > as I prefer to first merge what I have at V4L/DVB tree, before applying
> > them.
> 
> Has anyone ported the MSMCE driver onto these patches yet? That would
> be a good check to make sure that rc-core has the necessary API.

I still plan to make lots of changes to the rc-core API (I just have to 
convince Mauro first, but I'll get there). What I have done is to port 
your port of the msmce driver to the suggested rc-core subsystem I sent 
you in private a week or so ago, and it works fine (I've bought the 
hardware and tested it with 20 or so different protocols).

The subsystem I suggested is basically what I'm using as inspiration 
while working with Mauro in improving rc-core so msmce should work well 
with the end product...but there's still some ground to cover.

Porting the msmce driver to rc-core will be high on my list of 
priorities once I've done some more changes to the API.

> Cooler if it works both through LIRC and with an internal protocol
> decoder. The MSMCE driver in my old patches was very simplified, it
> removed about half of the code from the LIRC version.

Yes, and it was a great help to me at least...thanks :)

-- 
David Härdeman
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-01 Thread Jon Smirl
On Thu, Apr 1, 2010 at 1:56 PM, Mauro Carvalho Chehab
 wrote:
> This series of 15 patches improves support for IR, as discussed at the
> "What are the goals for the architecture of an in-kernel IR system?"
> thread.
>
> It basically adds a raw decoder layer at ir-core, allowing decoders to plug
> into IR core, and preparing for the addition of a lirc_dev driver that will
> allow raw IR codes to be sent to userspace.
>
> There's no lirc patch in this series. I have also a few other patches from
> David Härdeman that I'm about to test/review probably later today, but
> as I prefer to first merge what I have at V4L/DVB tree, before applying
> them.

Has anyone ported the MSMCE driver onto these patches yet? That would
be a good check to make sure that rc-core has the necessary API.
Cooler if it works both through LIRC and with an internal protocol
decoder. The MSMCE driver in my old patches was very simplified, it
removed about half of the code from the LIRC version.

>
> There are two patches on this series that deserve a better analysis, IMO:
>
> -  V4L/DVB: ir-core: rename sysfs remote controller class from ir to rc
>
> As discussed, "IR" is not a good name, as this infrastructure could later
> be used by other types of Remote Controllers, as it has nothing that
> is specific to IR inside the code, except for the name. So, I'm proposing
> to replace the sysfs notes do "rc", instead of "ir". The sooner we do
> such changes, the better, as userspace apps using it are still under
> development. So, an API change is still possible, without causing
> much hurt.
>
> Also, as some RC devices allow RC code transmission, we probably need to add
> a TX node somewhere, associated with the same RX part (as some devices
> don't allow simultaneous usage of TX and RX).
>
> So, we have a few alternatives for the RC device sysfs node:
> a) /sys/class/rc/rc0
>                 |--> rx
>                 ---> tx
> b) /sys/class/rc/rcrcv0
>   /sys/class/rc/rctx0
>
> c) /sys/class/rc/rc0
>  and have there the RX and TX nodes/attributes mixed. IMO, (b) is a bad idea,
> so, I am between (a) and (c).
>
> -  V4L/DVB: input: Add support for EVIO[CS]GKEYCODEBIG
>
> Adds two new ioctls in order to handle with big keycode tables. As already
> said, we'll need another ioctl, in order to get the maximum keycode supported
> by a given device. I didn't wrote the patch for the new ioctl yet.
> This patch will probably have a small conflict with upstream input, but I
> prefer to keep it on my tree and fix the upstream conflicts when submiting
> it, as the rest of the new IR code is also on my tree, and this patch is
> needed to procced with the IR code development.
>
> Mauro Carvalho Chehab (15):
>  V4L/DVB: ir-core: be less pedantic with RC protocol name
>  V4L/DVB: saa7134: use a full scancode table for M135A
>  V4L/DVB: saa7134: add code to allow changing IR protocol
>  V4L/DVB: ir-core: Add logic to decode IR protocols at the IR core
>  V4L/DVB: ir-core: add two functions to report keyup/keydown events
>  V4L/DVB: ir-core/saa7134: Move ir keyup/keydown code to the ir-core
>  V4L/DVB: saa7134: don't wait too much to generate an IR event on raw_decode
>  V4L/DVB: ir-core: dynamically load the compiled IR protocols
>  V4L/DVB: ir-core: prepare to add more operations for ir decoders
>  V4L/DVB: ir-nec-decoder: Add sysfs node to enable/disable per irrcv
>  V4L/DVB: saa7134: clear warning noise
>  V4L/DVB: ir-core: rename sysfs remote controller class from ir to rc
>  V4L/DVB: ir-core: Add callbacks for input/evdev open/close on IR core
>  V4L/DVB: cx88: Only start IR if the input device is opened
>  V4L/DVB: input: Add support for EVIO[CS]GKEYCODEBIG
>
>  drivers/input/evdev.c                       |   39 +++
>  drivers/input/input.c                       |  260 ++--
>  drivers/media/IR/Kconfig                    |    9 +
>  drivers/media/IR/Makefile                   |    3 +-
>  drivers/media/IR/ir-keymaps.c               |   98 
>  drivers/media/IR/ir-keytable.c              |   75 ++-
>  drivers/media/IR/ir-nec-decoder.c           |  351 
> +++
>  drivers/media/IR/ir-raw-event.c             |  231 ++
>  drivers/media/IR/ir-sysfs.c                 |   29 ++-
>  drivers/media/video/cx88/cx88-input.c       |   69 +-
>  drivers/media/video/cx88/cx88-video.c       |    6 +-
>  drivers/media/video/cx88/cx88.h             |    6 +-
>  drivers/media/video/saa7134/saa7134-core.c  |    2 +-
>  drivers/media/video/saa7134/saa7134-input.c |  207 +++--
>  drivers/media/video/saa7134/saa7134.h       |    4 +-
>  include/linux/input.h                       |   40 +++-
>  include/media/ir-common.h                   |    9 +-
>  include/media/ir-core.h                     |   59 +-
>  18 files changed, 1368 insertions(+), 129 deletions(-)
>  create mode 100644 drivers/media/IR/ir-nec-decoder.c
>  create mode 100644 drivers/media/IR/ir-raw-event.c
>
> --
> To unsubscribe

[PATCH 00/15] ir-core: Several improvements to allow adding LIRC and decoder plugins

2010-04-01 Thread Mauro Carvalho Chehab
This series of 15 patches improves support for IR, as discussed at the
"What are the goals for the architecture of an in-kernel IR system?"
thread.

It basically adds a raw decoder layer at ir-core, allowing decoders to plug
into IR core, and preparing for the addition of a lirc_dev driver that will
allow raw IR codes to be sent to userspace.

There's no lirc patch in this series. I have also a few other patches from
David Härdeman that I'm about to test/review probably later today, but
as I prefer to first merge what I have at V4L/DVB tree, before applying
them.

There are two patches on this series that deserve a better analysis, IMO:

-  V4L/DVB: ir-core: rename sysfs remote controller class from ir to rc

As discussed, "IR" is not a good name, as this infrastructure could later
be used by other types of Remote Controllers, as it has nothing that
is specific to IR inside the code, except for the name. So, I'm proposing
to replace the sysfs notes do "rc", instead of "ir". The sooner we do
such changes, the better, as userspace apps using it are still under
development. So, an API change is still possible, without causing
much hurt.

Also, as some RC devices allow RC code transmission, we probably need to add
a TX node somewhere, associated with the same RX part (as some devices
don't allow simultaneous usage of TX and RX).

So, we have a few alternatives for the RC device sysfs node:
a) /sys/class/rc/rc0
 |--> rx
 ---> tx
b) /sys/class/rc/rcrcv0
   /sys/class/rc/rctx0

c) /sys/class/rc/rc0
  and have there the RX and TX nodes/attributes mixed. IMO, (b) is a bad idea,
so, I am between (a) and (c).

-  V4L/DVB: input: Add support for EVIO[CS]GKEYCODEBIG

Adds two new ioctls in order to handle with big keycode tables. As already
said, we'll need another ioctl, in order to get the maximum keycode supported
by a given device. I didn't wrote the patch for the new ioctl yet.
This patch will probably have a small conflict with upstream input, but I
prefer to keep it on my tree and fix the upstream conflicts when submiting
it, as the rest of the new IR code is also on my tree, and this patch is
needed to procced with the IR code development.

Mauro Carvalho Chehab (15):
  V4L/DVB: ir-core: be less pedantic with RC protocol name
  V4L/DVB: saa7134: use a full scancode table for M135A
  V4L/DVB: saa7134: add code to allow changing IR protocol
  V4L/DVB: ir-core: Add logic to decode IR protocols at the IR core
  V4L/DVB: ir-core: add two functions to report keyup/keydown events
  V4L/DVB: ir-core/saa7134: Move ir keyup/keydown code to the ir-core
  V4L/DVB: saa7134: don't wait too much to generate an IR event on raw_decode
  V4L/DVB: ir-core: dynamically load the compiled IR protocols
  V4L/DVB: ir-core: prepare to add more operations for ir decoders
  V4L/DVB: ir-nec-decoder: Add sysfs node to enable/disable per irrcv
  V4L/DVB: saa7134: clear warning noise
  V4L/DVB: ir-core: rename sysfs remote controller class from ir to rc
  V4L/DVB: ir-core: Add callbacks for input/evdev open/close on IR core
  V4L/DVB: cx88: Only start IR if the input device is opened
  V4L/DVB: input: Add support for EVIO[CS]GKEYCODEBIG

 drivers/input/evdev.c   |   39 +++
 drivers/input/input.c   |  260 ++--
 drivers/media/IR/Kconfig|9 +
 drivers/media/IR/Makefile   |3 +-
 drivers/media/IR/ir-keymaps.c   |   98 
 drivers/media/IR/ir-keytable.c  |   75 ++-
 drivers/media/IR/ir-nec-decoder.c   |  351 +++
 drivers/media/IR/ir-raw-event.c |  231 ++
 drivers/media/IR/ir-sysfs.c |   29 ++-
 drivers/media/video/cx88/cx88-input.c   |   69 +-
 drivers/media/video/cx88/cx88-video.c   |6 +-
 drivers/media/video/cx88/cx88.h |6 +-
 drivers/media/video/saa7134/saa7134-core.c  |2 +-
 drivers/media/video/saa7134/saa7134-input.c |  207 +++--
 drivers/media/video/saa7134/saa7134.h   |4 +-
 include/linux/input.h   |   40 +++-
 include/media/ir-common.h   |9 +-
 include/media/ir-core.h |   59 +-
 18 files changed, 1368 insertions(+), 129 deletions(-)
 create mode 100644 drivers/media/IR/ir-nec-decoder.c
 create mode 100644 drivers/media/IR/ir-raw-event.c

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html