From ff7e976e819251e371d7ce903f4703922d5ce2be Mon Sep 17 00:00:00 2001 From: Sean Young Date: Thu, 10 May 2018 16:41:15 -0400 Subject: [PATCH] UPSTREAM: media: rc: default to idle on at startup or after reset Any spaces events received after a reset or startup should be discarded, so ensure the rc device is in idle mode. This also makes it much easier to detect incorrect raw events, as we will do in a following commit. Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab (cherry picked from commit e0d51e6ceff818c5d7a812c26bbd1bb84348a71a) Signed-off-by: Ziyuan Xu --- drivers/media/rc/rc-ir-raw.c | 1 + include/media/rc-core.h | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c index d7c19ba14a9b..09d0b02d95ac 100644 --- a/drivers/media/rc/rc-ir-raw.c +++ b/drivers/media/rc/rc-ir-raw.c @@ -620,6 +620,7 @@ int ir_raw_event_prepare(struct rc_dev *dev) dev->raw->dev = dev; dev->change_protocol = change_protocol; + dev->idle = true; spin_lock_init(&dev->raw->edge_spinlock); timer_setup(&dev->raw->edge_handle, ir_raw_edge_handle, 0); INIT_KFIFO(dev->raw->kfifo); diff --git a/include/media/rc-core.h b/include/media/rc-core.h index c077c07318bf..6ba4cc68a326 100644 --- a/include/media/rc-core.h +++ b/include/media/rc-core.h @@ -361,6 +361,7 @@ static inline void ir_raw_event_reset(struct rc_dev *dev) struct ir_raw_event ev = { .reset = true }; ir_raw_event_store(dev, &ev); + dev->idle = true; ir_raw_event_handle(dev); }