[mythtv-users] 1212 and channel changing

Jarod Wilson jarod at wilsonet.com
Mon Aug 31 14:15:33 UTC 2009


On Aug 31, 2009, at 2:15 AM, Jarod Wilson wrote:
...
> Finally got around to some in-depth lirc_zilog hacking tonight, I've
> now got the following spit out:
>
> $ irw
> 000000000000178f 00 Mute Hauppauge_350
> 000000000000178f 01 Mute Hauppauge_350
> 0000000000001792 00 Prev.Ch Hauppauge_350
> 0000000000001792 01 Prev.Ch Hauppauge_350
> 0000000000001792 02 Prev.Ch Hauppauge_350
> 00000000000017b0 00 Pause Hauppauge_350
> 00000000000017b0 01 Pause Hauppauge_350
> 00000000000017b0 02 Pause Hauppauge_350
> 00000000000017b5 00 Play Hauppauge_350
> 00000000000017b5 01 Play Hauppauge_350
>
> In other words, its behaving as expected. Its a kludgy fix though, and
> one likely to break lirc_zilog with other devices, possibly...
>
> The root problem is that there's a check in add_to_buf() that isn't
> ever triggering (if ((ir->b[0] & 0x80) == 0)), so we're looping a good
> long time, until we fill the entire buffer -- which fills after 8
> iterations. My hack is to simply return if (got_data), after sending  
> it
> out to userspace.

I now suspect that its likely that lirc_zilog needs treatment similar  
to lirc_i2c, where there are slightly different buffer handling  
routines for different devices. I'm guessing there's actually relevant  
data (like, say, the toggle bit) we need to look at elsewhere inside  
the keybuf prior to index 3. I think I should be able to get IR  
receive working reliably tonight w/o causing problems for other  
devices, and it appears blasting may already be solved over in the  
sagetv forums... (thank you to multiple people for pointing out the  
link to that discussion).

-- 
Jarod Wilson
jarod at wilsonet.com





More information about the mythtv-users mailing list