forked from luck/tmp_suning_uos_patched
media: rc: no need for decoder state if decoder not enabled
One struct ir_raw_event_ctrl is allocated per raw IR device; reduce the amount allocated if not all decoders are enabled. Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
c4ed27cfed
commit
408d024442
|
@ -64,6 +64,7 @@ struct ir_raw_event_ctrl {
|
|||
u32 bpf_sample;
|
||||
struct bpf_prog_array __rcu *progs;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_NEC_DECODER)
|
||||
struct nec_dec {
|
||||
int state;
|
||||
unsigned count;
|
||||
|
@ -71,12 +72,16 @@ struct ir_raw_event_ctrl {
|
|||
bool is_nec_x;
|
||||
bool necx_repeat;
|
||||
} nec;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_RC5_DECODER)
|
||||
struct rc5_dec {
|
||||
int state;
|
||||
u32 bits;
|
||||
unsigned count;
|
||||
bool is_rc5x;
|
||||
} rc5;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_RC6_DECODER)
|
||||
struct rc6_dec {
|
||||
int state;
|
||||
u8 header;
|
||||
|
@ -85,11 +90,15 @@ struct ir_raw_event_ctrl {
|
|||
unsigned count;
|
||||
unsigned wanted_bits;
|
||||
} rc6;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_SONY_DECODER)
|
||||
struct sony_dec {
|
||||
int state;
|
||||
u32 bits;
|
||||
unsigned count;
|
||||
} sony;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_JVC_DECODER)
|
||||
struct jvc_dec {
|
||||
int state;
|
||||
u16 bits;
|
||||
|
@ -98,17 +107,23 @@ struct ir_raw_event_ctrl {
|
|||
bool first;
|
||||
bool toggle;
|
||||
} jvc;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_SANYO_DECODER)
|
||||
struct sanyo_dec {
|
||||
int state;
|
||||
unsigned count;
|
||||
u64 bits;
|
||||
} sanyo;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_SHARP_DECODER)
|
||||
struct sharp_dec {
|
||||
int state;
|
||||
unsigned count;
|
||||
u32 bits;
|
||||
unsigned int pulse_len;
|
||||
} sharp;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_MCE_KBD_DECODER)
|
||||
struct mce_kbd_dec {
|
||||
/* locks key up timer */
|
||||
spinlock_t keylock;
|
||||
|
@ -119,11 +134,15 @@ struct ir_raw_event_ctrl {
|
|||
unsigned count;
|
||||
unsigned wanted_bits;
|
||||
} mce_kbd;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_XMP_DECODER)
|
||||
struct xmp_dec {
|
||||
int state;
|
||||
unsigned count;
|
||||
u32 durations[16];
|
||||
} xmp;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_IMON_DECODER)
|
||||
struct imon_dec {
|
||||
int state;
|
||||
int count;
|
||||
|
@ -131,11 +150,14 @@ struct ir_raw_event_ctrl {
|
|||
unsigned int bits;
|
||||
bool stick_keyboard;
|
||||
} imon;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IR_RCMM_DECODER)
|
||||
struct rcmm_dec {
|
||||
int state;
|
||||
unsigned int count;
|
||||
u32 bits;
|
||||
} rcmm;
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Mutex for locking raw IR processing and handler change */
|
||||
|
|
Loading…
Reference in New Issue
Block a user