linux/drivers/net/wireless/b43/leds.h
<<
>>
Prefs
   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,          //FIXME
  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