media: lirc: increase IR_MAX_DURATION to send extended code sequences

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>
This commit is contained in:
LiPeng Huang 2026-02-05 09:48:52 +08:00 committed by Hans Verkuil
parent 1f03894b28
commit a93a51f42a
2 changed files with 3 additions and 3 deletions

View File

@ -51,7 +51,7 @@ static int gpio_ir_tx_set_carrier(struct rc_dev *dev, u32 carrier)
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;
@ -95,7 +95,7 @@ static void gpio_ir_tx_modulated(struct gpio_ir *gpio_ir, uint *txbuf,
{
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;

View File

@ -301,7 +301,7 @@ struct ir_raw_event {
#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