[git:v4l-dvb/v2.6.36] V4L/DVB: staging/lirc: port lirc_streamzap to ir-core

2010-09-27 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media-tree.git tree:

Subject: V4L/DVB: staging/lirc: port lirc_streamzap to ir-core
Author:  Jarod Wilson ja...@redhat.com
Date:Tue Aug 3 01:07:04 2010 -0300

This ports lirc_streamzap.c over to ir-core in-place, to be followed by
a patch moving the driver over to drivers/media/IR/streamzap.c and
enabling the proper Kconfig bits.

Presently, the in-kernel keymap doesn't work, as the stock Streamzap
remote uses an RC-5-like, but not-quite-RC-5 protocol, which the
in-kernel RC-5 decoder doesn't cope with. The remote can be used right
now with the lirc bridge driver though, and other remotes (at least an
RC-6(A) MCE remote) work perfectly with the driver.

I'll take a look at making the existing RC-5 decoder cope with this odd
duck, possibly implement another standalone decoder engine, or just
throw up my hands and say meh, use lirc... But the driver itself
should be perfectly sound.

Remaining items on the streamzap TODO list:
- add LIRC_SET_REC_TIMEOUT-alike support
- add LIRC_GET_M{AX,IN}_TIMEOUT-alike support
- add LIRC_GET_REC_RESOLUTION-alike support

All of the above should be trivial to add. There are patches pending to
add this support to ir-core from Maxim Levitsky, and I'll take care of
these once his patches get integrated. None of them are currently
essential though.

Signed-off-by: Jarod Wilson ja...@redhat.com
Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com

 drivers/media/IR/keymaps/Makefile   |1 +
 drivers/media/IR/keymaps/rc-rc5-streamzap.c |   81 +++
 drivers/staging/lirc/lirc_streamzap.c   |  812 ---
 include/media/rc-map.h  |1 +
 4 files changed, 449 insertions(+), 446 deletions(-)

---

http://git.linuxtv.org/media-tree.git?a=commitdiff;h=8e9e60640067858e8036d4d43bbf725c60613359

diff --git a/drivers/media/IR/keymaps/Makefile 
b/drivers/media/IR/keymaps/Makefile
index cbee062..c9fcc41 100644
--- a/drivers/media/IR/keymaps/Makefile
+++ b/drivers/media/IR/keymaps/Makefile
@@ -59,6 +59,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
rc-purpletv.o \
rc-pv951.o \
rc-rc5-hauppauge-new.o \
+   rc-rc5-streamzap.o \
rc-rc5-tv.o \
rc-rc6-mce.o \
rc-real-audio-220-32-keys.o \
diff --git a/drivers/media/IR/keymaps/rc-rc5-streamzap.c 
b/drivers/media/IR/keymaps/rc-rc5-streamzap.c
new file mode 100644
index 000..4c19c58
--- /dev/null
+++ b/drivers/media/IR/keymaps/rc-rc5-streamzap.c
@@ -0,0 +1,81 @@
+/* rc-rc5-streamzap.c - Keytable for Streamzap PC Remote, for use
+ * with the Streamzap PC Remote IR Receiver.
+ *
+ * Copyright (c) 2010 by Jarod Wilson ja...@redhat.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include media/rc-map.h
+
+static struct ir_scancode rc5_streamzap[] = {
+/*
+ * FIXME: The Streamzap remote isn't actually true RC-5, it has an extra
+ * bit in it, which presently throws the in-kernel RC-5 decoder for a loop.
+ * We either have to enhance the decoder to support it, add a new decoder,
+ * or just rely on lirc userspace decoding.
+ */
+   { 0x00, KEY_NUMERIC_0 },
+   { 0x01, KEY_NUMERIC_1 },
+   { 0x02, KEY_NUMERIC_2 },
+   { 0x03, KEY_NUMERIC_3 },
+   { 0x04, KEY_NUMERIC_4 },
+   { 0x05, KEY_NUMERIC_5 },
+   { 0x06, KEY_NUMERIC_6 },
+   { 0x07, KEY_NUMERIC_7 },
+   { 0x08, KEY_NUMERIC_8 },
+   { 0x0a, KEY_POWER },
+   { 0x0b, KEY_MUTE },
+   { 0x0c, KEY_CHANNELUP },
+   { 0x0d, KEY_VOLUMEUP },
+   { 0x0e, KEY_CHANNELDOWN },
+   { 0x0f, KEY_VOLUMEDOWN },
+   { 0x10, KEY_UP },
+   { 0x11, KEY_LEFT },
+   { 0x12, KEY_OK },
+   { 0x13, KEY_RIGHT },
+   { 0x14, KEY_DOWN },
+   { 0x15, KEY_MENU },
+   { 0x16, KEY_EXIT },
+   { 0x17, KEY_PLAY },
+   { 0x18, KEY_PAUSE },
+   { 0x19, KEY_STOP },
+   { 0x1a, KEY_BACK },
+   { 0x1b, KEY_FORWARD },
+   { 0x1c, KEY_RECORD },
+   { 0x1d, KEY_REWIND },
+   { 0x1e, KEY_FASTFORWARD },
+   { 0x20, KEY_RED },
+   { 0x21, KEY_GREEN },
+   { 0x22, KEY_YELLOW },
+   { 0x23, KEY_BLUE },
+
+};
+
+static struct rc_keymap rc5_streamzap_map = {
+   .map = {
+   .scan= rc5_streamzap,
+   .size= ARRAY_SIZE(rc5_streamzap),
+   .ir_type = IR_TYPE_RC5,
+   .name= RC_MAP_RC5_STREAMZAP,
+   }
+};
+
+static int __init init_rc_map_rc5_streamzap(void)
+{
+   return ir_register_map(rc5_streamzap_map);
+}
+
+static void __exit exit_rc_map_rc5_streamzap(void)
+{
+   

[git:v4l-dvb/v2.6.36] V4L/DVB: staging/lirc: port lirc_streamzap to ir-core

2010-08-05 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media-tree.git tree:

Subject: V4L/DVB: staging/lirc: port lirc_streamzap to ir-core
Author:  Jarod Wilson ja...@redhat.com
Date:Tue Aug 3 01:07:04 2010 -0300

This ports lirc_streamzap.c over to ir-core in-place, to be followed by
a patch moving the driver over to drivers/media/IR/streamzap.c and
enabling the proper Kconfig bits.

Presently, the in-kernel keymap doesn't work, as the stock Streamzap
remote uses an RC-5-like, but not-quite-RC-5 protocol, which the
in-kernel RC-5 decoder doesn't cope with. The remote can be used right
now with the lirc bridge driver though, and other remotes (at least an
RC-6(A) MCE remote) work perfectly with the driver.

I'll take a look at making the existing RC-5 decoder cope with this odd
duck, possibly implement another standalone decoder engine, or just
throw up my hands and say meh, use lirc... But the driver itself
should be perfectly sound.

Remaining items on the streamzap TODO list:
- add LIRC_SET_REC_TIMEOUT-alike support
- add LIRC_GET_M{AX,IN}_TIMEOUT-alike support
- add LIRC_GET_REC_RESOLUTION-alike support

All of the above should be trivial to add. There are patches pending to
add this support to ir-core from Maxim Levitsky, and I'll take care of
these once his patches get integrated. None of them are currently
essential though.

Signed-off-by: Jarod Wilson ja...@redhat.com
Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com

 drivers/media/IR/keymaps/Makefile   |1 +
 drivers/media/IR/keymaps/rc-rc5-streamzap.c |   81 +++
 drivers/staging/lirc/lirc_streamzap.c   |  812 ---
 include/media/rc-map.h  |1 +
 4 files changed, 449 insertions(+), 446 deletions(-)

---

http://git.linuxtv.org/media-tree.git?a=commitdiff;h=d66db630b9df5f4489ffb972962ea842971199e1

diff --git a/drivers/media/IR/keymaps/Makefile 
b/drivers/media/IR/keymaps/Makefile
index cbee062..c9fcc41 100644
--- a/drivers/media/IR/keymaps/Makefile
+++ b/drivers/media/IR/keymaps/Makefile
@@ -59,6 +59,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
rc-purpletv.o \
rc-pv951.o \
rc-rc5-hauppauge-new.o \
+   rc-rc5-streamzap.o \
rc-rc5-tv.o \
rc-rc6-mce.o \
rc-real-audio-220-32-keys.o \
diff --git a/drivers/media/IR/keymaps/rc-rc5-streamzap.c 
b/drivers/media/IR/keymaps/rc-rc5-streamzap.c
new file mode 100644
index 000..4c19c58
--- /dev/null
+++ b/drivers/media/IR/keymaps/rc-rc5-streamzap.c
@@ -0,0 +1,81 @@
+/* rc-rc5-streamzap.c - Keytable for Streamzap PC Remote, for use
+ * with the Streamzap PC Remote IR Receiver.
+ *
+ * Copyright (c) 2010 by Jarod Wilson ja...@redhat.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include media/rc-map.h
+
+static struct ir_scancode rc5_streamzap[] = {
+/*
+ * FIXME: The Streamzap remote isn't actually true RC-5, it has an extra
+ * bit in it, which presently throws the in-kernel RC-5 decoder for a loop.
+ * We either have to enhance the decoder to support it, add a new decoder,
+ * or just rely on lirc userspace decoding.
+ */
+   { 0x00, KEY_NUMERIC_0 },
+   { 0x01, KEY_NUMERIC_1 },
+   { 0x02, KEY_NUMERIC_2 },
+   { 0x03, KEY_NUMERIC_3 },
+   { 0x04, KEY_NUMERIC_4 },
+   { 0x05, KEY_NUMERIC_5 },
+   { 0x06, KEY_NUMERIC_6 },
+   { 0x07, KEY_NUMERIC_7 },
+   { 0x08, KEY_NUMERIC_8 },
+   { 0x0a, KEY_POWER },
+   { 0x0b, KEY_MUTE },
+   { 0x0c, KEY_CHANNELUP },
+   { 0x0d, KEY_VOLUMEUP },
+   { 0x0e, KEY_CHANNELDOWN },
+   { 0x0f, KEY_VOLUMEDOWN },
+   { 0x10, KEY_UP },
+   { 0x11, KEY_LEFT },
+   { 0x12, KEY_OK },
+   { 0x13, KEY_RIGHT },
+   { 0x14, KEY_DOWN },
+   { 0x15, KEY_MENU },
+   { 0x16, KEY_EXIT },
+   { 0x17, KEY_PLAY },
+   { 0x18, KEY_PAUSE },
+   { 0x19, KEY_STOP },
+   { 0x1a, KEY_BACK },
+   { 0x1b, KEY_FORWARD },
+   { 0x1c, KEY_RECORD },
+   { 0x1d, KEY_REWIND },
+   { 0x1e, KEY_FASTFORWARD },
+   { 0x20, KEY_RED },
+   { 0x21, KEY_GREEN },
+   { 0x22, KEY_YELLOW },
+   { 0x23, KEY_BLUE },
+
+};
+
+static struct rc_keymap rc5_streamzap_map = {
+   .map = {
+   .scan= rc5_streamzap,
+   .size= ARRAY_SIZE(rc5_streamzap),
+   .ir_type = IR_TYPE_RC5,
+   .name= RC_MAP_RC5_STREAMZAP,
+   }
+};
+
+static int __init init_rc_map_rc5_streamzap(void)
+{
+   return ir_register_map(rc5_streamzap_map);
+}
+
+static void __exit exit_rc_map_rc5_streamzap(void)
+{
+