Lines Matching full:local
15 void ieee80211_led_assoc(struct ieee80211_local *local, bool associated) in ieee80211_led_assoc() argument
17 if (!atomic_read(&local->assoc_led_active)) in ieee80211_led_assoc()
20 led_trigger_event(&local->assoc_led, LED_FULL); in ieee80211_led_assoc()
22 led_trigger_event(&local->assoc_led, LED_OFF); in ieee80211_led_assoc()
25 void ieee80211_led_radio(struct ieee80211_local *local, bool enabled) in ieee80211_led_radio() argument
27 if (!atomic_read(&local->radio_led_active)) in ieee80211_led_radio()
30 led_trigger_event(&local->radio_led, LED_FULL); in ieee80211_led_radio()
32 led_trigger_event(&local->radio_led, LED_OFF); in ieee80211_led_radio()
35 void ieee80211_alloc_led_names(struct ieee80211_local *local) in ieee80211_alloc_led_names() argument
37 local->rx_led.name = kasprintf(GFP_KERNEL, "%srx", in ieee80211_alloc_led_names()
38 wiphy_name(local->hw.wiphy)); in ieee80211_alloc_led_names()
39 local->tx_led.name = kasprintf(GFP_KERNEL, "%stx", in ieee80211_alloc_led_names()
40 wiphy_name(local->hw.wiphy)); in ieee80211_alloc_led_names()
41 local->assoc_led.name = kasprintf(GFP_KERNEL, "%sassoc", in ieee80211_alloc_led_names()
42 wiphy_name(local->hw.wiphy)); in ieee80211_alloc_led_names()
43 local->radio_led.name = kasprintf(GFP_KERNEL, "%sradio", in ieee80211_alloc_led_names()
44 wiphy_name(local->hw.wiphy)); in ieee80211_alloc_led_names()
47 void ieee80211_free_led_names(struct ieee80211_local *local) in ieee80211_free_led_names() argument
49 kfree(local->rx_led.name); in ieee80211_free_led_names()
50 kfree(local->tx_led.name); in ieee80211_free_led_names()
51 kfree(local->assoc_led.name); in ieee80211_free_led_names()
52 kfree(local->radio_led.name); in ieee80211_free_led_names()
57 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_tx_led_activate() local
61 atomic_inc(&local->tx_led_active); in ieee80211_tx_led_activate()
68 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_tx_led_deactivate() local
72 atomic_dec(&local->tx_led_active); in ieee80211_tx_led_deactivate()
77 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_rx_led_activate() local
81 atomic_inc(&local->rx_led_active); in ieee80211_rx_led_activate()
88 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_rx_led_deactivate() local
92 atomic_dec(&local->rx_led_active); in ieee80211_rx_led_deactivate()
97 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_assoc_led_activate() local
101 atomic_inc(&local->assoc_led_active); in ieee80211_assoc_led_activate()
108 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_assoc_led_deactivate() local
112 atomic_dec(&local->assoc_led_active); in ieee80211_assoc_led_deactivate()
117 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_radio_led_activate() local
121 atomic_inc(&local->radio_led_active); in ieee80211_radio_led_activate()
128 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_radio_led_deactivate() local
132 atomic_dec(&local->radio_led_active); in ieee80211_radio_led_deactivate()
137 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_tpt_led_activate() local
141 atomic_inc(&local->tpt_led_active); in ieee80211_tpt_led_activate()
148 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_tpt_led_deactivate() local
152 atomic_dec(&local->tpt_led_active); in ieee80211_tpt_led_deactivate()
155 void ieee80211_led_init(struct ieee80211_local *local) in ieee80211_led_init() argument
157 atomic_set(&local->rx_led_active, 0); in ieee80211_led_init()
158 local->rx_led.activate = ieee80211_rx_led_activate; in ieee80211_led_init()
159 local->rx_led.deactivate = ieee80211_rx_led_deactivate; in ieee80211_led_init()
160 if (local->rx_led.name && led_trigger_register(&local->rx_led)) { in ieee80211_led_init()
161 kfree(local->rx_led.name); in ieee80211_led_init()
162 local->rx_led.name = NULL; in ieee80211_led_init()
165 atomic_set(&local->tx_led_active, 0); in ieee80211_led_init()
166 local->tx_led.activate = ieee80211_tx_led_activate; in ieee80211_led_init()
167 local->tx_led.deactivate = ieee80211_tx_led_deactivate; in ieee80211_led_init()
168 if (local->tx_led.name && led_trigger_register(&local->tx_led)) { in ieee80211_led_init()
169 kfree(local->tx_led.name); in ieee80211_led_init()
170 local->tx_led.name = NULL; in ieee80211_led_init()
173 atomic_set(&local->assoc_led_active, 0); in ieee80211_led_init()
174 local->assoc_led.activate = ieee80211_assoc_led_activate; in ieee80211_led_init()
175 local->assoc_led.deactivate = ieee80211_assoc_led_deactivate; in ieee80211_led_init()
176 if (local->assoc_led.name && led_trigger_register(&local->assoc_led)) { in ieee80211_led_init()
177 kfree(local->assoc_led.name); in ieee80211_led_init()
178 local->assoc_led.name = NULL; in ieee80211_led_init()
181 atomic_set(&local->radio_led_active, 0); in ieee80211_led_init()
182 local->radio_led.activate = ieee80211_radio_led_activate; in ieee80211_led_init()
183 local->radio_led.deactivate = ieee80211_radio_led_deactivate; in ieee80211_led_init()
184 if (local->radio_led.name && led_trigger_register(&local->radio_led)) { in ieee80211_led_init()
185 kfree(local->radio_led.name); in ieee80211_led_init()
186 local->radio_led.name = NULL; in ieee80211_led_init()
189 atomic_set(&local->tpt_led_active, 0); in ieee80211_led_init()
190 if (local->tpt_led_trigger) { in ieee80211_led_init()
191 local->tpt_led.activate = ieee80211_tpt_led_activate; in ieee80211_led_init()
192 local->tpt_led.deactivate = ieee80211_tpt_led_deactivate; in ieee80211_led_init()
193 if (led_trigger_register(&local->tpt_led)) { in ieee80211_led_init()
194 kfree(local->tpt_led_trigger); in ieee80211_led_init()
195 local->tpt_led_trigger = NULL; in ieee80211_led_init()
200 void ieee80211_led_exit(struct ieee80211_local *local) in ieee80211_led_exit() argument
202 if (local->radio_led.name) in ieee80211_led_exit()
203 led_trigger_unregister(&local->radio_led); in ieee80211_led_exit()
204 if (local->assoc_led.name) in ieee80211_led_exit()
205 led_trigger_unregister(&local->assoc_led); in ieee80211_led_exit()
206 if (local->tx_led.name) in ieee80211_led_exit()
207 led_trigger_unregister(&local->tx_led); in ieee80211_led_exit()
208 if (local->rx_led.name) in ieee80211_led_exit()
209 led_trigger_unregister(&local->rx_led); in ieee80211_led_exit()
211 if (local->tpt_led_trigger) { in ieee80211_led_exit()
212 led_trigger_unregister(&local->tpt_led); in ieee80211_led_exit()
213 kfree(local->tpt_led_trigger); in ieee80211_led_exit()
219 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_radio_led_name() local
221 return local->radio_led.name; in __ieee80211_get_radio_led_name()
227 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_assoc_led_name() local
229 return local->assoc_led.name; in __ieee80211_get_assoc_led_name()
235 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_tx_led_name() local
237 return local->tx_led.name; in __ieee80211_get_tx_led_name()
243 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_rx_led_name() local
245 return local->rx_led.name; in __ieee80211_get_rx_led_name()
249 static unsigned long tpt_trig_traffic(struct ieee80211_local *local, in tpt_trig_traffic() argument
264 struct ieee80211_local *local = tpt_trig->local; in tpt_trig_timer() local
274 tpt = tpt_trig_traffic(local, tpt_trig); in tpt_trig_timer()
289 read_lock(&local->tpt_led.leddev_list_lock); in tpt_trig_timer()
290 list_for_each_entry(led_cdev, &local->tpt_led.led_cdevs, trig_list) in tpt_trig_timer()
292 read_unlock(&local->tpt_led.leddev_list_lock); in tpt_trig_timer()
301 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_create_tpt_led_trigger() local
304 if (WARN_ON(local->tpt_led_trigger)) in __ieee80211_create_tpt_led_trigger()
312 "%stpt", wiphy_name(local->hw.wiphy)); in __ieee80211_create_tpt_led_trigger()
314 local->tpt_led.name = tpt_trig->name; in __ieee80211_create_tpt_led_trigger()
319 tpt_trig->local = local; in __ieee80211_create_tpt_led_trigger()
323 local->tpt_led_trigger = tpt_trig; in __ieee80211_create_tpt_led_trigger()
329 static void ieee80211_start_tpt_led_trig(struct ieee80211_local *local) in ieee80211_start_tpt_led_trig() argument
331 struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger; in ieee80211_start_tpt_led_trig()
337 tpt_trig_traffic(local, tpt_trig); in ieee80211_start_tpt_led_trig()
344 static void ieee80211_stop_tpt_led_trig(struct ieee80211_local *local) in ieee80211_stop_tpt_led_trig() argument
346 struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger; in ieee80211_stop_tpt_led_trig()
355 read_lock(&local->tpt_led.leddev_list_lock); in ieee80211_stop_tpt_led_trig()
356 list_for_each_entry(led_cdev, &local->tpt_led.led_cdevs, trig_list) in ieee80211_stop_tpt_led_trig()
358 read_unlock(&local->tpt_led.leddev_list_lock); in ieee80211_stop_tpt_led_trig()
361 void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local, in ieee80211_mod_tpt_led_trig() argument
364 struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger; in ieee80211_mod_tpt_led_trig()
384 ieee80211_stop_tpt_led_trig(local); in ieee80211_mod_tpt_led_trig()
386 ieee80211_start_tpt_led_trig(local); in ieee80211_mod_tpt_led_trig()