sensor:increase IR_MAX_DURATION to 1000ms
to fix long IR remote timeouts Certain infrared remotes
(e.g., brand-specific smart home remotes, custom consumer electronics)
send extended code sequences that exceed the default 500ms
IR_MAX_DURATION threshold. This causes the kernel's raw
IR driver to discard incomplete code, resulting in unrecognized commands.
Increase IR_MAX_DURATION to 1000ms:
- Aligns with common extended IR protocol specs
(most long sequences use 700-900ms)
- No impact on standard remotes
(all mainstream IR codes are <500ms)
- Validated on vivo X200 and vivo X300,
resolves timeout issues without regressions
Signed-off-by: LiPeng Huang <huanglipeng@vivo.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
static void delay_until(ktime_t until)
{
/*
- * delta should never exceed 0.5 seconds (IR_MAX_DURATION) and on
+ * delta should never exceed 1 second (IR_MAX_DURATION) and on
* m68k ndelay(s64) does not compile; so use s32 rather than s64.
*/
s32 delta;
{
ktime_t edge;
/*
- * delta should never exceed 0.5 seconds (IR_MAX_DURATION) and on
+ * delta should never exceed 1 second (IR_MAX_DURATION) and on
* m68k ndelay(s64) does not compile; so use s32 rather than s64.
*/
s32 delta;
#define US_TO_NS(usec) ((usec) * 1000)
#define MS_TO_US(msec) ((msec) * 1000)
-#define IR_MAX_DURATION MS_TO_US(500)
+#define IR_MAX_DURATION MS_TO_US(1000)
#define IR_DEFAULT_TIMEOUT MS_TO_US(125)
#define IR_MAX_TIMEOUT LIRC_VALUE_MASK