1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * Copyright 2006, Johannes Berg <johannes@sip 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. 4 */ 7 */ 5 8 6 #include <linux/list.h> 9 #include <linux/list.h> 7 #include <linux/spinlock.h> 10 #include <linux/spinlock.h> 8 #include <linux/leds.h> 11 #include <linux/leds.h> 9 #include "ieee80211_i.h" 12 #include "ieee80211_i.h" 10 13 11 #define MAC80211_BLINK_DELAY 50 /* ms */ << 12 << 13 static inline void ieee80211_led_rx(struct iee << 14 { << 15 #ifdef CONFIG_MAC80211_LEDS << 16 if (!atomic_read(&local->rx_led_active << 17 return; << 18 led_trigger_blink_oneshot(&local->rx_l << 19 #endif << 20 } << 21 << 22 static inline void ieee80211_led_tx(struct iee << 23 { << 24 #ifdef CONFIG_MAC80211_LEDS << 25 if (!atomic_read(&local->tx_led_active << 26 return; << 27 led_trigger_blink_oneshot(&local->tx_l << 28 #endif << 29 } << 30 << 31 #ifdef CONFIG_MAC80211_LEDS 14 #ifdef CONFIG_MAC80211_LEDS >> 15 void ieee80211_led_rx(struct ieee80211_local *local); >> 16 void ieee80211_led_tx(struct ieee80211_local *local, int q); 32 void ieee80211_led_assoc(struct ieee80211_loca 17 void ieee80211_led_assoc(struct ieee80211_local *local, 33 bool associated); 18 bool associated); 34 void ieee80211_led_radio(struct ieee80211_loca 19 void ieee80211_led_radio(struct ieee80211_local *local, 35 bool enabled); 20 bool enabled); 36 void ieee80211_alloc_led_names(struct ieee8021 !! 21 void ieee80211_led_names(struct ieee80211_local *local); 37 void ieee80211_free_led_names(struct ieee80211 << 38 void ieee80211_led_init(struct ieee80211_local 22 void ieee80211_led_init(struct ieee80211_local *local); 39 void ieee80211_led_exit(struct ieee80211_local 23 void ieee80211_led_exit(struct ieee80211_local *local); 40 void ieee80211_mod_tpt_led_trig(struct ieee802 24 void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local, 41 unsigned int t 25 unsigned int types_on, unsigned int types_off); 42 #else 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, int q) >> 31 { >> 32 } 43 static inline void ieee80211_led_assoc(struct 33 static inline void ieee80211_led_assoc(struct ieee80211_local *local, 44 bool as 34 bool associated) 45 { 35 { 46 } 36 } 47 static inline void ieee80211_led_radio(struct 37 static inline void ieee80211_led_radio(struct ieee80211_local *local, 48 bool en 38 bool enabled) 49 { 39 { 50 } 40 } 51 static inline void ieee80211_alloc_led_names(s !! 41 static inline void ieee80211_led_names(struct ieee80211_local *local) 52 { << 53 } << 54 static inline void ieee80211_free_led_names(st << 55 { 42 { 56 } 43 } 57 static inline void ieee80211_led_init(struct i 44 static inline void ieee80211_led_init(struct ieee80211_local *local) 58 { 45 { 59 } 46 } 60 static inline void ieee80211_led_exit(struct i 47 static inline void ieee80211_led_exit(struct ieee80211_local *local) 61 { 48 { 62 } 49 } 63 static inline void ieee80211_mod_tpt_led_trig( 50 static inline void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local, 64 51 unsigned int types_on, 65 52 unsigned int types_off) 66 { 53 { 67 } 54 } 68 #endif 55 #endif 69 56 70 static inline void 57 static inline void 71 ieee80211_tpt_led_trig_tx(struct ieee80211_loc !! 58 ieee80211_tpt_led_trig_tx(struct ieee80211_local *local, __le16 fc, int bytes) 72 { 59 { 73 #ifdef CONFIG_MAC80211_LEDS 60 #ifdef CONFIG_MAC80211_LEDS 74 if (atomic_read(&local->tpt_led_active !! 61 if (local->tpt_led_trigger && ieee80211_is_data(fc)) 75 local->tpt_led_trigger->tx_byt 62 local->tpt_led_trigger->tx_bytes += bytes; 76 #endif 63 #endif 77 } 64 } 78 65 79 static inline void 66 static inline void 80 ieee80211_tpt_led_trig_rx(struct ieee80211_loc !! 67 ieee80211_tpt_led_trig_rx(struct ieee80211_local *local, __le16 fc, int bytes) 81 { 68 { 82 #ifdef CONFIG_MAC80211_LEDS 69 #ifdef CONFIG_MAC80211_LEDS 83 if (atomic_read(&local->tpt_led_active !! 70 if (local->tpt_led_trigger && ieee80211_is_data(fc)) 84 local->tpt_led_trigger->rx_byt 71 local->tpt_led_trigger->rx_bytes += bytes; 85 #endif 72 #endif 86 } 73 } 87 74
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.