Lines Matching full:scan
12 #include "fw/api/scan.h"
24 /* adaptive dwell max budget time [TU] for full scan */
26 /* adaptive dwell max budget time [TU] for directed scan */
34 /* number of scan channels */
45 /* minimal number of 2GHz and 5GHz channels in the regular scan request */
48 /* Number of iterations on the channel for mei filtered scan */
82 /* For CDB this is low band scan type, for non-CDB - type. */
234 * Force a non-fragmented scan in that case. in _iwl_mvm_get_scan_type()
254 * in case of DCM with P2P GO set all scan requests as in _iwl_mvm_get_scan_type()
255 * fast-balance scan in _iwl_mvm_get_scan_type()
297 /* require rrm scan whenever the fw supports it */ in iwl_mvm_rrm_scan_needed()
323 * scan IEs, however the LMAC scan api contains both 2GHZ and 5GHZ IEs in iwl_mvm_max_scan_ie_len()
325 * is just iwl_mvm_max_scan_ie_fw_cmd_room() / 2. Currently the scan in iwl_mvm_max_scan_ie_len()
327 * bytes for scan IEs, which is clearly not enough. So meanwhile in iwl_mvm_max_scan_ie_len()
329 * issue a scan in unified_scan_lmac and unified_sched_scan_lmac in iwl_mvm_max_scan_ie_len()
342 "Scan offload iteration complete: status=0x%x scanned channels=%d\n", in iwl_mvm_rx_lmac_scan_iter_complete_notif()
346 IWL_DEBUG_SCAN(mvm, "Pass all scheduled scan results found\n"); in iwl_mvm_rx_lmac_scan_iter_complete_notif()
355 IWL_DEBUG_SCAN(mvm, "Scheduled scan results\n"); in iwl_mvm_rx_scan_match_found()
387 /* scan status must be locked for proper checking */ in iwl_mvm_rx_lmac_scan_complete_notif()
390 /* We first check if we were stopping a scan, in which case we in iwl_mvm_rx_lmac_scan_complete_notif()
394 * Note that we can have a stopping and a running scan in iwl_mvm_rx_lmac_scan_complete_notif()
403 IWL_DEBUG_SCAN(mvm, "Scheduled scan %s, EBS status %s\n", in iwl_mvm_rx_lmac_scan_complete_notif()
414 IWL_DEBUG_SCAN(mvm, "Regular scan %s, EBS status %s\n", in iwl_mvm_rx_lmac_scan_complete_notif()
422 IWL_DEBUG_SCAN(mvm, "Scheduled scan %s, EBS status %s\n", in iwl_mvm_rx_lmac_scan_complete_notif()
439 IWL_DEBUG_SCAN(mvm, "Regular scan %s, EBS status %s (FW)\n", in iwl_mvm_rx_lmac_scan_complete_notif()
449 "got scan complete notification but no scan is running\n"); in iwl_mvm_rx_lmac_scan_complete_notif()
499 /* add SSIDs from scan SSID list */ in iwl_scan_build_ssids()
595 IWL_DEBUG_SCAN(mvm, "Sending scheduled scan profile config\n"); in iwl_mvm_config_sched_scan_profiles()
610 "Sending scheduled scan with filtering, n_match_sets %d\n", in iwl_mvm_scan_pass_all()
616 IWL_DEBUG_SCAN(mvm, "Sending Scheduled scan without filtering\n"); in iwl_mvm_scan_pass_all()
636 * The scan abort will return 1 for success or in iwl_mvm_lmac_scan_abort()
638 * due to simply not being in an active scan which in iwl_mvm_lmac_scan_abort()
639 * can occur if we send the scan abort before the in iwl_mvm_lmac_scan_abort()
640 * microcode has notified us that a scan is completed. in iwl_mvm_lmac_scan_abort()
642 IWL_DEBUG_SCAN(mvm, "SCAN OFFLOAD ABORT ret %d.\n", status); in iwl_mvm_lmac_scan_abort()
761 * Unfortunately, right now the offload scan doesn't support randomising in iwl_mvm_build_scan_probe()
763 * it in the driver. This means that the scan iterations won't really be in iwl_mvm_build_scan_probe()
859 * 3. if only single scan, the single scan EBS API is supported; in iwl_mvm_scan_use_ebs()
863 * 6. the VIF is not an AP interface (scan wants survey results) in iwl_mvm_scan_use_ebs()
984 * If the number of iterations of the last scan plan is set to in iwl_mvm_scan_lmac()
986 * For example, when regular scan is requested the driver sets one scan in iwl_mvm_scan_lmac()
1216 * Check for fragmented scan on LMAC2 - high band. in iwl_mvm_legacy_config_scan()
1235 IWL_DEBUG_SCAN(mvm, "Sending UMAC scan config\n"); in iwl_mvm_legacy_config_scan()
1275 IWL_DEBUG_SCAN(mvm, "Sending UMAC scan config\n"); in iwl_mvm_config_scan()
1664 /* 6 GHz channels should only appear in a scan request in iwl_mvm_umac_scan_cfg_channels_v7()
1666 * scan, which has to be passive. in iwl_mvm_umac_scan_cfg_channels_v7()
1746 "scan: invalid BSSID at index %u, index_b=%u\n", in iwl_mvm_umac_scan_fill_6g_chan_list()
1784 * Avoid performing passive scan on non PSC channels unless the in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1785 * scan is specifically a passive scan, i.e., no SSIDs in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1786 * configured in the scan command. in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1826 * In the following cases apply passive scan: in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1827 * 1. Non fragmented scan: in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1836 * 3. Fragmented scan: in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1870 * The optimize the scan time, i.e., reduce the scan dwell time in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1906 /* Hidden AP, cannot do passive scan */ in iwl_mvm_umac_scan_cfg_channels_v7_6g()
1979 /* set fragmented ebs for fragmented scan on HB channels */ in iwl_mvm_scan_umac_chan_flags_v2()
1987 * force EBS in case the scan is a fragmented and there is a need to take P2P in iwl_mvm_scan_umac_chan_flags_v2()
1988 * GO operation into consideration during scan operation. in iwl_mvm_scan_umac_chan_flags_v2()
2018 "6GHz passive scan: Not supported by FW\n"); in iwl_mvm_scan_6ghz_passive_scan()
2022 /* 6GHz passive scan allowed only on station interface */ in iwl_mvm_scan_6ghz_passive_scan()
2025 "6GHz passive scan: not station interface\n"); in iwl_mvm_scan_6ghz_passive_scan()
2030 * 6GHz passive scan is allowed in a defined time interval following HW in iwl_mvm_scan_6ghz_passive_scan()
2032 * has passed since the last 6GHz passive scan. in iwl_mvm_scan_6ghz_passive_scan()
2040 IWL_DEBUG_SCAN(mvm, "6GHz passive scan: %s\n", in iwl_mvm_scan_6ghz_passive_scan()
2046 /* not enough channels in the regular scan request */ in iwl_mvm_scan_6ghz_passive_scan()
2049 "6GHz passive scan: not enough channels\n"); in iwl_mvm_scan_6ghz_passive_scan()
2058 /* not a wildcard scan, so cannot enable passive 6GHz scan */ in iwl_mvm_scan_6ghz_passive_scan()
2061 "6GHz passive scan: no wildcard SSID\n"); in iwl_mvm_scan_6ghz_passive_scan()
2067 "6GHz passive scan: no 6GHz channels\n"); in iwl_mvm_scan_6ghz_passive_scan()
2078 * scan in iwl_mvm_scan_6ghz_passive_scan()
2082 "6GHz passive scan: 6GHz channels enabled\n"); in iwl_mvm_scan_6ghz_passive_scan()
2086 /* all conditions to enable 6ghz passive scan are satisfied */ in iwl_mvm_scan_6ghz_passive_scan()
2087 IWL_DEBUG_SCAN(mvm, "6GHz passive scan: can be enabled\n"); in iwl_mvm_scan_6ghz_passive_scan()
2099 * If no direct SSIDs are provided perform a passive scan. Otherwise, in iwl_mvm_scan_umac_flags_v2()
2101 * that the scan is intended for roaming purposes and thus enable Rx on in iwl_mvm_scan_umac_flags_v2()
2231 * only scan type on low band also for CDB. in iwl_mvm_scan_umac_flags()
2280 * If the number of iterations of the last scan plan is set to in iwl_mvm_fill_scan_sched_params()
2282 * For example, when regular scan is requested the driver sets one scan in iwl_mvm_fill_scan_sched_params()
2341 /* set fragmented ebs for fragmented scan on HB channels */ in iwl_mvm_scan_umac()
2636 * trying to run a scan type that is already running, we in iwl_mvm_check_running_scans()
2638 * different type of scan, we stop the opposite type to make in iwl_mvm_check_running_scans()
2641 * scheduled scan before starting a normal scan. in iwl_mvm_check_running_scans()
2644 /* FW supports only a single periodic scan */ in iwl_mvm_check_running_scans()
2677 * another scheduled scan while suspended. in iwl_mvm_check_running_scans()
2685 /* Something is wrong if no scan was running but we in iwl_mvm_check_running_scans()
2705 IWL_ERR(mvm, "regular scan timed out\n"); in iwl_mvm_scan_timeout_wk()
2778 * override the scan request to scan only the associated channel and only for
2813 /* The mei filtered scan must find the AP, otherwise CSME will in iwl_mvm_mei_limited_scan()
2815 * make the scan more robust. in iwl_mvm_mei_limited_scan()
2822 IWL_DEBUG_SCAN(mvm, "Mei scan: num iterations=%u\n", scan_iters); in iwl_mvm_mei_limited_scan()
2985 IWL_ERR(mvm, "scan while LAR regdomain is not set\n"); in _iwl_mvm_single_scan_start()
3047 /* If the scan failed, it usually means that the FW was unable in _iwl_mvm_single_scan_start()
3051 IWL_ERR(mvm, "Scan failed! ret %d\n", ret); in _iwl_mvm_single_scan_start()
3056 IWL_DEBUG_SCAN(mvm, "Scan request send success: type=%u, uid=%u\n", in _iwl_mvm_single_scan_start()
3101 IWL_ERR(mvm, "sched-scan while LAR regdomain is not set\n"); in iwl_mvm_sched_scan_start()
3136 * waiting for over 18 hours to start the scan is a bit silly in iwl_mvm_sched_scan_start()
3196 "Sched scan request send success: type=%u, uid=%u\n", in iwl_mvm_sched_scan_start()
3201 /* If the scan failed, it usually means that the FW was unable in iwl_mvm_sched_scan_start()
3205 IWL_ERR(mvm, "Sched scan failed! ret %d\n", ret); in iwl_mvm_sched_scan_start()
3227 "Scan completed: uid=%u type=%u, status=%s, EBS=%s\n", in iwl_mvm_rx_umac_scan_complete_notif()
3233 IWL_DEBUG_SCAN(mvm, "Scan completed: scan_status=0x%x\n", in iwl_mvm_rx_umac_scan_complete_notif()
3237 "Scan completed: line=%u, iter=%u, elapsed time=%u\n", in iwl_mvm_rx_umac_scan_complete_notif()
3244 /* if the scan is already stopping, we don't need to notify mac80211 */ in iwl_mvm_rx_umac_scan_complete_notif()
3254 /* It is possible that by the time the scan is complete the link in iwl_mvm_rx_umac_scan_complete_notif()
3260 IWL_DEBUG_SCAN(mvm, "Scan link is no longer valid\n"); in iwl_mvm_rx_umac_scan_complete_notif()
3270 IWL_DEBUG_SCAN(mvm, "Internal MLO scan completed\n"); in iwl_mvm_rx_umac_scan_complete_notif()
3272 * Other scan types won't necessarily scan for the MLD links channels. in iwl_mvm_rx_umac_scan_complete_notif()
3273 * Therefore, only select links after successful internal scan. in iwl_mvm_rx_umac_scan_complete_notif()
3280 IWL_DEBUG_SCAN(mvm, "Scan completed: after update: scan_status=0x%x\n", in iwl_mvm_rx_umac_scan_complete_notif()
3302 "UMAC Scan iteration complete: status=0x%x scanned_channels=%d\n", in iwl_mvm_rx_umac_scan_iter_complete_notif()
3306 IWL_DEBUG_SCAN(mvm, "Pass all scheduled scan results found\n"); in iwl_mvm_rx_umac_scan_iter_complete_notif()
3312 "UMAC Scan iteration complete: scan started at %llu (TSF)\n", in iwl_mvm_rx_umac_scan_iter_complete_notif()
3334 * checked that this type of scan was running in the generic in iwl_mvm_umac_scan_abort()
3343 IWL_DEBUG_SCAN(mvm, "Sending scan abort, uid %u\n", uid); in iwl_mvm_umac_scan_abort()
3347 IWL_DEBUG_SCAN(mvm, "Scan abort: ret=%d, status=%u\n", ret, status); in iwl_mvm_umac_scan_abort()
3351 /* Handle the case that the FW is no longer familiar with the scan that in iwl_mvm_umac_scan_abort()
3352 * is to be stopped. In such a case, it is expected that the scan in iwl_mvm_umac_scan_abort()
3354 * In such a case, there is no need to wait for a scan complete in iwl_mvm_umac_scan_abort()
3356 * the scan was really aborted. in iwl_mvm_umac_scan_abort()
3381 IWL_DEBUG_SCAN(mvm, "Preparing to stop scan, type %x\n", type); in iwl_mvm_scan_stop_wait()
3389 IWL_DEBUG_SCAN(mvm, "couldn't stop scan type %d\n", type); in iwl_mvm_scan_stop_wait()
3393 IWL_DEBUG_SCAN(mvm, "no need to wait for scan type %d\n", type); in iwl_mvm_scan_stop_wait()
3476 /* Sched scan will be restarted by mac80211 in in iwl_mvm_report_scan_aborted()
3487 IWL_DEBUG_SCAN(mvm, "Internal MLO scan aborted\n"); in iwl_mvm_report_scan_aborted()
3512 "UMAC scan UID %d status was not cleaned\n", in iwl_mvm_report_scan_aborted()
3526 /* Sched scan will be restarted by mac80211 in in iwl_mvm_report_scan_aborted()
3543 "Request to stop scan: type=0x%x, status=0x%x\n", in iwl_mvm_scan_stop()
3558 IWL_DEBUG_SCAN(mvm, "Failed to stop scan\n"); in iwl_mvm_scan_stop()
3561 /* Clear the scan status so the next scan requests will in iwl_mvm_scan_stop()
3562 * succeed and mark the scan as stopping, so that the Rx in iwl_mvm_scan_stop()
3563 * handler doesn't do anything, as the scan was stopped from in iwl_mvm_scan_stop()
3597 IWL_DEBUG_SCAN(mvm, "Starting Internal MLO scan: n_channels=%zu\n", in iwl_mvm_int_mlo_scan_start()
3629 IWL_DEBUG_SCAN(mvm, "Internal MLO scan: ret=%d\n", ret); in iwl_mvm_int_mlo_scan_start()
3643 IWL_DEBUG_SCAN(mvm, "Internal MLO scan is already running\n"); in iwl_mvm_int_mlo_scan()