If an IR command is sent (using the LIRC userspace) to rc-loopback
which doesn't include a trailing space, the result is that the message
won't be completely decoded. In addition, "leftovers" from a previous
transmission can be left until the next one. Fix this by faking a long
silence after the end of TX data.

Signed-off-by: David Härdeman <da...@hardeman.nu>
---
 drivers/media/rc/rc-loopback.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/media/rc/rc-loopback.c b/drivers/media/rc/rc-loopback.c
index 49cee61..cc846b2 100644
--- a/drivers/media/rc/rc-loopback.c
+++ b/drivers/media/rc/rc-loopback.c
@@ -146,6 +146,12 @@ static int loop_tx_ir(struct rc_dev *dev, int *txbuf, u32 
n)
                if (rawir.duration)
                        ir_raw_event_store_with_filter(dev, &rawir);
        }
+
+       /* Fake a silence long enough to cause us to go idle */
+       rawir.pulse = false;
+       rawir.duration = dev->timeout;
+       ir_raw_event_store_with_filter(dev, &rawir);
+
        ir_raw_event_handle(dev);
 
 out:

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to