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>master
parent
1f03894b28
commit
a93a51f42a
|
|
@ -51,7 +51,7 @@ static int gpio_ir_tx_set_carrier(struct rc_dev *dev, u32 carrier)
|
||||||
static void delay_until(ktime_t until)
|
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.
|
* m68k ndelay(s64) does not compile; so use s32 rather than s64.
|
||||||
*/
|
*/
|
||||||
s32 delta;
|
s32 delta;
|
||||||
|
|
@ -95,7 +95,7 @@ static void gpio_ir_tx_modulated(struct gpio_ir *gpio_ir, uint *txbuf,
|
||||||
{
|
{
|
||||||
ktime_t edge;
|
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.
|
* m68k ndelay(s64) does not compile; so use s32 rather than s64.
|
||||||
*/
|
*/
|
||||||
s32 delta;
|
s32 delta;
|
||||||
|
|
|
||||||
|
|
@ -301,7 +301,7 @@ struct ir_raw_event {
|
||||||
|
|
||||||
#define US_TO_NS(usec) ((usec) * 1000)
|
#define US_TO_NS(usec) ((usec) * 1000)
|
||||||
#define MS_TO_US(msec) ((msec) * 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_DEFAULT_TIMEOUT MS_TO_US(125)
|
||||||
#define IR_MAX_TIMEOUT LIRC_VALUE_MASK
|
#define IR_MAX_TIMEOUT LIRC_VALUE_MASK
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue