In function wlan_dcs_cmd_send(), pointer dcs_tx_ops returned from
function call target_if_dcs_get_tx_ops() may be null and will be
dereferenced, it's an issue to dereference dcs_tx_ops without null
check.
Fix is to add null check for dcs_tx_ops pointer before use in
function wlan_dcs_cmd_send().
Change-Id: If82f31bd8f5096a4e6562131426510907555140d
CRs-Fixed: 2989520
Handle DCS-AWGN event and take actions accordingly:
For STA mode, if the interference locates on primary 20MHz,
disconnect from AP; otherwise, find a max interference free width
and trigger channel change.
For SAP mode, if the interference locates on primary 20MHz,
try to select a random interference free channel and trigger channel
change (stop SAP if no channel is selected); otherwise, find a max
interference free width and trigger channel change.
Change-Id: I33e79f454b459b12ad84f8b0f3259403037464ee
CRs-Fixed: 2958675
Add APIs to extract AWGN information from the DCS WMI
interference event received from FW.
Change-Id: I4b2f9f4ef012553dac2a405dc7ac12aef9452354
CRs-Fixed: 2958675
Replace pdev_id with mac_id for ucfg_dcs APIs and update
related documentation.
Change-Id: Ie0dbe992c113aac597dbb6820acd3faba3ac9f3c
CRs-Fixed: 2843510
Always enable DCS firmware wmi_dcs_interference_event_id event
indication as CCA feature requires, for below scenario, will
ignore dcs event data and won't do interference detection
algorithm calculation:
a: Current SAP channel isn't on 5G band
b: In the process of ACS
c: In the process of dcs disabling dcs_restart_delay time duration
Change-Id: Ic3d0e5c7ffd7ffc2009e2d86480ea9a6c95b59b3
CRs-Fixed: 2804273
When dcs happened for three times in five minutes, then do
restart(start/stop) SAP operation, when SAP is started again,
dcs may happen again quickly, if total four times dcs happened
in five minutes, dcs_disable_timer will be started due to dcs
happened frequency control policy, it will disable wlan
interference detection for 30 minutes and dcs interference
detection won't work for 30 minutes, it's unreasonable. After
SAP restart, dcs happened times should be calculated from zero.
Add ucfg API to reset im stats and freq ctrl params.
Change-Id: I4ad8234349d24f044dff700d90e1bec859eaa397
CRs-Fixed: 2739299
In the process of dcs disable delay, do restart(start/stop) SAP
operation, when SAP is started, it will send dcs cmd to enable
dcs wlan im again, but dcs_disable_timer is still running and
disable_delay_process is still true, dcs interference detection won't
work in time, after dcs_disable_timer timeout, it will set
disable_delay_process to false and dcs interference detection will
work again, but it will delay for some time from SAP started.
Fix is to reset im stats and freq ctrl params when enable dcs
wlan im.
Change-Id: I5be96b65037088c2797135a2b4c685c2826b2b57
CRs-Fixed: 2676033
Both im_intfr_cnt and im_samp_cnt need to store for following
dcs event process, dcs_im_stats is a local variable, so both
im_intfr_cnt and im_samp_cnt value will be missing when function
wlan_dcs_wlan_interference_process return.
Fix is to define pointer p_dcs_im_stats for use.
Change-Id: I39622fbf0153271f27a03387ace4a270a912b6ff
CRs-Fixed: 2638316
For MCL side, WLAN_UMAC_MAX_PDEVS is always 1 from current design,
so it's wrong to use WLAN_UMAC_MAX_PDEVS define array dcs_pdev_priv,
since dcs_pdev_priv includes firmware indicated pdev dcs information,
define WLAN_DCS_MAX_PDEVS to 3 for dcs use, this will be compatible
for both MCL and WIN side.
Change-Id: I3bac35f561c49e9959645e85774662ff48d7903d
CRs-Fixed: 2627683