Commit Graph

266 Commits

Author SHA1 Message Date
Srinivas Pitla
bf0f1c90b3 qcacmn: Dynamic Tx VDEV config
This change allow Tx VDEV of MBSS mode to configured
dynamically by reset the VDEVs.

This change includes FW service bit parsing, checking
VDEV state of all VDEVs, sending MBSS information in
VDEV start command

Change-Id: I46b13629bd1c07be86b408d72c2967642ce8542e
CRs-Fixed: 2759229
2020-08-26 23:57:44 -07:00
Srinivas Girigowda
a4bf024bf1 qcacmn: umac: Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF
Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF.

CRs-Fixed: 2760938
Change-Id: I78b072b5cc623477135823512f9b8e7ef7ef4309
2020-08-23 23:09:36 -07:00
Wu Gao
a7bc8640bb qcacmn: Returns NULL if opmode mismatched when get vdev from psoc
When get vdev by opmode from psoc, objmgr will return vdev without
getting reference if vdev list isn't null and no matched vdev with
opmode.

Change-Id: I1bb29f074155a40c38a21a9f0534d5f756862031
CRs-Fixed: 2758693
2020-08-21 11:42:25 -07:00
Edayilliam Jayadev
697ceba7e1 qcacmn: Add pdev flags related to scan radio
Add pdev flags to indicate

1) scan radio support
2) DFS disable, This flag is valid only for a scan radio pdev.

CRs-Fixed: 2753799
Change-Id: I2e875b0233bd1c5bf5421821c35170f3412a582a
2020-08-13 22:06:07 -07:00
gaurank kathpalia
bd6a237677 qcacmn: Serialize connect and disconnect request
Serialize connect and disconnect request in CM

Change-Id: I7eacafaf2fb1c71d7c42a493d4acb855f399c698
CRs-Fixed: 2750754
2020-08-11 16:08:09 -07:00
Gururaj Pandurangi
48e4e62dfa qcacmn: Reduce obj mgr log level to debug
Reduce object manager log level to debug
to avoid console lock and excessive logging

Change-Id: I7e008ccbfb425f0a88504a2d980a73bffa255cdf
CRs-Fixed: 2746992
2020-08-05 23:49:36 -07:00
nakul kachhwaha
89a67f807e qcacmn: iot_sim beacon content change update
Adding support for beacon content change.

Change-Id: I8f804dd7d2cbbe7d3b7dea58841d7321f28101c7
CRs-Fixed: 2694454
2020-06-24 03:35:01 -07:00
nakul kachhwaha
c5cdd1eaaf qcacmn: iot_sim add support for drop operation
Adding support for iot_sim drop operation.
Drop operation will be handled in Rx direction.

Change-Id: If2e1c9663a69fcd16715cdd1d28639a388ea1c0c
CRs-Fixed: 2686309
2020-06-24 03:34:57 -07:00
Srinivas Dasari
cf645a8923 qcacmn: Specify the size of array dbgid-strings as WLAN_REF_ID_MAX
Currently, size of the array to return dbgids in string format is
not specified explicitly. This array is expected to be updated
with the corresponding string when a dbgid is added in the
enum wlan_objmgr_ref_dbgid. Any miss in the updation would lead
to array out of bound access as the API string_from_dbgid()
tries get string corresponds to the newly added dbgid also.
Specify the maximum possible size as WLAN_REF_ID_MAX explicitly,
so that it returns "null" if the string corresponds a dbgid
is not defined.
Return the string only if the id matches or return "Unknown".

Change-Id: I1c835b8e9d681bf23f1bce866aa523cb41b9a134
CRs-Fixed: 2702696
2020-06-18 05:47:35 -07:00
Shashikala Prabhu
a76f88adb8 qcacmn: Add support to populate target 11AX wireless modes
Add support to populate 11AX wireless modes advetised in ext2 service
ready message. To support older FW that do not advertise this, use
existing host workaround to populate these in host  itself.

Change-Id: I3b3b280672592c858bd3f6f0e368909a16bd30ee
CRs-Fixed: 2650136
2020-06-08 18:37:03 -07:00
Vivek
d73181f045 qcacmn: Use qdf_bitmap for vdev bitmap in psoc
The current bitmap used for vdevs in psoc is a two element
array of 32bit, thus supporting upto 64 bits bitmap.

In certain feature of AP use cases, there could be more
than 64 vdevs of multiple radios of a psoc, so the current
bitmap would not suffice.

Use the qdf_bitmap to define bitmap based on the max vdevs
supported by a psoc, which could be defined to higher value than
64 if a given AP feature is enabled.

CRs-Fixed: 2678131
Change-Id: Icd72f8dbe4654180dab993e3ce35d886c9e6ca43
2020-05-15 21:45:40 -07:00
Neha Bisht
9e2bd0589d qcacmn: lmac header exclusion from wlan_objmgr_psoc_obj.h
Avoid inclusion of wlan_lmac_if_def headerfile in
wlan_objmgr_psoc_obj.h which led to inclusion of several
other components header files, so handling dependencies by
adding a forward declaration.

Change-Id: I9ad231152789a1d8d9c01fd772abe4a8b06ad0b4
2020-05-15 10:41:41 -07:00
Gyanranjan Hazarika
333ee0fc2b qcacmn: Add UMAC changes for EMA AP
Enhanced Multi-BSSID Advertisement is an enhancement to the
existing Multi-BSSID feature in terms of advertising
non-transmitted bssid profile using the transmitted bssid
beacon. Mandatory inclusion of RNR IE in lower-band AP
beacon to support Out-of-Band Advertisement of colocated
6Ghz AP may impose limitation in the beacon size. EMA AP
provides a standardized way of overcoming such a limitation

Relevant UMAC changes are:
1. Add fw_caps_ext support bit WLAN_SOC_CEXT_EMA_AP
2. Add vdev_control_flag WLAN_VDEV_MLME_FLAGS_EMA_MODE
3. Support of 32-bit ema_params in beacon_tmpl_params.
The 4 octets in this param field will respectively
indicate ema_beacon_profile_periodicity, ema_beacon_tmpl_idx,
ema_first_tmpl and ema_last_tmpl in the order of low to high

CRs-fixed: 2677701
Change-Id: I3d96fd3becd7609abb2529f977362bfa5401d600
2020-05-06 03:10:19 -07:00
Padma Raghunathan
f637c5c9a9 qcacmn: Add CFR support enable bit in pdev ext caps
1. CFR feature can be disabled through INI
2. Add a bit in pdev ext caps to indicate whether
CFR feature for pdev is enabled/disabled by user.

Change-Id: I3bbb6c23a0be087c64e45bffedb2338cb96717d8
CRs-Fixed: 2671620
2020-05-02 04:27:35 -07:00
Neha Bisht
14284068d7 qcacmn: remove dependency of public files from wlan_objmgr_psoc_obj.h
Remove dependency of wlan_objmgr_debug and target_if_pub headerfiles
from wlan_objmgr_psoc_obj.h

Change-Id: I40ebbf0e313c44a7b8aa7561fdbe30519b467723
2020-04-09 01:39:56 -07:00
Gurumoorthi Gnanasambandhan
806b7c72df qcacmn: Beacon protection support
Changes to support Beacon protection. Additional key ix 6 and 7
support BIGTK. Update beacon template for Beacon protection support.

CRs-Fixed: 2632290
Change-Id: Ic37d17f5076bb28d2e1f2430da039cc8b9f759b6
2020-03-30 13:40:07 -07:00
Ashish Kumar Dhanotiya
dc6a3bab24 qcacmn: Allocate vdev private data along with vdev
Currently vdev private data osif_priv gets allocation
separately and requires to be de-alloc separately.
This de-alloc needs to be taken care at different places
based on the vdev create failure or whenever vdev is freed.
As vdev private data is associated to the vdev and needs to
be freed if vdev is not there, it is good to allocate this
private data along with vdev so that there is no need
to maintain allocation and de-allocation of vdev priv data
separately.
As part of this change alloc the vdev priv data along with
the vdev allocation as a single memory and free of the vdev priv
data will be taken care as part of vdev free.

Change-Id: Ib442958c2d8684706830782d339c589c5f5daddf
CRs-Fixed: 2636222
2020-03-23 04:10:40 -07:00
aloksing
8bfa58f189 qcacmn: spin-lock init before get ref while peer attach
spin lock is called without init while peer attach
move spin-lock init before get ref

Change-Id: Ibf21ac6a7b06c62f2e64a2d89154b21183b9c472
CRs-Fixed: 2628750
2020-03-03 14:17:46 -08:00
aloksing
2877d23b09 qcacmn: Add dbg id to string_from_dbgid
Array strings of size 73 may use index value(s) 73..74
Adding dbg ids to strings same as wlan_objmgr_ref_dbgid

CRs-Fixed: 2632424
Change-Id: I8eac1c4f015d54c626c2e74891d8c86ccfb962e4
2020-03-02 16:02:02 -08:00
Sumedh Baikady
d188789876 qcacmn: Enhancement in Minidump feature
Handle minidump logging using dynamic
configurablity options. Data structures
to be logged in minidump can be configured
using internal INI file.

Change-Id: I99f12b3f98c4a9c0e15c3e5d611019e6b8d0909a
2020-02-26 08:35:46 -08:00
hqu
fed4bfb049 qcacmn: Add dcs component
Add dcs component to implement interference detection algorithm
and dynamic channel selection frequency control.

Change-Id: Ia201d77e77feb9de3aff03d6e389d4891dde118e
CRs-Fixed: 2594837
2020-02-13 04:12:30 -08:00
Shashikala Prabhu
29aca291c5 qcacmn: Add WMI support for native 160MHZ
A service bit is added to indicate Firmware supports sending NSS ratio
information to Host and Host receives the NSS ratio information from
Firmware as part of service ready ext event. Save this service bit in
soc's extcap feature bit. Extract the NSS ratio info from service ready
ext event and save the results in wlan_psoc_host_mac_phy_caps structure
to calculate NSS value.

Change-Id: I8fbee48d872b0724bbb629ad38b3c959736a3c39
CRs-Fixed: 2612959
2020-02-07 20:06:29 -08:00
Abhishek Singh
d0708ac038 qcacmn: Print type while creating the obj manager peer
Print type while creating the obj manager peer.

Change-Id: I04df87c3c7a992406a19c99560f85d6777198761
CRs-Fixed: 2617007
2020-02-07 03:06:55 -08:00
Vulupala Shashank Reddy
3b6d1f238e qcacmn: Add packet capture component support param
Add module id, component id for packet capture feature.

Change-Id: I576cd288dbe325c1b2b19f095482ca317c3112a1
CRs-Fixed: 2611061
2020-02-01 03:16:30 -08:00
Govind Singh
59ddd7f893 qcacmn: Add component, module ID for FTM TIME SYNC module
Add module id, component id for FTM TIME SYNC feature.

Change-Id: I68f6b1d18a8f5c0a86cf0c46b6697cfb3caec187
CRs-Fixed: 2611043
2020-02-01 03:16:17 -08:00
Shashikala Prabhu
8533bb54fe qcacmn: Add API to set/get number of monitor vdev counts in pdev
Add API to set/get monitor vdev count in pdev object.

Also update the max peer count in pdev and psoc when FW allocated peer
count is different than host requested.
Number of vdevs and beacon tx offload max vdevs in wlan_res_cfg are updated
in target_if_update_pdev_tgt_info().

Also, add radio related parameters to get number of vdevs and peers per
psoc and pdev.

Change-Id: I0165f3bd4638280b45ad54391319806fba62e2fe
CRs-Fixed: 2600984
2020-01-27 12:44:51 -08:00
Arun Kumar Khandavalli
595c2eead2 qcacmn: Selectively reduce the objmgr logs
Reduce the loglevel of the objectmanager logs from
info to debug.

Change-Id: Iad29420e73be405ec937930165905fbfffe09de6
CRs-Fixed: 2606485
2020-01-25 15:27:18 -08:00
Pavankumar Nandeshwar
75d112497b qcacmn: Remove dp handles from umac objects
Remove pdev, vdev and peer dp handles from umac objects,
and also remove corresponding APIs used to set and get
these handles

Change-Id: I1abc8ba91e9a697b85d1711a9a37ce675e1f6d3d
CRs-Fixed: 2602133
2020-01-23 14:28:21 -08:00
Himanshu Batra
8fcc17ccf9 qcacmn: Create wrapper API to check all leaks at psoc
The current implementaion check for peer, vdev and pdev leaks on
psoc in order and if any leak is found for peer then QDF_DEBUG_PANIC
is called and vdev and pdev leaks are not checked. Similar is the case
if vdev leak is found, pdev leaks are not checked

Adding a wrapper API to check all the leaks and then do panic if any
leak is found

Change-Id: Icf6622760f3646b82f893beb7415b95307e2ccd7
CRs-Fixed: 2599228
2020-01-16 08:08:33 -08:00
Neha Bisht
503663c6da qcacmn: Structure optimized through poke-a-hole tool
Structure memory is being optimized by aligning field with
bus address length using pokeahole tool.
This patch optimizes structure linked in obj_mgr and scheduler
modules.
Structure           Bytes saved (64bit)   Bytes saved (32bit)
scheduler_ctx       8 bytes               4 bytes
wlan_channel        8 bytes               8 bytes

Change-Id: I298946b55328d8d9b564c140e0a59e0b8702fab0
CRs-Fixed: 2587842
2020-01-11 16:18:50 -08:00
Sandeep Puligilla
904e527aa7 qcacmn: Add new feature to control fils discovery on 6Ghz Sap
6Ghz SAP needs to send either a probe response or fils
discovery at every 20ms.

Add a new feature to configure the probe response or
fils discovery frame.

Change-Id: I3b9842021db94515ae4dccbcdc573a4cd84caa56
CRs-Fixed: 2591147
2020-01-07 00:41:39 -08:00
aloksing
18f309c7f4 qcacmn: Add debug support for vdev/peer reference and release
Allocate node for new entry and add it to existing list of function or line
If function or line already present in list then increment count

Change-Id: I3d737dcd33862f133b52c6d694c89f6d6b1517a5
2020-01-02 05:18:15 -08:00
Surya Prakash Raajen
a3baeee819 qcacmn: Memory optmization of Node/peer structure variables
Remove unused variables and reduce the memory by
the structure padding.

Change-Id: Ic49829ab463d75af6d7fc1ac36df16cabdf447e2
CRs-Fixed: 2587049
2019-12-27 01:40:40 -08:00
Alok Singh
192bbaa088 qcacmn: Add debug support for vdev reference and release
Add function name and line number while taking/releasing
references for vdev to trace Object Manager references

Change-Id: Ie8a7d77db2f3c7b58536ab267c665299cb67152e
2019-12-24 20:34:09 -08:00
Alok Singh
c5394665b2 qcacmn: Add debug support for peer reference and release
Add function name and line number while taking/releasing
references for peer to trace object manager references

Change-Id: I93c30d62ecaa979f8c2680eec68f723d2d3c4292
2019-12-24 20:33:55 -08:00
Abhinav Kumar
04b61d6e39 qcacmn: Get the valid vdev in get_vdev_by_macaddr_from_pdev
In wlan_objmgr_get_vdev_by_macaddr_from_pdev driver checks the
first vdev matching the mac address and try to get ref and return
NULL if it fails.

In case if a vdev is logically deleted but not physically deleted
(some ref are pending) and a new vdev is added with same mac address
at the tail of the vdev list, the
wlan_objmgr_get_vdev_by_macaddr_from_pdev always return NULL cheking
for the logically deleted vdev, even when a valid vdev is present
after the logically deleted vdev.

Thus continue to next vdev if try get ref fails for the vdev.

Change-Id: Icd67ce8830460fca7bb4c19e81b2e9f764fb5dba
CRs-Fixed: 2580697
2019-12-10 00:51:59 -08:00
Shashikala Prabhu
1e7bd262fd qcacmn: Add restricted 80+80 MHz bit in soc caps
Restricted 80+80 MHz  capability is reported by FW in service bitmap.
Based on this support set soc's extcap feature bit.

Please note, wmi_service_bw_165mhz_support will be renamed as
wmi_service_restricted_80p80_support once the FW changes are available.

Change-Id: I88f89eecd916c40ea8669c792dde3a335e4bac56
CRs-Fixed: 2579543
2019-12-10 00:51:42 -08:00
Srinivas Pitla
8e869fff23 qcacmn: Define Peer free notification framework
Define framework to notify registered callbacks on peer freed.
Interested modules can register their callbacks with object manager.

Change-Id: I9ab0e45f7841b1609b9ada3b50335299b462b630
CRs-Fixed: 2578099
2019-12-09 17:29:02 -08:00
Arun Kumar Khandavalli
614d1e4476 qcacmn: create the vdev response timers in psoc_mlme
Move the vdev response timer from the vdev object manager structure
to the psoc mlme structure.

Change-Id: Ieb87ac6549aa23e0beb61441fea459d3db78c2f3
CRs-Fixed: 2563410
2019-12-05 10:45:08 +05:30
Pavankumar Nandeshwar
5f29f5f5c2 qcacmn: Update obj_mgr debug ids for ol_if_ops changes
Remove WLAN_TGT_IF_DP_PEER_REF_ID and add WLAN_PDEV_TARGET_IF_ID

Change-Id: I316d108c3e5bd27f6abc00b8d162a45284fffec6
2019-12-04 07:44:33 -08:00
Arun Kumar Khandavalli
95b3c1a9a2 qcacmn: Avoid possible use-after-free in wlan_objmgr_vdev_obj_create
There is use-after-free of vdev object in wlan_objmgr_vdev_obj_create
wherein vdevid is being accessed to log the create failure after the
vdev is freed.

To resolve the issue, Log the error with vdev_id before freeing the
vdev

Change-Id: Ia509f90cd2219f657ecdecbfb26d397daa3beda6
CRs-Fixed: 2559556
2019-11-07 16:48:14 -08:00
Sourav Mohapatra
d5dde1b9ae qcacmn: Increase timeout to avoid false assert
Currently, the timeout value LOG_DEL_OBJ_DESTROY_ASSERT_DURATION_SEC is
set at 24 seconds. This is not sufficient for various cases where the
delay caused are genuine (FW and HW delays), thus leading to unwarranted
device assert.

Increase the timeout to 32 seconds to mitigate this.

Change-Id: I799b45b0d5f25a9fcf68f88d385994e31c56e939
CRs-Fixed: 2546641
2019-11-07 01:18:49 -08:00
Pavankumar Nandeshwar
0336eb937e qcacmn: Add an API to get peer using mac from vdev
Add an API that iterates through the peer_list of a vdev
and gets peer using peer mac address.

Change-Id: I9b7edd3816a51ee89d68be4cc876155fa1a79049
2019-10-24 21:42:07 -07:00
Vivek
4ad877f928 qcacmn: Print vdev, pdev and psoc info before being destroyed
Add debug code to print the vdev, pdev and psoc info before getting
destroyed. This will help in cases where we dont get crash dumps
for panics and we need to look up few important data, which
can be done by enable object manager debug.

Change-Id: Iab1895d348ccf225ee6390abef26b76936fbe560
CRs-Fixed: 2528290
2019-10-14 20:39:24 -07:00
Santosh Anbu
659379aeff qcacmn: Update log level of the debug message
During vdev reference release if double free is attempted for, then
the vdev references are printed. But the vdev id and the reference id
for which the reference release was attempted is not printed.

Add change to print this log, which will help in debugging vdev
reference release related issues.

Change-Id: I8c1942dc770a1dce2e25cda8c3c6aa8c056afb8e
CRs-Fixed: 2531227
2019-09-29 21:58:56 -07:00
Srinivas Pitla
9e37733c50 qcacmn: Increase Logical deleted object timeout value
Currently, FW has TTL of 5 sec for management frames, if a frame
is queued just before logical deletion, it takes max 5 sec to complete,
by considering other latencies, increaseing it to 8 sec.

Change-Id: I6861d9557489bcf10e60ff32d06e88be23535d48
CRs-Fixed: 2526239
2019-09-25 03:42:10 -07:00
Min Liu
2c14fae3d5 qcacmn: Add interface to get / set eLNA bypass
Add interface to get / set eLNA bypass from / to firmware via WMI.

Change-Id: I2ed78aece6703c18999fdfbfdfa159a2abd477a6
CRs-Fixed: 2498526
2019-09-21 02:47:10 -07:00
Gururaj Pandurangi
2be1af58a5 qcacmn: Change logging level in object manager
Change log level to debug level since any console logging
under the spin lock has side effects due to slow UART

Change-Id: I21dca8f4eb9ba563d2ce96274d32405d1817d13e
CRs-Fixed: 2521056
2019-09-09 18:46:47 -07:00
bings
b2e00f901f qcacmn: Add new obj mgr api wlan_pdev_peek_active_first_vdev
wlan_pdev_vdev_list_peek_active_head can't be used out of object
manager, because object manager structures can't be referenced
outside object manager.

Add wlan_pdev_peek_active_first_vdev which can be used out of
object manager, because it only needs pdev parameters.

Change-Id: I1d32ec2b5342dbdcbbb817d80623f802011892b0
CRs-Fixed: 2507969
2019-08-15 23:31:24 -07:00
Abhishek Ambure
c76db37021 qcacmn: Clean up CMN_VDEV_MGR_TGT_IF_ENABLE
WIN and MCL both uses common targer_if code for vdev manager.
So legacy code and "CMN_VDEV_MGR_TGT_IF_ENABLE" macro is removed.

Change-Id: I2984ae44f3a7cfa01b8f1455353d09deb4db5759
CRs-Fixed: 2503804
2019-08-11 10:38:20 -07:00