diff options
author | Sean Young <sean@mess.org> | 2016-12-02 20:16:10 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-01-30 17:04:13 +0300 |
commit | 17809ed219945b38a750aa382d1aafe3a9f09b02 (patch) | |
tree | d271de4918006ee8d4bef86e734132c24cacac08 /drivers/media/usb | |
parent | 07e9293c188dbfff4617b0ac5bb56ad5478d33a5 (diff) | |
download | linux-17809ed219945b38a750aa382d1aafe3a9f09b02.tar.xz |
[media] em28xx: IR protocol not reported correctly
Report the correct NEC variant.
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/usb')
-rw-r--r-- | drivers/media/usb/em28xx/em28xx-input.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-input.c b/drivers/media/usb/em28xx/em28xx-input.c index 782ce095c8c5..d1ba2c470645 100644 --- a/drivers/media/usb/em28xx/em28xx-input.c +++ b/drivers/media/usb/em28xx/em28xx-input.c @@ -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; |