Lines Matching refs:hwsim

1889 	struct mac80211_hwsim_data *hwsim = hw->priv;  in mac80211_hwsim_get_survey()  local
1891 if (idx < 0 || idx >= ARRAY_SIZE(hwsim->survey_data)) in mac80211_hwsim_get_survey()
1894 mutex_lock(&hwsim->mutex); in mac80211_hwsim_get_survey()
1895 survey->channel = hwsim->survey_data[idx].channel; in mac80211_hwsim_get_survey()
1897 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_get_survey()
1912 jiffies_to_msecs(hwsim->survey_data[idx].end - in mac80211_hwsim_get_survey()
1913 hwsim->survey_data[idx].start); in mac80211_hwsim_get_survey()
1916 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_get_survey()
1954 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_testmode_cmd() local
1972 return hwsim_fops_ps_write(hwsim, ps); in mac80211_hwsim_testmode_cmd()
1978 if (nla_put_u32(skb, HWSIM_TM_ATTR_PS, hwsim->ps)) in mac80211_hwsim_testmode_cmd()
2035 struct mac80211_hwsim_data *hwsim = in hw_scan_work() local
2037 struct cfg80211_scan_request *req = hwsim->hw_scan_request; in hw_scan_work()
2040 mutex_lock(&hwsim->mutex); in hw_scan_work()
2041 if (hwsim->scan_chan_idx >= req->n_channels) { in hw_scan_work()
2046 wiphy_dbg(hwsim->hw->wiphy, "hw scan complete\n"); in hw_scan_work()
2047 ieee80211_scan_completed(hwsim->hw, &info); in hw_scan_work()
2048 hwsim->hw_scan_request = NULL; in hw_scan_work()
2049 hwsim->hw_scan_vif = NULL; in hw_scan_work()
2050 hwsim->tmp_chan = NULL; in hw_scan_work()
2051 mutex_unlock(&hwsim->mutex); in hw_scan_work()
2055 wiphy_dbg(hwsim->hw->wiphy, "hw scan %d MHz\n", in hw_scan_work()
2056 req->channels[hwsim->scan_chan_idx]->center_freq); in hw_scan_work()
2058 hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx]; in hw_scan_work()
2059 if (hwsim->tmp_chan->flags & (IEEE80211_CHAN_NO_IR | in hw_scan_work()
2070 probe = ieee80211_probereq_get(hwsim->hw, in hw_scan_work()
2071 hwsim->scan_addr, in hw_scan_work()
2086 mac80211_hwsim_tx_frame(hwsim->hw, probe, in hw_scan_work()
2087 hwsim->tmp_chan); in hw_scan_work()
2091 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, in hw_scan_work()
2093 hwsim->survey_data[hwsim->scan_chan_idx].channel = hwsim->tmp_chan; in hw_scan_work()
2094 hwsim->survey_data[hwsim->scan_chan_idx].start = jiffies; in hw_scan_work()
2095 hwsim->survey_data[hwsim->scan_chan_idx].end = in hw_scan_work()
2097 hwsim->scan_chan_idx++; in hw_scan_work()
2098 mutex_unlock(&hwsim->mutex); in hw_scan_work()
2105 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_hw_scan() local
2108 mutex_lock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2109 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { in mac80211_hwsim_hw_scan()
2110 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2113 hwsim->hw_scan_request = req; in mac80211_hwsim_hw_scan()
2114 hwsim->hw_scan_vif = vif; in mac80211_hwsim_hw_scan()
2115 hwsim->scan_chan_idx = 0; in mac80211_hwsim_hw_scan()
2117 get_random_mask_addr(hwsim->scan_addr, in mac80211_hwsim_hw_scan()
2121 memcpy(hwsim->scan_addr, vif->addr, ETH_ALEN); in mac80211_hwsim_hw_scan()
2122 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data)); in mac80211_hwsim_hw_scan()
2123 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2127 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, 0); in mac80211_hwsim_hw_scan()
2135 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_cancel_hw_scan() local
2142 cancel_delayed_work_sync(&hwsim->hw_scan); in mac80211_hwsim_cancel_hw_scan()
2144 mutex_lock(&hwsim->mutex); in mac80211_hwsim_cancel_hw_scan()
2145 ieee80211_scan_completed(hwsim->hw, &info); in mac80211_hwsim_cancel_hw_scan()
2146 hwsim->tmp_chan = NULL; in mac80211_hwsim_cancel_hw_scan()
2147 hwsim->hw_scan_request = NULL; in mac80211_hwsim_cancel_hw_scan()
2148 hwsim->hw_scan_vif = NULL; in mac80211_hwsim_cancel_hw_scan()
2149 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_cancel_hw_scan()
2156 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_sw_scan() local
2158 mutex_lock(&hwsim->mutex); in mac80211_hwsim_sw_scan()
2160 if (hwsim->scanning) { in mac80211_hwsim_sw_scan()
2167 memcpy(hwsim->scan_addr, mac_addr, ETH_ALEN); in mac80211_hwsim_sw_scan()
2168 hwsim->scanning = true; in mac80211_hwsim_sw_scan()
2169 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data)); in mac80211_hwsim_sw_scan()
2172 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_sw_scan()
2178 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_sw_scan_complete() local
2180 mutex_lock(&hwsim->mutex); in mac80211_hwsim_sw_scan_complete()
2183 hwsim->scanning = false; in mac80211_hwsim_sw_scan_complete()
2184 eth_zero_addr(hwsim->scan_addr); in mac80211_hwsim_sw_scan_complete()
2186 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_sw_scan_complete()
2191 struct mac80211_hwsim_data *hwsim = in hw_roc_start() local
2194 mutex_lock(&hwsim->mutex); in hw_roc_start()
2196 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC begins\n"); in hw_roc_start()
2197 hwsim->tmp_chan = hwsim->roc_chan; in hw_roc_start()
2198 ieee80211_ready_on_channel(hwsim->hw); in hw_roc_start()
2200 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->roc_done, in hw_roc_start()
2201 msecs_to_jiffies(hwsim->roc_duration)); in hw_roc_start()
2203 mutex_unlock(&hwsim->mutex); in hw_roc_start()
2208 struct mac80211_hwsim_data *hwsim = in hw_roc_done() local
2211 mutex_lock(&hwsim->mutex); in hw_roc_done()
2212 ieee80211_remain_on_channel_expired(hwsim->hw); in hw_roc_done()
2213 hwsim->tmp_chan = NULL; in hw_roc_done()
2214 mutex_unlock(&hwsim->mutex); in hw_roc_done()
2216 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC expired\n"); in hw_roc_done()
2225 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_roc() local
2227 mutex_lock(&hwsim->mutex); in mac80211_hwsim_roc()
2228 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { in mac80211_hwsim_roc()
2229 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_roc()
2233 hwsim->roc_chan = chan; in mac80211_hwsim_roc()
2234 hwsim->roc_duration = duration; in mac80211_hwsim_roc()
2235 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_roc()
2239 ieee80211_queue_delayed_work(hw, &hwsim->roc_start, HZ/50); in mac80211_hwsim_roc()
2246 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_croc() local
2248 cancel_delayed_work_sync(&hwsim->roc_start); in mac80211_hwsim_croc()
2249 cancel_delayed_work_sync(&hwsim->roc_done); in mac80211_hwsim_croc()
2251 mutex_lock(&hwsim->mutex); in mac80211_hwsim_croc()
2252 hwsim->tmp_chan = NULL; in mac80211_hwsim_croc()
2253 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_croc()