Lines Matching defs:hwsim

2686 	struct mac80211_hwsim_data *hwsim = hw->priv;
2688 if (idx < 0 || idx >= ARRAY_SIZE(hwsim->survey_data))
2691 mutex_lock(&hwsim->mutex);
2692 survey->channel = hwsim->survey_data[idx].channel;
2694 mutex_unlock(&hwsim->mutex);
2709 jiffies_to_msecs(hwsim->survey_data[idx].end -
2710 hwsim->survey_data[idx].start);
2713 mutex_unlock(&hwsim->mutex);
2751 struct mac80211_hwsim_data *hwsim = hw->priv;
2769 return hwsim_fops_ps_write(hwsim, ps);
2775 if (nla_put_u32(skb, HWSIM_TM_ATTR_PS, hwsim->ps))
2831 struct mac80211_hwsim_data *hwsim =
2833 struct cfg80211_scan_request *req = hwsim->hw_scan_request;
2836 mutex_lock(&hwsim->mutex);
2837 if (hwsim->scan_chan_idx >= req->n_channels) {
2842 wiphy_dbg(hwsim->hw->wiphy, "hw scan complete\n");
2843 ieee80211_scan_completed(hwsim->hw, &info);
2844 hwsim->hw_scan_request = NULL;
2845 hwsim->hw_scan_vif = NULL;
2846 hwsim->tmp_chan = NULL;
2847 mutex_unlock(&hwsim->mutex);
2848 mac80211_hwsim_config_mac_nl(hwsim->hw, hwsim->scan_addr,
2853 wiphy_dbg(hwsim->hw->wiphy, "hw scan %d MHz\n",
2854 req->channels[hwsim->scan_chan_idx]->center_freq);
2856 hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx];
2857 if (hwsim->tmp_chan->flags & (IEEE80211_CHAN_NO_IR |
2868 probe = ieee80211_probereq_get(hwsim->hw,
2869 hwsim->scan_addr,
2884 if (!ieee80211_tx_prepare_skb(hwsim->hw,
2885 hwsim->hw_scan_vif,
2887 hwsim->tmp_chan->band,
2895 mac80211_hwsim_tx_frame(hwsim->hw, probe,
2896 hwsim->tmp_chan);
2901 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan,
2903 hwsim->survey_data[hwsim->scan_chan_idx].channel = hwsim->tmp_chan;
2904 hwsim->survey_data[hwsim->scan_chan_idx].start = jiffies;
2905 hwsim->survey_data[hwsim->scan_chan_idx].end =
2907 hwsim->scan_chan_idx++;
2908 mutex_unlock(&hwsim->mutex);
2915 struct mac80211_hwsim_data *hwsim = hw->priv;
2918 mutex_lock(&hwsim->mutex);
2919 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) {
2920 mutex_unlock(&hwsim->mutex);
2923 hwsim->hw_scan_request = req;
2924 hwsim->hw_scan_vif = vif;
2925 hwsim->scan_chan_idx = 0;
2927 get_random_mask_addr(hwsim->scan_addr,
2931 memcpy(hwsim->scan_addr, vif->addr, ETH_ALEN);
2932 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data));
2933 mutex_unlock(&hwsim->mutex);
2935 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, true);
2936 wiphy_dbg(hw->wiphy, "hwsim hw_scan request\n");
2938 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, 0);
2946 struct mac80211_hwsim_data *hwsim = hw->priv;
2951 wiphy_dbg(hw->wiphy, "hwsim cancel_hw_scan\n");
2953 cancel_delayed_work_sync(&hwsim->hw_scan);
2955 mutex_lock(&hwsim->mutex);
2956 ieee80211_scan_completed(hwsim->hw, &info);
2957 hwsim->tmp_chan = NULL;
2958 hwsim->hw_scan_request = NULL;
2959 hwsim->hw_scan_vif = NULL;
2960 mutex_unlock(&hwsim->mutex);
2967 struct mac80211_hwsim_data *hwsim = hw->priv;
2969 mutex_lock(&hwsim->mutex);
2971 if (hwsim->scanning) {
2972 pr_debug("two hwsim sw_scans detected!\n");
2976 pr_debug("hwsim sw_scan request, prepping stuff\n");
2978 memcpy(hwsim->scan_addr, mac_addr, ETH_ALEN);
2979 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, true);
2980 hwsim->scanning = true;
2981 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data));
2984 mutex_unlock(&hwsim->mutex);
2990 struct mac80211_hwsim_data *hwsim = hw->priv;
2992 mutex_lock(&hwsim->mutex);
2994 pr_debug("hwsim sw_scan_complete\n");
2995 hwsim->scanning = false;
2996 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, false);
2997 eth_zero_addr(hwsim->scan_addr);
2999 mutex_unlock(&hwsim->mutex);
3004 struct mac80211_hwsim_data *hwsim =
3007 mutex_lock(&hwsim->mutex);
3009 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC begins\n");
3010 hwsim->tmp_chan = hwsim->roc_chan;
3011 ieee80211_ready_on_channel(hwsim->hw);
3013 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->roc_done,
3014 msecs_to_jiffies(hwsim->roc_duration));
3016 mutex_unlock(&hwsim->mutex);
3021 struct mac80211_hwsim_data *hwsim =
3024 mutex_lock(&hwsim->mutex);
3025 ieee80211_remain_on_channel_expired(hwsim->hw);
3026 hwsim->tmp_chan = NULL;
3027 mutex_unlock(&hwsim->mutex);
3029 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC expired\n");
3038 struct mac80211_hwsim_data *hwsim = hw->priv;
3040 mutex_lock(&hwsim->mutex);
3041 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) {
3042 mutex_unlock(&hwsim->mutex);
3046 hwsim->roc_chan = chan;
3047 hwsim->roc_duration = duration;
3048 mutex_unlock(&hwsim->mutex);
3050 wiphy_dbg(hw->wiphy, "hwsim ROC (%d MHz, %d ms)\n",
3052 ieee80211_queue_delayed_work(hw, &hwsim->roc_start, HZ/50);
3060 struct mac80211_hwsim_data *hwsim = hw->priv;
3062 cancel_delayed_work_sync(&hwsim->roc_start);
3063 cancel_delayed_work_sync(&hwsim->roc_done);
3065 mutex_lock(&hwsim->mutex);
3066 hwsim->tmp_chan = NULL;
3067 mutex_unlock(&hwsim->mutex);
3069 wiphy_dbg(hw->wiphy, "hwsim ROC canceled\n");
4988 data->dev = device_create(hwsim_class, NULL, 0, hw, "hwsim%d", idx);
5317 data->debugfs = debugfs_create_dir("hwsim", hw->wiphy->debugfsdir);
6338 pr_err_ratelimited("hwsim: genlmsg_parse returned %d\n", err);
6355 pr_err_ratelimited("hwsim: invalid cmd: %d\n", gnlh->cmd);
6660 hwsim_mon = alloc_netdev(0, "hwsim%d", NET_NAME_UNKNOWN,