diff options
Diffstat (limited to 'drivers/media/video/bttv-input.c')
-rw-r--r-- | drivers/media/video/bttv-input.c | 248 |
1 files changed, 2 insertions, 246 deletions
diff --git a/drivers/media/video/bttv-input.c b/drivers/media/video/bttv-input.c index 221b36e7f392..69efa0e5174d 100644 --- a/drivers/media/video/bttv-input.c +++ b/drivers/media/video/bttv-input.c | |||
@@ -28,251 +28,6 @@ | |||
28 | #include "bttv.h" | 28 | #include "bttv.h" |
29 | #include "bttvp.h" | 29 | #include "bttvp.h" |
30 | 30 | ||
31 | /* ---------------------------------------------------------------------- */ | ||
32 | |||
33 | static IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = { | ||
34 | [ 34 ] = KEY_KP0, | ||
35 | [ 40 ] = KEY_KP1, | ||
36 | [ 24 ] = KEY_KP2, | ||
37 | [ 56 ] = KEY_KP3, | ||
38 | [ 36 ] = KEY_KP4, | ||
39 | [ 20 ] = KEY_KP5, | ||
40 | [ 52 ] = KEY_KP6, | ||
41 | [ 44 ] = KEY_KP7, | ||
42 | [ 28 ] = KEY_KP8, | ||
43 | [ 60 ] = KEY_KP9, | ||
44 | |||
45 | [ 48 ] = KEY_EJECTCD, // Unmarked on my controller | ||
46 | [ 0 ] = KEY_POWER, | ||
47 | [ 18 ] = BTN_LEFT, // DISPLAY/L | ||
48 | [ 50 ] = BTN_RIGHT, // LOOP/R | ||
49 | [ 10 ] = KEY_MUTE, | ||
50 | [ 38 ] = KEY_RECORD, | ||
51 | [ 22 ] = KEY_PAUSE, | ||
52 | [ 54 ] = KEY_STOP, | ||
53 | [ 30 ] = KEY_VOLUMEDOWN, | ||
54 | [ 62 ] = KEY_VOLUMEUP, | ||
55 | |||
56 | [ 32 ] = KEY_TUNER, // TV/FM | ||
57 | [ 16 ] = KEY_CD, | ||
58 | [ 8 ] = KEY_VIDEO, | ||
59 | [ 4 ] = KEY_AUDIO, | ||
60 | [ 12 ] = KEY_ZOOM, // full screen | ||
61 | [ 2 ] = KEY_INFO, // preview | ||
62 | [ 42 ] = KEY_SEARCH, // autoscan | ||
63 | [ 26 ] = KEY_STOP, // freeze | ||
64 | [ 58 ] = KEY_RECORD, // capture | ||
65 | [ 6 ] = KEY_PLAY, // unmarked | ||
66 | [ 46 ] = KEY_RED, // unmarked | ||
67 | [ 14 ] = KEY_GREEN, // unmarked | ||
68 | |||
69 | [ 33 ] = KEY_YELLOW, // unmarked | ||
70 | [ 17 ] = KEY_CHANNELDOWN, | ||
71 | [ 49 ] = KEY_CHANNELUP, | ||
72 | [ 1 ] = KEY_BLUE, // unmarked | ||
73 | }; | ||
74 | |||
75 | /* Matt Jesson <dvb@jesson.eclipse.co.uk */ | ||
76 | static IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = { | ||
77 | [ 0x28 ] = KEY_KP0, //'0' / 'enter' | ||
78 | [ 0x22 ] = KEY_KP1, //'1' | ||
79 | [ 0x12 ] = KEY_KP2, //'2' / 'up arrow' | ||
80 | [ 0x32 ] = KEY_KP3, //'3' | ||
81 | [ 0x24 ] = KEY_KP4, //'4' / 'left arrow' | ||
82 | [ 0x14 ] = KEY_KP5, //'5' | ||
83 | [ 0x34 ] = KEY_KP6, //'6' / 'right arrow' | ||
84 | [ 0x26 ] = KEY_KP7, //'7' | ||
85 | [ 0x16 ] = KEY_KP8, //'8' / 'down arrow' | ||
86 | [ 0x36 ] = KEY_KP9, //'9' | ||
87 | |||
88 | [ 0x20 ] = KEY_LIST, // 'source' | ||
89 | [ 0x10 ] = KEY_TEXT, // 'teletext' | ||
90 | [ 0x00 ] = KEY_POWER, // 'power' | ||
91 | [ 0x04 ] = KEY_AUDIO, // 'audio' | ||
92 | [ 0x06 ] = KEY_ZOOM, // 'full screen' | ||
93 | [ 0x18 ] = KEY_VIDEO, // 'display' | ||
94 | [ 0x38 ] = KEY_SEARCH, // 'loop' | ||
95 | [ 0x08 ] = KEY_INFO, // 'preview' | ||
96 | [ 0x2a ] = KEY_REWIND, // 'backward <<' | ||
97 | [ 0x1a ] = KEY_FASTFORWARD, // 'forward >>' | ||
98 | [ 0x3a ] = KEY_RECORD, // 'capture' | ||
99 | [ 0x0a ] = KEY_MUTE, // 'mute' | ||
100 | [ 0x2c ] = KEY_RECORD, // 'record' | ||
101 | [ 0x1c ] = KEY_PAUSE, // 'pause' | ||
102 | [ 0x3c ] = KEY_STOP, // 'stop' | ||
103 | [ 0x0c ] = KEY_PLAY, // 'play' | ||
104 | [ 0x2e ] = KEY_RED, // 'red' | ||
105 | [ 0x01 ] = KEY_BLUE, // 'blue' / 'cancel' | ||
106 | [ 0x0e ] = KEY_YELLOW, // 'yellow' / 'ok' | ||
107 | [ 0x21 ] = KEY_GREEN, // 'green' | ||
108 | [ 0x11 ] = KEY_CHANNELDOWN, // 'channel -' | ||
109 | [ 0x31 ] = KEY_CHANNELUP, // 'channel +' | ||
110 | [ 0x1e ] = KEY_VOLUMEDOWN, // 'volume -' | ||
111 | [ 0x3e ] = KEY_VOLUMEUP, // 'volume +' | ||
112 | }; | ||
113 | |||
114 | /* Attila Kondoros <attila.kondoros@chello.hu> */ | ||
115 | static IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = { | ||
116 | |||
117 | [ 1 ] = KEY_KP1, | ||
118 | [ 2 ] = KEY_KP2, | ||
119 | [ 3 ] = KEY_KP3, | ||
120 | [ 4 ] = KEY_KP4, | ||
121 | [ 5 ] = KEY_KP5, | ||
122 | [ 6 ] = KEY_KP6, | ||
123 | [ 7 ] = KEY_KP7, | ||
124 | [ 8 ] = KEY_KP8, | ||
125 | [ 9 ] = KEY_KP9, | ||
126 | [ 0 ] = KEY_KP0, | ||
127 | [ 23 ] = KEY_LAST, // +100 | ||
128 | [ 10 ] = KEY_LIST, // recall | ||
129 | |||
130 | |||
131 | [ 28 ] = KEY_TUNER, // TV/FM | ||
132 | [ 21 ] = KEY_SEARCH, // scan | ||
133 | [ 18 ] = KEY_POWER, // power | ||
134 | [ 31 ] = KEY_VOLUMEDOWN, // vol up | ||
135 | [ 27 ] = KEY_VOLUMEUP, // vol down | ||
136 | [ 30 ] = KEY_CHANNELDOWN, // chn up | ||
137 | [ 26 ] = KEY_CHANNELUP, // chn down | ||
138 | |||
139 | [ 17 ] = KEY_VIDEO, // video | ||
140 | [ 15 ] = KEY_ZOOM, // full screen | ||
141 | [ 19 ] = KEY_MUTE, // mute/unmute | ||
142 | [ 16 ] = KEY_TEXT, // min | ||
143 | |||
144 | [ 13 ] = KEY_STOP, // freeze | ||
145 | [ 14 ] = KEY_RECORD, // record | ||
146 | [ 29 ] = KEY_PLAYPAUSE, // stop | ||
147 | [ 25 ] = KEY_PLAY, // play | ||
148 | |||
149 | [ 22 ] = KEY_GOTO, // osd | ||
150 | [ 20 ] = KEY_REFRESH, // default | ||
151 | [ 12 ] = KEY_KPPLUS, // fine tune >>>> | ||
152 | [ 24 ] = KEY_KPMINUS // fine tune <<<< | ||
153 | }; | ||
154 | |||
155 | /* ---------------------------------------------------------------------- */ | ||
156 | |||
157 | static IR_KEYTAB_TYPE ir_codes_conceptronic[IR_KEYTAB_SIZE] = { | ||
158 | |||
159 | [ 30 ] = KEY_POWER, // power | ||
160 | [ 7 ] = KEY_MEDIA, // source | ||
161 | [ 28 ] = KEY_SEARCH, // scan | ||
162 | |||
163 | /* FIXME: duplicate keycodes? | ||
164 | * | ||
165 | * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>> | ||
166 | * The GPIO values are | ||
167 | * 6397fb for both "Scan <" and "CH -", | ||
168 | * 639ffb for "Scan >" and "CH+", | ||
169 | * 6384fb for "Tune <" and "<<<", | ||
170 | * 638cfb for "Tune >" and ">>>", regardless of the mask. | ||
171 | * | ||
172 | * [ 23 ] = KEY_BACK, // fm scan << | ||
173 | * [ 31 ] = KEY_FORWARD, // fm scan >> | ||
174 | * | ||
175 | * [ 4 ] = KEY_LEFT, // fm tuning < | ||
176 | * [ 12 ] = KEY_RIGHT, // fm tuning > | ||
177 | * | ||
178 | * For now, these four keys are disabled. Pressing them will generate | ||
179 | * the CH+/CH-/<<</>>> events | ||
180 | */ | ||
181 | |||
182 | [ 3 ] = KEY_TUNER, // TV/FM | ||
183 | |||
184 | [ 0 ] = KEY_RECORD, | ||
185 | [ 8 ] = KEY_STOP, | ||
186 | [ 17 ] = KEY_PLAY, | ||
187 | |||
188 | [ 26 ] = KEY_PLAYPAUSE, // freeze | ||
189 | [ 25 ] = KEY_ZOOM, // zoom | ||
190 | [ 15 ] = KEY_TEXT, // min | ||
191 | |||
192 | [ 1 ] = KEY_KP1, | ||
193 | [ 11 ] = KEY_KP2, | ||
194 | [ 27 ] = KEY_KP3, | ||
195 | [ 5 ] = KEY_KP4, | ||
196 | [ 9 ] = KEY_KP5, | ||
197 | [ 21 ] = KEY_KP6, | ||
198 | [ 6 ] = KEY_KP7, | ||
199 | [ 10 ] = KEY_KP8, | ||
200 | [ 18 ] = KEY_KP9, | ||
201 | [ 2 ] = KEY_KP0, | ||
202 | [ 16 ] = KEY_LAST, // +100 | ||
203 | [ 19 ] = KEY_LIST, // recall | ||
204 | |||
205 | [ 31 ] = KEY_CHANNELUP, // chn down | ||
206 | [ 23 ] = KEY_CHANNELDOWN, // chn up | ||
207 | [ 22 ] = KEY_VOLUMEUP, // vol down | ||
208 | [ 20 ] = KEY_VOLUMEDOWN, // vol up | ||
209 | |||
210 | [ 4 ] = KEY_KPMINUS, // <<< | ||
211 | [ 14 ] = KEY_SETUP, // function | ||
212 | [ 12 ] = KEY_KPPLUS, // >>> | ||
213 | |||
214 | [ 13 ] = KEY_GOTO, // mts | ||
215 | [ 29 ] = KEY_REFRESH, // reset | ||
216 | [ 24 ] = KEY_MUTE // mute/unmute | ||
217 | }; | ||
218 | |||
219 | static IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = { | ||
220 | [0x00] = KEY_KP0, | ||
221 | [0x01] = KEY_KP1, | ||
222 | [0x02] = KEY_KP2, | ||
223 | [0x03] = KEY_KP3, | ||
224 | [0x04] = KEY_KP4, | ||
225 | [0x05] = KEY_KP5, | ||
226 | [0x06] = KEY_KP6, | ||
227 | [0x07] = KEY_KP7, | ||
228 | [0x08] = KEY_KP8, | ||
229 | [0x09] = KEY_KP9, | ||
230 | [0x0a] = KEY_TV, | ||
231 | [0x0b] = KEY_AUX, | ||
232 | [0x0c] = KEY_DVD, | ||
233 | [0x0d] = KEY_POWER, | ||
234 | [0x0e] = KEY_MHP, /* labelled 'Picture' */ | ||
235 | [0x0f] = KEY_AUDIO, | ||
236 | [0x10] = KEY_INFO, | ||
237 | [0x11] = KEY_F13, /* 16:9 */ | ||
238 | [0x12] = KEY_F14, /* 14:9 */ | ||
239 | [0x13] = KEY_EPG, | ||
240 | [0x14] = KEY_EXIT, | ||
241 | [0x15] = KEY_MENU, | ||
242 | [0x16] = KEY_UP, | ||
243 | [0x17] = KEY_DOWN, | ||
244 | [0x18] = KEY_LEFT, | ||
245 | [0x19] = KEY_RIGHT, | ||
246 | [0x1a] = KEY_ENTER, | ||
247 | [0x1b] = KEY_CHANNELUP, | ||
248 | [0x1c] = KEY_CHANNELDOWN, | ||
249 | [0x1d] = KEY_VOLUMEUP, | ||
250 | [0x1e] = KEY_VOLUMEDOWN, | ||
251 | [0x1f] = KEY_RED, | ||
252 | [0x20] = KEY_GREEN, | ||
253 | [0x21] = KEY_YELLOW, | ||
254 | [0x22] = KEY_BLUE, | ||
255 | [0x23] = KEY_SUBTITLE, | ||
256 | [0x24] = KEY_F15, /* AD */ | ||
257 | [0x25] = KEY_TEXT, | ||
258 | [0x26] = KEY_MUTE, | ||
259 | [0x27] = KEY_REWIND, | ||
260 | [0x28] = KEY_STOP, | ||
261 | [0x29] = KEY_PLAY, | ||
262 | [0x2a] = KEY_FASTFORWARD, | ||
263 | [0x2b] = KEY_F16, /* chapter */ | ||
264 | [0x2c] = KEY_PAUSE, | ||
265 | [0x2d] = KEY_PLAY, | ||
266 | [0x2e] = KEY_RECORD, | ||
267 | [0x2f] = KEY_F17, /* picture in picture */ | ||
268 | [0x30] = KEY_KPPLUS, /* zoom in */ | ||
269 | [0x31] = KEY_KPMINUS, /* zoom out */ | ||
270 | [0x32] = KEY_F18, /* capture */ | ||
271 | [0x33] = KEY_F19, /* web */ | ||
272 | [0x34] = KEY_EMAIL, | ||
273 | [0x35] = KEY_PHONE, | ||
274 | [0x36] = KEY_PC | ||
275 | }; | ||
276 | 31 | ||
277 | static int debug; | 32 | static int debug; |
278 | module_param(debug, int, 0644); /* debug level (0,1,2) */ | 33 | module_param(debug, int, 0644); /* debug level (0,1,2) */ |
@@ -573,7 +328,8 @@ int bttv_input_init(struct bttv *btv) | |||
573 | ir->polling = 50; // ms | 328 | ir->polling = 50; // ms |
574 | break; | 329 | break; |
575 | case BTTV_BOARD_CONCEPTRONIC_CTVFMI2: | 330 | case BTTV_BOARD_CONCEPTRONIC_CTVFMI2: |
576 | ir_codes = ir_codes_conceptronic; | 331 | case BTTV_BOARD_CONTVFMI: |
332 | ir_codes = ir_codes_pixelview; | ||
577 | ir->mask_keycode = 0x001F00; | 333 | ir->mask_keycode = 0x001F00; |
578 | ir->mask_keyup = 0x006000; | 334 | ir->mask_keyup = 0x006000; |
579 | ir->polling = 50; // ms | 335 | ir->polling = 50; // ms |