I demand that Simon Baxter may or may not have written... > I'm trying to get some more granluarity on the IR codes produced by my > remote and WinTV Nova-T card. [snip] > Darren's patch [...] I think was written for an A415 remote, The budget-ci patches assume an R808; the cx88 patch assumes an A415. > but this patch stops any codes appearing while monitoring 'input-events 2'. > My remote is a Grey R808-HPG-S 0604 002568. Hmm... I think that only "R808" is significant. (34-button? Numbers at top? Colour buttons arranged around the arrow keys?) > My c programming is very poor. What does the command 'ir->sampling = > (0x1E<<6) | 1' do?? Is 'ir->sampling' a variable? (can you have '-' & > '>' in a variable????) ir is a pointer to a structure. "->" is needed to access the structure content through the pointer. > If so, and his A415 remote generates 0x16 to 0x1E (if this is what this > means), how do I find out what my remote sends? No. It's (address << 6) | 1; though since the address is 0x1E and not 0, the "| 1" isn't needed. > Also, what does 'ir->release = jiffies + msecs_to_jiffies(120)' do? The calculation is of a timeout, 120ms from the current time. What you seem to want is this: # echo 1 >/sys/module/cx88xx/parameters/ir_debug Now press a key on your remote control - let's say the power button. For my two remote controls (R808 and A415, in that order): # dmesg | grep biphase cx88[0] IR: biphase decoded: 3ffd cx88[0] IR: biphase decoded: 3fbd (Don't worry if you see 37fd or 37bd. That's normal; bit 11 is toggled by the remote control on each new key press. Bits 12 to 15 are fixed; bits 0 to 5 are the key code.) Plugging the numbers into ((value >> 6) & 0x1F), we get 0x1F and 0x1E. Once done, don't forget # echo 0 >/sys/module/cx88xx/parameters/ir_debug unless you like spamming the kernel message buffer ;-) If I'm right about this then, for your remote control: * either: - replace that 0x1E with 0x1F, so you end up with (0x1F<<6) | 1 - replace the 0x1F which is added in the last hunk of my patch with 0x1E, which will allow addresses 0x1E and 0x1F; you end up with ((ircode ^ ir->sampling) & (0x1E << 6))) * recompile, reinstall, reload. Or you could suffer from interference from the TV remote control: # echo 1 >/sys/module/cx88xx/parameters/ir_any_address I'm thinking that maybe we need to add some parameters with suitable common-case defaults (given here for Nova-T, assuming A415): ir_address_width (5) ir_address_shift (6) ir_address_value (0x1E) ir_keypress_bit (11) Except that these should be per-device, not per-module - array, perhaps? [snip] -- | Darren Salt | linux or ds at | nr. Ashington, | Toon | RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army | Say NO to UK ID cards. http://www.no2id.net/ It is impossible to make anything foolproof because fools are so ingenious. _______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb