Lines Matching refs:hwsim

2078 	struct mac80211_hwsim_data *hwsim = hw->priv;  in mac80211_hwsim_get_survey()  local
2080 if (idx < 0 || idx >= ARRAY_SIZE(hwsim->survey_data)) in mac80211_hwsim_get_survey()
2083 mutex_lock(&hwsim->mutex); in mac80211_hwsim_get_survey()
2084 survey->channel = hwsim->survey_data[idx].channel; in mac80211_hwsim_get_survey()
2086 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_get_survey()
2101 jiffies_to_msecs(hwsim->survey_data[idx].end - in mac80211_hwsim_get_survey()
2102 hwsim->survey_data[idx].start); in mac80211_hwsim_get_survey()
2105 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_get_survey()
2143 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_testmode_cmd() local
2161 return hwsim_fops_ps_write(hwsim, ps); in mac80211_hwsim_testmode_cmd()
2167 if (nla_put_u32(skb, HWSIM_TM_ATTR_PS, hwsim->ps)) in mac80211_hwsim_testmode_cmd()
2223 struct mac80211_hwsim_data *hwsim = in hw_scan_work() local
2225 struct cfg80211_scan_request *req = hwsim->hw_scan_request; in hw_scan_work()
2228 mutex_lock(&hwsim->mutex); in hw_scan_work()
2229 if (hwsim->scan_chan_idx >= req->n_channels) { in hw_scan_work()
2234 wiphy_dbg(hwsim->hw->wiphy, "hw scan complete\n"); in hw_scan_work()
2235 ieee80211_scan_completed(hwsim->hw, &info); in hw_scan_work()
2236 hwsim->hw_scan_request = NULL; in hw_scan_work()
2237 hwsim->hw_scan_vif = NULL; in hw_scan_work()
2238 hwsim->tmp_chan = NULL; in hw_scan_work()
2239 mutex_unlock(&hwsim->mutex); in hw_scan_work()
2240 mac80211_hwsim_config_mac_nl(hwsim->hw, hwsim->scan_addr, in hw_scan_work()
2245 wiphy_dbg(hwsim->hw->wiphy, "hw scan %d MHz\n", in hw_scan_work()
2246 req->channels[hwsim->scan_chan_idx]->center_freq); in hw_scan_work()
2248 hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx]; in hw_scan_work()
2249 if (hwsim->tmp_chan->flags & (IEEE80211_CHAN_NO_IR | in hw_scan_work()
2260 probe = ieee80211_probereq_get(hwsim->hw, in hw_scan_work()
2261 hwsim->scan_addr, in hw_scan_work()
2276 if (!ieee80211_tx_prepare_skb(hwsim->hw, in hw_scan_work()
2277 hwsim->hw_scan_vif, in hw_scan_work()
2279 hwsim->tmp_chan->band, in hw_scan_work()
2287 mac80211_hwsim_tx_frame(hwsim->hw, probe, in hw_scan_work()
2288 hwsim->tmp_chan); in hw_scan_work()
2293 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, in hw_scan_work()
2295 hwsim->survey_data[hwsim->scan_chan_idx].channel = hwsim->tmp_chan; in hw_scan_work()
2296 hwsim->survey_data[hwsim->scan_chan_idx].start = jiffies; in hw_scan_work()
2297 hwsim->survey_data[hwsim->scan_chan_idx].end = in hw_scan_work()
2299 hwsim->scan_chan_idx++; in hw_scan_work()
2300 mutex_unlock(&hwsim->mutex); in hw_scan_work()
2307 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_hw_scan() local
2310 mutex_lock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2311 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { in mac80211_hwsim_hw_scan()
2312 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2315 hwsim->hw_scan_request = req; in mac80211_hwsim_hw_scan()
2316 hwsim->hw_scan_vif = vif; in mac80211_hwsim_hw_scan()
2317 hwsim->scan_chan_idx = 0; in mac80211_hwsim_hw_scan()
2319 get_random_mask_addr(hwsim->scan_addr, in mac80211_hwsim_hw_scan()
2323 memcpy(hwsim->scan_addr, vif->addr, ETH_ALEN); in mac80211_hwsim_hw_scan()
2324 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data)); in mac80211_hwsim_hw_scan()
2325 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_hw_scan()
2327 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, true); in mac80211_hwsim_hw_scan()
2330 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->hw_scan, 0); in mac80211_hwsim_hw_scan()
2338 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_cancel_hw_scan() local
2345 cancel_delayed_work_sync(&hwsim->hw_scan); in mac80211_hwsim_cancel_hw_scan()
2347 mutex_lock(&hwsim->mutex); in mac80211_hwsim_cancel_hw_scan()
2348 ieee80211_scan_completed(hwsim->hw, &info); in mac80211_hwsim_cancel_hw_scan()
2349 hwsim->tmp_chan = NULL; in mac80211_hwsim_cancel_hw_scan()
2350 hwsim->hw_scan_request = NULL; in mac80211_hwsim_cancel_hw_scan()
2351 hwsim->hw_scan_vif = NULL; in mac80211_hwsim_cancel_hw_scan()
2352 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_cancel_hw_scan()
2359 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_sw_scan() local
2361 mutex_lock(&hwsim->mutex); in mac80211_hwsim_sw_scan()
2363 if (hwsim->scanning) { in mac80211_hwsim_sw_scan()
2370 memcpy(hwsim->scan_addr, mac_addr, ETH_ALEN); in mac80211_hwsim_sw_scan()
2371 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, true); in mac80211_hwsim_sw_scan()
2372 hwsim->scanning = true; in mac80211_hwsim_sw_scan()
2373 memset(hwsim->survey_data, 0, sizeof(hwsim->survey_data)); in mac80211_hwsim_sw_scan()
2376 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_sw_scan()
2382 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_sw_scan_complete() local
2384 mutex_lock(&hwsim->mutex); in mac80211_hwsim_sw_scan_complete()
2387 hwsim->scanning = false; in mac80211_hwsim_sw_scan_complete()
2388 mac80211_hwsim_config_mac_nl(hw, hwsim->scan_addr, false); in mac80211_hwsim_sw_scan_complete()
2389 eth_zero_addr(hwsim->scan_addr); in mac80211_hwsim_sw_scan_complete()
2391 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_sw_scan_complete()
2396 struct mac80211_hwsim_data *hwsim = in hw_roc_start() local
2399 mutex_lock(&hwsim->mutex); in hw_roc_start()
2401 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC begins\n"); in hw_roc_start()
2402 hwsim->tmp_chan = hwsim->roc_chan; in hw_roc_start()
2403 ieee80211_ready_on_channel(hwsim->hw); in hw_roc_start()
2405 ieee80211_queue_delayed_work(hwsim->hw, &hwsim->roc_done, in hw_roc_start()
2406 msecs_to_jiffies(hwsim->roc_duration)); in hw_roc_start()
2408 mutex_unlock(&hwsim->mutex); in hw_roc_start()
2413 struct mac80211_hwsim_data *hwsim = in hw_roc_done() local
2416 mutex_lock(&hwsim->mutex); in hw_roc_done()
2417 ieee80211_remain_on_channel_expired(hwsim->hw); in hw_roc_done()
2418 hwsim->tmp_chan = NULL; in hw_roc_done()
2419 mutex_unlock(&hwsim->mutex); in hw_roc_done()
2421 wiphy_dbg(hwsim->hw->wiphy, "hwsim ROC expired\n"); in hw_roc_done()
2430 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_roc() local
2432 mutex_lock(&hwsim->mutex); in mac80211_hwsim_roc()
2433 if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { in mac80211_hwsim_roc()
2434 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_roc()
2438 hwsim->roc_chan = chan; in mac80211_hwsim_roc()
2439 hwsim->roc_duration = duration; in mac80211_hwsim_roc()
2440 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_roc()
2444 ieee80211_queue_delayed_work(hw, &hwsim->roc_start, HZ/50); in mac80211_hwsim_roc()
2452 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_croc() local
2454 cancel_delayed_work_sync(&hwsim->roc_start); in mac80211_hwsim_croc()
2455 cancel_delayed_work_sync(&hwsim->roc_done); in mac80211_hwsim_croc()
2457 mutex_lock(&hwsim->mutex); in mac80211_hwsim_croc()
2458 hwsim->tmp_chan = NULL; in mac80211_hwsim_croc()
2459 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_croc()
2469 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_add_chanctx() local
2471 mutex_lock(&hwsim->mutex); in mac80211_hwsim_add_chanctx()
2472 hwsim->chanctx = ctx; in mac80211_hwsim_add_chanctx()
2473 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_add_chanctx()
2485 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_remove_chanctx() local
2487 mutex_lock(&hwsim->mutex); in mac80211_hwsim_remove_chanctx()
2488 hwsim->chanctx = NULL; in mac80211_hwsim_remove_chanctx()
2489 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_remove_chanctx()
2502 struct mac80211_hwsim_data *hwsim = hw->priv; in mac80211_hwsim_change_chanctx() local
2504 mutex_lock(&hwsim->mutex); in mac80211_hwsim_change_chanctx()
2505 hwsim->chanctx = ctx; in mac80211_hwsim_change_chanctx()
2506 mutex_unlock(&hwsim->mutex); in mac80211_hwsim_change_chanctx()