aboutsummaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@brturbo.com.br>2005-11-08 21:37:32 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-09 07:56:18 -0800
commitd5e5265315770bda46c50ecaa64e2b9790f2064c (patch)
tree5c92fa1125dee3f766bd06f18840ce78bf0cd861 /include/media
parentda45a2a5b96afd7188c058a55eb2917d6524c0cf (diff)
downloadkernel_samsung_smdk4412-d5e5265315770bda46c50ecaa64e2b9790f2064c.zip
kernel_samsung_smdk4412-d5e5265315770bda46c50ecaa64e2b9790f2064c.tar.gz
kernel_samsung_smdk4412-d5e5265315770bda46c50ecaa64e2b9790f2064c.tar.bz2
[PATCH] v4l: 784: several improvement on i2c ir handling for em2820
- Several Improvement on I2C IR handling for em2820: - moved Pinnacle IR table (ir_codes_em2820) to em2820-input.c - IR struct renamed and moved to a header file. - New file to handle em2820-specific IR. - Some cleanups. - attach now detects I2C IR and calls em2820-specific IR code - IR compat code moved to compat.h - New header with struct IR_i2c there, to allow it to be used by board-specific input handlers. - Some improvements at em28xx board detection: - Board detection message improved to show interface and class. - Now it doesn't touch audio interfaces. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/media')
-rw-r--r--include/media/ir-common.h6
-rw-r--r--include/media/ir-kbd-i2c.h22
2 files changed, 27 insertions, 1 deletions
diff --git a/include/media/ir-common.h b/include/media/ir-common.h
index 01b5682..0f1ba95 100644
--- a/include/media/ir-common.h
+++ b/include/media/ir-common.h
@@ -20,8 +20,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include <linux/input.h>
+#ifndef _IR_COMMON
+#define _IR_COMMON
+#include <linux/input.h>
#define IR_TYPE_RC5 1
#define IR_TYPE_PD 2 /* Pulse distance encoded IR */
@@ -61,6 +63,8 @@ int ir_dump_samples(u32 *samples, int count);
int ir_decode_biphase(u32 *samples, int count, int low, int high);
int ir_decode_pulsedistance(u32 *samples, int count, int low, int high);
+#endif
+
/*
* Local variables:
* c-basic-offset: 8
diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h
new file mode 100644
index 0000000..00fa57e
--- /dev/null
+++ b/include/media/ir-kbd-i2c.h
@@ -0,0 +1,22 @@
+#ifndef _IR_I2C
+#define _IR_I2C
+
+#include <media/ir-common.h>
+
+struct IR_i2c;
+
+struct IR_i2c {
+ IR_KEYTAB_TYPE *ir_codes;
+ struct i2c_client c;
+ struct input_dev *input;
+ struct ir_input_state ir;
+
+ /* Used to avoid fast repeating */
+ unsigned char old;
+
+ struct work_struct work;
+ struct timer_list timer;
+ char phys[32];
+ int (*get_key)(struct IR_i2c*, u32*, u32*);
+};
+#endif