V4L/DVB (13680): ir: use unsigned long instead of enum

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>
This commit is contained in:
Mauro Carvalho Chehab
2009-12-14 13:53:37 -03:00
parent 3f831107ed
commit 971e8298de
11 changed files with 26 additions and 25 deletions

View File

@@ -21,13 +21,11 @@ extern int ir_core_debug;
#define IR_dprintk(level, fmt, arg...) if (ir_core_debug >= level) \
printk(KERN_DEBUG "%s: " fmt , __func__, ## arg)
enum ir_type {
IR_TYPE_UNKNOWN = 0,
IR_TYPE_RC5 = 1L << 0, /* Philips RC5 protocol */
IR_TYPE_PD = 1L << 1, /* Pulse distance encoded IR */
IR_TYPE_NEC = 1L << 2,
IR_TYPE_OTHER = 1L << 63,
};
#define IR_TYPE_UNKNOWN 0
#define IR_TYPE_RC5 (1 << 0) /* Philips RC5 protocol */
#define IR_TYPE_PD (1 << 1) /* Pulse distance encoded IR */
#define IR_TYPE_NEC (1 << 2)
#define IR_TYPE_OTHER (((u64)1) << 63l)
struct ir_scancode {
u16 scancode;
@@ -37,14 +35,14 @@ struct ir_scancode {
struct ir_scancode_table {
struct ir_scancode *scan;
int size;
enum ir_type ir_type;
u64 ir_type;
spinlock_t lock;
};
struct ir_dev_props {
unsigned long allowed_protos;
void *priv;
int (*change_protocol)(void *priv, enum ir_type ir_type);
int (*change_protocol)(void *priv, u64 ir_type);
};