media: rc-loopback: max_timeout of UINT_MAX does not work
authorSean Young <sean@mess.org>
Mon, 5 Jul 2021 17:56:01 +0000 (19:56 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 22 Jul 2021 06:21:03 +0000 (08:21 +0200)
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>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/rc/rc-loopback.c
include/media/rc-core.h

index 67782dd..40fca12 100644 (file)
@@ -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;
index a1019c4..64b43d7 100644 (file)
@@ -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);