root/net/mac80211/led.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. ieee80211_led_rx
  2. ieee80211_led_tx
  3. ieee80211_led_assoc
  4. ieee80211_led_radio
  5. ieee80211_alloc_led_names
  6. ieee80211_free_led_names
  7. ieee80211_led_init
  8. ieee80211_led_exit
  9. ieee80211_mod_tpt_led_trig
  10. ieee80211_tpt_led_trig_tx
  11. ieee80211_tpt_led_trig_rx

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright 2006, Johannes Berg <johannes@sipsolutions.net>
   4  */
   5 
   6 #include <linux/list.h>
   7 #include <linux/spinlock.h>
   8 #include <linux/leds.h>
   9 #include "ieee80211_i.h"
  10 
  11 #define MAC80211_BLINK_DELAY 50 /* ms */
  12 
  13 static inline void ieee80211_led_rx(struct ieee80211_local *local)
  14 {
  15 #ifdef CONFIG_MAC80211_LEDS
  16         unsigned long led_delay = MAC80211_BLINK_DELAY;
  17 
  18         if (!atomic_read(&local->rx_led_active))
  19                 return;
  20         led_trigger_blink_oneshot(&local->rx_led, &led_delay, &led_delay, 0);
  21 #endif
  22 }
  23 
  24 static inline void ieee80211_led_tx(struct ieee80211_local *local)
  25 {
  26 #ifdef CONFIG_MAC80211_LEDS
  27         unsigned long led_delay = MAC80211_BLINK_DELAY;
  28 
  29         if (!atomic_read(&local->tx_led_active))
  30                 return;
  31         led_trigger_blink_oneshot(&local->tx_led, &led_delay, &led_delay, 0);
  32 #endif
  33 }
  34 
  35 #ifdef CONFIG_MAC80211_LEDS
  36 void ieee80211_led_assoc(struct ieee80211_local *local,
  37                          bool associated);
  38 void ieee80211_led_radio(struct ieee80211_local *local,
  39                          bool enabled);
  40 void ieee80211_alloc_led_names(struct ieee80211_local *local);
  41 void ieee80211_free_led_names(struct ieee80211_local *local);
  42 void ieee80211_led_init(struct ieee80211_local *local);
  43 void ieee80211_led_exit(struct ieee80211_local *local);
  44 void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local,
  45                                 unsigned int types_on, unsigned int types_off);
  46 #else
  47 static inline void ieee80211_led_assoc(struct ieee80211_local *local,
  48                                        bool associated)
  49 {
  50 }
  51 static inline void ieee80211_led_radio(struct ieee80211_local *local,
  52                                        bool enabled)
  53 {
  54 }
  55 static inline void ieee80211_alloc_led_names(struct ieee80211_local *local)
  56 {
  57 }
  58 static inline void ieee80211_free_led_names(struct ieee80211_local *local)
  59 {
  60 }
  61 static inline void ieee80211_led_init(struct ieee80211_local *local)
  62 {
  63 }
  64 static inline void ieee80211_led_exit(struct ieee80211_local *local)
  65 {
  66 }
  67 static inline void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local,
  68                                               unsigned int types_on,
  69                                               unsigned int types_off)
  70 {
  71 }
  72 #endif
  73 
  74 static inline void
  75 ieee80211_tpt_led_trig_tx(struct ieee80211_local *local, __le16 fc, int bytes)
  76 {
  77 #ifdef CONFIG_MAC80211_LEDS
  78         if (ieee80211_is_data(fc) && atomic_read(&local->tpt_led_active))
  79                 local->tpt_led_trigger->tx_bytes += bytes;
  80 #endif
  81 }
  82 
  83 static inline void
  84 ieee80211_tpt_led_trig_rx(struct ieee80211_local *local, __le16 fc, int bytes)
  85 {
  86 #ifdef CONFIG_MAC80211_LEDS
  87         if (ieee80211_is_data(fc) && atomic_read(&local->tpt_led_active))
  88                 local->tpt_led_trigger->rx_bytes += bytes;
  89 #endif
  90 }

/* [<][>][^][v][top][bottom][index][help] */