diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-11 06:34:07 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-15 21:18:42 -0500 |
commit | 446e4a64d2f6efddc63a47169ba3c8037b620307 (patch) | |
tree | 3b14d76f7e93d5b35de50edf85a9179f759adb3d /include | |
parent | e27d38112eb727df189a9ebf560aa104cb102253 (diff) |
V4L/DVB (13613): IR: create ir-core module
Split the ir-common into two separate modules:
- ir-core: it is the IR-independent functions;
- ir-common: has the common part used by V4L drivers.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/media/ir-common.h | 39 | ||||
-rw-r--r-- | include/media/ir-core.h | 57 |
2 files changed, 58 insertions, 38 deletions
diff --git a/include/media/ir-common.h b/include/media/ir-common.h index 45bf5cf59458..18d300414fa2 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h | |||
@@ -26,31 +26,7 @@ | |||
26 | #include <linux/input.h> | 26 | #include <linux/input.h> |
27 | #include <linux/workqueue.h> | 27 | #include <linux/workqueue.h> |
28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
29 | #include <linux/spinlock.h> | 29 | #include <media/ir-core.h> |
30 | |||
31 | extern int media_ir_debug; /* media_ir_debug level (0,1,2) */ | ||
32 | #define IR_dprintk(level, fmt, arg...) if (media_ir_debug >= level) \ | ||
33 | printk(KERN_DEBUG "%s: " fmt , __func__, ## arg) | ||
34 | |||
35 | enum ir_type { | ||
36 | IR_TYPE_UNKNOWN = 0, | ||
37 | IR_TYPE_RC5 = 1, | ||
38 | IR_TYPE_PD = 2, /* Pulse distance encoded IR */ | ||
39 | IR_TYPE_NEC = 3, | ||
40 | IR_TYPE_OTHER = 99, | ||
41 | }; | ||
42 | |||
43 | struct ir_scancode { | ||
44 | u16 scancode; | ||
45 | u32 keycode; | ||
46 | }; | ||
47 | |||
48 | struct ir_scancode_table { | ||
49 | struct ir_scancode *scan; | ||
50 | int size; | ||
51 | enum ir_type ir_type; | ||
52 | spinlock_t lock; | ||
53 | }; | ||
54 | 30 | ||
55 | #define RC5_START(x) (((x)>>12)&3) | 31 | #define RC5_START(x) (((x)>>12)&3) |
56 | #define RC5_TOGGLE(x) (((x)>>11)&1) | 32 | #define RC5_TOGGLE(x) (((x)>>11)&1) |
@@ -123,19 +99,6 @@ u32 ir_rc5_decode(unsigned int code); | |||
123 | void ir_rc5_timer_end(unsigned long data); | 99 | void ir_rc5_timer_end(unsigned long data); |
124 | void ir_rc5_timer_keyup(unsigned long data); | 100 | void ir_rc5_timer_keyup(unsigned long data); |
125 | 101 | ||
126 | /* Routines from ir-keytable.c */ | ||
127 | |||
128 | u32 ir_g_keycode_from_table(struct input_dev *input_dev, | ||
129 | u32 scancode); | ||
130 | |||
131 | int ir_set_keycode_table(struct input_dev *input_dev, | ||
132 | struct ir_scancode_table *rc_tab); | ||
133 | |||
134 | int ir_roundup_tablesize(int n_elems); | ||
135 | int ir_copy_table(struct ir_scancode_table *destin, | ||
136 | const struct ir_scancode_table *origin); | ||
137 | void ir_input_free(struct input_dev *input_dev); | ||
138 | |||
139 | /* scancode->keycode map tables from ir-keymaps.c */ | 102 | /* scancode->keycode map tables from ir-keymaps.c */ |
140 | 103 | ||
141 | extern struct ir_scancode_table ir_codes_empty_table; | 104 | extern struct ir_scancode_table ir_codes_empty_table; |
diff --git a/include/media/ir-core.h b/include/media/ir-core.h new file mode 100644 index 000000000000..825d04a4e77b --- /dev/null +++ b/include/media/ir-core.h | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * Remote Controller core header | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation version 2 of the License. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | #ifndef _IR_CORE | ||
15 | #define _IR_CORE | ||
16 | |||
17 | #include <linux/input.h> | ||
18 | #include <linux/spinlock.h> | ||
19 | |||
20 | extern int ir_core_debug; | ||
21 | #define IR_dprintk(level, fmt, arg...) if (ir_core_debug >= level) \ | ||
22 | printk(KERN_DEBUG "%s: " fmt , __func__, ## arg) | ||
23 | |||
24 | enum ir_type { | ||
25 | IR_TYPE_UNKNOWN = 0, | ||
26 | IR_TYPE_RC5 = 1, | ||
27 | IR_TYPE_PD = 2, /* Pulse distance encoded IR */ | ||
28 | IR_TYPE_NEC = 3, | ||
29 | IR_TYPE_OTHER = 99, | ||
30 | }; | ||
31 | |||
32 | struct ir_scancode { | ||
33 | u16 scancode; | ||
34 | u32 keycode; | ||
35 | }; | ||
36 | |||
37 | struct ir_scancode_table { | ||
38 | struct ir_scancode *scan; | ||
39 | int size; | ||
40 | enum ir_type ir_type; | ||
41 | spinlock_t lock; | ||
42 | }; | ||
43 | |||
44 | /* Routines from ir-keytable.c */ | ||
45 | |||
46 | u32 ir_g_keycode_from_table(struct input_dev *input_dev, | ||
47 | u32 scancode); | ||
48 | |||
49 | int ir_set_keycode_table(struct input_dev *input_dev, | ||
50 | struct ir_scancode_table *rc_tab); | ||
51 | |||
52 | int ir_roundup_tablesize(int n_elems); | ||
53 | int ir_copy_table(struct ir_scancode_table *destin, | ||
54 | const struct ir_scancode_table *origin); | ||
55 | void ir_input_free(struct input_dev *input_dev); | ||
56 | |||
57 | #endif | ||