• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/net/wireless/rt2x00/

Lines Matching refs:rt2x00dev

76 static int rt2x00link_antenna_get_link_rssi(struct rt2x00_dev *rt2x00dev)
78 struct link_ant *ant = &rt2x00dev->link.ant;
80 if (ant->rssi_ant.avg && rt2x00dev->link.qual.rx_success)
85 static int rt2x00link_antenna_get_rssi_history(struct rt2x00_dev *rt2x00dev)
87 struct link_ant *ant = &rt2x00dev->link.ant;
94 static void rt2x00link_antenna_update_rssi_history(struct rt2x00_dev *rt2x00dev,
97 struct link_ant *ant = &rt2x00dev->link.ant;
101 static void rt2x00link_antenna_reset(struct rt2x00_dev *rt2x00dev)
103 rt2x00dev->link.ant.rssi_ant.avg = 0;
104 rt2x00dev->link.ant.rssi_ant.avg_weight = 0;
107 static void rt2x00lib_antenna_diversity_sample(struct rt2x00_dev *rt2x00dev)
109 struct link_ant *ant = &rt2x00dev->link.ant;
113 int sample_current = rt2x00link_antenna_get_link_rssi(rt2x00dev);
114 int sample_other = rt2x00link_antenna_get_rssi_history(rt2x00dev);
132 rt2x00link_antenna_update_rssi_history(rt2x00dev,
145 rt2x00lib_config_antenna(rt2x00dev, new_ant);
148 static void rt2x00lib_antenna_diversity_eval(struct rt2x00_dev *rt2x00dev)
150 struct link_ant *ant = &rt2x00dev->link.ant;
161 rssi_curr = rt2x00link_antenna_get_link_rssi(rt2x00dev);
162 rssi_old = rt2x00link_antenna_get_rssi_history(rt2x00dev);
163 rt2x00link_antenna_update_rssi_history(rt2x00dev, rssi_curr);
185 rt2x00lib_config_antenna(rt2x00dev, new_ant);
188 static bool rt2x00lib_antenna_diversity(struct rt2x00_dev *rt2x00dev)
190 struct link_ant *ant = &rt2x00dev->link.ant;
202 if (rt2x00dev->default_ant.rx == ANTENNA_SW_DIVERSITY)
204 if (rt2x00dev->default_ant.tx == ANTENNA_SW_DIVERSITY)
223 rt2x00lib_antenna_diversity_sample(rt2x00dev);
225 } else if (rt2x00dev->link.count & 1) {
226 rt2x00lib_antenna_diversity_eval(rt2x00dev);
233 void rt2x00link_update_stats(struct rt2x00_dev *rt2x00dev,
237 struct link *link = &rt2x00dev->link;
238 struct link_qual *qual = &rt2x00dev->link.qual;
239 struct link_ant *ant = &rt2x00dev->link.ant;
268 void rt2x00link_start_tuner(struct rt2x00_dev *rt2x00dev)
270 struct link *link = &rt2x00dev->link;
278 if (!rt2x00dev->intf_sta_count)
287 if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags))
290 rt2x00link_reset_tuner(rt2x00dev, false);
292 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
293 ieee80211_queue_delayed_work(rt2x00dev->hw,
297 void rt2x00link_stop_tuner(struct rt2x00_dev *rt2x00dev)
299 cancel_delayed_work_sync(&rt2x00dev->link.work);
302 void rt2x00link_reset_tuner(struct rt2x00_dev *rt2x00dev, bool antenna)
304 struct link_qual *qual = &rt2x00dev->link.qual;
307 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
318 rt2x00dev->link.count = 0;
331 rt2x00dev->ops->lib->reset_tuner(rt2x00dev, qual);
334 rt2x00link_antenna_reset(rt2x00dev);
337 static void rt2x00link_reset_qual(struct rt2x00_dev *rt2x00dev)
339 struct link_qual *qual = &rt2x00dev->link.qual;
349 struct rt2x00_dev *rt2x00dev =
351 struct link *link = &rt2x00dev->link;
352 struct link_qual *qual = &rt2x00dev->link.qual;
358 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) ||
359 test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags))
365 rt2x00dev->ops->lib->link_stats(rt2x00dev, qual);
366 rt2x00dev->low_level_stats.dot11FCSErrorCount += qual->rx_failed;
384 if (test_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags))
385 rt2x00dev->ops->lib->link_tuner(rt2x00dev, qual, link->count);
390 rt2x00leds_led_quality(rt2x00dev, qual->rssi);
397 if (rt2x00lib_antenna_diversity(rt2x00dev))
398 rt2x00link_reset_qual(rt2x00dev);
405 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
406 ieee80211_queue_delayed_work(rt2x00dev->hw,
410 void rt2x00link_start_watchdog(struct rt2x00_dev *rt2x00dev)
412 struct link *link = &rt2x00dev->link;
414 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) ||
415 !test_bit(DRIVER_SUPPORT_WATCHDOG, &rt2x00dev->flags))
418 ieee80211_queue_delayed_work(rt2x00dev->hw,
422 void rt2x00link_stop_watchdog(struct rt2x00_dev *rt2x00dev)
424 cancel_delayed_work_sync(&rt2x00dev->link.watchdog_work);
429 struct rt2x00_dev *rt2x00dev =
431 struct link *link = &rt2x00dev->link;
437 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
440 rt2x00dev->ops->lib->watchdog(rt2x00dev);
442 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
443 ieee80211_queue_delayed_work(rt2x00dev->hw,
447 void rt2x00link_register(struct rt2x00_dev *rt2x00dev)
449 INIT_DELAYED_WORK(&rt2x00dev->link.watchdog_work, rt2x00link_watchdog);
450 INIT_DELAYED_WORK(&rt2x00dev->link.work, rt2x00link_tuner);