• Home
  • Raw
  • Download

Lines Matching refs:rt2x00dev

51 static int rt2x00link_antenna_get_link_rssi(struct rt2x00_dev *rt2x00dev)  in rt2x00link_antenna_get_link_rssi()  argument
53 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00link_antenna_get_link_rssi()
55 if (rt2x00dev->link.qual.rx_success) in rt2x00link_antenna_get_link_rssi()
61 static int rt2x00link_antenna_get_rssi_history(struct rt2x00_dev *rt2x00dev) in rt2x00link_antenna_get_rssi_history() argument
63 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00link_antenna_get_rssi_history()
70 static void rt2x00link_antenna_update_rssi_history(struct rt2x00_dev *rt2x00dev, in rt2x00link_antenna_update_rssi_history() argument
73 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00link_antenna_update_rssi_history()
77 static void rt2x00link_antenna_reset(struct rt2x00_dev *rt2x00dev) in rt2x00link_antenna_reset() argument
79 ewma_init(&rt2x00dev->link.ant.rssi_ant, RT2X00_EWMA_FACTOR, in rt2x00link_antenna_reset()
83 static void rt2x00lib_antenna_diversity_sample(struct rt2x00_dev *rt2x00dev) in rt2x00lib_antenna_diversity_sample() argument
85 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00lib_antenna_diversity_sample()
89 int sample_current = rt2x00link_antenna_get_link_rssi(rt2x00dev); in rt2x00lib_antenna_diversity_sample()
90 int sample_other = rt2x00link_antenna_get_rssi_history(rt2x00dev); in rt2x00lib_antenna_diversity_sample()
108 rt2x00link_antenna_update_rssi_history(rt2x00dev, in rt2x00lib_antenna_diversity_sample()
121 rt2x00lib_config_antenna(rt2x00dev, new_ant); in rt2x00lib_antenna_diversity_sample()
124 static void rt2x00lib_antenna_diversity_eval(struct rt2x00_dev *rt2x00dev) in rt2x00lib_antenna_diversity_eval() argument
126 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00lib_antenna_diversity_eval()
137 rssi_curr = rt2x00link_antenna_get_link_rssi(rt2x00dev); in rt2x00lib_antenna_diversity_eval()
138 rssi_old = rt2x00link_antenna_get_rssi_history(rt2x00dev); in rt2x00lib_antenna_diversity_eval()
139 rt2x00link_antenna_update_rssi_history(rt2x00dev, rssi_curr); in rt2x00lib_antenna_diversity_eval()
161 rt2x00lib_config_antenna(rt2x00dev, new_ant); in rt2x00lib_antenna_diversity_eval()
164 static bool rt2x00lib_antenna_diversity(struct rt2x00_dev *rt2x00dev) in rt2x00lib_antenna_diversity() argument
166 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00lib_antenna_diversity()
185 rt2x00lib_antenna_diversity_sample(rt2x00dev); in rt2x00lib_antenna_diversity()
187 } else if (rt2x00dev->link.count & 1) { in rt2x00lib_antenna_diversity()
188 rt2x00lib_antenna_diversity_eval(rt2x00dev); in rt2x00lib_antenna_diversity()
195 void rt2x00link_update_stats(struct rt2x00_dev *rt2x00dev, in rt2x00link_update_stats() argument
199 struct link *link = &rt2x00dev->link; in rt2x00link_update_stats()
200 struct link_qual *qual = &rt2x00dev->link.qual; in rt2x00link_update_stats()
201 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00link_update_stats()
207 if (!rt2x00dev->intf_sta_count) in rt2x00link_update_stats()
236 void rt2x00link_start_tuner(struct rt2x00_dev *rt2x00dev) in rt2x00link_start_tuner() argument
238 struct link *link = &rt2x00dev->link; in rt2x00link_start_tuner()
246 if (!rt2x00dev->intf_sta_count) in rt2x00link_start_tuner()
255 if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) in rt2x00link_start_tuner()
258 rt2x00link_reset_tuner(rt2x00dev, false); in rt2x00link_start_tuner()
260 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00link_start_tuner()
261 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_start_tuner()
265 void rt2x00link_stop_tuner(struct rt2x00_dev *rt2x00dev) in rt2x00link_stop_tuner() argument
267 cancel_delayed_work_sync(&rt2x00dev->link.work); in rt2x00link_stop_tuner()
270 void rt2x00link_reset_tuner(struct rt2x00_dev *rt2x00dev, bool antenna) in rt2x00link_reset_tuner() argument
272 struct link_qual *qual = &rt2x00dev->link.qual; in rt2x00link_reset_tuner()
275 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) in rt2x00link_reset_tuner()
286 rt2x00dev->link.count = 0; in rt2x00link_reset_tuner()
288 ewma_init(&rt2x00dev->link.avg_rssi, RT2X00_EWMA_FACTOR, in rt2x00link_reset_tuner()
301 rt2x00dev->ops->lib->reset_tuner(rt2x00dev, qual); in rt2x00link_reset_tuner()
304 rt2x00link_antenna_reset(rt2x00dev); in rt2x00link_reset_tuner()
307 static void rt2x00link_reset_qual(struct rt2x00_dev *rt2x00dev) in rt2x00link_reset_qual() argument
309 struct link_qual *qual = &rt2x00dev->link.qual; in rt2x00link_reset_qual()
319 struct rt2x00_dev *rt2x00dev = in rt2x00link_tuner() local
321 struct link *link = &rt2x00dev->link; in rt2x00link_tuner()
322 struct link_qual *qual = &rt2x00dev->link.qual; in rt2x00link_tuner()
328 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) || in rt2x00link_tuner()
329 test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) in rt2x00link_tuner()
335 rt2x00dev->ops->lib->link_stats(rt2x00dev, qual); in rt2x00link_tuner()
336 rt2x00dev->low_level_stats.dot11FCSErrorCount += qual->rx_failed; in rt2x00link_tuner()
354 if (rt2x00_has_cap_link_tuning(rt2x00dev)) in rt2x00link_tuner()
355 rt2x00dev->ops->lib->link_tuner(rt2x00dev, qual, link->count); in rt2x00link_tuner()
360 rt2x00leds_led_quality(rt2x00dev, qual->rssi); in rt2x00link_tuner()
367 if (rt2x00lib_antenna_diversity(rt2x00dev)) in rt2x00link_tuner()
368 rt2x00link_reset_qual(rt2x00dev); in rt2x00link_tuner()
375 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00link_tuner()
376 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_tuner()
380 void rt2x00link_start_watchdog(struct rt2x00_dev *rt2x00dev) in rt2x00link_start_watchdog() argument
382 struct link *link = &rt2x00dev->link; in rt2x00link_start_watchdog()
384 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) && in rt2x00link_start_watchdog()
385 rt2x00dev->ops->lib->watchdog) in rt2x00link_start_watchdog()
386 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_start_watchdog()
391 void rt2x00link_stop_watchdog(struct rt2x00_dev *rt2x00dev) in rt2x00link_stop_watchdog() argument
393 cancel_delayed_work_sync(&rt2x00dev->link.watchdog_work); in rt2x00link_stop_watchdog()
398 struct rt2x00_dev *rt2x00dev = in rt2x00link_watchdog() local
400 struct link *link = &rt2x00dev->link; in rt2x00link_watchdog()
406 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) in rt2x00link_watchdog()
409 rt2x00dev->ops->lib->watchdog(rt2x00dev); in rt2x00link_watchdog()
411 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00link_watchdog()
412 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_watchdog()
417 void rt2x00link_start_agc(struct rt2x00_dev *rt2x00dev) in rt2x00link_start_agc() argument
419 struct link *link = &rt2x00dev->link; in rt2x00link_start_agc()
421 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) && in rt2x00link_start_agc()
422 rt2x00dev->ops->lib->gain_calibration) in rt2x00link_start_agc()
423 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_start_agc()
428 void rt2x00link_start_vcocal(struct rt2x00_dev *rt2x00dev) in rt2x00link_start_vcocal() argument
430 struct link *link = &rt2x00dev->link; in rt2x00link_start_vcocal()
432 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) && in rt2x00link_start_vcocal()
433 rt2x00dev->ops->lib->vco_calibration) in rt2x00link_start_vcocal()
434 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_start_vcocal()
439 void rt2x00link_stop_agc(struct rt2x00_dev *rt2x00dev) in rt2x00link_stop_agc() argument
441 cancel_delayed_work_sync(&rt2x00dev->link.agc_work); in rt2x00link_stop_agc()
444 void rt2x00link_stop_vcocal(struct rt2x00_dev *rt2x00dev) in rt2x00link_stop_vcocal() argument
446 cancel_delayed_work_sync(&rt2x00dev->link.vco_work); in rt2x00link_stop_vcocal()
451 struct rt2x00_dev *rt2x00dev = in rt2x00link_agc() local
453 struct link *link = &rt2x00dev->link; in rt2x00link_agc()
459 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) in rt2x00link_agc()
462 rt2x00dev->ops->lib->gain_calibration(rt2x00dev); in rt2x00link_agc()
464 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00link_agc()
465 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_agc()
472 struct rt2x00_dev *rt2x00dev = in rt2x00link_vcocal() local
474 struct link *link = &rt2x00dev->link; in rt2x00link_vcocal()
480 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) in rt2x00link_vcocal()
483 rt2x00dev->ops->lib->vco_calibration(rt2x00dev); in rt2x00link_vcocal()
485 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00link_vcocal()
486 ieee80211_queue_delayed_work(rt2x00dev->hw, in rt2x00link_vcocal()
491 void rt2x00link_register(struct rt2x00_dev *rt2x00dev) in rt2x00link_register() argument
493 INIT_DELAYED_WORK(&rt2x00dev->link.agc_work, rt2x00link_agc); in rt2x00link_register()
494 if (rt2x00_has_cap_vco_recalibration(rt2x00dev)) in rt2x00link_register()
495 INIT_DELAYED_WORK(&rt2x00dev->link.vco_work, rt2x00link_vcocal); in rt2x00link_register()
496 INIT_DELAYED_WORK(&rt2x00dev->link.watchdog_work, rt2x00link_watchdog); in rt2x00link_register()
497 INIT_DELAYED_WORK(&rt2x00dev->link.work, rt2x00link_tuner); in rt2x00link_register()