Callbacks are defined for both cases, so remove compiler
flag around callback declaration and assign callback for both
HOST_DFS_SPOOF_TEST enabled and disabled cases.
Change-Id: I5e3cedaaa5be550243ac090da3ab6499c5e83904
CRs-Fixed: 2249806
In Repeater AP scenario, when STA vap starts scan, it calls the
registered DFS callback function to get the AP CAC status. For a
2 GHz pdev, dfs object is NULL and hence 'dfs is NULL' print is
always seen when user enables the dfs error logs.
Add non 5 GHz pdev check in dfs callback function before dfs NULL check.
Change-Id: Id087d0b126996406f2b6e1b5b34b90a12a18a890
CRs-Fixed: 2245034
Currently if the delta peak of the ETSI type 4 radar pulse is 0, it will
be considered as radar false dection, which affects normal dfs ETSI type
4 certification test.
More checks are added when delta peak of the ETSI type 4 radar pulse is 0.
If psidx_diff, the difference in the FFT peak index between the short FFT
and the first long FFT, is greater than 4 and less than 16, it is still
considered as valid ETSI type 4 radar pulse.
Change-Id: Iee9c22e0c208023bb9f0f70121f8269169b63d18
CRs-Fixed: 2173576
In FCC domain, process the radar pulses and send the summary of radar
found information to FW.
Change-Id: Ib30f57927a9718315fd90f5c44d47dae38bf36f0
CRs-Fixed: 2211883
Few variables are left uninitialized and they are being used
with some random value.
Fix by initializing to default value.
CRs-Fixed: 2232791
Change-Id: I3351cae52c58e963601d53376f42ca8ebf0d3b9a
Today for VHT in 2G, we are sending WMI_HOST_MODE_11NG_HT20/40
as phymode values to FW. Change this to WMI_HOST_MODE_11AC_VHT40/20_2G
which are dedicated phymodes defined for VHT operation in 2G.
This change is applicable only for tlv based chipsets.
CRs-Fixed: 2205265
Change-Id: I9482bfd1834285a21b5a45b6c039a13e9cd80479
Currently dfs offload command is sent during event registration
when psoc object is created. Dfs offload command is sent by accessing
pdev object, as pdev object during this time may not be created
or maybe in logically deleted state and sending command may fail.
This failure may cause wifi_dfs_psoc_enable and thereby effecting
other module objects.
To fix this, avoid using pdev objects during psoc enable, and send
pdev object specific command when pdev is created.
Change-Id: Ia10d493267259d0fbd918453e532b4f244029163
CRs-Fixed: 2179845
Current driver is using pld_wlan_set_dfs_nol() and pld_wlan_get_dfs_nol()
directly through eSAP_DFS_NOL_SET and eSAP_DFS_NOL_GET case statements
respectively within HDD module. These methods are obsoleted as per
new driver design.
Use DFS component's utils_dfs_init_nol() and utils_dfs_save_nol() APIs
instead to get and set DFS NOL respectively.
Change-Id: I63e8adac3f99c2052c26e6b01d19071f098e0a4f
CRs-Fixed: 2178580
If gDisableDFSChSwitch is configured as 1, channel should not be
changed even radar is found.
Set usenol as 0 when gDisableDFSChSwitch is configured as 1.
Change-Id: I05c4afea3eb9af9c541b2324a2d50ea59c05f7d7
CRs-Fixed: 2168792
The pulse_delta_peak of chirp radar is not zero, which is one more radar
detection rule for ETSI chirp. Driver need delta peak related information
from FW for ETSI chirp radar detection.
Two more fields pulse_delta_peak and pulse_delta_diff are added in
wmi_dfs_radar_event_fixed_param.
Change-Id: Ief8dbea1c1336f45a24195853d5e1356bf3cad27
CRs-Fixed: 2179933
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.
Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.
Change-Id: I16761f6da947619a5969ac8dcd09498d508ad715
CRs-Fixed: 2160954
Add locks to prevent concurrent access of DFS NOL list
from different contexts.
Change-Id: Ib94bb08bcf3e0cac80b2f8e6be7ab4fd54c53a68
CRs-Fixed: 2156892
Problem:
When a STA vap in repeater AP starts scan it checks for
is_cac_in_progress variable. If this variable is set true, then
STA does not scan. is_cac_in_progress is set true/false when dfs
is not NULL. Since DFS is NULL for 2G radio, is_cac_in_progress
has some random number and hence scan is cancelled by the HOST.
Solution:
Initialize is_cac_in_progress to false in
dfs_scan_serialization_comp_info_cb(). Set this variable to true
if dfs is not NULL and AP is performing CAC.
Change-Id: I3e04bfaf05001f7f76f67605fb2c6d35c3113683
CRs-Fixed: 2166300
Add validation check for memory allocation and initialize variable
before using.
Change-Id: If5215f4f034ea57884b252f8467c4e2ca227c952
CRs-Fixed: 2160749
DFS is applicable only for 5GHz radio. Therefore, do not
allocate DFS object for 2GHz radio.
Change-Id: I5e8aec0c876e7862890fae689950bfbb4eae5255
CRs-Fixed: 2153493
Problem 1:
When HOST receives RADAR found indication from target on wrong
channel ex: channel 68. Host does not add the channel to NOL,
but calls random channel function to choose new channel. It
leads to target assert and HOST crash.
Solution 1:
If channel is wrong, do not add it to NOL and do not call
random channel function.
Problem 2:
When Host receives RADAR indication from target, HOST prints
excess information. It floods the console log.
Solution 2:
Add debug bit mask for excess information.
Change-Id: Ib367ee80705d6b789e4e6823682e2f3c3096c9d9
CRs-Fixed: 2148940
After RADAR detection the function should be used for
1)FullOffload
2)Legacy [ partial offload and Direct attach]
chipsets.
Change-Id: Id99f9f25dc5a9f751f9ad74c07a78fb980673300
CRs-Fixed: 2126916
Rename dfs_ioctl.h file as wlan_dfs_ioctl.h and
move it from cmn_services directory to dfs dispatcher.
Change-Id: I75e0337bd84b71cf77975656423f78f9b016285f
CRs-Fixed: 2127833
To avoid passing multiple parameters to MLME functions from DFS
component, use a common structure between these components and
pass the structure instead of long list of parameters.
Define the common structure in cmn_services directory to access
it in both the components.
Change-Id: I02dde0780eebbce0886685d1f72a62c84e5b4eeb
CRs-Fixed: 2146000
According to the updates of Regdomain_23 submitted on 2017-5-18,
added two pulses (ETSI 302-502) in the static ETSI radar table for
ETSI11 regdomain.These two pulses are applicable only for 5.8GHz
(greater than 5.725 GHz) channels.
Change-Id: I2f1e5535040ced9847eedff65dbe892e4d0fb056
CRs-Fixed: 2145124
Problem:
During wifi up/down, dfs_init_precac_list() is called to initialize
the precac list without de-allocating the previously allocated memory.
This leads to a memory leak.
Solution:
Deinit the allocated memory before initializing the precac list.
Change-Id: I7eee38fbc3c50f37ac0c6670b5bfe4b5a1b2d9f6
CRs-Fixed: 2140042
Replace all instances of %p with %pK in DFS component, so that
kernel pointers are hidden from unprivileged users.
Change-Id: Ia10971516bf962287af9ff8dce873888500a01a1
CRs-fixed: 2133321
Header files are included in appropriate places to avoid compilation
errors. To disable/enable DFS component from non-common code at
compile time, use macro QCA_DFS_COMPONENT_ENABLE in config file.
Change-Id: I0d4fe27ee0d76412c109aa3f64485ea1ac2a5e3a
CRs-Fixed: 2134355
Removed WIN based random channel selection algorithm.
To choose a new random channel, use converged random
channel algorithm.
Change-Id: I0ece0cb71ffeb694c9f5264d97a25e49d59b1ae8
CRs-Fixed: 2120265
1) Add support to use new random channel selection algorithm
from converged DFS component.
2) Move random channel filtering flags from dfs_internal.h to
dfs_ioctl.h as these flags are common between MLME and DFS
component.
Change-Id: I5ef789dd9e9c28706f1c581997a646a80caec5ee
CRs-Fixed: 2120265
Fix for AP to ignore the CAC complete event from firmware on WIN side,
during bring up on DFS channel, thereby not beacon during CAC.
Change-Id: I60107a9c571e6c6a64fb16c3f8884a7b7d32150d
CRs-fixed: 2122316
Changes related to If63678a7e9ce00c1166e7f6533e5eaa0b0ae67a5
on modifying declaration of dfs_mlme_start_csa function on mlme side.
Change-Id: Id746faaaa2cdbdb48f80056eec3dd661a30122e5
CRs-fixed: 2117811
Adds support to dump dfs pulse information from firmware to host
for debug purpose.
Change-Id: I3b2042f8df6e077eed1a3847cd2d8550794bc6f7
CRs-fixed: 2121833
Add support for bangradar command to send unit test command
to firmware as a hook to simulate radar injection
Change-Id: Ieaa7eab6d452ab864a10beca1478d0e61d605107
CRs-fixed: 2113724
In fulloffload mode, based on the value of the usenol variable decide
whether to add the channel to NOL or not. In future, we need to merge
this code with non-full offload. That will remove redundant code.
Change-Id: I2bb403c3983a4a1eac906e6c13a3ec6a13fdc436
CRs-fixed: 2102829
* Initialize the radar table based on dfsdomain for country
KOREA and CHINA.
* Move UMAC related APIs from lmac_api.c to utils_api.c file.
Change-Id: I9dc2acdf23fc10469884d23bb91f352d2ac259ca
CRs-Fixed: 2110760
1) Define logging(alert, err, warn, info, debug) on top of
QDF abstractions for DFS component.
2) Use dfs_info for important prints such as CAC timeout,
NOL timeout, enable/disable radar etc.
3) For everything else use dfs_debug macro.
Change-Id: Id1efc12dd00e7b3f2b8d5627c65f58e619438c82
CRs-Fixed: 2116421
Reverse CSA:
===========
Problem:
When Repater detects the RADAR, it sends RCSA to RootAP and
immediately switches to a new channel without waiting for CSA
from Root AP.
Expected behaviour:
When Repeater detects the RADAR, if uplink is present then it sends
RCSA to RootAP and waits for 2secs to receive CSA. If Repeater
does not receive CSA in 2sec, choose a random channel and
bring up the AP vap.
Solution:
In Repeater, if RCSA is sent successfully to RootAP then wait for
2secs to receive CSA from Root else choose a random channel and
bring up the vaps.
Change-Id: Ica204981db85917554c06cd86c0e016df624c45f
CRs-Fixed: 2104219
In Repeater AP scenario, when STA vap starts scan, it calls this
registered DFS callback function to get the AP CAC status. If the
AP vap is performing CAC, STA vap does not start SCAN.
Change-Id: Ifa3ad0298f1b04f3fffc915f20ff81ec0cc731bf
CRs-Fixed: 2096259
Analysis:
dfs_nol_timer_cleanup() calls dfs_nol_update(), which internally
calls a legacy function to update the scan channel list and sends
a WMI command to FW. However, from WIN side dfs_nol_timer_cleanup()
is also called after target stop, which leads to a kernel panic.
Solution:
Call dfs_nol_update() prior to target stop.
Initalize precac channel list during dfs reset.
Change-Id: If856d436ad215efa46cfc166d95bf3ccb4e7bf99
CRs-Fixed: 2096256
Currently only one connection information corresponding to the
provided mode is deleted and restored, which causes channel
selecting failure in DFS testing with AP+AP concurrency mode.
When radar is found in AP+AP concurrency mode, a new valid channel
should be selected. Before selecting the channel, all existing
connection information of SAP mode should be deleted, otherwise
no valid channel can be selected.
All the connection information corresponding to the provided mode
should be deleted and restored.
Change-Id: Id363dbb2c31485fefcd6915696060923063079bb
CRs-Fixed: 2079597
It is possible to use host based cac timer even for the dfs
offload, So make sure to do all initialization for cac timers.
Also store dfs offload flag in dfs component.
Change-Id: Id30730fb1f84285e225c4221fde9846fbfd960cc
CRs-Fixed: 2069362
Due to dfs and 'ic' flag mismatch, ieee80211_find_channel()
was returning channel as NULL.
Change-Id: I2c8a09b5a1018d7daf2a925bcad7063a6b0e2988
CRs-Fixed: 2067959