[v2,4/5] media: rc-loopback: max_timeout of UINT_MAX does not work

Message ID d99d035cdfd7f1a9992338445b88f8a0defc4cdd.1625509803.git.sean@mess.org (mailing list archive)
State Accepted, archived
Delegated to: Sean Young
Headers
Series Various rc-loopback fixes |

Commit Message

Sean Young July 5, 2021, 6:31 p.m. UTC
  Any timeout larger than LIRC_VALUE_MASK cannot work for the lirc uapi.
LIRC_VALUE_MASK is about 16 seconds which is more than enough.

Signed-off-by: Sean Young <sean@mess.org>
---
 drivers/media/rc/rc-loopback.c | 4 ++--
 include/media/rc-core.h        | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)
  

Patch

diff --git a/drivers/media/rc/rc-loopback.c b/drivers/media/rc/rc-loopback.c
index 67782dd7ee4d..40fca1226b09 100644
--- a/drivers/media/rc/rc-loopback.c
+++ b/drivers/media/rc/rc-loopback.c
@@ -222,9 +222,9 @@  static int __init loop_init(void)
 	rc->allowed_protocols	= RC_PROTO_BIT_ALL_IR_DECODER;
 	rc->allowed_wakeup_protocols = RC_PROTO_BIT_ALL_IR_ENCODER;
 	rc->encode_wakeup	= true;
-	rc->timeout		= MS_TO_US(100); /* 100 ms */
+	rc->timeout		= IR_DEFAULT_TIMEOUT;
 	rc->min_timeout		= 1;
-	rc->max_timeout		= UINT_MAX;
+	rc->max_timeout		= IR_MAX_TIMEOUT;
 	rc->rx_resolution	= 1;
 	rc->tx_resolution	= 1;
 	rc->s_tx_mask		= loop_set_tx_mask;
diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index a1019c4ab5e8..64b43d76f7f0 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -313,6 +313,7 @@  struct ir_raw_event {
 #define MS_TO_US(msec)		((msec) * 1000)
 #define IR_MAX_DURATION		MS_TO_US(500)
 #define IR_DEFAULT_TIMEOUT	MS_TO_US(125)
+#define IR_MAX_TIMEOUT		LIRC_VALUE_MASK
 
 void ir_raw_event_handle(struct rc_dev *dev);
 int ir_raw_event_store(struct rc_dev *dev, struct ir_raw_event *ev);