Lines Matching refs:hwsim

2686 	struct mac80211_hwsim_data *hwsim = hw->priv;  in mac80211_hwsim_get_survey()  local
2688 if (idx < 0 || idx >= ARRAY_SIZE(hwsim->survey_data)) in mac80211_hwsim_get_survey()
2691 mutex_lock(&hwsim->mutex); in mac80211_hwsim_get_survey()
2692 survey->channel = hwsim->survey_data[idx].channel; in mac80211_hwsim_get_survey()
2694 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_get_survey()
2709 jiffies_to_msecs(hwsim->survey_data[idx].end - in mac80211_hwsim_get_survey()
2710 hwsim->survey_data[idx].start); in mac80211_hwsim_get_survey()
2713 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_get_survey()
2751 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_testmode_cmd() local
2769 return hwsim_fops_ps_write(hwsim, ps); in mac80211_hwsim_testmode_cmd()
2775 if (nla_put_u32(skb, HWSIM_TM_ATTR_PS, hwsim->ps)) in mac80211_hwsim_testmode_cmd()
2831 struct mac80211_hwsim_data *hwsim = in hw_scan_work() local
2833 struct cfg80211_scan_request *req = hwsim->hw_scan_request; in hw_scan_work()
2836 mutex_lock(&hwsim->mutex); in hw_scan_work()
2837 if (hwsim->scan_chan_idx >= req->n_channels) { in hw_scan_work()
2842 wiphy_dbg(hwsim->hw->wiphy, "hw scan complete\n"); in hw_scan_work()
2843 ieee80211_scan_completed(hwsim->hw, &info); in hw_scan_work()
2844 hwsim->hw_scan_request = NULL; in hw_scan_work()
2845 hwsim->hw_scan_vif = NULL; in hw_scan_work()
2846 hwsim->tmp_chan = NULL; in hw_scan_work()
2847 mutex_unlock(&hwsim->mutex); in hw_scan_work()
2848 mac80211_hwsim_config_mac_nl(hwsim->hw, hwsim->scan_addr, in hw_scan_work()
2853 wiphy_dbg(hwsim->hw->wiphy, "hw scan %d MHz\n", in hw_scan_work()
2854 req->channels[hwsim->scan_chan_idx]->center_freq); in hw_scan_work()
2856 hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx]; in hw_scan_work()
2857 if (hwsim->tmp_chan->flags & (IEEE80211_CHAN_NO_IR | in hw_scan_work()
2868 probe = ieee80211_probereq_get(hwsim->hw, in hw_scan_work()
2869 hwsim->scan_addr, in hw_scan_work()
2884 if (!ieee80211_tx_prepare_skb(hwsim->hw, in hw_scan_work()
2885 hwsim->hw_scan_vif, in hw_scan_work()
2887 hwsim->tmp_chan->band, in hw_scan_work()
2895 mac80211_hwsim_tx_frame(hwsim->hw, probe, in hw_scan_work()
2896 hwsim->tmp_chan); in hw_scan_work()
2901 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, in hw_scan_work()
2903 hwsim->survey_data[hwsim->scan_chan_idx].channel = hwsim->tmp_chan; in hw_scan_work()
2904 hwsim->survey_data[hwsim->scan_chan_idx].start = jiffies; in hw_scan_work()
2905 hwsim->survey_data[hwsim->scan_chan_idx].end = in hw_scan_work()
2907 hwsim->scan_chan_idx++; in hw_scan_work()
2908 mutex_unlock(&hwsim->mutex); in hw_scan_work()
2915 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_hw_scan() local
2918 mutex_lock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2919 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { in mac80211_hwsim_hw_scan()
2920 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2923 hwsim->hw_scan_request = req; in mac80211_hwsim_hw_scan()
2924 hwsim->hw_scan_vif = vif; in mac80211_hwsim_hw_scan()
2925 hwsim->scan_chan_idx = 0; in mac80211_hwsim_hw_scan()
2927 get_random_mask_addr(hwsim->scan_addr, in mac80211_hwsim_hw_scan()
2931 memcpy(hwsim->scan_addr, vif->addr, ETH_ALEN); in mac80211_hwsim_hw_scan()
2932 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data)); in mac80211_hwsim_hw_scan()
2933 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2935 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, true); in mac80211_hwsim_hw_scan()
2938 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, 0); in mac80211_hwsim_hw_scan()
2946 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_cancel_hw_scan() local
2953 cancel_delayed_work_sync(&hwsim->hw_scan); in mac80211_hwsim_cancel_hw_scan()
2955 mutex_lock(&hwsim->mutex); in mac80211_hwsim_cancel_hw_scan()
2956 ieee80211_scan_completed(hwsim->hw, &info); in mac80211_hwsim_cancel_hw_scan()
2957 hwsim->tmp_chan = NULL; in mac80211_hwsim_cancel_hw_scan()
2958 hwsim->hw_scan_request = NULL; in mac80211_hwsim_cancel_hw_scan()
2959 hwsim->hw_scan_vif = NULL; in mac80211_hwsim_cancel_hw_scan()
2960 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_cancel_hw_scan()
2967 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_sw_scan() local
2969 mutex_lock(&hwsim->mutex); in mac80211_hwsim_sw_scan()
2971 if (hwsim->scanning) { in mac80211_hwsim_sw_scan()
2978 memcpy(hwsim->scan_addr, mac_addr, ETH_ALEN); in mac80211_hwsim_sw_scan()
2979 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, true); in mac80211_hwsim_sw_scan()
2980 hwsim->scanning = true; in mac80211_hwsim_sw_scan()
2981 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data)); in mac80211_hwsim_sw_scan()
2984 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_sw_scan()
2990 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_sw_scan_complete() local
2992 mutex_lock(&hwsim->mutex); in mac80211_hwsim_sw_scan_complete()
2995 hwsim->scanning = false; in mac80211_hwsim_sw_scan_complete()
2996 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, false); in mac80211_hwsim_sw_scan_complete()
2997 eth_zero_addr(hwsim->scan_addr); in mac80211_hwsim_sw_scan_complete()
2999 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_sw_scan_complete()
3004 struct mac80211_hwsim_data *hwsim = in hw_roc_start() local
3007 mutex_lock(&hwsim->mutex); in hw_roc_start()
3009 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC begins\n"); in hw_roc_start()
3010 hwsim->tmp_chan = hwsim->roc_chan; in hw_roc_start()
3011 ieee80211_ready_on_channel(hwsim->hw); in hw_roc_start()
3013 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->roc_done, in hw_roc_start()
3014 msecs_to_jiffies(hwsim->roc_duration)); in hw_roc_start()
3016 mutex_unlock(&hwsim->mutex); in hw_roc_start()
3021 struct mac80211_hwsim_data *hwsim = in hw_roc_done() local
3024 mutex_lock(&hwsim->mutex); in hw_roc_done()
3025 ieee80211_remain_on_channel_expired(hwsim->hw); in hw_roc_done()
3026 hwsim->tmp_chan = NULL; in hw_roc_done()
3027 mutex_unlock(&hwsim->mutex); in hw_roc_done()
3029 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC expired\n"); in hw_roc_done()
3038 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_roc() local
3040 mutex_lock(&hwsim->mutex); in mac80211_hwsim_roc()
3041 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { in mac80211_hwsim_roc()
3042 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_roc()
3046 hwsim->roc_chan = chan; in mac80211_hwsim_roc()
3047 hwsim->roc_duration = duration; in mac80211_hwsim_roc()
3048 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_roc()
3052 ieee80211_queue_delayed_work(hw, &hwsim->roc_start, HZ/50); in mac80211_hwsim_roc()
3060 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_croc() local
3062 cancel_delayed_work_sync(&hwsim->roc_start); in mac80211_hwsim_croc()
3063 cancel_delayed_work_sync(&hwsim->roc_done); in mac80211_hwsim_croc()
3065 mutex_lock(&hwsim->mutex); in mac80211_hwsim_croc()
3066 hwsim->tmp_chan = NULL; in mac80211_hwsim_croc()
3067 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_croc()