1#ifndef B43_LEDS_H_ 2#define B43_LEDS_H_ 3 4struct b43_wl; 5struct b43_wldev; 6 7#ifdef CONFIG_B43_LEDS 8 9#include <linux/types.h> 10#include <linux/leds.h> 11#include <linux/workqueue.h> 12 13 14#define B43_LED_MAX_NAME_LEN 31 15 16struct b43_led { 17 struct b43_wl *wl; 18 /* The LED class device */ 19 struct led_classdev led_dev; 20 /* The index number of the LED. */ 21 u8 index; 22 /* If activelow is true, the LED is ON if the 23 * bit is switched off. */ 24 bool activelow; 25 /* The unique name string for this LED device. */ 26 char name[B43_LED_MAX_NAME_LEN + 1]; 27 /* The current status of the LED. This is updated locklessly. */ 28 atomic_t state; 29 /* The active state in hardware. */ 30 bool hw_state; 31}; 32 33struct b43_leds { 34 struct b43_led led_tx; 35 struct b43_led led_rx; 36 struct b43_led led_radio; 37 struct b43_led led_assoc; 38 39 bool stop; 40 struct work_struct work; 41}; 42 43#define B43_MAX_NR_LEDS 4 44 45#define B43_LED_BEHAVIOUR 0x7F 46#define B43_LED_ACTIVELOW 0x80 47/* LED behaviour values */ 48enum b43_led_behaviour { 49 B43_LED_OFF, 50 B43_LED_ON, 51 B43_LED_ACTIVITY, 52 B43_LED_RADIO_ALL, 53 B43_LED_RADIO_A, 54 B43_LED_RADIO_B, 55 B43_LED_MODE_BG, 56 B43_LED_TRANSFER, 57 B43_LED_APTRANSFER, 58 B43_LED_WEIRD, 59 B43_LED_ASSOC, 60 B43_LED_INACTIVE, 61}; 62 63void b43_leds_register(struct b43_wldev *dev); 64void b43_leds_unregister(struct b43_wl *wl); 65void b43_leds_init(struct b43_wldev *dev); 66void b43_leds_exit(struct b43_wldev *dev); 67void b43_leds_stop(struct b43_wldev *dev); 68 69 70#else /* CONFIG_B43_LEDS */ 71/* LED support disabled */ 72 73struct b43_leds { 74 /* empty */ 75}; 76 77static inline void b43_leds_register(struct b43_wldev *dev) 78{ 79} 80static inline void b43_leds_unregister(struct b43_wl *wl) 81{ 82} 83static inline void b43_leds_init(struct b43_wldev *dev) 84{ 85} 86static inline void b43_leds_exit(struct b43_wldev *dev) 87{ 88} 89static inline void b43_leds_stop(struct b43_wldev *dev) 90{ 91} 92#endif /* CONFIG_B43_LEDS */ 93 94#endif /* B43_LEDS_H_ */ 95