Update NOL list based on the external radar information sent
from the action frame and store in DFS structure.
Add an utility - dispatcher function that can be called by UMAC
with NOL IE information.
In the DFS structure,
1). If subchannel marking is disabled, add all the current
channel's subchannels to NOL, do not update the NOL IE
structures inside dfs, and send a flag saying not to
propagate the NOL IE to uplink.
This is because, in case of cascading repeaters, one
of the repeaters (RE1) in the cascading system might have
subchannel marking disabled. In that case, sending the
same NOL IE to uplink results in RE1 and its BSS to disconnect.
2). If subchannel marking is enabled, add those subhannels to NOL,
and update flags saying NOL and RCSA IE should be sent.
Change-Id: I3f3e14a59503cd1a15573c988a984a20117aa814
CRs-Fixed: 2328377
Calculate the bitmap of subchannels that are affected by
radar and store in dfs structure along with flags
Algorithm:
1). Given the radar affected subchannels list, create a
NOL bitmap, where
1 - Radar hit on Subchannel.
0 - Subchannel not affected.
2). Along with the NOL bitmap, send the Minimum Bandwidth
for each subchannel and the Channel list's starting
channel's centre frequency.
Example:
Mode : 100HT80, if radar affected subchannels are 100, 104
and 108.
NOL bandwidth: 20.
NOL start frequency: 5500.
NOL Bitmap: 11100000.
3). During precac (precac timer running), if radar hits
at secondary segment, the umac code that sends rcsa
is still called, but add a new flag to not send rcsa, and
in rootAP, channel change is not triggered, only NOL
is updated.
Add APIs that can be called from mlme to fetch the NOL and IE
flags information from DFS structure during RCSA framing.
If subchannel marking is disabled, the new NOL bitmap has no meaning
and is hence, not sent.
CRs-Fixed: 2328377
Change-Id: I3114ff5ca2704c316c9dc83220740fac9a6a00a1
Currently the driver checks for the supported rates IE,
and if the length of the IE is greater than 8, the driver
rejects the IE, according to spec.
But some APs supports 12 rates hence are not scanned.
Fix is to have a supported rates IE length check of 12 instead
of 8.
Change-Id: Ib0e25c94e781ccd44b7f08ea3db6109ad8d6ad22
CRs-Fixed: 2360709
Currently qdf_mem contains a function, qdf_mem_validate_list_node(), for
validating a list node and ensuring it is currently part of a list.
Instead, abstract this function from qdf_mem, and move the definition to
qdf_list_node_in_any_list() in qdf_list. This is a more reasonable
location for the list-specific logic, and allows its reuse by other
callers.
Change-Id: I56a5d54e3c81470a111f168533faedf7fa525ff3
CRs-Fixed: 2359358
Assign dp_ath_rate_lpf return value to avg_tx_rate,
which is further used to compute ppdu_tx_rate
Change-Id: Ib51be85c2436bef8feffeb611982314720399a69
CRs-Fixed: 2356831
When PLD_USB_CNSS is enabled, call pld_wlan_enable() from
hif_usb_bus_configure().
Do not call pld_wlan_enable() when QMI is not enabled.
CRs-Fixed: 2325591
Change-Id: Ie710f8aea1b5ceb9d3a633348858775b2ff462d5
Create ucfg apis in scan components for calling from hdd.
Move the scan apis to new file, wlan_scan_api.c
Change-Id: Iec08eddbba3066a4d781c988624d47749a75610a
CRs-Fixed: 2342892
int_ctx variable is not defined but it is being used which creates
compilation error. Define this variable as part of the fix.
CRs-Fixed: 2359507
Change-Id: I17e57663eb8daa449616ee99d5eb9455e3b7cee2
NAN will not be needed in CMN codebase, to reduce the
unnecessary lines of code all the NAN related files have
been merged into CLD. Remove all those files from CMN,
remove NAN related API's and structures from init-deinit,
target if and lmac components.
Remove NAN component and related files from CMN.
Change-Id: I8fa22b84aff30cfbb7a8cd0a573acf6e0a9d8744
CRs-Fixed: 2338061
Need to use tid_lock to protect the rx_tid data structure in the
dp_rx_reorder_flush_frag function. Or else there will be race
condition issues.
CRs-Fixed: 2357226
Change-Id: I860a64b529f0548eced7b537c4180a2c57175a56
A few instances of violating "Block comments should align the * on
each line" have been identified in target_if/dfs, so fix them.
Change-Id: Ic198912225b8bec587e30d00d7a2a5f76e03d366
CRs-Fixed: 2359528
The libc implementations of QDF were originally intended to be used for
off-target unit testing purposes. However, doing this involved
reimplementing large sections of QDF. Instead, unit testing is being
done in an emulator, which provides many of the benefits of off-target
testing without needing to reimplement any logic. As such, remove the
libc folder from QDF.
Change-Id: I829b4cae3f7bad7b24c97ed458e978eab2b0fbbd
CRs-Fixed: 2359499
MCL DP initialization path is running into issues due to change
I5732453f617bdc16995fda916b645c41845c3ecb. Fix the same.
Move flow control lock variables to re-use region. This is needed since
flow control deinit happens in dp_soc_detach, while in dp_soc_deinit, the
soc memory is being partially reset.
De-init HTT memory in dp_soc_deinit and free HTT handle
in dp_soc_detach. The existing code was not freeing HTT
packets for MCL case and freeing the HTT handle twice.
CRs-Fixed: 2359409
Change-Id: I52dcccc0444d4ce139a29ffcb884598bbacda88f
Change made I7fd67b02c3b7cb4f1bfe7c6f4641f6d881e25abd
to fix possible NULL dereference of pkt_stats_dump
caused pkt stats collection to fail as pkt_stats_dump
is NULL from cds_pkt_stats_to_logger_thread.
Move NULL check for pkt_stats_dump to just before
it is dereferenced
Change-Id: I0f4c9d58f0d4d17d6c26bfbbd79f6447dd52230b
CRs-Fixed: 2358139
While handling the WMI_SERVICE_READY_EXT_EVENTID WMI FW event, a NULL
pointer dereference can occur if param_buf->hal_reg_caps is not checked.
Check param_buf->hal_reg_caps before dereferencing it to avoid NULL
pointer dereference.
Change-Id: I00eba5e89fbdde78979d19f492df5ad4dca8b80c
CRs-Fixed: 2347673
Added missed hal_get_hw_hptp_generic
'Get HW head and tail pointer value for any ring' to ipq6018.
Change-Id: Idc4b595ab6c52558542cf6f87e36f590bf93123f
When CONFIG_MOBILE_ROUTER is enabled there are build failures
due to improper featurization of NAN, so fix the featurization.
Change-Id: I6bc11fb82394c2d32b328cb5d50ff974051755e1
CRs-Fixed: 2353170
Initialize the PN to the value which is given by upper layer
and plumb it to HW.
Change-Id: If6b14d2b9b92e4571a85cb20dc445608d5f56961
CRs-Fixed: 2350954
PCIe link up/down voting is critical hence log it using info level
log on console.
Change-Id: Iea2be05cf9ea5231b0e2de54b508d49aec341847
CRs-Fixed: 2357793
Check if ucast pkts count is more than success pkts count,
compute last packet error rate only if ucast is less than success
pkts.
Change-Id: I0aa4d41d09b1691e4d554beab2f2ed7a7f2ceb1e
CRs-Fixed: 2343479
Change max OL_TXRX_NUM_LOCAL_PEER_IDS to 35 to take care of
STA + SAP + P2P concurrency.
Each AP will occupy one ID, so it will occupy 2 IDs for AP-AP mode.
Clients will be assigned max 32 IDs and STA(associated)/
P2P DEV(self-PEER) will get one ID.
Change-Id: I4d3e74c550e34b1d3417825245990655ead87b28
CRs-Fixed: 2356032
Avoid memory fragmentation that happens during
attach-detach flow.
- Reuse transmit allocated static pool memory across soc up/down.
These memories are allocated during soc attach.
- Reuse DP source ring memory, DP soc context, DP pdev context
across soc up/down.
- Reorganise structure members of DP soc and DP pdev so that
we can zero out structure members across soc up/down
- Add cdp soc init/deinit and cdp pdev init/deinit that
will be active across soc up/down
Change-Id: I5732453f617bdc16995fda916b645c41845c3ecb
On MSM platforms, MSI vectors are always wakeable, so calling
enable_irq_wake() on an MSI vector interrupt line is a no-op.
Additionally, on some product lines, this call will fail. This causes
suspend to fail despite the MSI already being wakeable. Simply avoid
marking the wake MSI as wakeable during suspend as a work around.
Change-Id: I32b2b4fb231681ad29b4e98b2410d0eb6e68c671
CRs-Fixed: 2357784
Currently, qdf_nbuf_map_check_for_leaks() logs the leak information
under spinlock before inducing a panic. This can cause a confusing false
positive panic upon releasing the spinlock if the logging took longer
than the spinlock timeout threshold. Since we already know we are going
to panic, panic under spinlock to ensure the panic message is always
appropriate.
Change-Id: Ib98b21e8feac0314b7c1f00f08b9e81112c4f2ba
CRs-Fixed: 2357806
ASE entry aging for MEC entry type was same as
WDS type for 120 secs, this creates an issue when
device roams from MEC to WDS connection by not
aging out till 120secs. So now we reduce the MEC
aging time to 1sec
Change-Id: I6ab3b095a85c6d09f9fcd95b3b39f7152064d297
When x_psoc_create_handle return failed, need free all resources
before return, x_psoc_destroy_handler has no chance to be called
any more.
Change-Id: I63fd3743dd4ef4c9cc35c9ae8464c2b728447818
CRs-Fixed: 2353795
When x_psoc_create_handle return failed, need free all resources
before return, x_psoc_destroy_handler has no chance to be called
any more.
Change-Id: I4b9999dbc2597c4ea860f08a6f3334f7f5728146
CRs-Fixed: 2353795
When wlan_serialization_pdev_create_handle return failed, need
free all resources before return,
wlan_serialization_pdev_destroy_handler has no chance to be
called any more, same for psoc, pdev handlers.
Optimized destroy handlers to avoid double free and leak.
Change-Id: Iae2b7c2fa221502742cbe565b27bcb16b7fc56ed
CRs-Fixed: 2353795
Probe responses received from hidden AP after beacons
with non-zero ssid length will use a new entry in scan
db resulting in multiple scan entries for same AP.
Fix is to remove ssid check in util_is_scan_entry_match
api.
Change-Id: I1c094d483a40d40f7ca9d40b26d04a7f80099dd1
CRs-Fixed: 2353339
The driver has a default scan policy type of DBS scan
which is not overwritten in case of DBS disabled.
Fix is to have a default of NON-DBS scan, and overwrite the
scan policy if the low power, low span scan is triggered,
or if the DBS is disabled from ini.
Change-Id: I8c95b2ca5915e1a74ccdeae55dea5e65bcfe9664
CRs-Fixed: 2354103
objmgr should not call destroy callbacks for components
that have not successfully completed the creating callback.
Or the function wlan_objmgr_xxx_obj_destroy returns with
QDF_STATUS_E_FAILURE and doesn't call wlan_objmgr_xxx_obj_free
to free the psoc/pdev/vdev/peer.
Change-Id: I1ba5a6afd98254cbed4571d5fb1cd24543e1db54
CRs-Fixed: 2318184
A read buffer is allocated and used in
ath_procfs_diag_read and it is not freed
in one exit path which causes a memory leak
Free read buffer in all exit paths of
ath_procfs_diag_read
Change-Id: I1b2446a99f53c2f9130d395dd316eb4649eb24db
CRs-Fixed: 2352165
After gerrit#2436786, vdev in monitor mode is removed from vdev
list of pdev. So it is needed to add one more cdp API to get vdev
in monitor mode.
CRs-Fixed: 2343290
Change-Id: I9d74302a464280881ce0cf25dbc8c4f9d8b8d48d
When reap data from REO2SW ring and if the TP catches up to cached
HP, current logic will update HP again and give a second chance to
reap data. but the TP is not updated to ring register, if more data
is received on this ring then HP easily catches up to TP and the ring
is full.
Update TP as well if HP get chance be updated.
Change-Id: I92f381d2a31f3be987866a829e05b5578098649a
CRs-Fixed: 2334435
The ack_rssi_valid flag to set to 1 only when completion_status
value is 0 which shows that the TX was successful.
Change-Id: I9e520422995e374d7d35b9db0c060d1fce2f9067
In function init_deinit_chainmask_table_alloc, alloc size is declared
as uint32 and is assigned the value the multiplying non zero value
sizeof(struct wlan_psoc_host_chainmask_capabilities) and uint32
value ser_ext_par->chainmask_table[i].num_valid_chainmasks.
This can lead to overflow as multiplies value can be more than uint32.
Change-Id: I9a886d9ee5213ae8989a2c5d4502336cc275418a
CRs-Fixed: 2347650
Change rx defrag related log level from info to debug,
it's not necessary to print normal rx defrag operation related
log default, this can avoid panic caused by excessive logging
when receive lot of fragment data.
Change-Id: Id712d546a760377a6f59b321f73d7ae5ca4af564
CRs-Fixed: 2353869
Introduce a new wmi_send pdev param to enable/disable
"Subchannel Marking" in Firmware (only in Full Offload)
Change-Id: I3cd4f4f13ebca72c4505b6195cc8dc4856d41671
CRs-Fixed: 2334258
Introduce dfs_tgt API to send the WMI command to enable/disable
"Subchannel Marking" in Firmware (only in Full Offload)
Change-Id: If739409521c8704b612e52dfc8ed6b86ffe32bca
CRs-Fixed: 2334258