From: Sean Young Date: Wed, 18 Apr 2018 09:36:25 +0000 (-0400) Subject: media: rc: mceusb: IR of length 0 means IR timeout, not reset X-Git-Tag: Ubuntu-5.10.0-12.13~7696^2~391 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=91352b572786a49f26a12e8b1b7571bc3df64bab;p=mirror_ubuntu-hirsute-kernel.git media: rc: mceusb: IR of length 0 means IR timeout, not reset The last usb packet with IR data will end with 0x80 (MCE_IRDATA_TRAILER). If we reset the decoder state at this point, IR decoding can fail. Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c index 69ba57372c05..a1c21903b96c 100644 --- a/drivers/media/rc/mceusb.c +++ b/drivers/media/rc/mceusb.c @@ -1182,7 +1182,12 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) if (ir->rem) { ir->parser_state = PARSE_IRDATA; } else { - ir_raw_event_reset(ir->rc); + init_ir_raw_event(&rawir); + rawir.timeout = 1; + rawir.duration = ir->rc->timeout; + if (ir_raw_event_store_with_filter(ir->rc, + &rawir)) + event = true; ir->pulse_tunit = 0; ir->pulse_count = 0; }