[media] em28xx: IR protocol not reported correctly
authorSean Young <sean@mess.org>
Fri, 2 Dec 2016 17:16:10 +0000 (15:16 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 30 Jan 2017 14:04:13 +0000 (12:04 -0200)
Report the correct NEC variant.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/usb/em28xx/em28xx-input.c

index 782ce09..d1ba2c4 100644 (file)
@@ -259,18 +259,21 @@ static int em2874_polling_getkey(struct em28xx_IR *ir,
                break;
 
        case RC_BIT_NEC:
-               poll_result->protocol = RC_TYPE_RC5;
                poll_result->scancode = msg[1] << 8 | msg[2];
-               if ((msg[3] ^ msg[4]) != 0xff)          /* 32 bits NEC */
+               if ((msg[3] ^ msg[4]) != 0xff) {        /* 32 bits NEC */
+                       poll_result->protocol = RC_TYPE_NEC32;
                        poll_result->scancode = RC_SCANCODE_NEC32((msg[1] << 24) |
                                                                  (msg[2] << 16) |
                                                                  (msg[3] << 8)  |
                                                                  (msg[4]));
-               else if ((msg[1] ^ msg[2]) != 0xff)     /* 24 bits NEC */
+               } else if ((msg[1] ^ msg[2]) != 0xff) { /* 24 bits NEC */
+                       poll_result->protocol = RC_TYPE_NECX;
                        poll_result->scancode = RC_SCANCODE_NECX(msg[1] << 8 |
                                                                 msg[2], msg[3]);
-               else                                    /* Normal NEC */
+               } else {                                /* Normal NEC */
+                       poll_result->protocol = RC_TYPE_NEC;
                        poll_result->scancode = RC_SCANCODE_NEC(msg[1], msg[3]);
+               }
                break;
 
        case RC_BIT_RC6_0:
@@ -777,7 +780,7 @@ static int em28xx_ir_init(struct em28xx *dev)
                case CHIP_ID_EM28178:
                        ir->get_key = em2874_polling_getkey;
                        rc->allowed_protocols = RC_BIT_RC5 | RC_BIT_NEC |
-                                            RC_BIT_RC6_0;
+                               RC_BIT_NECX | RC_BIT_NEC32 | RC_BIT_RC6_0;
                        break;
                default:
                        err = -ENODEV;