linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Antti Palosaari <crope@iki.fi>
To: "Frank Schäfer" <fschaefer.oss@googlemail.com>
Cc: "Mauro Carvalho Chehab" <mchehab@redhat.com>,
	"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>,
	"Jarod Wilson" <jwilson@redhat.com>
Subject: Re: em28xx: msi Digivox ATSC board id [0db0:8810]
Date: Sat, 15 Dec 2012 18:51:48 +0200	[thread overview]
Message-ID: <50CCAAA4.4030808@iki.fi> (raw)
In-Reply-To: <50CCA39F.5000309@googlemail.com>

On 12/15/2012 06:21 PM, Frank Schäfer wrote:
> Am 15.12.2012 14:38, schrieb Antti Palosaari:
>> On 12/15/2012 03:11 PM, Frank Schäfer wrote:
>>> Am 15.12.2012 02:54, schrieb Mauro Carvalho Chehab:
>>>> Em Sat, 15 Dec 2012 02:56:25 +0200
>>>> Antti Palosaari <crope@iki.fi> escreveu:
>>>>
>>>>> On 12/15/2012 02:26 AM, Mauro Carvalho Chehab wrote:
>>>>>> Em Fri, 14 Dec 2012 17:39:50 -0200
>>>>>> Mauro Carvalho Chehab <mchehab@redhat.com> escreveu:

>>> Am 10.12.2012 17:00, schrieb Matthew Gyurgyik:
>>>>>> Here is the dmesg output:
>>>>>>
>>>>>>> [root@tux ~]# dmesg -t | sort | uniq | grep 'em28xx IR' | grep
>>>>>>> handle
>>>>>>> em28xx IR (em28xx #0)/ir: 6em28xx_ir_handle_key: toggle: 0,
>>>>>>> count: 1,
>>>>>>> key 0x61d6
>>>>>>> em28xx IR (em28xx #0)/ir: 6em28xx_ir_handle_key: toggle: 0,
>>>>>>> count: 2,
>>>>>>> key 0x61d6
>>>>>>> em28xx IR (em28xx #0)/ir: 6em28xx_ir_handle_key: toggle: 1,
>>>>>>> count: 1,
>>>>>>> key 0x61d6
>>>>>>> em28xx IR (em28xx #0)/ir: em28xx_ir_handle_key: toggle: 0, count: 1,
>>>>>>> key 0x61d6
>>>>>>> em28xx IR (em28xx #0)/ir: em28xx_ir_handle_key: toggle: 0, count: 2,
>>>>>>> key 0x61d6
>>>>>>> em28xx IR (em28xx #0)/ir: em28xx_ir_handle_key: toggle: 1, count: 1,
>>>>>>> key 0x61d6
>>>>>>> em28xx IR (em28xx #0)/ir: em28xx_ir_handle_key: toggle: 1, count: 2,
>>>>>>> key 0x61d6
>>>>>>
>>>>>> I pressed all the buttons on the remote (40 buttons).
>>>>>
>>>>> Did you cut the dmesg output ? Or do you really get these messages for
>>>>> key 0x61d6 only ?
>>>>
>>>> Correct, I only got the messages for key 0x61d6 regardless of which
>>>> physical button I press.
>>>
>>> So if Matthew didn't make any mistakes, the problem seems to be the read
>>> count handling...
>>
>> That is what happened and it is correct behavior as Matthews remote is
>> 24 bit NEC (and driver does not know how to handle it). If you look
>> again those raw dumps which I send previous mail you could see the
>> issue. 61d6 seen here is remote controller address, two first bits. It
>> outputs that because debug does not output rest 2 remaining bytes
>> where is actual key code. If you set em28xx to 32bit NEC mode then key
>> code for that remote set 61d6 by driver mistakenly as it does not know
>> there is 2 bytes more to handle.
>
> Antti, the problem with Matthews RC isn't the number of bytes printed to
> the log.
> The problems is, that NO messages appear in the log (with one exception).

What is that exception?

In that case there should be around 40 similar debug lines - as address 
byte is same for all buttons and debug prints only address byte, toggle 
and count. As toggle and count still outputs some numbers we will see 
that many line. Without toggle and count there is likely only one debug 
line seen as output is piped through uniq which drops similar lines.

>> I copy & pasted here relevant lines from the em28xx driver. Maybe you
>> could now see why code is wrong - why the extended address byte is set
>> as to scancode mistakenly. Look especially care following variables:
>> msg[1], msg[2], poll_result->rc_address and poll_result.rc_data[0]
>>
>> static int em2874_polling_getkey()
>> {
>> rc = dev->em28xx_read_reg_req_len(dev, 0, EM2874_R51_IR, msg,
>> sizeof(msg));
>>
>> /* Remote Control Address (Reg 0x52) */
>> poll_result->rc_address = msg[1];
>>
>> /* Remote Control Data (Reg 0x53-55) */
>> poll_result->rc_data[0] = msg[2];
>> poll_result->rc_data[1] = msg[3];
>> poll_result->rc_data[2] = msg[4];
>> }
>>
>
> You missed the relevant part of the code:
>
> static int em2874_polling_getkey()
> {
> ...
>      /* Infrared read count (Reg 0x51[6:0] */
>      poll_result->read_count = (msg[0] & 0x7f);
> ...
> }
>
>
>>
>>
>> static void em28xx_ir_handle_key()
>> {
>> dprintk("%s: toggle: %d, count: %d, key 0x%02x%02x\n", __func__,
>>      poll_result.toggle_bit, poll_result.read_count,
>>      poll_result.rc_address, poll_result.rc_data[0]);
>> }
>>
>
> Same here, you missed the if () statement:
>
> static void em28xx_ir_handle_key(struct em28xx_IR *ir)
> {
> ...
>      if (unlikely(poll_result.read_count != ir->last_readcount)) {
>          dprintk("%s: toggle: %d, count: %d, key 0x%02x%02x\n", __func__,
>              poll_result.toggle_bit, poll_result.read_count,
>              poll_result.rc_address, poll_result.rc_data[0]);
> ...
> }
>
>
> It doesn't matter which format the scancode (4 bytes) has, a message
> should be printed in any case.
> But according to Matthew, that doesn't happen. Hence, the
> poll_result.read_count != ir->last_readcount must be the problem.

I don't see which messages are missing.

I think read_count is not incremented in case NEC 16bit checksum fails - 
hw just discards whole code => read_count not increase => no debug. For 
my tests there was always 81/01 when key was pressed and 00 when no key 
pressed (as seen also logs I posted yesterday).

>> I am about 99% sure Mauro's patch works correctly for Matthews device.
>>
>
> If Matthew didn't make any mistakes, I can't see how these patches can
> make it work. Which doesn't mean that they don't make sense.
>
>
> Matthew, could you please validate your test results and try Mauros
> patches ?
> If it doesn't work, please create another USB-log.
>
>
>> Maybe you missed point hardware returns different format in case of
>> 32bit and 16bit values. If it is 16bit mode it return only 2 bytes and
>> if 32bit mode it returns 4 bytes?
>>
>
> No.
>
>
> Regards,
> Frank

regards
Antti

-- 
http://palosaari.fi/

  reply	other threads:[~2012-12-15 16:52 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
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 [this message]
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=50CCAAA4.4030808@iki.fi \
    --to=crope@iki.fi \
    --cc=david@hardeman.nu \
    --cc=dheitmueller@kernellabs.com \
    --cc=fschaefer.oss@googlemail.com \
    --cc=jwilson@redhat.com \
    --cc=linux-media@vger.kernel.org \
    --cc=matthew@pyther.net \
    --cc=mchehab@redhat.com \
    /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).