Lines Matching refs: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()
66 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_tx_led_deactivate() local
70 atomic_dec(&local->tx_led_active); in ieee80211_tx_led_deactivate()
75 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_rx_led_activate() local
79 atomic_inc(&local->rx_led_active); in ieee80211_rx_led_activate()
84 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_rx_led_deactivate() local
88 atomic_dec(&local->rx_led_active); in ieee80211_rx_led_deactivate()
93 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_assoc_led_activate() local
97 atomic_inc(&local->assoc_led_active); in ieee80211_assoc_led_activate()
102 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_assoc_led_deactivate() local
106 atomic_dec(&local->assoc_led_active); in ieee80211_assoc_led_deactivate()
111 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_radio_led_activate() local
115 atomic_inc(&local->radio_led_active); in ieee80211_radio_led_activate()
120 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_radio_led_deactivate() local
124 atomic_dec(&local->radio_led_active); in ieee80211_radio_led_deactivate()
129 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_tpt_led_activate() local
133 atomic_inc(&local->tpt_led_active); in ieee80211_tpt_led_activate()
138 struct ieee80211_local *local = container_of(led_cdev->trigger, in ieee80211_tpt_led_deactivate() local
142 atomic_dec(&local->tpt_led_active); in ieee80211_tpt_led_deactivate()
145 void ieee80211_led_init(struct ieee80211_local *local) in ieee80211_led_init() argument
147 atomic_set(&local->rx_led_active, 0); in ieee80211_led_init()
148 local->rx_led.activate = ieee80211_rx_led_activate; in ieee80211_led_init()
149 local->rx_led.deactivate = ieee80211_rx_led_deactivate; in ieee80211_led_init()
150 if (local->rx_led.name && led_trigger_register(&local->rx_led)) { in ieee80211_led_init()
151 kfree(local->rx_led.name); in ieee80211_led_init()
152 local->rx_led.name = NULL; in ieee80211_led_init()
155 atomic_set(&local->tx_led_active, 0); in ieee80211_led_init()
156 local->tx_led.activate = ieee80211_tx_led_activate; in ieee80211_led_init()
157 local->tx_led.deactivate = ieee80211_tx_led_deactivate; in ieee80211_led_init()
158 if (local->tx_led.name && led_trigger_register(&local->tx_led)) { in ieee80211_led_init()
159 kfree(local->tx_led.name); in ieee80211_led_init()
160 local->tx_led.name = NULL; in ieee80211_led_init()
163 atomic_set(&local->assoc_led_active, 0); in ieee80211_led_init()
164 local->assoc_led.activate = ieee80211_assoc_led_activate; in ieee80211_led_init()
165 local->assoc_led.deactivate = ieee80211_assoc_led_deactivate; in ieee80211_led_init()
166 if (local->assoc_led.name && led_trigger_register(&local->assoc_led)) { in ieee80211_led_init()
167 kfree(local->assoc_led.name); in ieee80211_led_init()
168 local->assoc_led.name = NULL; in ieee80211_led_init()
171 atomic_set(&local->radio_led_active, 0); in ieee80211_led_init()
172 local->radio_led.activate = ieee80211_radio_led_activate; in ieee80211_led_init()
173 local->radio_led.deactivate = ieee80211_radio_led_deactivate; in ieee80211_led_init()
174 if (local->radio_led.name && led_trigger_register(&local->radio_led)) { in ieee80211_led_init()
175 kfree(local->radio_led.name); in ieee80211_led_init()
176 local->radio_led.name = NULL; in ieee80211_led_init()
179 atomic_set(&local->tpt_led_active, 0); in ieee80211_led_init()
180 if (local->tpt_led_trigger) { in ieee80211_led_init()
181 local->tpt_led.activate = ieee80211_tpt_led_activate; in ieee80211_led_init()
182 local->tpt_led.deactivate = ieee80211_tpt_led_deactivate; in ieee80211_led_init()
183 if (led_trigger_register(&local->tpt_led)) { in ieee80211_led_init()
184 kfree(local->tpt_led_trigger); in ieee80211_led_init()
185 local->tpt_led_trigger = NULL; in ieee80211_led_init()
190 void ieee80211_led_exit(struct ieee80211_local *local) in ieee80211_led_exit() argument
192 if (local->radio_led.name) in ieee80211_led_exit()
193 led_trigger_unregister(&local->radio_led); in ieee80211_led_exit()
194 if (local->assoc_led.name) in ieee80211_led_exit()
195 led_trigger_unregister(&local->assoc_led); in ieee80211_led_exit()
196 if (local->tx_led.name) in ieee80211_led_exit()
197 led_trigger_unregister(&local->tx_led); in ieee80211_led_exit()
198 if (local->rx_led.name) in ieee80211_led_exit()
199 led_trigger_unregister(&local->rx_led); in ieee80211_led_exit()
201 if (local->tpt_led_trigger) { in ieee80211_led_exit()
202 led_trigger_unregister(&local->tpt_led); in ieee80211_led_exit()
203 kfree(local->tpt_led_trigger); in ieee80211_led_exit()
209 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_radio_led_name() local
211 return local->radio_led.name; in __ieee80211_get_radio_led_name()
217 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_assoc_led_name() local
219 return local->assoc_led.name; in __ieee80211_get_assoc_led_name()
225 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_tx_led_name() local
227 return local->tx_led.name; in __ieee80211_get_tx_led_name()
233 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_get_rx_led_name() local
235 return local->rx_led.name; in __ieee80211_get_rx_led_name()
239 static unsigned long tpt_trig_traffic(struct ieee80211_local *local, in tpt_trig_traffic() argument
253 struct ieee80211_local *local = (void *)data; in tpt_trig_timer() local
254 struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger; in tpt_trig_timer()
264 tpt = tpt_trig_traffic(local, tpt_trig); in tpt_trig_timer()
279 read_lock(&local->tpt_led.leddev_list_lock); in tpt_trig_timer()
280 list_for_each_entry(led_cdev, &local->tpt_led.led_cdevs, trig_list) in tpt_trig_timer()
282 read_unlock(&local->tpt_led.leddev_list_lock); in tpt_trig_timer()
291 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_create_tpt_led_trigger() local
294 if (WARN_ON(local->tpt_led_trigger)) in __ieee80211_create_tpt_led_trigger()
302 "%stpt", wiphy_name(local->hw.wiphy)); in __ieee80211_create_tpt_led_trigger()
304 local->tpt_led.name = tpt_trig->name; in __ieee80211_create_tpt_led_trigger()
310 setup_timer(&tpt_trig->timer, tpt_trig_timer, (unsigned long)local); in __ieee80211_create_tpt_led_trigger()
312 local->tpt_led_trigger = tpt_trig; in __ieee80211_create_tpt_led_trigger()
318 static void ieee80211_start_tpt_led_trig(struct ieee80211_local *local) in ieee80211_start_tpt_led_trig() argument
320 struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger; in ieee80211_start_tpt_led_trig()
326 tpt_trig_traffic(local, tpt_trig); in ieee80211_start_tpt_led_trig()
329 tpt_trig_timer((unsigned long)local); in ieee80211_start_tpt_led_trig()
333 static void ieee80211_stop_tpt_led_trig(struct ieee80211_local *local) in ieee80211_stop_tpt_led_trig() argument
335 struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger; in ieee80211_stop_tpt_led_trig()
344 read_lock(&local->tpt_led.leddev_list_lock); in ieee80211_stop_tpt_led_trig()
345 list_for_each_entry(led_cdev, &local->tpt_led.led_cdevs, trig_list) in ieee80211_stop_tpt_led_trig()
347 read_unlock(&local->tpt_led.leddev_list_lock); in ieee80211_stop_tpt_led_trig()
350 void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local, in ieee80211_mod_tpt_led_trig() argument
353 struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger; in ieee80211_mod_tpt_led_trig()
373 ieee80211_stop_tpt_led_trig(local); in ieee80211_mod_tpt_led_trig()
375 ieee80211_start_tpt_led_trig(local); in ieee80211_mod_tpt_led_trig()