Assign DMA address correctly to all scatterlist elements of scatter
gather table in qdf_mem_shared_mem_alloc() func.
Change-Id: I07988d0bc35e3e0fcf7b9f6df02a9e56a0e8b083
CRS-Fixed: 2110715
Add WLAN_MLME_OBJ_DEL_ID for tracking obj delete requests
sent to target and responses received from target.
Change-Id: I7d7de4b168f1e7174f1cbb213bfe0f75aaa63db9
CRs-Fixed: 2271367
Due to some inconsistency in defining definition of cfg_##mtype##_in_range
and the mtype of the CFG_INI_xxx definitions, usage of cfg_in_range
was causing compilation issues.
Fix the cfg_in_range related macros with correct mtypes
Change-Id: I239a5f8735e5f2d7807b4947e36a655f58f26210
CRs-Fixed: 2278335
Map all module level log APIs to per-level log APIs
to compile out specific log level if required.
Change-Id: I4072b6740cb43200fd95c40943b66e1d5f8f1847
CRs-Fixed: 2266719
Reverting the change where mgmt ctrl frame buffer was assinged NULL for
NONTLV payload case as this check is handled later in the same path.
Change-Id: Icccfb401fe34da593198bac27650139654021636
CRs-Fixed: 2276923
Firmware needs HW MODE ID not list index.
Use HW mode ID to set HW MODE WMI command.
Change-Id: I12f9d83daee1c99706c345d85f03781257b492bf
CRs-Fixed: 2256175
TX comletion for WMI_FORCE_FW_HANG_CMDID would come after
TARGET_STATUS_RESET is set. In such a senario, there would
be memory leak.
Flush TxLookupQueue for WMI_CONTROL_SVC during htc_stop.
Since netbuf is freed in ISR, just free HTC frame here.
Change-Id: I5fab3effda1db70fa9b1208c854231a88b48309b
CRs-Fixed: 2242862
Such log will show once has the spectral scan result message
need to send to application, which is boring and delete it
Change-Id: I4e7fd8877b354d94022b65a8e43cc4ca3e285943
CRs-Fixed: 2274032
Currently, it uses the dev mac as peer mac addr for parameter and
the function wlan_obj_psoc_peerlist_get_peer_by_pdev_id returns
NULL because the mac addr does not match. Then the callback will
be ignored for WMI_UPDATE_STATS_EVENTID.
Change-Id: I6e257d3103315bbacb66b3f5db660cfa883966b5
CRs-Fixed: 2272056
Setup monitor mode rings and allocate
descriptors only if QCA6390_MONITOR_MODE is
defined.
Change-Id: I9c9bdc1e325eda822a326d64d6445a7112083420
CRs-Fixed: 2271998
Add and initialize UMAC peer handle into DP peer structure as opaque
and to pass UMAC node structure to ol if layer for Block Ack and
rx_frag_tkip_demic functions.
Change-Id: If7c3faf859c97832c3c7f50fc163142b68eedeeb
CRs-Fixed: 2241356
Move few common dp_ol_if_ops functions to target_if layer as part of
DP-CP interaction convergence
Change-Id: I9ad740af687f550f64ef8f81919159b73204e7b8
CRs-Fixed: 2243694
In the scan channel list, host sends both 2.4GHz and 4.9GHz channels to FW
because there are ieee channels which have same value in 2.4 GHz and 5GHz
bands. Example: channel 1 is 2.412 in 2.4GHz and 4.942 in 5 GHz.
When converting a channel to freq, the host uses low/high 2GHz and 5GHz
frequency ranges. For a partial-offload 5GHz pdev, both low/high 2.4 GHz
and 5 GHz frequencies are set and hence 4.9 GHz channel is converted to
2.4GHz frequency.
To fix the above issue, based on the wireless modes remove either low/high
2.4 GHz or low/high 5 GHz frequency based on the wireless modes.
Change-Id: I1fb0a56c70d1dc0ffc2731da3f25c910af46bb41
CRs-Fixed: 2239771
In existing code, variable used to track mgmt. and control
TLV is getting reset only in success case.
Add change to reset it appropriately.
CRs-Fixed: 2248313
Change-Id: Ieac5dc215f441b0530013ea1e36abcba19294754
Changes to switch to the preferred preCAC channel after the
preCAC is done.
User can configure non-DFS channel as an intermediate
channel to reduce AP bringup time, and configure the DFS
channel as usual. PreCAC Logic will use the intermediate
channel as the home channel and will prioritize the DFS channel
to start preCAC first and switch automatically after the preCAC
timeout.
Command to configure intermediate non-DFS channel
iwpriv wifiX interCACChan <non-DFS channel num>
Assumption:
Intermediate channel should be configured before configuring
the DFS channel as operating channel.
Change-Id: I1dc00fa395aec53bfe5a6361095cd7d77ced503c
CRs-Fixed: 2272085
Currently DFS channels are skipped for SAP/GO in cds_get_channel_list
when ini g_sta_sap_scc_on_dfs_chan is configured as 0.
Refine the logic of DFS channels skipping when station exists. Do not
select DFS channels for SAP/GO when below cases are both satisfied.
1. Station exists.
2. Ini g_sta_sap_scc_on_dfs_chan is set as 0.
Change-Id: I2f082388a662d54968b3c2e95e5713eeffa1b131
CRs-Fixed: 2275724
Forward declare 'struct wmi_spectral_cmd_ops' in
file wlan_spectral_utils_api.h to avoid
compilation issue when spectral feature flag
is disabled.
Change-Id: Iba8dfbb2007f20d409fbb2d67ee29f702264e50d
CRs-Fixed: 2269005
osdep contains many legacy APIs which have better counterparts elsewhere
in QDF. Remove unused APIs from osdep to avoid reintroducing their
usage.
Change-Id: I912b6d0dae510e96f5ab520d5d5b4ac6c60fbe86
CRs-Fixed: 2276316
Currently, there is no logic to ensure a given nbuf has been properly
unmapped when it is freed. This can lead to side-effects when the same
address is allocated for an nbuf in the future. Ensure a given nbuf has
been unmapped during free to ensure all nbufs are properly unmapped.
Change-Id: I925af1fbbbde6baa0f12a4468a33332bc75bdfbc
CRs-Fixed: 2271768
qdf_event has a number of overly verbose logs, which use QDF_TRACE
directly. As direct use of QDF_TRACE is deprecated, optimize logs in
qdf_event and replace any remaining QDF_TRACE calls with qdf_*()
logging macros.
Change-Id: I89491d7e49ea323d1bc3a32789c005b0238f0099
CRs-Fixed: 2270770
Add max_size parameter in the hw_srng_table
to hold the maximum size for a given ring.
Change-Id: Ibfce021505ab9a55d3208b1c5aba26021d1fe230
CRs-Fixed: 2262818
Serialization component's APIs may get called by various
component owners through different thread contexts. This makes
lock a mandatory requirement in order to prevent any shared data
corruption.
Implement abstract lock APIs within serialization component and
use them in all public serialization APIs which access various
command queues.
Protect the serialization list node by introducing a check for
the state of the node and check for the state before deleting
the node.
Change-Id: Ida74b2e958e37943f1ebedb854d5c35862813498
CRs-Fixed: 2226663
wlan_serialization_pdev_scan_status is used to check whether
there is scan cmd in active or pending list, don't need to
check details of each node in list.
While checking details of a node in list by wpa_supplicant,
the node may be removed by mc thread in race condition.
Change-Id: I019869c23ebb7d6e157babf5ad6eaf0668ff842a
CRs-Fixed: 2268619
QDF_STATUS_E_TIMEOUT is currently mapped to the default -EPERM in
qdf_status_to_os_return(). Add a mappings to -ETIMEDOUT instead.
Change-Id: I61af2fb00ee83118ba09b2c3fbc5995b14212d87
CRs-Fixed: 2275459
During device reset, wifi_core_id will not be initialized if the
target is not in ready state. Hence assigning default value to it.
Change-Id: I91f3f640ed9252351cb82fbde2515c9308992635
CRs-Fixed: 2180836
For cases where you want to create and immediately start a thread, the
Linux kernel has the kthread_run() API. Create a QDF wrapper for
kthread_run() as well as companion APIs for waiting for a thread to exit
and one to check if the current thread should exit.
Change-Id: Ia4e107010fc400f764661a9b36aceea970841ade
CRs-Fixed: 2270827
Issue can be reproduced when test D0WOW ROME PCIE.
Multi interrupts may only trigger tasklet one time,
which will cause active_tasklet_cnt mismatch.
Check tasklet/napi scheduled state
Change-Id: I66b5544c4d57fe91eae75d4cf8578e30b498e1fd
CRs-Fixed: 2070872
When transmitting management frames, do not request new ROC if there
is idle ROC on same channel in queue.
Change-Id: Id7b33aa2b9fa376675c520161e4c907ea0593c88
CRs-Fixed: 2275191
There are two instances where peer ref counting leak has been observed
1) When DUT-STA is connected to AP1 and if it tries to roam to AP2 or
to same AP1 then as part of roam sync indication, it needs to delete
the old peer and create the new peer. Deletion of old peer is
happening through force delete operation which is No-OP for some of
the platforms. In such cases, do normal peer delete operation, so
that peer ref count can be deleted properly.
2) When looking up peer by its associated vdev, driver goes one by one
all peers and check their associated vdev and compare with given
vdev. If it doesn't find the match then it returns without releasing
the reference count.
CRs-Fixed: 2263607
Change-Id: Ibcad72943258e531e29498961d3d7e692fd05b36
To convert ASCII hexa decimal character to unsigned value and similarly
to convert string of ASCII hexa decimal characters to array of decimal
values, there is need of QDF API.
Therfore, add QDF wrapper functions to kernel API hex_to_bin() and
hex2bin().
Change-Id: I4692961eeba9067f9b737f7deeefca397ff1a7bf
CRs-Fixed: 2274320
There is an invalid circular dependency of header files in the
driver. qdf_nbuf.h file includes itself as qdf_nbuf.h file
includes i_qdf_nbuf.h and i_qdf_nbuf.h again includes qdf_nbuf.h.
To resolve this issue, do not include qdf_nbuf.h in i_qdf_nbuf.h
Change-Id: I940321b23e95a81601657d149ff31826db2522ba
CRs-Fixed: 2267066
Enable CE schedulign logging feature such that each CE
activity can be recorded for debug purpose. Previous commit
I68a765c6219a2ff2a6a7adc7e8ed031f8957d243 has broken this
debug feature. Fix the CE scheduling logging feature properly
such that its available in SLUB debug enabled builds.
Change-Id: I24ca711378ecda8a8563fe3899fae16ca032f29d
CRs-Fixed: 2272459
QDF_DEBUG_PANIC has recently gained a reason parameter. Move instance of
logging followed immediately by QDF_DEBUG_PANIC to single calls.
Change-Id: Ifc00be410621005e8494074ed00b1b7e44cc6a03
CRs-Fixed: 2271769
While processing the WMA_ROAM_OFFLOAD_SYNCH_IND event, The
driver takes nearly 150 to 200 msec time to just write fatal,
error and info messages to the kmsg log buffer. Also to get
tx power supplicant runs another thread while roaming. These
cause more latency(300ms) to send WMA_ROAM_OFFLOAD_SYNCH_CNF
message to fw. To decrease roam latency, the driver should
write the only necessary error message to kmsg buffer.
Fix is to change irrelevant fatal, error and info message type
to debug.
Change-Id: I521104c692eb42112ce2528c15d09785ff3470b6
CRs-Fixed: 2261592
1. Modifications for SDIO HIF interface with stack.
Mailbox based devices do not use the SDIO abstraction layer.
So, devices like QCA6174, QCA9379 etc are to interface with
the SDIO stack directly, even if the CNSS wrappers are used.
ADMA based devices use the SDIO abstraction layer. So, devices
like QCN7605 do not interface with the SDIO stack directly.
2. Remove redundant osdrv layer and refactor the functions
3. Propagate hif context to all the interface functions in hif
4. Remove duplicate hif object allocation (scn) in SDIO hif
Change-Id: I75cfe97b1ef913d1a3e6e556ec5eff796eb9f1d9
CRs-Fixed: 2271110
From the IOCTL command WE_POLICY_MANAGER_PCL_CMD, we get the cds
concurrency mode as argument and pass it to cds_get_pcl to get
the pcl channel list. This concurrency mode parameter is used as
the array index to retrieve the enum cds_pcl_type. If this value
is greater than CDS_MAX_NUM_OF_MODE an OOB read will occur in
iw_hdd_set_var_ints_getnone.
Add check to validate the input cds mode argument against the macro
CDS_MAX_NUM_OF_MODE. Return error if it is violated.
Change-Id: I51073061be363d9680abf0566b77be7c7573d0fe
CRs-Fixed: 2233991
Extract/Save the Hw mode ID and Mac0 band info
to hw mode list.
This helps to identify the 2x2 5G + 1x1 2G and
2x2 2G + 1x1 5G.
Change-Id: I0682337b1a80c1b502c3307e0847aaa99479d2d3
CRs-Fixed: 2256152
structures
Rename osif_pdev to ctrl_pdev and os_if_vdev to ctrl_vdev in dp_pdev and
osif_dev structures respectively which are
pointing to objmgr_pdev and objmgr_vdev structures to maintain
uniformity
Change-Id: Ida95a1a90ea74513573f00c652338baee3df897a
CRs-Fixed: 2241362