1 /* 2 * Copyright 2006, Johannes Berg <johannes@sipsolutions.net> 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 9 #include <linux/list.h> 10 #include <linux/spinlock.h> 11 #include <linux/leds.h> 12 #include "ieee80211_i.h" 13 14 #ifdef CONFIG_MAC80211_LEDS 15 void ieee80211_led_rx(struct ieee80211_local *local); 16 void ieee80211_led_tx(struct ieee80211_local *local); 17 void ieee80211_led_assoc(struct ieee80211_local *local, 18 bool associated); 19 void ieee80211_led_radio(struct ieee80211_local *local, 20 bool enabled); 21 void ieee80211_led_names(struct ieee80211_local *local); 22 void ieee80211_led_init(struct ieee80211_local *local); 23 void ieee80211_led_exit(struct ieee80211_local *local); 24 void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local, 25 unsigned int types_on, unsigned int types_off); 26 #else 27 static inline void ieee80211_led_rx(struct ieee80211_local *local) 28 { 29 } 30 static inline void ieee80211_led_tx(struct ieee80211_local *local) 31 { 32 } 33 static inline void ieee80211_led_assoc(struct ieee80211_local *local, 34 bool associated) 35 { 36 } 37 static inline void ieee80211_led_radio(struct ieee80211_local *local, 38 bool enabled) 39 { 40 } 41 static inline void ieee80211_led_names(struct ieee80211_local *local) 42 { 43 } 44 static inline void ieee80211_led_init(struct ieee80211_local *local) 45 { 46 } 47 static inline void ieee80211_led_exit(struct ieee80211_local *local) 48 { 49 } 50 static inline void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local, 51 unsigned int types_on, 52 unsigned int types_off) 53 { 54 } 55 #endif 56 57 static inline void 58 ieee80211_tpt_led_trig_tx(struct ieee80211_local *local, __le16 fc, int bytes) 59 { 60 #ifdef CONFIG_MAC80211_LEDS 61 if (local->tpt_led_trigger && ieee80211_is_data(fc)) 62 local->tpt_led_trigger->tx_bytes += bytes; 63 #endif 64 } 65 66 static inline void 67 ieee80211_tpt_led_trig_rx(struct ieee80211_local *local, __le16 fc, int bytes) 68 { 69 #ifdef CONFIG_MAC80211_LEDS 70 if (local->tpt_led_trigger && ieee80211_is_data(fc)) 71 local->tpt_led_trigger->rx_bytes += bytes; 72 #endif 73 } 74