b43legacy: rewrite and fix rfkill initialization
[safe/jmp/linux-2.6] / drivers / net / wireless / b43legacy / rfkill.h
1 #ifndef B43legacy_RFKILL_H_
2 #define B43legacy_RFKILL_H_
3
4 struct b43legacy_wldev;
5
6 #ifdef CONFIG_B43LEGACY_RFKILL
7
8 #include <linux/rfkill.h>
9 #include <linux/workqueue.h>
10 #include <linux/input-polldev.h>
11
12
13
14 struct b43legacy_rfkill {
15         /* The RFKILL subsystem data structure */
16         struct rfkill *rfkill;
17         /* The poll device for the RFKILL input button */
18         struct input_polled_dev *poll_dev;
19         /* Did initialization succeed? Used for freeing. */
20         bool registered;
21         /* The unique name of this rfkill switch */
22         char name[sizeof("b43legacy-phy4294967295")];
23 };
24
25 /* The init function returns void, because we are not interested
26  * in failing the b43 init process when rfkill init failed. */
27 void b43legacy_rfkill_init(struct b43legacy_wldev *dev);
28 void b43legacy_rfkill_exit(struct b43legacy_wldev *dev);
29
30 char *b43legacy_rfkill_led_name(struct b43legacy_wldev *dev);
31
32
33 #else /* CONFIG_B43LEGACY_RFKILL */
34 /* No RFKILL support. */
35
36 struct b43legacy_rfkill {
37         /* empty */
38 };
39
40 static inline void b43legacy_rfkill_alloc(struct b43legacy_wldev *dev)
41 {
42 }
43 static inline void b43legacy_rfkill_free(struct b43legacy_wldev *dev)
44 {
45 }
46 static inline void b43legacy_rfkill_init(struct b43legacy_wldev *dev)
47 {
48 }
49 static inline void b43legacy_rfkill_exit(struct b43legacy_wldev *dev)
50 {
51 }
52 static inline char *b43legacy_rfkill_led_name(struct b43legacy_wldev *dev)
53 {
54         return NULL;
55 }
56
57 #endif /* CONFIG_B43LEGACY_RFKILL */
58
59 #endif /* B43legacy_RFKILL_H_ */