summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Young <sean@mess.org>2016-12-03 05:55:56 -0500
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2017-01-30 09:40:50 -0500
commit8c34b5c4c82e060de0d8bbf26b978c68bffe5a18 (patch)
tree7adf94dc1cf1996ba785c9d75f1392bb8a72c994
parentf4742e1d2dd36143d397ea40ff7b80ab129780b3 (diff)
[media] rc: raw IR drivers cannot handle cec, unknown or other
unknown and other are for IR protocols for which we have no decoder, so the raw IR drivers have no chance of generating them. cec is not an IR protocol. Signed-off-by: Sean Young <sean@mess.org> Cc: Jiri Kosina <jikos@kernel.org> Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com> Cc: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r--drivers/hid/hid-picolcd_cir.c2
-rw-r--r--drivers/media/common/siano/smsir.c2
-rw-r--r--drivers/media/pci/cx23885/cx23885-input.c14
-rw-r--r--drivers/media/rc/ene_ir.c2
-rw-r--r--drivers/media/rc/fintek-cir.c2
-rw-r--r--drivers/media/rc/gpio-ir-recv.c2
-rw-r--r--drivers/media/rc/igorplugusb.c4
-rw-r--r--drivers/media/rc/iguanair.c2
-rw-r--r--drivers/media/rc/ir-hix5hd2.c2
-rw-r--r--drivers/media/rc/ite-cir.c2
-rw-r--r--drivers/media/rc/mceusb.c2
-rw-r--r--drivers/media/rc/meson-ir.c2
-rw-r--r--drivers/media/rc/nuvoton-cir.c2
-rw-r--r--drivers/media/rc/rc-loopback.c2
-rw-r--r--drivers/media/rc/redrat3.c2
-rw-r--r--drivers/media/rc/serial_ir.c2
-rw-r--r--drivers/media/rc/st_rc.c2
-rw-r--r--drivers/media/rc/streamzap.c2
-rw-r--r--drivers/media/rc/sunxi-cir.c2
-rw-r--r--drivers/media/rc/ttusbir.c2
-rw-r--r--drivers/media/rc/winbond-cir.c2
-rw-r--r--drivers/media/usb/dvb-usb-v2/rtl28xxu.c2
-rw-r--r--drivers/media/usb/dvb-usb/technisat-usb2.c2
-rw-r--r--include/media/rc-map.h10
24 files changed, 40 insertions, 30 deletions
diff --git a/drivers/hid/hid-picolcd_cir.c b/drivers/hid/hid-picolcd_cir.c
index 96286510f42e..90add97cc54d 100644
--- a/drivers/hid/hid-picolcd_cir.c
+++ b/drivers/hid/hid-picolcd_cir.c
@@ -114,7 +114,7 @@ int picolcd_init_cir(struct picolcd_data *data, struct hid_report *report)
114 114
115 rdev->priv = data; 115 rdev->priv = data;
116 rdev->driver_type = RC_DRIVER_IR_RAW; 116 rdev->driver_type = RC_DRIVER_IR_RAW;
117 rdev->allowed_protocols = RC_BIT_ALL; 117 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
118 rdev->open = picolcd_cir_open; 118 rdev->open = picolcd_cir_open;
119 rdev->close = picolcd_cir_close; 119 rdev->close = picolcd_cir_close;
120 rdev->input_name = data->hdev->name; 120 rdev->input_name = data->hdev->name;
diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c
index 41f2a3939979..480d8bf3d26a 100644
--- a/drivers/media/common/siano/smsir.c
+++ b/drivers/media/common/siano/smsir.c
@@ -87,7 +87,7 @@ int sms_ir_init(struct smscore_device_t *coredev)
87 87
88 dev->priv = coredev; 88 dev->priv = coredev;
89 dev->driver_type = RC_DRIVER_IR_RAW; 89 dev->driver_type = RC_DRIVER_IR_RAW;
90 dev->allowed_protocols = RC_BIT_ALL; 90 dev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
91 dev->map_name = sms_get_board(board_id)->rc_codes; 91 dev->map_name = sms_get_board(board_id)->rc_codes;
92 dev->driver_name = MODULE_NAME; 92 dev->driver_name = MODULE_NAME;
93 93
diff --git a/drivers/media/pci/cx23885/cx23885-input.c b/drivers/media/pci/cx23885/cx23885-input.c
index 1f092febdbd1..2d4e703b6893 100644
--- a/drivers/media/pci/cx23885/cx23885-input.c
+++ b/drivers/media/pci/cx23885/cx23885-input.c
@@ -286,28 +286,28 @@ int cx23885_input_init(struct cx23885_dev *dev)
286 case CX23885_BOARD_HAUPPAUGE_HVR1250: 286 case CX23885_BOARD_HAUPPAUGE_HVR1250:
287 /* Integrated CX2388[58] IR controller */ 287 /* Integrated CX2388[58] IR controller */
288 driver_type = RC_DRIVER_IR_RAW; 288 driver_type = RC_DRIVER_IR_RAW;
289 allowed_protos = RC_BIT_ALL; 289 allowed_protos = RC_BIT_ALL_IR_DECODER;
290 /* The grey Hauppauge RC-5 remote */ 290 /* The grey Hauppauge RC-5 remote */
291 rc_map = RC_MAP_HAUPPAUGE; 291 rc_map = RC_MAP_HAUPPAUGE;
292 break; 292 break;
293 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: 293 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
294 /* Integrated CX23885 IR controller */ 294 /* Integrated CX23885 IR controller */
295 driver_type = RC_DRIVER_IR_RAW; 295 driver_type = RC_DRIVER_IR_RAW;
296 allowed_protos = RC_BIT_ALL; 296 allowed_protos = RC_BIT_ALL_IR_DECODER;
297 /* The grey Terratec remote with orange buttons */ 297 /* The grey Terratec remote with orange buttons */
298 rc_map = RC_MAP_NEC_TERRATEC_CINERGY_XS; 298 rc_map = RC_MAP_NEC_TERRATEC_CINERGY_XS;
299 break; 299 break;
300 case CX23885_BOARD_TEVII_S470: 300 case CX23885_BOARD_TEVII_S470:
301 /* Integrated CX23885 IR controller */ 301 /* Integrated CX23885 IR controller */
302 driver_type = RC_DRIVER_IR_RAW; 302 driver_type = RC_DRIVER_IR_RAW;
303 allowed_protos = RC_BIT_ALL; 303 allowed_protos = RC_BIT_ALL_IR_DECODER;
304 /* A guess at the remote */ 304 /* A guess at the remote */
305 rc_map = RC_MAP_TEVII_NEC; 305 rc_map = RC_MAP_TEVII_NEC;
306 break; 306 break;
307 case CX23885_BOARD_MYGICA_X8507: 307 case CX23885_BOARD_MYGICA_X8507:
308 /* Integrated CX23885 IR controller */ 308 /* Integrated CX23885 IR controller */
309 driver_type = RC_DRIVER_IR_RAW; 309 driver_type = RC_DRIVER_IR_RAW;
310 allowed_protos = RC_BIT_ALL; 310 allowed_protos = RC_BIT_ALL_IR_DECODER;
311 /* A guess at the remote */ 311 /* A guess at the remote */
312 rc_map = RC_MAP_TOTAL_MEDIA_IN_HAND_02; 312 rc_map = RC_MAP_TOTAL_MEDIA_IN_HAND_02;
313 break; 313 break;
@@ -315,7 +315,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
315 case CX23885_BOARD_TBS_6981: 315 case CX23885_BOARD_TBS_6981:
316 /* Integrated CX23885 IR controller */ 316 /* Integrated CX23885 IR controller */
317 driver_type = RC_DRIVER_IR_RAW; 317 driver_type = RC_DRIVER_IR_RAW;
318 allowed_protos = RC_BIT_ALL; 318 allowed_protos = RC_BIT_ALL_IR_DECODER;
319 /* A guess at the remote */ 319 /* A guess at the remote */
320 rc_map = RC_MAP_TBS_NEC; 320 rc_map = RC_MAP_TBS_NEC;
321 break; 321 break;
@@ -327,13 +327,13 @@ int cx23885_input_init(struct cx23885_dev *dev)
327 case CX23885_BOARD_DVBSKY_T982: 327 case CX23885_BOARD_DVBSKY_T982:
328 /* Integrated CX23885 IR controller */ 328 /* Integrated CX23885 IR controller */
329 driver_type = RC_DRIVER_IR_RAW; 329 driver_type = RC_DRIVER_IR_RAW;
330 allowed_protos = RC_BIT_ALL; 330 allowed_protos = RC_BIT_ALL_IR_DECODER;
331 rc_map = RC_MAP_DVBSKY; 331 rc_map = RC_MAP_DVBSKY;
332 break; 332 break;
333 case CX23885_BOARD_TT_CT2_4500_CI: 333 case CX23885_BOARD_TT_CT2_4500_CI:
334 /* Integrated CX23885 IR controller */ 334 /* Integrated CX23885 IR controller */
335 driver_type = RC_DRIVER_IR_RAW; 335 driver_type = RC_DRIVER_IR_RAW;
336 allowed_protos = RC_BIT_ALL; 336 allowed_protos = RC_BIT_ALL_IR_DECODER;
337 rc_map = RC_MAP_TT_1500; 337 rc_map = RC_MAP_TT_1500;
338 break; 338 break;
339 default: 339 default:
diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c
index ce3cb81902ca..fbfefb7a5f7d 100644
--- a/drivers/media/rc/ene_ir.c
+++ b/drivers/media/rc/ene_ir.c
@@ -1054,7 +1054,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
1054 learning_mode_force = false; 1054 learning_mode_force = false;
1055 1055
1056 rdev->driver_type = RC_DRIVER_IR_RAW; 1056 rdev->driver_type = RC_DRIVER_IR_RAW;
1057 rdev->allowed_protocols = RC_BIT_ALL; 1057 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
1058 rdev->priv = dev; 1058 rdev->priv = dev;
1059 rdev->open = ene_open; 1059 rdev->open = ene_open;
1060 rdev->close = ene_close; 1060 rdev->close = ene_close;
diff --git a/drivers/media/rc/fintek-cir.c b/drivers/media/rc/fintek-cir.c
index 308efec57cc1..b391b2f8ab79 100644
--- a/drivers/media/rc/fintek-cir.c
+++ b/drivers/media/rc/fintek-cir.c
@@ -530,7 +530,7 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
530 /* Set up the rc device */ 530 /* Set up the rc device */
531 rdev->priv = fintek; 531 rdev->priv = fintek;
532 rdev->driver_type = RC_DRIVER_IR_RAW; 532 rdev->driver_type = RC_DRIVER_IR_RAW;
533 rdev->allowed_protocols = RC_BIT_ALL; 533 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
534 rdev->open = fintek_open; 534 rdev->open = fintek_open;
535 rdev->close = fintek_close; 535 rdev->close = fintek_close;
536 rdev->input_name = FINTEK_DESCRIPTION; 536 rdev->input_name = FINTEK_DESCRIPTION;
diff --git a/drivers/media/rc/gpio-ir-recv.c b/drivers/media/rc/gpio-ir-recv.c
index 5b63b1f15cb1..0b5aec4b9c9d 100644
--- a/drivers/media/rc/gpio-ir-recv.c
+++ b/drivers/media/rc/gpio-ir-recv.c
@@ -165,7 +165,7 @@ static int gpio_ir_recv_probe(struct platform_device *pdev)
165 if (pdata->allowed_protos) 165 if (pdata->allowed_protos)
166 rcdev->allowed_protocols = pdata->allowed_protos; 166 rcdev->allowed_protocols = pdata->allowed_protos;
167 else 167 else
168 rcdev->allowed_protocols = RC_BIT_ALL; 168 rcdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
169 rcdev->map_name = pdata->map_name ?: RC_MAP_EMPTY; 169 rcdev->map_name = pdata->map_name ?: RC_MAP_EMPTY;
170 170
171 gpio_dev->rcdev = rcdev; 171 gpio_dev->rcdev = rcdev;
diff --git a/drivers/media/rc/igorplugusb.c b/drivers/media/rc/igorplugusb.c
index 5cf983be07a2..4c4827c3408b 100644
--- a/drivers/media/rc/igorplugusb.c
+++ b/drivers/media/rc/igorplugusb.c
@@ -203,8 +203,8 @@ static int igorplugusb_probe(struct usb_interface *intf,
203 * This device can only store 36 pulses + spaces, which is not enough 203 * This device can only store 36 pulses + spaces, which is not enough
204 * for the NEC protocol and many others. 204 * for the NEC protocol and many others.
205 */ 205 */
206 rc->allowed_protocols = RC_BIT_ALL & ~(RC_BIT_NEC | RC_BIT_NECX | 206 rc->allowed_protocols = RC_BIT_ALL_IR_DECODER & ~(RC_BIT_NEC |
207 RC_BIT_NEC32 | RC_BIT_RC6_6A_20 | 207 RC_BIT_NECX | RC_BIT_NEC32 | RC_BIT_RC6_6A_20 |
208 RC_BIT_RC6_6A_24 | RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | 208 RC_BIT_RC6_6A_24 | RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE |
209 RC_BIT_SONY20 | RC_BIT_MCE_KBD | RC_BIT_SANYO); 209 RC_BIT_SONY20 | RC_BIT_MCE_KBD | RC_BIT_SANYO);
210 210
diff --git a/drivers/media/rc/iguanair.c b/drivers/media/rc/iguanair.c
index 9554585df8b8..75e1dfb1be26 100644
--- a/drivers/media/rc/iguanair.c
+++ b/drivers/media/rc/iguanair.c
@@ -491,7 +491,7 @@ static int iguanair_probe(struct usb_interface *intf,
491 usb_to_input_id(ir->udev, &rc->input_id); 491 usb_to_input_id(ir->udev, &rc->input_id);
492 rc->dev.parent = &intf->dev; 492 rc->dev.parent = &intf->dev;
493 rc->driver_type = RC_DRIVER_IR_RAW; 493 rc->driver_type = RC_DRIVER_IR_RAW;
494 rc->allowed_protocols = RC_BIT_ALL; 494 rc->allowed_protocols = RC_BIT_ALL_IR_DECODER;
495 rc->priv = ir; 495 rc->priv = ir;
496 rc->open = iguanair_open; 496 rc->open = iguanair_open;
497 rc->close = iguanair_close; 497 rc->close = iguanair_close;
diff --git a/drivers/media/rc/ir-hix5hd2.c b/drivers/media/rc/ir-hix5hd2.c
index d26907e684dc..d95056ad26dc 100644
--- a/drivers/media/rc/ir-hix5hd2.c
+++ b/drivers/media/rc/ir-hix5hd2.c
@@ -243,7 +243,7 @@ static int hix5hd2_ir_probe(struct platform_device *pdev)
243 priv->rate = clk_get_rate(priv->clock); 243 priv->rate = clk_get_rate(priv->clock);
244 244
245 rdev->driver_type = RC_DRIVER_IR_RAW; 245 rdev->driver_type = RC_DRIVER_IR_RAW;
246 rdev->allowed_protocols = RC_BIT_ALL; 246 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
247 rdev->priv = priv; 247 rdev->priv = priv;
248 rdev->open = hix5hd2_ir_open; 248 rdev->open = hix5hd2_ir_open;
249 rdev->close = hix5hd2_ir_close; 249 rdev->close = hix5hd2_ir_close;
diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c
index b955a79608e0..3bffc169b31e 100644
--- a/drivers/media/rc/ite-cir.c
+++ b/drivers/media/rc/ite-cir.c
@@ -1557,7 +1557,7 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
1557 /* set up ir-core props */ 1557 /* set up ir-core props */
1558 rdev->priv = itdev; 1558 rdev->priv = itdev;
1559 rdev->driver_type = RC_DRIVER_IR_RAW; 1559 rdev->driver_type = RC_DRIVER_IR_RAW;
1560 rdev->allowed_protocols = RC_BIT_ALL; 1560 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
1561 rdev->open = ite_open; 1561 rdev->open = ite_open;
1562 rdev->close = ite_close; 1562 rdev->close = ite_close;
1563 rdev->s_idle = ite_s_idle; 1563 rdev->s_idle = ite_s_idle;
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index b814ead58e0e..85b220435ff5 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -1198,7 +1198,7 @@ static struct rc_dev *mceusb_init_rc_dev(struct mceusb_dev *ir)
1198 rc->dev.parent = dev; 1198 rc->dev.parent = dev;
1199 rc->priv = ir; 1199 rc->priv = ir;
1200 rc->driver_type = RC_DRIVER_IR_RAW; 1200 rc->driver_type = RC_DRIVER_IR_RAW;
1201 rc->allowed_protocols = RC_BIT_ALL; 1201 rc->allowed_protocols = RC_BIT_ALL_IR_DECODER;
1202 rc->timeout = MS_TO_NS(100); 1202 rc->timeout = MS_TO_NS(100);
1203 if (!ir->flags.no_tx) { 1203 if (!ir->flags.no_tx) {
1204 rc->s_tx_mask = mceusb_set_tx_mask; 1204 rc->s_tx_mask = mceusb_set_tx_mask;
diff --git a/drivers/media/rc/meson-ir.c b/drivers/media/rc/meson-ir.c
index 7eb3f4f1ddcd..3e96e6f1b0c5 100644
--- a/drivers/media/rc/meson-ir.c
+++ b/drivers/media/rc/meson-ir.c
@@ -145,7 +145,7 @@ static int meson_ir_probe(struct platform_device *pdev)
145 ir->rc->map_name = map_name ? map_name : RC_MAP_EMPTY; 145 ir->rc->map_name = map_name ? map_name : RC_MAP_EMPTY;
146 ir->rc->dev.parent = dev; 146 ir->rc->dev.parent = dev;
147 ir->rc->driver_type = RC_DRIVER_IR_RAW; 147 ir->rc->driver_type = RC_DRIVER_IR_RAW;
148 ir->rc->allowed_protocols = RC_BIT_ALL; 148 ir->rc->allowed_protocols = RC_BIT_ALL_IR_DECODER;
149 ir->rc->rx_resolution = US_TO_NS(MESON_TRATE); 149 ir->rc->rx_resolution = US_TO_NS(MESON_TRATE);
150 ir->rc->timeout = MS_TO_NS(200); 150 ir->rc->timeout = MS_TO_NS(200);
151 ir->rc->driver_name = DRIVER_NAME; 151 ir->rc->driver_name = DRIVER_NAME;
diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c
index 0f7e2b4d3bee..77c05145c04e 100644
--- a/drivers/media/rc/nuvoton-cir.c
+++ b/drivers/media/rc/nuvoton-cir.c
@@ -1057,7 +1057,7 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
1057 /* Set up the rc device */ 1057 /* Set up the rc device */
1058 rdev->priv = nvt; 1058 rdev->priv = nvt;
1059 rdev->driver_type = RC_DRIVER_IR_RAW; 1059 rdev->driver_type = RC_DRIVER_IR_RAW;
1060 rdev->allowed_protocols = RC_BIT_ALL; 1060 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
1061 rdev->open = nvt_open; 1061 rdev->open = nvt_open;
1062 rdev->close = nvt_close; 1062 rdev->close = nvt_close;
1063 rdev->tx_ir = nvt_tx_ir; 1063 rdev->tx_ir = nvt_tx_ir;
diff --git a/drivers/media/rc/rc-loopback.c b/drivers/media/rc/rc-loopback.c
index 698927b3b039..06dd97d4b7cd 100644
--- a/drivers/media/rc/rc-loopback.c
+++ b/drivers/media/rc/rc-loopback.c
@@ -191,7 +191,7 @@ static int __init loop_init(void)
191 rc->map_name = RC_MAP_EMPTY; 191 rc->map_name = RC_MAP_EMPTY;
192 rc->priv = &loopdev; 192 rc->priv = &loopdev;
193 rc->driver_type = RC_DRIVER_IR_RAW; 193 rc->driver_type = RC_DRIVER_IR_RAW;
194 rc->allowed_protocols = RC_BIT_ALL; 194 rc->allowed_protocols = RC_BIT_ALL_IR_DECODER;
195 rc->timeout = 100 * 1000 * 1000; /* 100 ms */ 195 rc->timeout = 100 * 1000 * 1000; /* 100 ms */
196 rc->min_timeout = 1; 196 rc->min_timeout = 1;
197 rc->max_timeout = UINT_MAX; 197 rc->max_timeout = UINT_MAX;
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index 06bea6c00620..4ab0ea02a309 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -957,7 +957,7 @@ static struct rc_dev *redrat3_init_rc_dev(struct redrat3_dev *rr3)
957 rc->dev.parent = dev; 957 rc->dev.parent = dev;
958 rc->priv = rr3; 958 rc->priv = rr3;
959 rc->driver_type = RC_DRIVER_IR_RAW; 959 rc->driver_type = RC_DRIVER_IR_RAW;
960 rc->allowed_protocols = RC_BIT_ALL; 960 rc->allowed_protocols = RC_BIT_ALL_IR_DECODER;
961 rc->min_timeout = MS_TO_NS(RR3_RX_MIN_TIMEOUT); 961 rc->min_timeout = MS_TO_NS(RR3_RX_MIN_TIMEOUT);
962 rc->max_timeout = MS_TO_NS(RR3_RX_MAX_TIMEOUT); 962 rc->max_timeout = MS_TO_NS(RR3_RX_MAX_TIMEOUT);
963 rc->timeout = US_TO_NS(redrat3_get_timeout(rr3)); 963 rc->timeout = US_TO_NS(redrat3_get_timeout(rr3));
diff --git a/drivers/media/rc/serial_ir.c b/drivers/media/rc/serial_ir.c
index 2cb6471641bd..408594ea896c 100644
--- a/drivers/media/rc/serial_ir.c
+++ b/drivers/media/rc/serial_ir.c
@@ -797,7 +797,7 @@ static int __init serial_ir_init_module(void)
797 rcdev->close = serial_ir_close; 797 rcdev->close = serial_ir_close;
798 rcdev->dev.parent = &serial_ir.pdev->dev; 798 rcdev->dev.parent = &serial_ir.pdev->dev;
799 rcdev->driver_type = RC_DRIVER_IR_RAW; 799 rcdev->driver_type = RC_DRIVER_IR_RAW;
800 rcdev->allowed_protocols = RC_BIT_ALL; 800 rcdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
801 rcdev->driver_name = KBUILD_MODNAME; 801 rcdev->driver_name = KBUILD_MODNAME;
802 rcdev->map_name = RC_MAP_RC6_MCE; 802 rcdev->map_name = RC_MAP_RC6_MCE;
803 rcdev->min_timeout = 1; 803 rcdev->min_timeout = 1;
diff --git a/drivers/media/rc/st_rc.c b/drivers/media/rc/st_rc.c
index 1fa0c9d1c508..80a46e7a779f 100644
--- a/drivers/media/rc/st_rc.c
+++ b/drivers/media/rc/st_rc.c
@@ -291,7 +291,7 @@ static int st_rc_probe(struct platform_device *pdev)
291 st_rc_hardware_init(rc_dev); 291 st_rc_hardware_init(rc_dev);
292 292
293 rdev->driver_type = RC_DRIVER_IR_RAW; 293 rdev->driver_type = RC_DRIVER_IR_RAW;
294 rdev->allowed_protocols = RC_BIT_ALL; 294 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
295 /* rx sampling rate is 10Mhz */ 295 /* rx sampling rate is 10Mhz */
296 rdev->rx_resolution = 100; 296 rdev->rx_resolution = 100;
297 rdev->timeout = US_TO_NS(MAX_SYMB_TIME); 297 rdev->timeout = US_TO_NS(MAX_SYMB_TIME);
diff --git a/drivers/media/rc/streamzap.c b/drivers/media/rc/streamzap.c
index 26f6076ae584..f6391dd6e29f 100644
--- a/drivers/media/rc/streamzap.c
+++ b/drivers/media/rc/streamzap.c
@@ -305,7 +305,7 @@ static struct rc_dev *streamzap_init_rc_dev(struct streamzap_ir *sz)
305 rdev->dev.parent = dev; 305 rdev->dev.parent = dev;
306 rdev->priv = sz; 306 rdev->priv = sz;
307 rdev->driver_type = RC_DRIVER_IR_RAW; 307 rdev->driver_type = RC_DRIVER_IR_RAW;
308 rdev->allowed_protocols = RC_BIT_ALL; 308 rdev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
309 rdev->driver_name = DRIVER_NAME; 309 rdev->driver_name = DRIVER_NAME;
310 rdev->map_name = RC_MAP_STREAMZAP; 310 rdev->map_name = RC_MAP_STREAMZAP;
311 311
diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c
index eaadc081760a..42bca8d7b451 100644
--- a/drivers/media/rc/sunxi-cir.c
+++ b/drivers/media/rc/sunxi-cir.c
@@ -230,7 +230,7 @@ static int sunxi_ir_probe(struct platform_device *pdev)
230 ir->rc->map_name = ir->map_name ?: RC_MAP_EMPTY; 230 ir->rc->map_name = ir->map_name ?: RC_MAP_EMPTY;
231 ir->rc->dev.parent = dev; 231 ir->rc->dev.parent = dev;
232 ir->rc->driver_type = RC_DRIVER_IR_RAW; 232 ir->rc->driver_type = RC_DRIVER_IR_RAW;
233 ir->rc->allowed_protocols = RC_BIT_ALL; 233 ir->rc->allowed_protocols = RC_BIT_ALL_IR_DECODER;
234 ir->rc->rx_resolution = SUNXI_IR_SAMPLE; 234 ir->rc->rx_resolution = SUNXI_IR_SAMPLE;
235 ir->rc->timeout = MS_TO_NS(SUNXI_IR_TIMEOUT); 235 ir->rc->timeout = MS_TO_NS(SUNXI_IR_TIMEOUT);
236 ir->rc->driver_name = SUNXI_IR_DEV; 236 ir->rc->driver_name = SUNXI_IR_DEV;
diff --git a/drivers/media/rc/ttusbir.c b/drivers/media/rc/ttusbir.c
index bc7c091d6572..cf70e0403294 100644
--- a/drivers/media/rc/ttusbir.c
+++ b/drivers/media/rc/ttusbir.c
@@ -314,7 +314,7 @@ static int ttusbir_probe(struct usb_interface *intf,
314 usb_to_input_id(tt->udev, &rc->input_id); 314 usb_to_input_id(tt->udev, &rc->input_id);
315 rc->dev.parent = &intf->dev; 315 rc->dev.parent = &intf->dev;
316 rc->driver_type = RC_DRIVER_IR_RAW; 316 rc->driver_type = RC_DRIVER_IR_RAW;
317 rc->allowed_protocols = RC_BIT_ALL; 317 rc->allowed_protocols = RC_BIT_ALL_IR_DECODER;
318 rc->priv = tt; 318 rc->priv = tt;
319 rc->driver_name = DRIVER_NAME; 319 rc->driver_name = DRIVER_NAME;
320 rc->map_name = RC_MAP_TT_1500; 320 rc->map_name = RC_MAP_TT_1500;
diff --git a/drivers/media/rc/winbond-cir.c b/drivers/media/rc/winbond-cir.c
index 38eae9ebef6a..068e81a78125 100644
--- a/drivers/media/rc/winbond-cir.c
+++ b/drivers/media/rc/winbond-cir.c
@@ -1085,7 +1085,7 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
1085 data->dev->dev.parent = &device->dev; 1085 data->dev->dev.parent = &device->dev;
1086 data->dev->timeout = MS_TO_NS(100); 1086 data->dev->timeout = MS_TO_NS(100);
1087 data->dev->rx_resolution = US_TO_NS(2); 1087 data->dev->rx_resolution = US_TO_NS(2);
1088 data->dev->allowed_protocols = RC_BIT_ALL; 1088 data->dev->allowed_protocols = RC_BIT_ALL_IR_DECODER;
1089 data->dev->allowed_wakeup_protocols = RC_BIT_NEC | RC_BIT_NECX | 1089 data->dev->allowed_wakeup_protocols = RC_BIT_NEC | RC_BIT_NECX |
1090 RC_BIT_NEC32 | RC_BIT_RC5 | RC_BIT_RC6_0 | 1090 RC_BIT_NEC32 | RC_BIT_RC5 | RC_BIT_RC6_0 |
1091 RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | 1091 RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 |
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index c583c638e468..e16ca07acf1d 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -1778,7 +1778,7 @@ static int rtl2832u_get_rc_config(struct dvb_usb_device *d,
1778 /* load empty to enable rc */ 1778 /* load empty to enable rc */
1779 if (!rc->map_name) 1779 if (!rc->map_name)
1780 rc->map_name = RC_MAP_EMPTY; 1780 rc->map_name = RC_MAP_EMPTY;
1781 rc->allowed_protos = RC_BIT_ALL; 1781 rc->allowed_protos = RC_BIT_ALL_IR_DECODER;
1782 rc->driver_type = RC_DRIVER_IR_RAW; 1782 rc->driver_type = RC_DRIVER_IR_RAW;
1783 rc->query = rtl2832u_rc_query; 1783 rc->query = rtl2832u_rc_query;
1784 rc->interval = 200; 1784 rc->interval = 200;
diff --git a/drivers/media/usb/dvb-usb/technisat-usb2.c b/drivers/media/usb/dvb-usb/technisat-usb2.c
index 134e7436d56b..9f7dd1afcb15 100644
--- a/drivers/media/usb/dvb-usb/technisat-usb2.c
+++ b/drivers/media/usb/dvb-usb/technisat-usb2.c
@@ -749,7 +749,7 @@ static struct dvb_usb_device_properties technisat_usb2_devices = {
749 .rc_codes = RC_MAP_TECHNISAT_USB2, 749 .rc_codes = RC_MAP_TECHNISAT_USB2,
750 .module_name = "technisat-usb2", 750 .module_name = "technisat-usb2",
751 .rc_query = technisat_usb2_rc_query, 751 .rc_query = technisat_usb2_rc_query,
752 .allowed_protos = RC_BIT_ALL, 752 .allowed_protos = RC_BIT_ALL_IR_DECODER,
753 .driver_type = RC_DRIVER_IR_RAW, 753 .driver_type = RC_DRIVER_IR_RAW,
754 } 754 }
755}; 755};
diff --git a/include/media/rc-map.h b/include/media/rc-map.h
index 4bd091414551..40f36b8f762a 100644
--- a/include/media/rc-map.h
+++ b/include/media/rc-map.h
@@ -95,6 +95,16 @@ enum rc_type {
95 RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \ 95 RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \
96 RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | RC_BIT_SHARP | \ 96 RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | RC_BIT_SHARP | \
97 RC_BIT_XMP | RC_BIT_CEC) 97 RC_BIT_XMP | RC_BIT_CEC)
98/* All rc protocols for which we have decoders */
99#define RC_BIT_ALL_IR_DECODER \
100 (RC_BIT_RC5 | RC_BIT_RC5X_20 | RC_BIT_RC5_SZ | \
101 RC_BIT_JVC | \
102 RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20 | \
103 RC_BIT_NEC | RC_BIT_NECX | RC_BIT_NEC32 | \
104 RC_BIT_SANYO | RC_BIT_MCE_KBD | RC_BIT_RC6_0 | \
105 RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \
106 RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | RC_BIT_SHARP | \
107 RC_BIT_XMP)
98 108
99 109
100#define RC_SCANCODE_UNKNOWN(x) (x) 110#define RC_SCANCODE_UNKNOWN(x) (x)