mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 00:34:20 +08:00
971e8298de
When preparing the linux-next patches, I got those errors: include/media/ir-core.h:29: warning: left shift count >= width of type In file included from include/media/ir-common.h:29, from drivers/media/video/ir-kbd-i2c.c:50: drivers/media/video/ir-kbd-i2c.c: In function ‘ir_probe’: drivers/media/video/ir-kbd-i2c.c:324: warning: left shift count >= width of type Unfortunately, enum is 32 bits on i386. As we define IR_TYPE_OTHER as 1<<63, it won't work on non 64 bits arch. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
#ifndef _IR_I2C
|
|
#define _IR_I2C
|
|
|
|
#include <media/ir-common.h>
|
|
|
|
struct IR_i2c;
|
|
|
|
struct IR_i2c {
|
|
struct ir_scancode_table *ir_codes;
|
|
|
|
struct i2c_client *c;
|
|
struct input_dev *input;
|
|
struct ir_input_state ir;
|
|
|
|
/* Used to avoid fast repeating */
|
|
unsigned char old;
|
|
|
|
struct delayed_work work;
|
|
char name[32];
|
|
char phys[32];
|
|
int (*get_key)(struct IR_i2c*, u32*, u32*);
|
|
};
|
|
|
|
enum ir_kbd_get_key_fn {
|
|
IR_KBD_GET_KEY_CUSTOM = 0,
|
|
IR_KBD_GET_KEY_PIXELVIEW,
|
|
IR_KBD_GET_KEY_PV951,
|
|
IR_KBD_GET_KEY_HAUP,
|
|
IR_KBD_GET_KEY_KNC1,
|
|
IR_KBD_GET_KEY_FUSIONHDTV,
|
|
IR_KBD_GET_KEY_HAUP_XVR,
|
|
IR_KBD_GET_KEY_AVERMEDIA_CARDBUS,
|
|
};
|
|
|
|
/* Can be passed when instantiating an ir_video i2c device */
|
|
struct IR_i2c_init_data {
|
|
struct ir_scancode_table *ir_codes;
|
|
const char *name;
|
|
u64 type; /* IR_TYPE_RC5, IR_TYPE_PD, etc */
|
|
/*
|
|
* Specify either a function pointer or a value indicating one of
|
|
* ir_kbd_i2c's internal get_key functions
|
|
*/
|
|
int (*get_key)(struct IR_i2c*, u32*, u32*);
|
|
enum ir_kbd_get_key_fn internal_get_key_func;
|
|
};
|
|
#endif
|