Commit Graph

220 Commits

Author SHA1 Message Date
Vivek
7bb2bd6eba qcacmn: Add API to get reference if not logically deleted
There are API to get vdev by reference from psoc by vdev id,
if either the vdev is in any state or the vdev is created state.

The wlan_objmgr_get_vdev_by_id_from_psoc return the vdev reference
only when the vdev is in CREATED state.

If the VDEV is in ALLOCATED or LOGICALLY DELETED state,
the API returns NULL.

In this new API we need to get the reference when
it would be in ALLOCATED state and not in LOGICALLY DELETED state.
We need an API to get vdev by reference only
if the vdev is not in logically deleted state.

Add API to get vdev from psoc by vdev id if
the vdev is allocated state and not in logically deleted state.

CRs-Fixed: 2901595
Change-Id: I1611c7e2a223ca8c4b0c3bf79ded35b2e958d113
2021-03-24 02:12:30 -07:00
bings
4a8bafde55 qcacmn: Add WLAN_VDEV_SS_MLO_SYNC_WAIT and WLAN_VDEV_SS_UP_ACTIVE
For MLO SAP, it can't generate beacon template until all the vdevs
start. To synchronize MLO vdevs start, we add two new substates
WLAN_VDEV_SS_MLO_SYNC_WAIT and WLAN_VDEV_SS_UP_ACTIVE whose parent
state is WLAN_VDEV_S_UP.
Once vdev gets vdev start rsp, notify MLO mgr, who checks whether all
vdevs are active, if so, trigger WLAN_VDEV_SM_EV_MLO_SYNC_COMPLETE for
the vdev which is in WLAN_VDEV_SS_MLO_SYNC_WAIT state.
After vdev translates to WLAN_VDEV_S_UP, MLO SAP will translate to
WLAN_VDEV_SS_MLO_SYNC_WAIT, while the other vdev will translate to
WLAN_VDEV_SS_UP_ACTIVE.
MLO sap will notify MLO mgr once it is in WLAN_VDEV_SS_MLO_SYNC_WAIT.
Then MLO mgr checks whether all the vdevs are active, if so, trigger
WLAN_VDEV_SM_EV_MLO_SYNC_COMPLETE for the vdev which is in
WLAN_VDEV_SS_MLO_SYNC_WAIT state.
If MLO SAP receives WLAN_VDEV_SM_EV_MLO_SYNC_COMPLETE in
WLAN_VDEV_SS_MLO_SYNC_WAIT state, it translates to WLAN_VDEV_SS_UP_ACTIVE

Change-Id: I8be9c02f62719dbdcf4af79d83173c316c64b765
CRs-Fixed: 2866103
2021-03-11 19:53:31 +05:30
Adil Saeed Musthafa
13f9b12f6a qcacmn: ini setting for strict-channel-mode
Introduce ini setting to enable or disable strict_channel_mode. When
this mode is enabled, driver will no longer implicitly select a
different channel (or phymode) if the user configures a phymode (or
channel) which the existing channel (or phymode) does not support. Also
with this mode, the user cannot change country at runtime, if the existing
channel/phymode combination is not supported in the new country.

Change-Id: I8e6246530df5d125a91068d513b436fe71f68e5a
CRs-Fixed: 2842892
2021-01-06 13:52:49 -08:00
Edayilliam Jayadev
8f57245a44 qcacmn: Add Spectral feature capabilities
Add the following Spectral scan capabilities at the pdev level.
 a) Normal Spectral scan capability
 b) Agile Spectral scan capability for 20/40/80 MHz
 c) Agile Spectral scan capability for 160 MHz
 d) Agile Spectral scan capability for 80+80 MHz

Also change the definition of existing Spectral scan capability
at psoc level.

CRs-Fixed: 2840144
Change-Id: I18be48ec4095fa29b62800a9df58b72295747547
2020-12-30 07:06:08 -08:00
Surya Prakash Raajen
21de33ef5d qcacmn: Add support for preferred streams in multivdev restart
Add support to send preferred_xt_streams and preferred_rx_streams
in multivdev restart.

CRs-Fixed: 2833470
Change-Id: I2c06a8bd9a64b15126e216eeb65699e104cbca64
2020-12-15 11:45:07 -08:00
sheenam monga
0d42f3216a qcacmn: Read csa_beacon_template service
check csa_beacon_template service and set
WLAN_SOC_CEXT_CSA_OFFLOAD/25th bit of
soc_fw_ext_caps in psoc if service is
supported by fw.

Change-Id: I8dca74c805cc8696f261e0f791818bca579c80c8
CRs-Fixed: 2826451
2020-12-03 10:52:03 -08:00
Liangwei Dong
55af82b26c qcacmn: replace macro WLAN_OBJMGR_TRACE by WLAN_OBJMGR_REF_ID_TRACE
WLAN_OBJMGR_TRACE is not needed. Ref id trace func is under
control of WLAN_OBJMGR_REF_ID_TRACE. Replace it by
WLAN_OBJMGR_REF_ID_TRACE.

Change-Id: I8877dad0a4f7c13258b2c9bf63dcafb46e5b8b94
CRs-Fixed: 2826259
2020-11-26 08:10:16 -08:00
Srinivas Dasari
da54959f21 qcacmn: Get per channel scan config service capability
Firmware advertises the service capability bit
WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL when it supports per channel
scan config flags. Get this and cache in psoc.

If firmware supports WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL, it uses
the upper-12 bits(bit-20 to bit 32) of channel_list for flags and
lower 20-bits(bit-0 to bit-19) for frequency. If firmware doesn't
support it, then channel_list holds the frequency value only.
Fill the flags and frequency accordingly.

Change-Id: I88a6f29f61e1ecea75bc5574cadcbbfbb7f8b188
CRs-Fixed: 2806405
2020-11-05 16:12:54 -08:00
Ashish Kumar Dhanotiya
3faf318e8c qcacmn: Add a check for vdev with bssid mac
There is a possibility that driver already has a vdev
with the mac address same as bssid, in this case sta
should not connect to this AP as it may lead to undefined
behavior.

To address above issue add a check to compare bssid with
already existing vdevs before connect start.

Along with above changes add few renaming changes also.

Change-Id: Ia12be0b392a01bf935b5261e505290064de68805
CRs-Fixed: 2809147
2020-11-04 17:02:00 -08:00
Liangwei Dong
ab7df35e80 qcacmn: Create more reference count dbg id for OS IF layer
At present more than hundred places to get/put reference
with WLAN_OSIF_ID dbg ID. To help debug reference count
issue, split OS_IF to more sub ids based on functionality.
It will help narrow down to small area if ref count leak
issue happens.

Change-Id: Icca465cbe91a55b4abe0d74bb3de131615bbc6bb
CRs-Fixed: 2802974
2020-10-29 04:54:02 -07:00
Naga
c9e9267a06 qcacmn: Add feature flag for peer create response
Add soc feature flag for peer create response
event.

Change-Id: I29058baf9901a2eeedc10144d832c697a81f632a
CRs-Fixed: 2797195
2020-10-22 21:31:43 -07:00
Harsh Kumar Bijlani
4161cccc7e qcacmn: Remove unused member wlan_active_vdevs from wlan_objmgr_psoc
In structure wlan_objmgr_psoc, member wlan_active_vdevs which is an
array of size WLAN_UMAC_PSOC_MAX_VDEVS and type uint8_t is neither
populated nor used anywhere. Remove this unused member from the
structure.

Change-Id: Ib2e49e42fe986358c26fa95a9287b20297b0eccf
2020-10-06 04:11:03 -07:00
Ashish Kumar Dhanotiya
0ac0e6b10e qcacmn: Add support for disconnect path for connection manager
Currently disconnect is not handled in connection manager,
add support to handle disconnect in connection manager.

Change-Id: If3d5ac12300527ea0162efd955521711ed52c494
CRs-Fixed: 2785950
2020-10-06 01:28:16 -07:00
Naga
d0a144af3c qcacmn: Define feature flag for WDS extended
Define SOC level feature flag for WDS extended,
which will configured through ini.

Change-Id: I63a6eaeff5946d12cc92f8996c572f025fbc44f2
CRs-Fixed: 2774054
2020-09-12 08:17:22 -07:00
Lincoln Tran
0e8995bde7 qcacmn: Assign disconnect event handler
Assign the disconnect start and disconnect complete event handler
in the interface manager.

This change is part of the interface manager effort.

Change-Id: I6885c2ace59fa0f305e45d421d158bef02aa937b
CRs-fixed: 2760080
2020-09-11 07:36:50 -07:00
Shashikala Prabhu
99d3131912 qcacmn: Define feature flag for broadcast TWT
Define feature flag for broadcast TWT.

Change-Id: I629aefb384773c875881eb5d1d78349e1574e409
CRs-Fixed: 2766013
2020-09-02 10:46:56 -07:00
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
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
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
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
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
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
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
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
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
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