• 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

36 int rt2x00lib_enable_radio(struct rt2x00_dev *rt2x00dev)
44 if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
50 rt2x00queue_init_queues(rt2x00dev);
56 rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_ON);
60 rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_IRQ_ON);
62 rt2x00leds_led_radio(rt2x00dev, true);
63 rt2x00led_led_activity(rt2x00dev, true);
65 set_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags);
70 rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
75 rt2x00link_start_watchdog(rt2x00dev);
80 ieee80211_wake_queues(rt2x00dev->hw);
85 void rt2x00lib_disable_radio(struct rt2x00_dev *rt2x00dev)
87 if (!test_and_clear_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
93 ieee80211_stop_queues(rt2x00dev->hw);
94 rt2x00queue_stop_queues(rt2x00dev);
99 rt2x00link_stop_watchdog(rt2x00dev);
104 rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
109 rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_OFF);
110 rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_IRQ_OFF);
111 rt2x00led_led_activity(rt2x00dev, false);
112 rt2x00leds_led_radio(rt2x00dev, false);
115 void rt2x00lib_toggle_rx(struct rt2x00_dev *rt2x00dev, enum dev_state state)
121 rt2x00link_stop_tuner(rt2x00dev);
123 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state);
129 rt2x00link_start_tuner(rt2x00dev);
135 struct rt2x00_dev *rt2x00dev = data;
157 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
161 rt2x00queue_update_beacon(rt2x00dev, vif, true);
166 struct rt2x00_dev *rt2x00dev =
173 ieee80211_iterate_active_interfaces(rt2x00dev->hw,
175 rt2x00dev);
184 struct rt2x00_dev *rt2x00dev = data;
196 skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
198 rt2x00mac_tx(rt2x00dev->hw, skb);
199 skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif);
206 struct rt2x00_dev *rt2x00dev = data;
214 rt2x00queue_update_beacon(rt2x00dev, vif, true);
217 void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev)
219 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
223 ieee80211_iterate_active_interfaces(rt2x00dev->hw,
225 rt2x00dev);
231 if (test_bit(DRIVER_SUPPORT_PRE_TBTT_INTERRUPT, &rt2x00dev->flags))
235 ieee80211_iterate_active_interfaces(rt2x00dev->hw,
237 rt2x00dev);
241 void rt2x00lib_pretbtt(struct rt2x00_dev *rt2x00dev)
243 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
247 ieee80211_iterate_active_interfaces(rt2x00dev->hw,
249 rt2x00dev);
256 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
269 rt2x00queue_unmap_skb(rt2x00dev, entry->skb);
274 skb_pull(entry->skb, rt2x00dev->ops->extra_tx_headroom);
284 if (test_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags))
293 if (test_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags))
300 rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_TXDONE, entry->skb);
312 rt2x00dev->link.qual.tx_success += success;
313 rt2x00dev->link.qual.tx_failed += !success;
354 rt2x00dev->low_level_stats.dot11ACKFailureCount++;
374 rt2x00dev->low_level_stats.dot11RTSSuccessCount++;
376 rt2x00dev->low_level_stats.dot11RTSFailureCount++;
391 if (rt2x00_is_usb(rt2x00dev))
392 ieee80211_tx_status_irqsafe(rt2x00dev->hw, entry->skb);
394 ieee80211_tx_status(rt2x00dev->hw, entry->skb);
404 rt2x00dev->ops->lib->clear_entry(entry);
415 ieee80211_wake_queue(rt2x00dev->hw, qid);
419 static int rt2x00lib_rxdone_read_signal(struct rt2x00_dev *rt2x00dev,
439 sband = &rt2x00dev->bands[rt2x00dev->curr_band];
453 WARNING(rt2x00dev, "Frame received with unrecognized signal, "
458 void rt2x00lib_rxdone(struct rt2x00_dev *rt2x00dev,
463 struct ieee80211_rx_status *rx_status = &rt2x00dev->rx_status;
470 skb = rt2x00queue_alloc_rxskb(rt2x00dev, entry);
477 rt2x00queue_unmap_skb(rt2x00dev, entry->skb);
483 rt2x00dev->ops->lib->fill_rxdone(entry, &rxdesc);
519 rate_idx = rt2x00lib_rxdone_read_signal(rt2x00dev, &rxdesc);
528 rt2x00link_update_stats(rt2x00dev, entry->skb, &rxdesc);
529 rt2x00debug_update_crypto(rt2x00dev, &rxdesc);
535 rx_status->antenna = rt2x00dev->link.ant.active.rx;
541 rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_RXDONE, entry->skb);
549 if (rt2x00_is_usb(rt2x00dev))
550 ieee80211_rx_irqsafe(rt2x00dev->hw, entry->skb);
552 ieee80211_rx_ni(rt2x00dev->hw, entry->skb);
560 rt2x00dev->ops->lib->clear_entry(entry);
678 static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev,
681 struct ieee80211_hw *hw = rt2x00dev->hw;
722 rt2x00dev->bands[IEEE80211_BAND_2GHZ].n_channels = 14;
723 rt2x00dev->bands[IEEE80211_BAND_2GHZ].n_bitrates = num_rates;
724 rt2x00dev->bands[IEEE80211_BAND_2GHZ].channels = channels;
725 rt2x00dev->bands[IEEE80211_BAND_2GHZ].bitrates = rates;
727 &rt2x00dev->bands[IEEE80211_BAND_2GHZ];
728 memcpy(&rt2x00dev->bands[IEEE80211_BAND_2GHZ].ht_cap,
738 rt2x00dev->bands[IEEE80211_BAND_5GHZ].n_channels =
740 rt2x00dev->bands[IEEE80211_BAND_5GHZ].n_bitrates =
742 rt2x00dev->bands[IEEE80211_BAND_5GHZ].channels = &channels[14];
743 rt2x00dev->bands[IEEE80211_BAND_5GHZ].bitrates = &rates[4];
745 &rt2x00dev->bands[IEEE80211_BAND_5GHZ];
746 memcpy(&rt2x00dev->bands[IEEE80211_BAND_5GHZ].ht_cap,
754 ERROR(rt2x00dev, "Allocation ieee80211 modes failed.\n");
758 static void rt2x00lib_remove_hw(struct rt2x00_dev *rt2x00dev)
760 if (test_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags))
761 ieee80211_unregister_hw(rt2x00dev->hw);
763 if (likely(rt2x00dev->hw->wiphy->bands[IEEE80211_BAND_2GHZ])) {
764 kfree(rt2x00dev->hw->wiphy->bands[IEEE80211_BAND_2GHZ]->channels);
765 kfree(rt2x00dev->hw->wiphy->bands[IEEE80211_BAND_2GHZ]->bitrates);
766 rt2x00dev->hw->wiphy->bands[IEEE80211_BAND_2GHZ] = NULL;
767 rt2x00dev->hw->wiphy->bands[IEEE80211_BAND_5GHZ] = NULL;
770 kfree(rt2x00dev->spec.channels_info);
773 static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
775 struct hw_mode_spec *spec = &rt2x00dev->spec;
778 if (test_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags))
784 status = rt2x00lib_probe_hw_modes(rt2x00dev, spec);
791 rt2x00dev->hw->queues = rt2x00dev->ops->tx_queues;
796 rt2x00dev->hw->extra_tx_headroom =
798 rt2x00dev->ops->extra_tx_headroom);
803 if (test_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags))
804 rt2x00dev->hw->extra_tx_headroom += RT2X00_L2PAD_SIZE;
805 else if (test_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags))
806 rt2x00dev->hw->extra_tx_headroom += RT2X00_ALIGN_SIZE;
811 status = ieee80211_register_hw(rt2x00dev->hw);
815 set_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags);
823 static void rt2x00lib_uninitialize(struct rt2x00_dev *rt2x00dev)
825 if (!test_and_clear_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags))
831 rt2x00rfkill_unregister(rt2x00dev);
836 rt2x00dev->ops->lib->uninitialize(rt2x00dev);
841 rt2x00queue_uninitialize(rt2x00dev);
844 static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev)
848 if (test_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags))
854 status = rt2x00queue_initialize(rt2x00dev);
861 status = rt2x00dev->ops->lib->initialize(rt2x00dev);
863 rt2x00queue_uninitialize(rt2x00dev);
867 set_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags);
872 rt2x00rfkill_register(rt2x00dev);
877 int rt2x00lib_start(struct rt2x00_dev *rt2x00dev)
881 if (test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags))
888 retval = rt2x00lib_load_firmware(rt2x00dev);
895 retval = rt2x00lib_initialize(rt2x00dev);
899 rt2x00dev->intf_ap_count = 0;
900 rt2x00dev->intf_sta_count = 0;
901 rt2x00dev->intf_associated = 0;
904 retval = rt2x00lib_enable_radio(rt2x00dev);
906 rt2x00queue_uninitialize(rt2x00dev);
910 set_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags);
915 void rt2x00lib_stop(struct rt2x00_dev *rt2x00dev)
917 if (!test_and_clear_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags))
924 rt2x00lib_disable_radio(rt2x00dev);
926 rt2x00dev->intf_ap_count = 0;
927 rt2x00dev->intf_sta_count = 0;
928 rt2x00dev->intf_associated = 0;
934 int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
938 mutex_init(&rt2x00dev->csr_mutex);
940 set_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
946 rt2x00dev->hw->vif_data_size = sizeof(struct rt2x00_intf);
953 rt2x00dev->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
954 if (rt2x00dev->ops->bcn->entry_num > 0)
955 rt2x00dev->hw->wiphy->interface_modes |=
964 INIT_WORK(&rt2x00dev->intf_work, rt2x00lib_intf_scheduled);
969 retval = rt2x00dev->ops->lib->probe_hw(rt2x00dev);
971 ERROR(rt2x00dev, "Failed to allocate device.\n");
978 retval = rt2x00queue_allocate(rt2x00dev);
985 retval = rt2x00lib_probe_hw(rt2x00dev);
987 ERROR(rt2x00dev, "Failed to initialize hw.\n");
994 rt2x00link_register(rt2x00dev);
995 rt2x00leds_register(rt2x00dev);
996 rt2x00debug_register(rt2x00dev);
1001 rt2x00lib_remove_dev(rt2x00dev);
1007 void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
1009 clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
1014 rt2x00lib_disable_radio(rt2x00dev);
1019 cancel_work_sync(&rt2x00dev->intf_work);
1024 rt2x00lib_uninitialize(rt2x00dev);
1029 rt2x00debug_deregister(rt2x00dev);
1030 rt2x00leds_unregister(rt2x00dev);
1035 rt2x00lib_remove_hw(rt2x00dev);
1040 rt2x00lib_free_firmware(rt2x00dev);
1045 rt2x00queue_free(rt2x00dev);
1053 int rt2x00lib_suspend(struct rt2x00_dev *rt2x00dev, pm_message_t state)
1055 NOTICE(rt2x00dev, "Going to sleep.\n");
1060 if (!test_and_clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
1066 rt2x00lib_uninitialize(rt2x00dev);
1071 rt2x00leds_suspend(rt2x00dev);
1072 rt2x00debug_deregister(rt2x00dev);
1085 if (rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_SLEEP))
1086 WARNING(rt2x00dev, "Device failed to enter sleep state, "
1093 int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev)
1095 NOTICE(rt2x00dev, "Waking up.\n");
1100 rt2x00debug_register(rt2x00dev);
1101 rt2x00leds_resume(rt2x00dev);
1106 set_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);