aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-12-14 11:53:37 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-02-26 13:10:24 -0500
commit971e8298dee4835fc2dfbd207a9786702aa01666 (patch)
treebe01801dd5631acc72eae7c16abbf1b834c66775
parent3f831107ed8efc32960e0cd172799bb82f6c81c9 (diff)
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>
-rw-r--r--drivers/media/IR/ir-functions.c2
-rw-r--r--drivers/media/IR/ir-sysfs.c15
-rw-r--r--drivers/media/dvb/dm1105/dm1105.c2
-rw-r--r--drivers/media/video/bt8xx/bttv-input.c2
-rw-r--r--drivers/media/video/cx88/cx88-input.c2
-rw-r--r--drivers/media/video/em28xx/em28xx-input.c2
-rw-r--r--drivers/media/video/ir-kbd-i2c.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c2
-rw-r--r--include/media/ir-common.h4
-rw-r--r--include/media/ir-core.h16
-rw-r--r--include/media/ir-kbd-i2c.h2
11 files changed, 26 insertions, 25 deletions
diff --git a/drivers/media/IR/ir-functions.c b/drivers/media/IR/ir-functions.c
index b501ac9d401d..ab06919ad5fc 100644
--- a/drivers/media/IR/ir-functions.c
+++ b/drivers/media/IR/ir-functions.c
@@ -52,7 +52,7 @@ static void ir_input_key_event(struct input_dev *dev, struct ir_input_state *ir)
52/* -------------------------------------------------------------------------- */ 52/* -------------------------------------------------------------------------- */
53 53
54int ir_input_init(struct input_dev *dev, struct ir_input_state *ir, 54int ir_input_init(struct input_dev *dev, struct ir_input_state *ir,
55 const enum ir_type ir_type) 55 const u64 ir_type)
56{ 56{
57 ir->ir_type = ir_type; 57 ir->ir_type = ir_type;
58 58
diff --git a/drivers/media/IR/ir-sysfs.c b/drivers/media/IR/ir-sysfs.c
index d73589ad55e6..d67c11d9921f 100644
--- a/drivers/media/IR/ir-sysfs.c
+++ b/drivers/media/IR/ir-sysfs.c
@@ -39,9 +39,9 @@ static ssize_t show_protocol(struct device *d,
39{ 39{
40 char *s; 40 char *s;
41 struct ir_input_dev *ir_dev = dev_get_drvdata(d); 41 struct ir_input_dev *ir_dev = dev_get_drvdata(d);
42 enum ir_type ir_type = ir_dev->rc_tab.ir_type; 42 u64 ir_type = ir_dev->rc_tab.ir_type;
43 43
44 IR_dprintk(1, "Current protocol is %ld\n", ir_type); 44 IR_dprintk(1, "Current protocol is %lld\n", (long long)ir_type);
45 45
46 /* FIXME: doesn't support multiple protocols at the same time */ 46 /* FIXME: doesn't support multiple protocols at the same time */
47 if (ir_type == IR_TYPE_UNKNOWN) 47 if (ir_type == IR_TYPE_UNKNOWN)
@@ -77,7 +77,7 @@ static ssize_t store_protocol(struct device *d,
77 size_t len) 77 size_t len)
78{ 78{
79 struct ir_input_dev *ir_dev = dev_get_drvdata(d); 79 struct ir_input_dev *ir_dev = dev_get_drvdata(d);
80 enum ir_type ir_type = IR_TYPE_UNKNOWN; 80 u64 ir_type = IR_TYPE_UNKNOWN;
81 int rc = -EINVAL; 81 int rc = -EINVAL;
82 unsigned long flags; 82 unsigned long flags;
83 char *buf; 83 char *buf;
@@ -92,7 +92,8 @@ static ssize_t store_protocol(struct device *d,
92 ir_type = IR_TYPE_NEC; 92 ir_type = IR_TYPE_NEC;
93 93
94 if (ir_type == IR_TYPE_UNKNOWN) { 94 if (ir_type == IR_TYPE_UNKNOWN) {
95 IR_dprintk(1, "Error setting protocol to %ld\n", ir_type); 95 IR_dprintk(1, "Error setting protocol to %lld\n",
96 (long long)ir_type);
96 return -EINVAL; 97 return -EINVAL;
97 } 98 }
98 99
@@ -101,7 +102,8 @@ static ssize_t store_protocol(struct device *d,
101 ir_type); 102 ir_type);
102 103
103 if (rc < 0) { 104 if (rc < 0) {
104 IR_dprintk(1, "Error setting protocol to %ld\n", ir_type); 105 IR_dprintk(1, "Error setting protocol to %lld\n",
106 (long long)ir_type);
105 return -EINVAL; 107 return -EINVAL;
106 } 108 }
107 109
@@ -109,7 +111,8 @@ static ssize_t store_protocol(struct device *d,
109 ir_dev->rc_tab.ir_type = ir_type; 111 ir_dev->rc_tab.ir_type = ir_type;
110 spin_unlock_irqrestore(&ir_dev->rc_tab.lock, flags); 112 spin_unlock_irqrestore(&ir_dev->rc_tab.lock, flags);
111 113
112 IR_dprintk(1, "Current protocol is %ld\n", ir_type); 114 IR_dprintk(1, "Current protocol is %lld\n",
115 (long long)ir_type);
113 116
114 return len; 117 return len;
115} 118}
diff --git a/drivers/media/dvb/dm1105/dm1105.c b/drivers/media/dvb/dm1105/dm1105.c
index 414d3b2444a2..aadf803c261c 100644
--- a/drivers/media/dvb/dm1105/dm1105.c
+++ b/drivers/media/dvb/dm1105/dm1105.c
@@ -578,7 +578,7 @@ int __devinit dm1105_ir_init(struct dm1105dvb *dm1105)
578{ 578{
579 struct input_dev *input_dev; 579 struct input_dev *input_dev;
580 struct ir_scancode_table *ir_codes = &ir_codes_dm1105_nec_table; 580 struct ir_scancode_table *ir_codes = &ir_codes_dm1105_nec_table;
581 enum ir_type ir_type = IR_TYPE_OTHER; 581 u64 ir_type = IR_TYPE_OTHER;
582 int err = -ENOMEM; 582 int err = -ENOMEM;
583 583
584 input_dev = input_allocate_device(); 584 input_dev = input_allocate_device();
diff --git a/drivers/media/video/bt8xx/bttv-input.c b/drivers/media/video/bt8xx/bttv-input.c
index f8053fd88346..b320dbd635aa 100644
--- a/drivers/media/video/bt8xx/bttv-input.c
+++ b/drivers/media/video/bt8xx/bttv-input.c
@@ -247,7 +247,7 @@ int bttv_input_init(struct bttv *btv)
247 struct card_ir *ir; 247 struct card_ir *ir;
248 struct ir_scancode_table *ir_codes = NULL; 248 struct ir_scancode_table *ir_codes = NULL;
249 struct input_dev *input_dev; 249 struct input_dev *input_dev;
250 enum ir_type ir_type = IR_TYPE_OTHER; 250 u64 ir_type = IR_TYPE_OTHER;
251 int err = -ENOMEM; 251 int err = -ENOMEM;
252 252
253 if (!btv->has_remote) 253 if (!btv->has_remote)
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index 49c07535e754..de180d4d5a21 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -192,7 +192,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
192 struct cx88_IR *ir; 192 struct cx88_IR *ir;
193 struct input_dev *input_dev; 193 struct input_dev *input_dev;
194 struct ir_scancode_table *ir_codes = NULL; 194 struct ir_scancode_table *ir_codes = NULL;
195 enum ir_type ir_type = IR_TYPE_OTHER; 195 u64 ir_type = IR_TYPE_OTHER;
196 int err = -ENOMEM; 196 int err = -ENOMEM;
197 197
198 ir = kzalloc(sizeof(*ir), GFP_KERNEL); 198 ir = kzalloc(sizeof(*ir), GFP_KERNEL);
diff --git a/drivers/media/video/em28xx/em28xx-input.c b/drivers/media/video/em28xx/em28xx-input.c
index 674622372d4d..69dcf0cc1f1e 100644
--- a/drivers/media/video/em28xx/em28xx-input.c
+++ b/drivers/media/video/em28xx/em28xx-input.c
@@ -340,7 +340,7 @@ static void em28xx_ir_stop(struct em28xx_IR *ir)
340 cancel_delayed_work_sync(&ir->work); 340 cancel_delayed_work_sync(&ir->work);
341} 341}
342 342
343int em28xx_ir_change_protocol(void *priv, enum ir_type ir_type) 343int em28xx_ir_change_protocol(void *priv, u64 ir_type)
344{ 344{
345 int rc = 0; 345 int rc = 0;
346 struct em28xx_IR *ir = priv; 346 struct em28xx_IR *ir = priv;
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c
index 4cd75a3c47d1..094e21dbb14f 100644
--- a/drivers/media/video/ir-kbd-i2c.c
+++ b/drivers/media/video/ir-kbd-i2c.c
@@ -299,7 +299,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
299{ 299{
300 struct ir_scancode_table *ir_codes = NULL; 300 struct ir_scancode_table *ir_codes = NULL;
301 const char *name = NULL; 301 const char *name = NULL;
302 enum ir_type ir_type = 0; 302 u64 ir_type = 0;
303 struct IR_i2c *ir; 303 struct IR_i2c *ir;
304 struct input_dev *input_dev; 304 struct input_dev *input_dev;
305 struct i2c_adapter *adap = client->adapter; 305 struct i2c_adapter *adap = client->adapter;
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c
index 71b4b01824ac..a4eaf1b75d70 100644
--- a/drivers/media/video/saa7134/saa7134-input.c
+++ b/drivers/media/video/saa7134/saa7134-input.c
@@ -460,7 +460,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
460 int polling = 0; 460 int polling = 0;
461 int rc5_gpio = 0; 461 int rc5_gpio = 0;
462 int nec_gpio = 0; 462 int nec_gpio = 0;
463 enum ir_type ir_type = IR_TYPE_OTHER; 463 u64 ir_type = IR_TYPE_OTHER;
464 int err; 464 int err;
465 465
466 if (dev->has_remote != SAA7134_REMOTE_GPIO) 466 if (dev->has_remote != SAA7134_REMOTE_GPIO)
diff --git a/include/media/ir-common.h b/include/media/ir-common.h
index 1b43b772165a..015db75b42f6 100644
--- a/include/media/ir-common.h
+++ b/include/media/ir-common.h
@@ -35,7 +35,7 @@
35 35
36struct ir_input_state { 36struct ir_input_state {
37 /* configuration */ 37 /* configuration */
38 enum ir_type ir_type; 38 u64 ir_type;
39 39
40 /* key info */ 40 /* key info */
41 u32 ir_key; /* ir scancode */ 41 u32 ir_key; /* ir scancode */
@@ -84,7 +84,7 @@ struct card_ir {
84/* Routines from ir-functions.c */ 84/* Routines from ir-functions.c */
85 85
86int ir_input_init(struct input_dev *dev, struct ir_input_state *ir, 86int ir_input_init(struct input_dev *dev, struct ir_input_state *ir,
87 const enum ir_type ir_type); 87 const u64 ir_type);
88void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir); 88void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir);
89void ir_input_keydown(struct input_dev *dev, struct ir_input_state *ir, 89void ir_input_keydown(struct input_dev *dev, struct ir_input_state *ir,
90 u32 ir_key); 90 u32 ir_key);
diff --git a/include/media/ir-core.h b/include/media/ir-core.h
index a6d07dede09f..d96f25a08451 100644
--- a/include/media/ir-core.h
+++ b/include/media/ir-core.h
@@ -21,13 +21,11 @@ extern int ir_core_debug;
21#define IR_dprintk(level, fmt, arg...) if (ir_core_debug >= level) \ 21#define IR_dprintk(level, fmt, arg...) if (ir_core_debug >= level) \
22 printk(KERN_DEBUG "%s: " fmt , __func__, ## arg) 22 printk(KERN_DEBUG "%s: " fmt , __func__, ## arg)
23 23
24enum ir_type { 24#define IR_TYPE_UNKNOWN 0
25 IR_TYPE_UNKNOWN = 0, 25#define IR_TYPE_RC5 (1 << 0) /* Philips RC5 protocol */
26 IR_TYPE_RC5 = 1L << 0, /* Philips RC5 protocol */ 26#define IR_TYPE_PD (1 << 1) /* Pulse distance encoded IR */
27 IR_TYPE_PD = 1L << 1, /* Pulse distance encoded IR */ 27#define IR_TYPE_NEC (1 << 2)
28 IR_TYPE_NEC = 1L << 2, 28#define IR_TYPE_OTHER (((u64)1) << 63l)
29 IR_TYPE_OTHER = 1L << 63,
30};
31 29
32struct ir_scancode { 30struct ir_scancode {
33 u16 scancode; 31 u16 scancode;
@@ -37,14 +35,14 @@ struct ir_scancode {
37struct ir_scancode_table { 35struct ir_scancode_table {
38 struct ir_scancode *scan; 36 struct ir_scancode *scan;
39 int size; 37 int size;
40 enum ir_type ir_type; 38 u64 ir_type;
41 spinlock_t lock; 39 spinlock_t lock;
42}; 40};
43 41
44struct ir_dev_props { 42struct ir_dev_props {
45 unsigned long allowed_protos; 43 unsigned long allowed_protos;
46 void *priv; 44 void *priv;
47 int (*change_protocol)(void *priv, enum ir_type ir_type); 45 int (*change_protocol)(void *priv, u64 ir_type);
48}; 46};
49 47
50 48
diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h
index 45926e3559f3..9142936603cc 100644
--- a/include/media/ir-kbd-i2c.h
+++ b/include/media/ir-kbd-i2c.h
@@ -36,7 +36,7 @@ enum ir_kbd_get_key_fn {
36struct IR_i2c_init_data { 36struct IR_i2c_init_data {
37 struct ir_scancode_table *ir_codes; 37 struct ir_scancode_table *ir_codes;
38 const char *name; 38 const char *name;
39 enum ir_type type; /* IR_TYPE_RC5, IR_TYPE_PD, etc */ 39 u64 type; /* IR_TYPE_RC5, IR_TYPE_PD, etc */
40 /* 40 /*
41 * Specify either a function pointer or a value indicating one of 41 * Specify either a function pointer or a value indicating one of
42 * ir_kbd_i2c's internal get_key functions 42 * ir_kbd_i2c's internal get_key functions