RC6 decoding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The current decoder for the RC6 IR protocol supports mode 0 (16 bit) and
mode 6A.  In mode 6A the decoder supports either 32-bit data (for
Microsoft's MCE RC) or 24 bit.

I would like to support a Sky/Sky+ standard RC which transmits RC6-6-20
i.e. 20 bit data.  The transmitted frame format is identical to the 24
bit form so I'm curious as to what remotes transmit 24 bit data or was
this an error and it should be 20?

RC6-6-20 is explained here:
http://www.guiott.com/wrc/RC6-6.html

If 24-bit mode is in use, is there a way to select between 20 and 24 bit
operation?

I made the following simple mod to ir-rc6-decoder.c and my Sky/Sky+ RCs
decode correctly (with a custom keytable):

--- a/drivers/media/rc/ir-rc6-decoder.c	2011-05-19 06:06:34.000000000 +0200
+++ b/drivers/media/rc/ir-rc6-decoder.c	2011-09-19 13:02:35.000000000 +0200
@@ -17,14 +17,14 @@
 /*
  * This decoder currently supports:
  * RC6-0-16	(standard toggle bit in header)
- * RC6-6A-24	(no toggle bit)
+ * RC6-6A-20	(no toggle bit)
  * RC6-6A-32	(MCE version with toggle bit in body)
  */
 
 #define RC6_UNIT		444444	/* us */
 #define RC6_HEADER_NBITS	4	/* not including toggle bit */
 #define RC6_0_NBITS		16
-#define RC6_6A_SMALL_NBITS	24
+#define RC6_6A_SMALL_NBITS	20
 #define RC6_6A_LARGE_NBITS	32
 #define RC6_PREFIX_PULSE	(6 * RC6_UNIT)
 #define RC6_PREFIX_SPACE	(2 * RC6_UNIT)
@@ -231,7 +231,7 @@ again:
 				scancode = data->body & ~RC6_6A_MCE_TOGGLE_MASK;
 			} else {
 				toggle = 0;
-				scancode = data->body & 0xffffff;
+				scancode = data->body;
 			}
 
 			IR_dprintk(1, "RC6(6A) scancode 0x%08x (toggle: %u)\n",


-- 
Lawrence Rust


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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux