diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-14 11:53:37 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-02-26 13:10:24 -0500 |
commit | 971e8298dee4835fc2dfbd207a9786702aa01666 (patch) | |
tree | be01801dd5631acc72eae7c16abbf1b834c66775 | |
parent | 3f831107ed8efc32960e0cd172799bb82f6c81c9 (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.c | 2 | ||||
-rw-r--r-- | drivers/media/IR/ir-sysfs.c | 15 | ||||
-rw-r--r-- | drivers/media/dvb/dm1105/dm1105.c | 2 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-input.c | 2 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-input.c | 2 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-input.c | 2 | ||||
-rw-r--r-- | drivers/media/video/ir-kbd-i2c.c | 2 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 2 | ||||
-rw-r--r-- | include/media/ir-common.h | 4 | ||||
-rw-r--r-- | include/media/ir-core.h | 16 | ||||
-rw-r--r-- | include/media/ir-kbd-i2c.h | 2 |
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 | ||
54 | int ir_input_init(struct input_dev *dev, struct ir_input_state *ir, | 54 | int 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 | ||
343 | int em28xx_ir_change_protocol(void *priv, enum ir_type ir_type) | 343 | int 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 | ||
36 | struct ir_input_state { | 36 | struct 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 | ||
86 | int ir_input_init(struct input_dev *dev, struct ir_input_state *ir, | 86 | int ir_input_init(struct input_dev *dev, struct ir_input_state *ir, |
87 | const enum ir_type ir_type); | 87 | const u64 ir_type); |
88 | void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir); | 88 | void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir); |
89 | void ir_input_keydown(struct input_dev *dev, struct ir_input_state *ir, | 89 | void 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 | ||
24 | enum 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 | ||
32 | struct ir_scancode { | 30 | struct ir_scancode { |
33 | u16 scancode; | 31 | u16 scancode; |
@@ -37,14 +35,14 @@ struct ir_scancode { | |||
37 | struct ir_scancode_table { | 35 | struct 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 | ||
44 | struct ir_dev_props { | 42 | struct 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 { | |||
36 | struct IR_i2c_init_data { | 36 | struct 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 |