From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: "Frank Schäfer" <fschaefer.oss@googlemail.com>
Cc: "Antti Palosaari" <crope@iki.fi>,
"Devin Heitmueller" <dheitmueller@kernellabs.com>,
"Matthew Gyurgyik" <matthew@pyther.net>,
"Linux Media Mailing List" <linux-media@vger.kernel.org>,
"David Härdeman" <david@hardeman.nu>
Subject: Re: em28xx: msi Digivox ATSC board id [0db0:8810]
Date: Fri, 14 Dec 2012 17:39:50 -0200 [thread overview]
Message-ID: <20121214173950.79bb963e@redhat.com> (raw)
In-Reply-To: <50CB46CE.60407@googlemail.com>
Em Fri, 14 Dec 2012 16:33:34 +0100
Frank Schäfer <fschaefer.oss@googlemail.com> escreveu:
> Am 13.12.2012 21:23, schrieb Mauro Carvalho Chehab:
> > Em Tue, 11 Dec 2012 22:59:06 +0200
> > Antti Palosaari <crope@iki.fi> escreveu:
> >
> >> On 12/11/2012 10:51 PM, Frank Schäfer wrote:
> >>> Am 10.12.2012 21:48, schrieb Antti Palosaari:
> >>>> On 12/10/2012 09:24 PM, Frank Schäfer wrote:
> >>>>> Am 10.12.2012 18:57, schrieb Antti Palosaari:
> >>>>> Specification comes here:
> >>>>> NEC send always 32 bit, 4 bytes. There is 3 different "sub" protocols:
> >>>>>
> >>>>> 1) 16bit NEC standard, 1 byte address code, 1 byte key code
> >>>>> full 4 byte code: AA BB CC DD
> >>>>> where:
> >>>>> AA = address code
> >>>>> BB = ~address code
> >>>>> CC = key code
> >>>>> DD = ~key code
> >>>>>
> >>>>> checksum:
> >>>>> AA + BB = 0xff
> >>>>> CC + DD = 0xff
> >>>>>
> >>>>> 2) 24bit NEC extended, 2 byte address code, 1 byte key code
> >>>>> full 4 byte code: AA BB CC DD
> >>>>> where:
> >>>>> AA = address code (MSB)
> >>>>> BB = address code (LSB)
> >>>>> CC = key code
> >>>>> DD = ~key code
> >>>>>
> >>>>> 3) 32bit NEC full, 4 byte key code
> >>>>> full 4 byte code: AA BB CC DD
> >>>>> where:
> >>>>> AA =
> >>>>> BB =
> >>>>> CC =
> >>>>> DD =
> >>>>>
> >>>>> I am not sure if there is separate parts for address and key code in
> >>>>> case of 32bit NEC. See some existing remote keytables if there is any
> >>>>> such table. It is very rare protocol. 1) and 2) are much more common.
> >>>>>
> >>> Many thanks.
> >>> So the problem is, that we have only a single RC_TYPE for all 3 protocol
> >>> variants and need a method to distinguish between them, right ?
> > This is not actually needed, as it is very easy to distinguish them when
> > doing the table lookups. Take a look at v4l-utils, at /utils/keytable/rc_keymaps:
> >
> > A 16-bits NEC table:
> > # table kworld_315u, type: NEC
> > 0x6143 KEY_POWER
> > 0x6101 KEY_VIDEO
> > ...
>
> So 0x6143 is not the same as 0x006143 and 0x00006143 ???
>
> And even when assuming that 00 bytes are unused:
I never seen that.
> do you really think the
> driver should parse the whole rc map and check all scancodes to find out
> which sub-protocol is used ?
Scancode search can use a b-tree (I think it currently does).
In any case, the typical usage is that the IR table will match the
IR device in usage. So, a not-found scancode just means that some
error happened during the transmission.
> > On a 24-bit NEC table: AA is always different than ~BB, otherwise, it would
> > be a 16-bit NEC.
>
> No, if AA != ~BB it can't be 16 bit, but if AA == ~BB, it can still be
> 16, 24 or 32bit !
Have you ever seen any remote using something like that???
The hole point of the IR address is to distinguish a given IR device from the
others. The specs define specific addresses for VCR, TV Set, DVD, etc.
So, no, if AA == ~BB it must be a 16 or 24 bits NEC protocol, as there's just 8
bits (or 16 bits) to differentiate the IR address for a given remote
from other NEC IR addresses.
> > On a 32-bit NEC table: CC is always different than ~DD, otherwise, it would be
> > a 24-bit NEC.
>
> Right, if CC != ~DD it must be 32 bit.
>
>
> So what if we get 52 AD 76 89 from the hardware ? This can be 32, 24 or
> 16 bit !
It is 16 bits, except if someone at the manufacturer is completely
senseless, and explicitly wants to cause troubles to their customers
by using an IR address and IR commands that could be produced by
some other vendor's remotes.
In any case, the RC core will still support such crappy device, as the
IR keytable can have a mix of 16 bits/24 bits/32 bits NEC codes inside
it.
We do have some tables with multiple IR's inside. For example, the
Hauppauge RC5 table contains keycodes for 3 different types of Hauppauge
controls. The same happens to one NEC's terratec table, where we're
storing there both the codes of different IR models.
The rationale is that the same board may be sold with different remotes.
> Anyway, first we have to GET the bytes from the hardware. That's our
> current problem !
> And the hardware seems to need a different setup for reg 0x50 for the
> different NEC sub protocols.
> Which means that the we need to know the sub protocol BEFORE we get any
> bytes from the device.
No. All em28xx needs is to make sure that the NEC protocol will return
the full 32 bits scancode.
Regards,
Mauro
next prev parent reply other threads:[~2012-12-14 19:48 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-28 2:31 em28xx: msi Digivox ATSC board id [0db0:8810] Matthew Gyurgyik
2012-11-28 20:47 ` Frank Schäfer
2012-11-28 22:29 ` Matthew Gyurgyik
2012-11-28 22:55 ` Antti Palosaari
2012-11-29 2:05 ` Matthew Gyurgyik
2012-11-29 2:15 ` Antti Palosaari
2012-11-29 19:28 ` Frank Schäfer
2012-11-29 19:46 ` Antti Palosaari
2012-11-30 1:45 ` Matthew Gyurgyik
2012-12-02 11:44 ` Frank Schäfer
2012-12-02 14:23 ` Antti Palosaari
2012-12-02 17:18 ` Frank Schäfer
2012-12-03 18:16 ` Frank Schäfer
2012-12-04 2:15 ` Matthew Gyurgyik
2012-12-04 2:29 ` Devin Heitmueller
2012-12-04 2:42 ` Matthew Gyurgyik
2012-12-04 2:58 ` Devin Heitmueller
2012-12-04 21:06 ` Frank Schäfer
2012-12-05 3:41 ` Matthew Gyurgyik
2012-12-05 12:35 ` Antti Palosaari
2012-12-05 21:35 ` Matthew Gyurgyik
2012-12-05 22:01 ` Antti Palosaari
2012-12-05 22:33 ` Matthew Gyurgyik
2012-12-06 0:55 ` Antti Palosaari
2012-12-06 2:16 ` Matthew Gyurgyik
2012-12-06 21:49 ` Frank Schäfer
2012-12-06 21:57 ` Devin Heitmueller
2012-12-06 22:01 ` Frank Schäfer
2012-12-06 22:03 ` Devin Heitmueller
2012-12-06 22:12 ` Frank Schäfer
2012-12-06 22:41 ` Matthew Gyurgyik
2012-12-06 22:58 ` Matthew Gyurgyik
2012-12-07 1:40 ` Matthew Gyurgyik
2012-12-07 3:21 ` Devin Heitmueller
2012-12-07 11:49 ` Matthew Gyurgyik
2012-12-08 13:52 ` Frank Schäfer
2012-12-08 14:10 ` Matthew Gyurgyik
2012-12-08 15:20 ` Frank Schäfer
[not found] ` <50C3701D.9000700@pyther .net>
[not found] ` <50C37DA8.4080608@googlemai l.com>
[not found] ` <50C3B3EB.40606@pyther .net>
[not found] ` <50C3B567.3070300@i ki.fi>
2012-12-08 16:51 ` Matthew Gyurgyik
2012-12-08 17:49 ` Frank Schäfer
2012-12-08 21:40 ` Matthew Gyurgyik
2012-12-08 21:47 ` Antti Palosaari
2012-12-08 22:04 ` Matthew Gyurgyik
2012-12-09 12:48 ` Frank Schäfer
2012-12-09 14:50 ` Matthew Gyurgyik
2012-12-09 15:46 ` Devin Heitmueller
2012-12-09 16:19 ` Frank Schäfer
2012-12-09 16:23 ` Frank Schäfer
2012-12-09 17:06 ` Frank Schäfer
2012-12-09 17:53 ` Matthew Gyurgyik
2012-12-10 15:39 ` Frank Schäfer
2012-12-10 15:46 ` Devin Heitmueller
2012-12-10 16:01 ` Frank Schäfer
2012-12-10 16:13 ` Devin Heitmueller
2012-12-10 17:57 ` Antti Palosaari
2012-12-10 19:24 ` Frank Schäfer
2012-12-10 20:48 ` Antti Palosaari
2012-12-11 20:51 ` Frank Schäfer
2012-12-11 20:59 ` Antti Palosaari
2012-12-12 21:25 ` Frank Schäfer
2012-12-12 21:34 ` Frank Schäfer
2012-12-13 15:09 ` Antti Palosaari
2012-12-13 16:02 ` Frank Schäfer
2012-12-13 20:23 ` Mauro Carvalho Chehab
2012-12-14 15:33 ` Frank Schäfer
2012-12-14 16:32 ` Antti Palosaari
2012-12-14 16:40 ` Antti Palosaari
2012-12-14 19:39 ` Mauro Carvalho Chehab [this message]
2012-12-15 0:26 ` Mauro Carvalho Chehab
2012-12-15 0:34 ` Mauro Carvalho Chehab
2012-12-15 0:56 ` Antti Palosaari
2012-12-15 1:03 ` Mauro Carvalho Chehab
2012-12-15 1:12 ` Antti Palosaari
2012-12-15 1:39 ` Mauro Carvalho Chehab
2012-12-15 1:54 ` Mauro Carvalho Chehab
2012-12-15 13:11 ` Frank Schäfer
2012-12-15 13:34 ` Mauro Carvalho Chehab
2012-12-15 13:38 ` Antti Palosaari
2012-12-15 16:21 ` Frank Schäfer
2012-12-15 16:51 ` Antti Palosaari
2012-12-16 18:15 ` Frank Schäfer
2012-12-17 1:09 ` Matthew Gyurgyik
2012-12-17 1:26 ` Antti Palosaari
2012-12-17 1:37 ` Matthew Gyurgyik
2012-12-17 9:33 ` Antti Palosaari
2012-12-17 11:08 ` Antti Palosaari
2012-12-17 11:17 ` Matthew Gyurgyik
2012-12-17 12:30 ` Antti Palosaari
2012-12-17 15:53 ` Mauro Carvalho Chehab
2012-12-17 16:14 ` Mauro Carvalho Chehab
2012-12-18 2:27 ` Matthew Gyurgyik
2012-12-18 3:08 ` Matthew Gyurgyik
2013-01-02 20:59 ` Antti Palosaari
2013-01-03 2:53 ` Matthew Gyurgyik
2013-01-20 14:40 ` Matthew Gyurgyik
2013-01-20 17:46 ` Antti Palosaari
2013-02-16 23:38 ` Matthew Gyurgyik
2013-02-24 22:23 ` Antti Palosaari
2013-02-25 1:58 ` Matthew Gyurgyik
2013-01-03 0:18 ` David Härdeman
2012-12-13 20:07 ` Mauro Carvalho Chehab
2012-12-13 20:36 ` Mauro Carvalho Chehab
2012-12-13 19:57 ` Mauro Carvalho Chehab
2012-12-13 20:04 ` Mauro Carvalho Chehab
2012-12-10 16:01 ` Matthew Gyurgyik
2012-12-06 2:32 ` Matthew Gyurgyik
2012-12-06 21:52 ` Frank Schäfer
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=20121214173950.79bb963e@redhat.com \
--to=mchehab@redhat.com \
--cc=crope@iki.fi \
--cc=david@hardeman.nu \
--cc=dheitmueller@kernellabs.com \
--cc=fschaefer.oss@googlemail.com \
--cc=linux-media@vger.kernel.org \
--cc=matthew@pyther.net \
/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).