Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[sfrench/cifs-2.6.git] / drivers / media / video / bttv-input.c
index 221b36e7f3922d0cac81da1ae06490a2a0d50cb3..69efa0e5174d58ffb113d97479f8b82180490b65 100644 (file)
 #include "bttv.h"
 #include "bttvp.h"
 
-/* ---------------------------------------------------------------------- */
-
-static IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = {
-       [ 34 ] = KEY_KP0,
-       [ 40 ] = KEY_KP1,
-       [ 24 ] = KEY_KP2,
-       [ 56 ] = KEY_KP3,
-       [ 36 ] = KEY_KP4,
-       [ 20 ] = KEY_KP5,
-       [ 52 ] = KEY_KP6,
-       [ 44 ] = KEY_KP7,
-       [ 28 ] = KEY_KP8,
-       [ 60 ] = KEY_KP9,
-
-       [ 48 ] = KEY_EJECTCD,     // Unmarked on my controller
-       [  0 ] = KEY_POWER,
-       [ 18 ] = BTN_LEFT,        // DISPLAY/L
-       [ 50 ] = BTN_RIGHT,       // LOOP/R
-       [ 10 ] = KEY_MUTE,
-       [ 38 ] = KEY_RECORD,
-       [ 22 ] = KEY_PAUSE,
-       [ 54 ] = KEY_STOP,
-       [ 30 ] = KEY_VOLUMEDOWN,
-       [ 62 ] = KEY_VOLUMEUP,
-
-       [ 32 ] = KEY_TUNER,       // TV/FM
-       [ 16 ] = KEY_CD,
-       [  8 ] = KEY_VIDEO,
-       [  4 ] = KEY_AUDIO,
-       [ 12 ] = KEY_ZOOM,        // full screen
-       [  2 ] = KEY_INFO,        // preview
-       [ 42 ] = KEY_SEARCH,      // autoscan
-       [ 26 ] = KEY_STOP,        // freeze
-       [ 58 ] = KEY_RECORD,      // capture
-       [  6 ] = KEY_PLAY,        // unmarked
-       [ 46 ] = KEY_RED,         // unmarked
-       [ 14 ] = KEY_GREEN,       // unmarked
-
-       [ 33 ] = KEY_YELLOW,      // unmarked
-       [ 17 ] = KEY_CHANNELDOWN,
-       [ 49 ] = KEY_CHANNELUP,
-       [  1 ] = KEY_BLUE,        // unmarked
-};
-
-/* Matt Jesson <dvb@jesson.eclipse.co.uk */
-static IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
-       [ 0x28 ] = KEY_KP0,         //'0' / 'enter'
-       [ 0x22 ] = KEY_KP1,         //'1'
-       [ 0x12 ] = KEY_KP2,         //'2' / 'up arrow'
-       [ 0x32 ] = KEY_KP3,         //'3'
-       [ 0x24 ] = KEY_KP4,         //'4' / 'left arrow'
-       [ 0x14 ] = KEY_KP5,         //'5'
-       [ 0x34 ] = KEY_KP6,         //'6' / 'right arrow'
-       [ 0x26 ] = KEY_KP7,         //'7'
-       [ 0x16 ] = KEY_KP8,         //'8' / 'down arrow'
-       [ 0x36 ] = KEY_KP9,         //'9'
-
-       [ 0x20 ] = KEY_LIST,        // 'source'
-       [ 0x10 ] = KEY_TEXT,        // 'teletext'
-       [ 0x00 ] = KEY_POWER,       // 'power'
-       [ 0x04 ] = KEY_AUDIO,       // 'audio'
-       [ 0x06 ] = KEY_ZOOM,        // 'full screen'
-       [ 0x18 ] = KEY_VIDEO,       // 'display'
-       [ 0x38 ] = KEY_SEARCH,      // 'loop'
-       [ 0x08 ] = KEY_INFO,        // 'preview'
-       [ 0x2a ] = KEY_REWIND,      // 'backward <<'
-       [ 0x1a ] = KEY_FASTFORWARD, // 'forward >>'
-       [ 0x3a ] = KEY_RECORD,      // 'capture'
-       [ 0x0a ] = KEY_MUTE,        // 'mute'
-       [ 0x2c ] = KEY_RECORD,      // 'record'
-       [ 0x1c ] = KEY_PAUSE,       // 'pause'
-       [ 0x3c ] = KEY_STOP,        // 'stop'
-       [ 0x0c ] = KEY_PLAY,        // 'play'
-       [ 0x2e ] = KEY_RED,         // 'red'
-       [ 0x01 ] = KEY_BLUE,        // 'blue' / 'cancel'
-       [ 0x0e ] = KEY_YELLOW,      // 'yellow' / 'ok'
-       [ 0x21 ] = KEY_GREEN,       // 'green'
-       [ 0x11 ] = KEY_CHANNELDOWN, // 'channel -'
-       [ 0x31 ] = KEY_CHANNELUP,   // 'channel +'
-       [ 0x1e ] = KEY_VOLUMEDOWN,  // 'volume -'
-       [ 0x3e ] = KEY_VOLUMEUP,    // 'volume +'
-};
-
-/* Attila Kondoros <attila.kondoros@chello.hu> */
-static IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {
-
-       [  1 ] = KEY_KP1,
-       [  2 ] = KEY_KP2,
-       [  3 ] = KEY_KP3,
-       [  4 ] = KEY_KP4,
-       [  5 ] = KEY_KP5,
-       [  6 ] = KEY_KP6,
-       [  7 ] = KEY_KP7,
-       [  8 ] = KEY_KP8,
-       [  9 ] = KEY_KP9,
-       [  0 ] = KEY_KP0,
-       [ 23 ] = KEY_LAST,        // +100
-       [ 10 ] = KEY_LIST,        // recall
-
-
-       [ 28 ] = KEY_TUNER,       // TV/FM
-       [ 21 ] = KEY_SEARCH,      // scan
-       [ 18 ] = KEY_POWER,       // power
-       [ 31 ] = KEY_VOLUMEDOWN,  // vol up
-       [ 27 ] = KEY_VOLUMEUP,    // vol down
-       [ 30 ] = KEY_CHANNELDOWN, // chn up
-       [ 26 ] = KEY_CHANNELUP,   // chn down
-
-       [ 17 ] = KEY_VIDEO,       // video
-       [ 15 ] = KEY_ZOOM,        // full screen
-       [ 19 ] = KEY_MUTE,        // mute/unmute
-       [ 16 ] = KEY_TEXT,        // min
-
-       [ 13 ] = KEY_STOP,        // freeze
-       [ 14 ] = KEY_RECORD,      // record
-       [ 29 ] = KEY_PLAYPAUSE,   // stop
-       [ 25 ] = KEY_PLAY,        // play
-
-       [ 22 ] = KEY_GOTO,        // osd
-       [ 20 ] = KEY_REFRESH,     // default
-       [ 12 ] = KEY_KPPLUS,      // fine tune >>>>
-       [ 24 ] = KEY_KPMINUS      // fine tune <<<<
-};
-
-/* ---------------------------------------------------------------------- */
-
-static IR_KEYTAB_TYPE ir_codes_conceptronic[IR_KEYTAB_SIZE] = {
-
-       [ 30 ] = KEY_POWER,       // power
-       [ 7  ] = KEY_MEDIA,       // source
-       [ 28 ] = KEY_SEARCH,      // scan
-
-/* FIXME: duplicate keycodes?
- *
- * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>>
- * The GPIO values are
- * 6397fb for both "Scan <" and "CH -",
- * 639ffb for "Scan >" and "CH+",
- * 6384fb for "Tune <" and "<<<",
- * 638cfb for "Tune >" and ">>>", regardless of the mask.
- *
- *     [ 23 ] = KEY_BACK,        // fm scan <<
- *     [ 31 ] = KEY_FORWARD,     // fm scan >>
- *
- *     [ 4  ] = KEY_LEFT,        // fm tuning <
- *     [ 12 ] = KEY_RIGHT,       // fm tuning >
- *
- * For now, these four keys are disabled. Pressing them will generate
- * the CH+/CH-/<<</>>> events
- */
-
-       [ 3  ] = KEY_TUNER,       // TV/FM
-
-       [ 0  ] = KEY_RECORD,
-       [ 8  ] = KEY_STOP,
-       [ 17 ] = KEY_PLAY,
-
-       [ 26 ] = KEY_PLAYPAUSE,   // freeze
-       [ 25 ] = KEY_ZOOM,        // zoom
-       [ 15 ] = KEY_TEXT,        // min
-
-       [ 1  ] = KEY_KP1,
-       [ 11 ] = KEY_KP2,
-       [ 27 ] = KEY_KP3,
-       [ 5  ] = KEY_KP4,
-       [ 9  ] = KEY_KP5,
-       [ 21 ] = KEY_KP6,
-       [ 6  ] = KEY_KP7,
-       [ 10 ] = KEY_KP8,
-       [ 18 ] = KEY_KP9,
-       [ 2  ] = KEY_KP0,
-       [ 16 ] = KEY_LAST,        // +100
-       [ 19 ] = KEY_LIST,        // recall
-
-       [ 31 ] = KEY_CHANNELUP,   // chn down
-       [ 23 ] = KEY_CHANNELDOWN, // chn up
-       [ 22 ] = KEY_VOLUMEUP,    // vol down
-       [ 20 ] = KEY_VOLUMEDOWN,  // vol up
-
-       [ 4  ] = KEY_KPMINUS,     // <<<
-       [ 14 ] = KEY_SETUP,       // function
-       [ 12 ] = KEY_KPPLUS,      // >>>
-
-       [ 13 ] = KEY_GOTO,        // mts
-       [ 29 ] = KEY_REFRESH,     // reset
-       [ 24 ] = KEY_MUTE         // mute/unmute
-};
-
-static IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = {
-       [0x00] = KEY_KP0,
-       [0x01] = KEY_KP1,
-       [0x02] = KEY_KP2,
-       [0x03] = KEY_KP3,
-       [0x04] = KEY_KP4,
-       [0x05] = KEY_KP5,
-       [0x06] = KEY_KP6,
-       [0x07] = KEY_KP7,
-       [0x08] = KEY_KP8,
-       [0x09] = KEY_KP9,
-       [0x0a] = KEY_TV,
-       [0x0b] = KEY_AUX,
-       [0x0c] = KEY_DVD,
-       [0x0d] = KEY_POWER,
-       [0x0e] = KEY_MHP,       /* labelled 'Picture' */
-       [0x0f] = KEY_AUDIO,
-       [0x10] = KEY_INFO,
-       [0x11] = KEY_F13,       /* 16:9 */
-       [0x12] = KEY_F14,       /* 14:9 */
-       [0x13] = KEY_EPG,
-       [0x14] = KEY_EXIT,
-       [0x15] = KEY_MENU,
-       [0x16] = KEY_UP,
-       [0x17] = KEY_DOWN,
-       [0x18] = KEY_LEFT,
-       [0x19] = KEY_RIGHT,
-       [0x1a] = KEY_ENTER,
-       [0x1b] = KEY_CHANNELUP,
-       [0x1c] = KEY_CHANNELDOWN,
-       [0x1d] = KEY_VOLUMEUP,
-       [0x1e] = KEY_VOLUMEDOWN,
-       [0x1f] = KEY_RED,
-       [0x20] = KEY_GREEN,
-       [0x21] = KEY_YELLOW,
-       [0x22] = KEY_BLUE,
-       [0x23] = KEY_SUBTITLE,
-       [0x24] = KEY_F15,       /* AD */
-       [0x25] = KEY_TEXT,
-       [0x26] = KEY_MUTE,
-       [0x27] = KEY_REWIND,
-       [0x28] = KEY_STOP,
-       [0x29] = KEY_PLAY,
-       [0x2a] = KEY_FASTFORWARD,
-       [0x2b] = KEY_F16,       /* chapter */
-       [0x2c] = KEY_PAUSE,
-       [0x2d] = KEY_PLAY,
-       [0x2e] = KEY_RECORD,
-       [0x2f] = KEY_F17,       /* picture in picture */
-       [0x30] = KEY_KPPLUS,    /* zoom in */
-       [0x31] = KEY_KPMINUS,   /* zoom out */
-       [0x32] = KEY_F18,       /* capture */
-       [0x33] = KEY_F19,       /* web */
-       [0x34] = KEY_EMAIL,
-       [0x35] = KEY_PHONE,
-       [0x36] = KEY_PC
-};
 
 static int debug;
 module_param(debug, int, 0644);    /* debug level (0,1,2) */
@@ -573,7 +328,8 @@ int bttv_input_init(struct bttv *btv)
                ir->polling      = 50; // ms
                break;
        case BTTV_BOARD_CONCEPTRONIC_CTVFMI2:
-               ir_codes         = ir_codes_conceptronic;
+       case BTTV_BOARD_CONTVFMI:
+               ir_codes         = ir_codes_pixelview;
                ir->mask_keycode = 0x001F00;
                ir->mask_keyup   = 0x006000;
                ir->polling      = 50; // ms