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>
diff --git a/drivers/media/IR/ir-sysfs.c b/drivers/media/IR/ir-sysfs.c
index d73589a..d67c11d 100644
--- a/drivers/media/IR/ir-sysfs.c
+++ b/drivers/media/IR/ir-sysfs.c
@@ -39,9 +39,9 @@
{
char *s;
struct ir_input_dev *ir_dev = dev_get_drvdata(d);
- enum ir_type ir_type = ir_dev->rc_tab.ir_type;
+ u64 ir_type = ir_dev->rc_tab.ir_type;
- IR_dprintk(1, "Current protocol is %ld\n", ir_type);
+ IR_dprintk(1, "Current protocol is %lld\n", (long long)ir_type);
/* FIXME: doesn't support multiple protocols at the same time */
if (ir_type == IR_TYPE_UNKNOWN)
@@ -77,7 +77,7 @@
size_t len)
{
struct ir_input_dev *ir_dev = dev_get_drvdata(d);
- enum ir_type ir_type = IR_TYPE_UNKNOWN;
+ u64 ir_type = IR_TYPE_UNKNOWN;
int rc = -EINVAL;
unsigned long flags;
char *buf;
@@ -92,7 +92,8 @@
ir_type = IR_TYPE_NEC;
if (ir_type == IR_TYPE_UNKNOWN) {
- IR_dprintk(1, "Error setting protocol to %ld\n", ir_type);
+ IR_dprintk(1, "Error setting protocol to %lld\n",
+ (long long)ir_type);
return -EINVAL;
}
@@ -101,7 +102,8 @@
ir_type);
if (rc < 0) {
- IR_dprintk(1, "Error setting protocol to %ld\n", ir_type);
+ IR_dprintk(1, "Error setting protocol to %lld\n",
+ (long long)ir_type);
return -EINVAL;
}
@@ -109,7 +111,8 @@
ir_dev->rc_tab.ir_type = ir_type;
spin_unlock_irqrestore(&ir_dev->rc_tab.lock, flags);
- IR_dprintk(1, "Current protocol is %ld\n", ir_type);
+ IR_dprintk(1, "Current protocol is %lld\n",
+ (long long)ir_type);
return len;
}