forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
1.9 KiB
95 lines
1.9 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef B43_LEDS_H_ |
|
#define B43_LEDS_H_ |
|
|
|
struct b43_wl; |
|
struct b43_wldev; |
|
|
|
#ifdef CONFIG_B43_LEDS |
|
|
|
#include <linux/types.h> |
|
#include <linux/leds.h> |
|
#include <linux/workqueue.h> |
|
|
|
|
|
#define B43_LED_MAX_NAME_LEN 31 |
|
|
|
struct b43_led { |
|
struct b43_wl *wl; |
|
/* The LED class device */ |
|
struct led_classdev led_dev; |
|
/* The index number of the LED. */ |
|
u8 index; |
|
/* If activelow is true, the LED is ON if the |
|
* bit is switched off. */ |
|
bool activelow; |
|
/* The unique name string for this LED device. */ |
|
char name[B43_LED_MAX_NAME_LEN + 1]; |
|
/* The current status of the LED. This is updated locklessly. */ |
|
atomic_t state; |
|
/* The active state in hardware. */ |
|
bool hw_state; |
|
}; |
|
|
|
struct b43_leds { |
|
struct b43_led led_tx; |
|
struct b43_led led_rx; |
|
struct b43_led led_radio; |
|
struct b43_led led_assoc; |
|
|
|
bool stop; |
|
struct work_struct work; |
|
}; |
|
|
|
#define B43_MAX_NR_LEDS 4 |
|
|
|
#define B43_LED_BEHAVIOUR 0x7F |
|
#define B43_LED_ACTIVELOW 0x80 |
|
/* LED behaviour values */ |
|
enum b43_led_behaviour { |
|
B43_LED_OFF, |
|
B43_LED_ON, |
|
B43_LED_ACTIVITY, |
|
B43_LED_RADIO_ALL, |
|
B43_LED_RADIO_A, |
|
B43_LED_RADIO_B, |
|
B43_LED_MODE_BG, |
|
B43_LED_TRANSFER, |
|
B43_LED_APTRANSFER, |
|
B43_LED_WEIRD, //FIXME |
|
B43_LED_ASSOC, |
|
B43_LED_INACTIVE, |
|
}; |
|
|
|
void b43_leds_register(struct b43_wldev *dev); |
|
void b43_leds_unregister(struct b43_wl *wl); |
|
void b43_leds_init(struct b43_wldev *dev); |
|
void b43_leds_exit(struct b43_wldev *dev); |
|
void b43_leds_stop(struct b43_wldev *dev); |
|
|
|
|
|
#else /* CONFIG_B43_LEDS */ |
|
/* LED support disabled */ |
|
|
|
struct b43_leds { |
|
/* empty */ |
|
}; |
|
|
|
static inline void b43_leds_register(struct b43_wldev *dev) |
|
{ |
|
} |
|
static inline void b43_leds_unregister(struct b43_wl *wl) |
|
{ |
|
} |
|
static inline void b43_leds_init(struct b43_wldev *dev) |
|
{ |
|
} |
|
static inline void b43_leds_exit(struct b43_wldev *dev) |
|
{ |
|
} |
|
static inline void b43_leds_stop(struct b43_wldev *dev) |
|
{ |
|
} |
|
#endif /* CONFIG_B43_LEDS */ |
|
|
|
#endif /* B43_LEDS_H_ */
|
|
|