Commit Graph

7109 Commits

Author SHA1 Message Date
Liangwei Dong
b2569fd660 qcacmn: Support p2p GO random chan selection
MCL needs the interface type to query policy mgr for PCL
when selecting random channel. The existing API
utils_dfs_get_random_channel doesn't provide the vdev
type. Add new utils_dfs_get_vdev_random_channel
with vdev parameter to support P2P GO random channel
selection.

Change-Id: I0c6841b1692baca92730a6be73653282c98f1682
CRs-Fixed: 2467871
2019-07-09 18:51:18 -07:00
sumedh baikady
3a3b8fca39 qcacmn: Remove hw_nac_support flag for HKv1
The hw_nac support flag is used for HKv2 only
for indicating monitor direct feature in HKv2
HW. This is not required for HKv1 and was added
for test purpose only.

Change-Id: If44b2acc06d5bf65fcb1934fab2e68c5c7e0f651
Crs-Fixed: 2485142
2019-07-09 18:51:04 -07:00
Shiva Krishna Pittala
6c43fa8a14 qcacmn: Add radio level parameter OL_ATH_EXT_ACS_REQUEST_IN_PROGRESS
A radio level parameter for configuring if external channel selection on
the radio is in progress is required to reduce the number of external
channel selection requests by the radio.
Add the parameter OL_ATH_EXT_ACS_REQUEST_IN_PROGRESS for this purpose.

Change-Id: I30ce066e840b11fe23158b896977fbf3924dbbf3
CRs-Fixed: 2483737
2019-07-09 12:28:09 -07:00
wadesong
9b220a6ec6 qcacmn: Cleanup CONFIG_MCL for pktlog related code
Replace macro CONFIG_MCL with FEATURE_PKTLOG for
pktlog related code.

Add some macro changes to ensure the following 3
functions' declarations are enclosed by the right
macros:

wlan_deregister_txrx_packetdump
wlan_register_txrx_packetdump
wlan_pkt_stats_to_logger_thread

Change-Id: I900de3be28faee8403923a5e4bd326e69895d998
CRs-Fixed: 2406250
2019-07-08 12:10:09 -07:00
Yu Ouyang
5936495779 qcacmn: fix pcie card enable issue without CNSS module
For 3rd party platform, without CNSS module, PCIe card failed
to enable.

Function hif_pci_enable_bus() should call hif_enable_pci_nopld(),
not hif_enable_pci_pld(). So, checking platform driver supported
or not before enable bus. If platform driver is not supported,
return false in function hif_is_pld_based_target().

CRs-Fixed: 2439335
Change-Id: I57a1272f082e7ba1fbeee43d58a81997f3d0e6d7
2019-07-08 12:10:04 -07:00
Jinwei Chen
63705259d2 qcacmn: fix dp_rx_defrag_add_last_frag peer tid array invalid access
In some case, HW will fill in unexpected peer_id into RX PKT TLV,
if this peer_id related peer is valid by coincidence, but actually
this peer won't do dp_peer_rx_init(like SAP Vdev self peer),
then invalid accessing to peer rx tid will happen.

do SW WAR that add checking about peer tid array, if not initialed,
free the rx nbuf.

Change-Id: Icf196b4f92eb341e1ace5128c681d24c41dff6cd
CRs-Fixed: 2468537
2019-07-08 08:48:31 -07:00
Amir Patel
57e7e055f2 qcacmn: Filter rx fcs error frames for m_copy mode
Filter fcs_err frames and pass only first fcs ok msdu payload
from ppdu to upper layer

Change-Id: Ibf739193275f4f5a5c3e786abbbaa45165b5aa13
CRs-Fixed: 2439392
2019-07-05 14:32:20 -07:00
Srinivas Dasari
f4667d4ba0 qcacmn: Add a vendor attribute to configure disconnect IEs
Add a new vendor attribute QCA_WLAN_VENDOR_ATTR_DISCONNECT_IES
to configure disconnect IEs to the driver. Driver shall fill
these IEs in disassoc/deauth frame.
These IEs are expected to be considered only for the next
immediate disconnection (disassoc/deauth frame) originated by
the DUT, irrespective of the entity (user space/driver/firmware)
triggering the disconnection.
The host drivers are not expected to use the IEs set through
this interface for further disconnections after the first immediate
disconnection initiated post the configuration.
If the IEs are also updated through cfg80211 interface (after the
enhancement to cfg80211_disconnect), host driver is expected to
take the union of IEs from both of these interfaces and send in
further disassoc/deauth frames.

Change-Id: I3fd6e8e37d4282bceef44054d883d214d2a2825c
CRs-Fixed: 2482021
2019-07-05 13:10:35 -07:00
Naga
8e5172276f qcacmn: Add WMI support for vdev delete all peer
Add WMI support for vdev delete all
peer request which will replace individual peer
delete of peers under a vdev during vdev down.

Change-Id: Ia41ae5fbf96a75d2a3e608564742d2a43e0ed2cc
CRs-Fixed: 2456858
2019-07-05 10:26:44 -07:00
Naga
52beb2c087 qcacmn: Add target_if/mlme support for vdev delete all peer
Add target_if/mlme support for vdev delete all
peer request which will replace individual peer
delete of peers under a vdev during vdev down.

Change-Id: Ic9aadefefe26bcdcd38bb5a28be712e3c5e2963a
CRs-Fixed: 2456858
2019-07-05 10:26:40 -07:00
Vevek Venkatesan
acd3a070da qcacmn: enable DP AP Bridge when SAP mode turned on
Enable DP AP Bridge when SAP mode turned on, CONFIG_MCL cleanup.

Change-Id: I96fa3c263064fe4e438c98246d02dbc50437984b
2019-07-05 10:26:37 -07:00
tinlin
f5ecc601ca qcacmn: Support op class 30 in US
According to spec, add operating class 30 for
country US.

Change-Id: Ie8268fe7e00d7dcb959c5744a1ab38d63a8d5397
CRs-Fixed: 2473419
2019-07-05 10:26:33 -07:00
Linux Build Service Account
da3a277778 Merge "qcacmn: Correct tx_encap_type check" 2019-07-04 07:05:33 -07:00
Linux Build Service Account
1e54195c9a Merge "qcacmn: Add new config file for scan params" 2019-07-04 07:05:33 -07:00
Linux Build Service Account
f84fb21c59 Merge "qcacmn: Fix ppdu info release during detach" 2019-07-04 07:05:32 -07:00
Linux Build Service Account
c8bd32fbc8 Merge "qcacmn: Fix target assert caused due to DBS band limitation WAR" 2019-07-04 02:35:35 -07:00
Linux Build Service Account
eb44ee3099 Merge "qcacmn: Add WAR for DBS mode phy0 band limitation" 2019-07-04 02:35:35 -07:00
Prathyusha Guduri
1ad9ff9026 qcacmn: Correct tx_encap_type check
In exception path correct tx_encap_type check

Change-Id: I777202f593d4f37b2d51f5c4c9d6cd3e183e911a
2019-07-03 08:56:17 -07:00
Ashish Kumar Dhanotiya
e2ff8ee254 qcacmn: Add support to parse a string into uint16 array
Currently there is no api to parse a string to uint16 array.

Write an api to parse a string to uint16 array.

Change-Id: Idbde9d70c64bc131813f5789c0453c9b3736228b
CRs-Fixed: 2478267
2019-07-03 08:56:13 -07:00
Akshay Kosigi
aa3385d78d qcacmn: Add new config file for scan params
Add a new file ap_scan config file to store
scan params related to AP, as a part of
CONFIG_WIN cleanup

Change-Id: I195b0cc320bfc3e513a92c6710b003d0a029a510
2019-07-03 08:56:09 -07:00
nobelj
aa57301f00 qcacmn: Fix ppdu info release during detach
queued ppdu info list are free at wrong function causing leak.

Change-Id: I4fb75c5612095af8c965d46ebafd401dd0ed7bf9
2019-07-03 08:56:06 -07:00
Balaganapathy Palanisamy
ac6e852e8c qcacmn: Add new DEBUG IDs for objmgr
Add new DEBUG IDs for more granularity in object manager

Change-Id: Iffedabde1e3ca8d3d5e8b4e5f7f77c2019c2c6bb
2019-07-03 07:26:03 -07:00
Akshay Kosigi
c36e354311 qcacmn: Fix for removal of void pointer usage
Add changes to remove usage of void pointer for wmi_handle
Instead use an opaque pointer(set 2)

Change-Id: I06a89adaf15c6b398dbc901518aa83927b7ca16a
CRs-Fixed: 2479298
2019-07-02 09:47:56 -07:00
Vevek Venkatesan
0ac9aafb9a qcacmn: remove qwlan version string dependency
Remove QWLAN_VERSIONSTR dependency in cmn code, so that it would
be used in driver itself, part of CONFIG_MCL/CONFIG_WIN cleanup.

Change-Id: Iec0cefe1d9e39a5b5546c7b007cc0858044cdc7b
CRs-Fixed: 2481053
2019-07-02 08:39:23 -07:00
Ajit Pal Singh
5c3ba8908f qcacmn: dp: hl: Read tx resources after single thread check
Bus TX resources are being read before the single thread check.
If the thread is pre-empted, the tx_resource variable may not
match with actual TX resources.

Change-Id: I7e8af58a5702172a4cfbea9175f333aad4a57238
CRs-Fixed: 2459253
2019-07-02 08:39:20 -07:00
Vevek Venkatesan
94a976d817 qcacmn: move HIF_CONFIG_SLUB_DEBUG_ON define to driver Kbuild
Move definition of HIF_CONFIG_SLUB_DEBUG_ON to driver Kbuild,
to cleanup CONFIG_MCL/CONFIG_WIN dependency.

Change-Id: I563d248413c98d7704e32ae06c260c02d915495a
2019-07-02 02:40:18 -07:00
Vevek Venkatesan
bd2837220b qcacmn: featurize wmi multi mac service
Featurize wmi multi mac service with the feature flag
WMI_MULTI_MAC_SVC, to cleanup CONFIG_MCL dependency.

Change-Id: I34a513a90096c586091034029fc17b6bf23a7278
2019-07-02 02:40:15 -07:00
Akshay Kosigi
f0c668f54a qcacmn: Fix for removal of void pointer usage
Add changes to remove usage of void pointer for wmi_handle
Instead use an opaque pointer(wmi_handle_t)

Change-Id: I7c6dce564f34352c75e0b9d0c90591de625f1959
CRs-Fixed: 2479299
2019-07-02 02:40:11 -07:00
Chaitanya Kiran Godavarthi
8c880d3fd2 qcacmn: Handle AP and STA Tx stats separately
AP and STA stats need to be handled separately.

Change-Id: I105856d6d4ee39a116966eb3ff47775b54f08ef4
2019-07-01 22:30:58 -07:00
Bala Venkatesh
512104fbe5 qcacmn: Avoid NULL pointer access
In function reg_dmn_print_channels_in_opclass,
check for NULL pointer of the variable class
before dereferencing.

Change-Id: I6a17bf85b0a3dfbe1af9434583f31c96c268cc98
CRs-Fixed: 2470338
2019-07-01 07:12:27 -07:00
Linux Build Service Account
438e248a07 Merge "qcacmn: user_id check while accessing ppdu_info->rx_msdu_info" 2019-07-01 06:04:51 -07:00
Linux Build Service Account
88d1460485 Merge "qcacmn: Remove redundant definition of WEXT macros" 2019-07-01 06:04:51 -07:00
Santosh Anbu
e44904327a qcacmn: Update doc for serialization commands
Add change to update the doc section for the list of commands supported
by the serialization module.

Change-Id: I3534d3798291fa259c8ee4de38df8c0e8649e5ab
CRs-Fixed: 2477833
2019-07-01 02:24:54 -07:00
Rakesh Pillai
746c5c67d6 qcacmn: Initialize peer bufq and info_lock on reuse
Currently in case when a peer handle is reused, the
info_lock and bufq resources are not getting initialized.
Hence when this peer handle is deleted upon the subsequent
peer delete, the info_lock and bufq resources are freed
without being initialized.

Initialize the peer info_lock and bufq resources when
the peer handle is being reused.

CRs-Fixed: 2476985
Change-Id: Ib442b02e05b8934a6f7c614e1fc643598637fea5
2019-07-01 02:24:51 -07:00
Tallapragada Kalyan
17254eddc8 qcacmn: Delete WDS AST entry if the hw_peer_id is invalid in peer map
Delete WDS AST entry if the hw_peer_id is invalid in peer map
in cases where the HW exceeds the max hash skid it can support
the AST entry will not be added and as an indication of this
the host will receive a peer map event with hw_index as 0xffff
Host has to check for this type of hw_index and appropriately
delete the AST entry from the HOST table.

Change-Id: I9a135517440b9b20edd3ffd990d89876b7e34047
CRs-Fixed: 2460116
2019-07-01 02:24:47 -07:00
Shashikala Prabhu
84f2effd3f qcacmn: Fix target assert caused due to DBS band limitation WAR
In some boards, FW can send preferred HW mode as DBS and num HW modes as 2.
In this scenario, with I65ab1b803f652cf6b636cd885c6c0afd2251b0ce change we
observed a target  assert.

To fix the assert, apply the DBS mode phy0 band limitation WAR only if FW
sends preferred mode as DBS and DBS_SBS.

Change-Id: If71d143b4b6a60df7499c0f7b9da00ebf73f2b4e
CRs-Fixed: 2465391
2019-06-30 23:47:18 -07:00
Gyanranjan Hazarika
91005b0b3f qcacmn: Add WAR for DBS mode phy0 band limitation
The limitation of having a single BDF for both DBS (2 radio)
and DBS_SBS (3 radio) capable board is leading to FW sending
 per-phy band-to-mac mapping as regulatory capability
as part of service_ext_ready. The boards which have the capability
of switching between DBS and DBS_SBS modes through init-time
(INI) file configuration are limited to 5G upper bound only
even in DBS mode becasue of the above constraint.

This WAR overwrites, in psoc-reg_cap, phy0 low or phy0 high frequency
depending on whether it is mapped to upper or lower 5G band by FW/hal-phy.

Change-Id: I65ab1b803f652cf6b636cd885c6c0afd2251b0ce
CRs-Fixed: 2465391
2019-06-30 23:47:15 -07:00
Naga
3998909959 qcacmn: Add MLME support for vdev delete all peer
Add umac/mlme support for vdev delete all
peer request which will replace individual peer
delete of peers under a vdev during vdev down.

Change-Id: I6afdfae619fce361acd60705fe2d7ad888a8e33e
CRs-Fixed: 2456858
2019-06-30 12:22:20 -07:00
Naga
866a668f99 qcacmn: Add lmac support for vdev delete all peer
Add lmac support for vdev delete all
peer request which will replace individual peer
delete for peers under a vdev during vdev down.

Change-Id: I98b5228c17b08eedd50b82372efe1b249cef2699
CRs-Fixed: 2477650
2019-06-30 12:22:17 -07:00
Naman Padhiar
7c8bfaede5 qcacmn: Add prototype for hal_reo_cmd_set_descr_addr
Add declaration to avoid compile time error in case of
strict compilation rule.

Change-Id: I69dc2feeab9bd804cb72793418ee743860fd2088
2019-06-30 09:47:15 -07:00
Debasis Das
8e068f4023 qcacmn: Fix memleak during wifi unload
The soc common cleanup should be called from
pdev_deinit path to prevent leak of m/r allocated
for spinlocks and Tx descriptors.

Change-Id: Ie8ad3d164ab07f37f8143d1fe147e5cbabbb4991
2019-06-30 08:42:25 -07:00
bings
942a552a17 qcacmn: Ignore legacy rate set if it is HE connection
Do not configure legacy rate to FW if it is HE connection, otherwise
FW does not work.

Change-Id: I391e328ac71761722642f884e2be2b3eb15d2a1d
CRs-Fixed: 2475625
2019-06-29 08:37:47 -07:00
Kiran Kumar Lokere
47e93c04b3 qcacmn: Update HE capability in scan channel list cmd
Set HE capability support in scan channel list command to enable
HE IEs probe request frames.

Change-Id: Ia8836f033ee010ba21f82fdc21da5085e70bc0a4
CRs-Fixed: 2478069
2019-06-29 00:16:34 -07:00
Yue Ma
fab77ad949 qcacmn: Do not request runtime PM resume for system resume
Firmware will trigger WAKE MSI for both runtime PM and system
resume. There is no need to request runtime PM resume again if
it is a system resume. Check the flags to avoid doing so.

Change-Id: I70bdfadf1d7c0ffd4e2849458c6aee6931037cd3
CRs-fixed: 2479631
2019-06-29 00:16:31 -07:00
Mohit Khanna
c8bcf201ef qcacmn: Add QDF API to set thread cpu mask
Add QDF API to set cpu mask - qdf_thread_set_cpus_allowed_ptr.
Linux version of this API is implemented using set_cpus_allowed_ptr
linux API.

Change-Id: I3122e2b30c6d3f02e9c874c19db610e5f09ec064
CRs-Fixed: 2474323
2019-06-28 18:07:58 -07:00
Alok Kumar
5d4c6f2f17 qcacmn: Avoid NULL pointer dereference of pointer 'pPacket'
Pointer 'pPacket' returned from call to the function
'htc_packet_dequeue' may be NULL.

Add a NULL check for pPacket before dereferencing it.

Change-Id: I1ecb82cce0fc00877b3ec2de2676027dde261186
CRs-Fixed: 2478206
2019-06-28 11:08:59 -07:00
Liangwei Dong
f1d4eaaa3a qcacmn: Allow full spectrum scan when agile & aDFS scan supported
The old change I7e5a21601642e0d6afef73beeecf80a3e0475909
is missing when new scan mgr introduced, re-design the
change:
Traditionally full spectrum scan on STA/CLI is not
allowed when SAP/GO is already present on DFS channel.
With new generation of hardware, agile scan and
agile DFS scan features are supported which will
allow hardware to do full spectrum scan even if
SAP/GO is present on DFS channel.

Change-Id: I28e034627876b5460f85e74e66d6f4e7b2d5846c
CRs-Fixed: 2470935
2019-06-28 09:40:39 -07:00
Jianmin Zhu
f9a03d090a qcacmn: Enable channel avoid event ignore feature
CH_AVOID_RULE_DO_NOT_RESTART has existed, can be used to support
channel avoid event ignore feature by ini
restart_beaconing_on_chan_avoid_event.

In automobile special requirement, LTE co-ex event needs to be
ignored to avoid mcc.

Change-Id: If24c9132c0098f3c463d3eefc6e957335ddedef1
CRs-Fixed: 2476111
2019-06-28 09:40:36 -07:00
Shiva Krishna Pittala
1529d99839 qcacmn: Add debug version of qdf_mem_multi_pages_alloc/free
Under memory debug, qdf_mem_multi_pages_alloc function is getting
reported as the culprit of memory leaks when there is no associated
qdf_mem_multi_pages_free call. qdf_mem_multi_pages_alloc is
just an allocator function which uses qdf_mem_malloc internally to
serve the requested allocation and is not the actual source of the leak.
As there are multiple users of qdf_mem_multi_pages_alloc in the code base,
add memory debug versions of qdf_mem_multi_pages_alloc/free to track the
actual users of the allocations.

Change-Id: I8b2159de842a3c5d7f9cdb244ca148cf6df37d0d
CRs-Fixed: 2474749
2019-06-27 17:16:07 -07:00
Jinwei Chen
5372d55f63 qcacmn: fix invalid access to hif_ext_group issue
hif_ext_group is not initialized if DP interrupt is not registed
like monitor mode, invalid access will happen in function
hif_hist_record_event.

if hif_num_extgroup is 0, stop access to hif_ext_group member.

Change-Id: Id4432577446caa8887ca6d1fb8b669dda8c9fdf3
CRs-Fixed: 2475506
2019-06-27 12:30:25 -07:00