aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/dvb/ttpci/budget-ci.c15
-rw-r--r--drivers/media/rc/keymaps/Makefile1
-rw-r--r--drivers/media/rc/keymaps/rc-hauppauge-new.c100
-rw-r--r--drivers/media/video/cx18/cx18-i2c.c2
-rw-r--r--drivers/media/video/cx88/cx88-input.c4
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c6
-rw-r--r--drivers/media/video/hdpvr/hdpvr-i2c.c2
-rw-r--r--drivers/media/video/ir-kbd-i2c.c4
-rw-r--r--drivers/media/video/ivtv/ivtv-i2c.c2
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-i2c-core.c4
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c2
11 files changed, 25 insertions, 117 deletions
diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c
index b82756db5bd1..1d79ada864d6 100644
--- a/drivers/media/dvb/ttpci/budget-ci.c
+++ b/drivers/media/dvb/ttpci/budget-ci.c
@@ -26,7 +26,7 @@
26 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html 26 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
27 * 27 *
28 * 28 *
29 * the project's page is at http://www.linuxtv.org/ 29 * the project's page is at http://www.linuxtv.org/
30 */ 30 */
31 31
32#include <linux/module.h> 32#include <linux/module.h>
@@ -102,6 +102,7 @@ struct budget_ci_ir {
102 int rc5_device; 102 int rc5_device;
103 u32 ir_key; 103 u32 ir_key;
104 bool have_command; 104 bool have_command;
105 bool full_rc5; /* Outputs a full RC5 code */
105}; 106};
106 107
107struct budget_ci { 108struct budget_ci {
@@ -154,11 +155,18 @@ static void msp430_ir_interrupt(unsigned long data)
154 return; 155 return;
155 budget_ci->ir.have_command = false; 156 budget_ci->ir.have_command = false;
156 157
157 /* FIXME: We should generate complete scancodes with device info */
158 if (budget_ci->ir.rc5_device != IR_DEVICE_ANY && 158 if (budget_ci->ir.rc5_device != IR_DEVICE_ANY &&
159 budget_ci->ir.rc5_device != (command & 0x1f)) 159 budget_ci->ir.rc5_device != (command & 0x1f))
160 return; 160 return;
161 161
162 if (budget_ci->ir.full_rc5) {
163 rc_keydown(dev,
164 budget_ci->ir.rc5_device <<8 | budget_ci->ir.ir_key,
165 (command & 0x20) ? 1 : 0);
166 return;
167 }
168
169 /* FIXME: We should generate complete scancodes for all devices */
162 rc_keydown(dev, budget_ci->ir.ir_key, (command & 0x20) ? 1 : 0); 170 rc_keydown(dev, budget_ci->ir.ir_key, (command & 0x20) ? 1 : 0);
163} 171}
164 172
@@ -206,7 +214,8 @@ static int msp430_ir_init(struct budget_ci *budget_ci)
206 case 0x1011: 214 case 0x1011:
207 case 0x1012: 215 case 0x1012:
208 /* The hauppauge keymap is a superset of these remotes */ 216 /* The hauppauge keymap is a superset of these remotes */
209 dev->map_name = RC_MAP_HAUPPAUGE_NEW; 217 dev->map_name = RC_MAP_HAUPPAUGE;
218 budget_ci->ir.full_rc5 = true;
210 219
211 if (rc5_device < 0) 220 if (rc5_device < 0)
212 budget_ci->ir.rc5_device = 0x1f; 221 budget_ci->ir.rc5_device = 0x1f;
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
index 1f446f99b61f..2fb566bf8ea2 100644
--- a/drivers/media/rc/keymaps/Makefile
+++ b/drivers/media/rc/keymaps/Makefile
@@ -37,7 +37,6 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
37 rc-gadmei-rm008z.o \ 37 rc-gadmei-rm008z.o \
38 rc-genius-tvgo-a11mce.o \ 38 rc-genius-tvgo-a11mce.o \
39 rc-gotview7135.o \ 39 rc-gotview7135.o \
40 rc-hauppauge-new.o \
41 rc-imon-mce.o \ 40 rc-imon-mce.o \
42 rc-imon-pad.o \ 41 rc-imon-pad.o \
43 rc-iodata-bctv7e.o \ 42 rc-iodata-bctv7e.o \
diff --git a/drivers/media/rc/keymaps/rc-hauppauge-new.c b/drivers/media/rc/keymaps/rc-hauppauge-new.c
deleted file mode 100644
index 44f3283e15b5..000000000000
--- a/drivers/media/rc/keymaps/rc-hauppauge-new.c
+++ /dev/null
@@ -1,100 +0,0 @@
1/* hauppauge-new.h - Keytable for hauppauge_new Remote Controller
2 *
3 * keymap imported from ir-keymaps.c
4 *
5 * Copyright (c) 2010 by Mauro Carvalho Chehab <mchehab@redhat.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13#include <media/rc-map.h>
14
15/* Hauppauge: the newer, gray remotes (seems there are multiple
16 * slightly different versions), shipped with cx88+ivtv cards.
17 * almost rc5 coding, but some non-standard keys */
18
19static struct rc_map_table hauppauge_new[] = {
20 /* Keys 0 to 9 */
21 { 0x00, KEY_0 },
22 { 0x01, KEY_1 },
23 { 0x02, KEY_2 },
24 { 0x03, KEY_3 },
25 { 0x04, KEY_4 },
26 { 0x05, KEY_5 },
27 { 0x06, KEY_6 },
28 { 0x07, KEY_7 },
29 { 0x08, KEY_8 },
30 { 0x09, KEY_9 },
31
32 { 0x0a, KEY_TEXT }, /* keypad asterisk as well */
33 { 0x0b, KEY_RED }, /* red button */
34 { 0x0c, KEY_RADIO },
35 { 0x0d, KEY_MENU },
36 { 0x0e, KEY_SUBTITLE }, /* also the # key */
37 { 0x0f, KEY_MUTE },
38 { 0x10, KEY_VOLUMEUP },
39 { 0x11, KEY_VOLUMEDOWN },
40 { 0x12, KEY_PREVIOUS }, /* previous channel */
41 { 0x14, KEY_UP },
42 { 0x15, KEY_DOWN },
43 { 0x16, KEY_LEFT },
44 { 0x17, KEY_RIGHT },
45 { 0x18, KEY_VCR }, /* Videos */
46 { 0x19, KEY_AUDIO }, /* Music */
47 /* 0x1a: Pictures - presume this means
48 "Multimedia Home Platform" -
49 no "PICTURES" key in input.h
50 */
51 { 0x1a, KEY_CAMERA },
52
53 { 0x1b, KEY_EPG }, /* Guide */
54 { 0x1c, KEY_TV },
55 { 0x1e, KEY_NEXTSONG }, /* skip >| */
56 { 0x1f, KEY_EXIT }, /* back/exit */
57 { 0x20, KEY_CHANNELUP }, /* channel / program + */
58 { 0x21, KEY_CHANNELDOWN }, /* channel / program - */
59 { 0x22, KEY_VIDEO }, /* source (old black remote) */
60 { 0x24, KEY_PREVIOUSSONG }, /* replay |< */
61 { 0x25, KEY_ENTER }, /* OK */
62 { 0x26, KEY_SLEEP }, /* minimize (old black remote) */
63 { 0x29, KEY_BLUE }, /* blue key */
64 { 0x2e, KEY_GREEN }, /* green button */
65 { 0x30, KEY_PAUSE }, /* pause */
66 { 0x32, KEY_REWIND }, /* backward << */
67 { 0x34, KEY_FASTFORWARD }, /* forward >> */
68 { 0x35, KEY_PLAY },
69 { 0x36, KEY_STOP },
70 { 0x37, KEY_RECORD }, /* recording */
71 { 0x38, KEY_YELLOW }, /* yellow key */
72 { 0x3b, KEY_SELECT }, /* top right button */
73 { 0x3c, KEY_ZOOM }, /* full */
74 { 0x3d, KEY_POWER }, /* system power (green button) */
75};
76
77static struct rc_map_list hauppauge_new_map = {
78 .map = {
79 .scan = hauppauge_new,
80 .size = ARRAY_SIZE(hauppauge_new),
81 .rc_type = RC_TYPE_UNKNOWN, /* Legacy IR type */
82 .name = RC_MAP_HAUPPAUGE_NEW,
83 }
84};
85
86static int __init init_rc_map_hauppauge_new(void)
87{
88 return rc_map_register(&hauppauge_new_map);
89}
90
91static void __exit exit_rc_map_hauppauge_new(void)
92{
93 rc_map_unregister(&hauppauge_new_map);
94}
95
96module_init(init_rc_map_hauppauge_new)
97module_exit(exit_rc_map_hauppauge_new)
98
99MODULE_LICENSE("GPL");
100MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@redhat.com>");
diff --git a/drivers/media/video/cx18/cx18-i2c.c b/drivers/media/video/cx18/cx18-i2c.c
index c330fb917b50..040aaa87579d 100644
--- a/drivers/media/video/cx18/cx18-i2c.c
+++ b/drivers/media/video/cx18/cx18-i2c.c
@@ -96,7 +96,7 @@ static int cx18_i2c_new_ir(struct cx18 *cx, struct i2c_adapter *adap, u32 hw,
96 /* Our default information for ir-kbd-i2c.c to use */ 96 /* Our default information for ir-kbd-i2c.c to use */
97 switch (hw) { 97 switch (hw) {
98 case CX18_HW_Z8F0811_IR_RX_HAUP: 98 case CX18_HW_Z8F0811_IR_RX_HAUP:
99 init_data->ir_codes = RC_MAP_HAUPPAUGE_NEW; 99 init_data->ir_codes = RC_MAP_HAUPPAUGE;
100 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR; 100 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR;
101 init_data->type = RC_TYPE_RC5; 101 init_data->type = RC_TYPE_RC5;
102 init_data->name = cx->card_name; 102 init_data->name = cx->card_name;
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index fbfbba5bec5e..c820e2f53527 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -283,7 +283,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
283 case CX88_BOARD_PCHDTV_HD3000: 283 case CX88_BOARD_PCHDTV_HD3000:
284 case CX88_BOARD_PCHDTV_HD5500: 284 case CX88_BOARD_PCHDTV_HD5500:
285 case CX88_BOARD_HAUPPAUGE_IRONLY: 285 case CX88_BOARD_HAUPPAUGE_IRONLY:
286 ir_codes = RC_MAP_HAUPPAUGE_NEW; 286 ir_codes = RC_MAP_HAUPPAUGE;
287 ir->sampling = 1; 287 ir->sampling = 1;
288 break; 288 break;
289 case CX88_BOARD_WINFAST_DTV2000H: 289 case CX88_BOARD_WINFAST_DTV2000H:
@@ -604,7 +604,7 @@ void cx88_i2c_init_ir(struct cx88_core *core)
604 if (*addrp == 0x71) { 604 if (*addrp == 0x71) {
605 /* Hauppauge XVR */ 605 /* Hauppauge XVR */
606 core->init_data.name = "cx88 Hauppauge XVR remote"; 606 core->init_data.name = "cx88 Hauppauge XVR remote";
607 core->init_data.ir_codes = RC_MAP_HAUPPAUGE_NEW; 607 core->init_data.ir_codes = RC_MAP_HAUPPAUGE;
608 core->init_data.type = RC_TYPE_RC5; 608 core->init_data.type = RC_TYPE_RC5;
609 core->init_data.internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR; 609 core->init_data.internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR;
610 610
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index aa4f45e692e6..69fcea82d01c 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -834,7 +834,7 @@ struct em28xx_board em28xx_boards[] = {
834 .mts_firmware = 1, 834 .mts_firmware = 1,
835 .has_dvb = 1, 835 .has_dvb = 1,
836 .dvb_gpio = hauppauge_wintv_hvr_900_digital, 836 .dvb_gpio = hauppauge_wintv_hvr_900_digital,
837 .ir_codes = RC_MAP_HAUPPAUGE_NEW, 837 .ir_codes = RC_MAP_HAUPPAUGE,
838 .decoder = EM28XX_TVP5150, 838 .decoder = EM28XX_TVP5150,
839 .input = { { 839 .input = { {
840 .type = EM28XX_VMUX_TELEVISION, 840 .type = EM28XX_VMUX_TELEVISION,
@@ -859,7 +859,7 @@ struct em28xx_board em28xx_boards[] = {
859 .tuner_type = TUNER_XC2028, 859 .tuner_type = TUNER_XC2028,
860 .tuner_gpio = default_tuner_gpio, 860 .tuner_gpio = default_tuner_gpio,
861 .mts_firmware = 1, 861 .mts_firmware = 1,
862 .ir_codes = RC_MAP_HAUPPAUGE_NEW, 862 .ir_codes = RC_MAP_HAUPPAUGE,
863 .decoder = EM28XX_TVP5150, 863 .decoder = EM28XX_TVP5150,
864 .input = { { 864 .input = { {
865 .type = EM28XX_VMUX_TELEVISION, 865 .type = EM28XX_VMUX_TELEVISION,
@@ -885,7 +885,7 @@ struct em28xx_board em28xx_boards[] = {
885 .mts_firmware = 1, 885 .mts_firmware = 1,
886 .has_dvb = 1, 886 .has_dvb = 1,
887 .dvb_gpio = hauppauge_wintv_hvr_900_digital, 887 .dvb_gpio = hauppauge_wintv_hvr_900_digital,
888 .ir_codes = RC_MAP_HAUPPAUGE_NEW, 888 .ir_codes = RC_MAP_HAUPPAUGE,
889 .decoder = EM28XX_TVP5150, 889 .decoder = EM28XX_TVP5150,
890 .input = { { 890 .input = { {
891 .type = EM28XX_VMUX_TELEVISION, 891 .type = EM28XX_VMUX_TELEVISION,
diff --git a/drivers/media/video/hdpvr/hdpvr-i2c.c b/drivers/media/video/hdpvr/hdpvr-i2c.c
index 3e0658768135..de69bae9bac7 100644
--- a/drivers/media/video/hdpvr/hdpvr-i2c.c
+++ b/drivers/media/video/hdpvr/hdpvr-i2c.c
@@ -52,7 +52,7 @@ struct i2c_client *hdpvr_register_ir_rx_i2c(struct hdpvr_device *dev)
52 }; 52 };
53 53
54 /* Our default information for ir-kbd-i2c.c to use */ 54 /* Our default information for ir-kbd-i2c.c to use */
55 init_data->ir_codes = RC_MAP_HAUPPAUGE_NEW; 55 init_data->ir_codes = RC_MAP_HAUPPAUGE;
56 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR; 56 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR;
57 init_data->type = RC_TYPE_RC5; 57 init_data->type = RC_TYPE_RC5;
58 init_data->name = "HD-PVR"; 58 init_data->name = "HD-PVR";
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c
index a221ad68b330..be7064fcdfe4 100644
--- a/drivers/media/video/ir-kbd-i2c.c
+++ b/drivers/media/video/ir-kbd-i2c.c
@@ -313,7 +313,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
313 ir->get_key = get_key_haup; 313 ir->get_key = get_key_haup;
314 rc_type = RC_TYPE_RC5; 314 rc_type = RC_TYPE_RC5;
315 if (hauppauge == 1) { 315 if (hauppauge == 1) {
316 ir_codes = RC_MAP_HAUPPAUGE_NEW; 316 ir_codes = RC_MAP_HAUPPAUGE;
317 } else { 317 } else {
318 ir_codes = RC_MAP_RC5_TV; 318 ir_codes = RC_MAP_RC5_TV;
319 } 319 }
@@ -340,7 +340,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
340 name = "Hauppauge/Zilog Z8"; 340 name = "Hauppauge/Zilog Z8";
341 ir->get_key = get_key_haup_xvr; 341 ir->get_key = get_key_haup_xvr;
342 rc_type = RC_TYPE_RC5; 342 rc_type = RC_TYPE_RC5;
343 ir_codes = hauppauge ? RC_MAP_HAUPPAUGE_NEW : RC_MAP_RC5_TV; 343 ir_codes = hauppauge ? RC_MAP_HAUPPAUGE : RC_MAP_RC5_TV;
344 break; 344 break;
345 } 345 }
346 346
diff --git a/drivers/media/video/ivtv/ivtv-i2c.c b/drivers/media/video/ivtv/ivtv-i2c.c
index 9fb86a081c0f..3c89d6f28d5f 100644
--- a/drivers/media/video/ivtv/ivtv-i2c.c
+++ b/drivers/media/video/ivtv/ivtv-i2c.c
@@ -213,7 +213,7 @@ static int ivtv_i2c_new_ir(struct ivtv *itv, u32 hw, const char *type, u8 addr)
213 break; 213 break;
214 case IVTV_HW_Z8F0811_IR_RX_HAUP: 214 case IVTV_HW_Z8F0811_IR_RX_HAUP:
215 /* Default to grey remote */ 215 /* Default to grey remote */
216 init_data->ir_codes = RC_MAP_HAUPPAUGE_NEW; 216 init_data->ir_codes = RC_MAP_HAUPPAUGE;
217 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR; 217 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR;
218 init_data->type = RC_TYPE_RC5; 218 init_data->type = RC_TYPE_RC5;
219 init_data->name = itv->card_name; 219 init_data->name = itv->card_name;
diff --git a/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c b/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
index 451ecd485f97..e72d5103e778 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
@@ -578,7 +578,7 @@ static void pvr2_i2c_register_ir(struct pvr2_hdw *hdw)
578 switch (hdw->ir_scheme_active) { 578 switch (hdw->ir_scheme_active) {
579 case PVR2_IR_SCHEME_24XXX: /* FX2-controlled IR */ 579 case PVR2_IR_SCHEME_24XXX: /* FX2-controlled IR */
580 case PVR2_IR_SCHEME_29XXX: /* Original 29xxx device */ 580 case PVR2_IR_SCHEME_29XXX: /* Original 29xxx device */
581 init_data->ir_codes = RC_MAP_HAUPPAUGE_NEW; 581 init_data->ir_codes = RC_MAP_HAUPPAUGE;
582 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP; 582 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP;
583 init_data->type = RC_TYPE_RC5; 583 init_data->type = RC_TYPE_RC5;
584 init_data->name = hdw->hdw_desc->description; 584 init_data->name = hdw->hdw_desc->description;
@@ -593,7 +593,7 @@ static void pvr2_i2c_register_ir(struct pvr2_hdw *hdw)
593 break; 593 break;
594 case PVR2_IR_SCHEME_ZILOG: /* HVR-1950 style */ 594 case PVR2_IR_SCHEME_ZILOG: /* HVR-1950 style */
595 case PVR2_IR_SCHEME_24XXX_MCE: /* 24xxx MCE device */ 595 case PVR2_IR_SCHEME_24XXX_MCE: /* 24xxx MCE device */
596 init_data->ir_codes = RC_MAP_HAUPPAUGE_NEW; 596 init_data->ir_codes = RC_MAP_HAUPPAUGE;
597 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR; 597 init_data->internal_get_key_func = IR_KBD_GET_KEY_HAUP_XVR;
598 init_data->type = RC_TYPE_RC5; 598 init_data->type = RC_TYPE_RC5;
599 init_data->name = hdw->hdw_desc->description; 599 init_data->name = hdw->hdw_desc->description;
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c
index 790d66703fea..be1c2a2de27c 100644
--- a/drivers/media/video/saa7134/saa7134-input.c
+++ b/drivers/media/video/saa7134/saa7134-input.c
@@ -893,7 +893,7 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev)
893 case SAA7134_BOARD_HAUPPAUGE_HVR1110: 893 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
894 dev->init_data.name = "HVR 1110"; 894 dev->init_data.name = "HVR 1110";
895 dev->init_data.get_key = get_key_hvr1110; 895 dev->init_data.get_key = get_key_hvr1110;
896 dev->init_data.ir_codes = RC_MAP_HAUPPAUGE_NEW; 896 dev->init_data.ir_codes = RC_MAP_HAUPPAUGE;
897 info.addr = 0x71; 897 info.addr = 0x71;
898 break; 898 break;
899 case SAA7134_BOARD_BEHOLD_607FM_MK3: 899 case SAA7134_BOARD_BEHOLD_607FM_MK3: