Commit Graph

86 Commits

Author SHA1 Message Date
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
Vevek Venkatesan
27e7bb4d79 qcacmn: cdp: Converge cdp_cmn_ops
Currently cdp ops are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev_id or vdev_id or peer mac address,
which will be used to get the respective handles,
and hence avoiding the unwanted access of the
handles if it has been deleted.

- txrx_peer_unmap_sync_cb_set
- txrx_fw_stats_get
- txrx_get_ctrl_pdev_from_vdev
- txrx_get_mon_vdev_from_pdev

Change-Id: I4472dc0905edb7700acb4401b117c8876ba455f3
CRs-Fixed: 2541460
2019-12-27 03:25:49 -08:00
Pavankumar Nandeshwar
61392d0275 qcacmn: cmn_ops changes in umac, tgt_if for umac-dp decoupling
umac and tgt_if module changes due to umac-dp decoupling changes in
cmn_ops APIs.

Change-Id: If8a7bdb879660f1d15a067ce9c76f96e6dfb7140
2019-12-27 03:25:25 -08:00
Naga
1b9b61e7cd qcacmn: Add API to print start response status
Add inline API to print start response status as string
instead of value.

Change-Id: Ifed90ae2b2fd8b1dc31f35d3debf6bf5020c85c2
CRs-Fixed: 2586089
2019-12-19 03:04:50 -08:00
Sumedh Baikady
48fdc2ddfb qcacmn: Add out of band advertisement in 6Ghz
Add WMI and objmgr support for maintaining RNR
buffer cache and receive tbtt events for all
vdevs using existing tbtt offset WMI.

Change-Id: Idfed63e104e629fbe455d1cf6202cd9b332f5cf9
2019-12-18 11:13:36 -08:00
Akshay Kosigi
71d3820a97 qcacmn: Move vdev_mlme timers to psoc_mlme
Add code to change the vdev_mlme timers to psoc_mlme timers
and also change code to send vdev_delete to FW while physical
destruction of vdev obj.

Change-Id: Ie041182155c75d0cc3825dc97b26abc6be38d76c
CRs-Fixed: 2563931
2019-12-05 11:50:53 +05:30
Arun Kumar Khandavalli
536903de91 qcacmn: Dont use vdev object in vdev delete response
As part of the new changes, vdev mlme object will be freed before
the vdev delete response is received from the firmware. Hence do
not use the vdev_mlme object in the vdev delete response handler.

Change-Id: I6b2db32ac0ef415bf1b879b2cd222de67d9a69b7
CRs-Fixed: 2563404
2019-12-05 10:47:43 +05:30
Arun Kumar Khandavalli
eaac8c195b qcacmn: Move wakelock to psoc level
Wakelock is system level lock not required to be taken
for every vdev, Hence move the wakelock to the psoc
hierarchy.

Change-Id: I525baf5f4b5dcadb493d84900dbd0a2e7c6407f6
CRs-Fixed: 2563406
2019-12-05 10:46:33 +05:30
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
Liangwei Dong
49472056b2 qcacmn: Enable Fils Discovery frame sending in 6GHz SAP
To enhance visibility of 6GHz AP, 6G only AP shall send
Fils Discovery frame periodically in one beacon interval.

Change-Id: I51487380fca10418d2260dc2612e2adcf6cbb93b
CRs-Fixed: 2562434
2019-12-02 05:22:42 -08:00
Arun Kumar Khandavalli
f1c4834611 qcacmn: Define unknown vdev mlme type subtype
If any of the driver unknown mode is passed to the utility api's
return the unknown vdev mlme type/subtype.

Change-Id: I8be1c9f31fb3a8a355185e14ef6869da84cf863f
CRs-Fixed: 2564964
2019-11-25 13:44:10 -08:00
sumedh baikady
a95ba1312a qcacmn: Add Wmi for FW dynamic control of Muedca param
Add WMI changes for the API he_muedca_mode
to swicth between manual, host and FW dynamic
muedca param selection.

Change-Id: If43b5da483fe082294bda33f8951187ebc7ea3c7
CRs-Fixed: 2554378
2019-11-14 07:47:46 -08:00
Himanshu Batra
c3517bbdab qcacmn: Move mlme private APIs to mlme core
Move APIs private to mlme component to mlme core directories

Change-Id: If682933d542cb583feea680656b87524dd28ed1a
CRs-Fixed: 2549547
2019-11-11 13:42:01 -08:00
Rachit Kankane
215263ece0 qcacmn: Update Beacon template
On detecting RADAR, if SAP / Auto GO is operating on DFS channel,
host driver updates Beacon / Probe response template with CSA /
ECSA IE to firmware.

Once the count in CSA IE is reached to 0, host should remove these
IEs from both Beacon / Probe response template and send it to FW.

But with INI gDisableDFSChSwitch=1 (test only), After detecting
RADAR, host driver updates the Beacon and Probe response template
with (E)CSA IEs but doesn't remove these after count reaches to 0.
Updated the code to remove these IEs when INI gDisableDFSChSwitch
is set.

Change-Id: Ie01c80a57191a78d71a8a27f1bead533388a4580
CRs-Fixed: 2555696
2019-11-06 21:36:18 -08:00
Priyadarshnee S
6ddbcf0add qcacmn: Invoke DFS frequency APIS from vdev_mgr_start_param_update()
To avoid "channel number" collision that was introduced after
6Ghz band was added to the driver, frequency based DFS APIs are invoked
from vdev_mgr_start_param_update().

CRs-Fixed: 2532623
Change-Id: I35d262d10d00df124116a617de4575d00c35cffb
2019-10-30 16:51:27 -07:00
Santosh Anbu
0fdaae998a qcacmn: Handle start event failure
When the start continue callback fails due to any of the error
scenarios such as unable to find the channel, then the vdev SM
is stuck in the connection progress state leading to timeout
at the OSIF.

Graciously handle the start event failure by posting a connection
fail event back to vdev SM.

Change-Id: I0e4a3cf95529a09c88bc7fd4069aec99d4b9d78d
CRs-Fixed: 2552168
2019-10-28 23:36:50 -07:00
Arun Kumar Khandavalli
d76b54a1c5 qcacmn: Move psoc object to common component
Presently PSOC object is initialized differently between
WIN/MCL. With this implementation the psoc creation and
destroy will be moved to common code.

Change-Id: I7aa8f47f3fe1d88c6c37ab3184a81fbc7dedb789
CRs-Fixed: 2547533
2019-10-26 11:55:31 -07:00
Rhythm Patwa
c5068e341f qcacmn: Add support to offload FILS Discovery to FW
Construct the FILS Discovery frame template and send
template to FW.

Change-Id: I1052b9b8240ea9461e19bb70887b49aabffc4e05
2019-10-16 21:54:34 -07:00
Aditya Sathish
fbf9ece75d qcacmn: Rename TX_DECAP_TYPE to TX_ENCAP_TYPE
The macros attributing the Tx encap type have been erroneously
named as TX decap.

Rename all occurences of TX_DECAP_* to TX_ENCAP_*. Also add support
to send WMI vdev params for tx_encap and rx_decap values.

CRs-Fixed: 2533710
Change-Id: Id6ef2955868010b264e76d2a416d22d30d2acedc
2019-10-10 22:59:18 -07:00
Rakesh Pillai
01b9b680fc qcacmn: Avoid REO destination change when IPA enabled in P2P mode
In cases where one of the interfaces is a P2P-GO and
IPA has been enabled, the P2P connection establishment
fails.

When IPA is enabled, the REO destination is changed to REO4
which can be reaped only by IPA module. But in case of P2P-GO
interface in operation, this change in configuration causes
all the RX packets to be stalled due to incorrect REO configuration.

Hence, to avoid this case, do not change the REO dest config
when the interface subtype is P2P.

CRs-Fixed: 2498315
Change-Id: Ie9f01c3b353c7c0503e1541d6c79c2f47c9782f3
2019-10-10 13:43:37 -07:00
Liangwei Dong
dcab2f8924 qcacmn: Set DFS channel to radar component
vdev_mgr_start_param_update will handle STA and
AP mode in vdev start. So, we need to check and
only set DFS AP's channel to Radar component by
tgt_dfs_set_current_channel. Thist will avoid
seting incorrect channel to Radar component
in STA+AP(DFS) or AP(2.4G)+AP(5G DFS) concurrency
case.

Change-Id: If60e1630c5288884d01242a20d68b2cd315942ca
CRs-Fixed: 2531766
2019-10-09 14:45:20 -07:00
Jianmin Zhu
ce7b04766e qcacmn: Don't set vdev packet type when vdev up
Vdev decap/encap type has been set when vdev create, don't need
set again when vdev up.

Vdev mlme mgmt.generic.rx_decap_type isn't initialized, can't be
used to set vdev decap type.

Add tgt_vdev_mgr_set_tx_rx_decap_type to set vdev tx/rx cap/decap
type by wlan_util_vdev_mlme_set_param.

Change-Id: If487a890eafd0e4e5e6cda31c22d459e342770de
CRs-Fixed: 2516997
2019-09-06 23:40:50 -07:00
Priyadarshnee S
c76f68bf02 qcacmn: Add a START RESPONSE failure status eventid
Add WLAN_MLME_HOST_VDEV_START_CHAN_INVALID_REGDOMAIN and
WLAN_MLME_HOST_VDEV_START_CHAN_INVALID_BAND event in host enum
wlan_mlme_host_vdev_start_status. This corresponds to the event id
WMI_VDEV_START_RESPONSE_INVALID_REGDOMAIN and
WMI_VDEV_START_RESPONSE_INVALID_BAND sent by FW.

WMI_VDEV_START_RESPONSE_INVALID_REGDOMAIN is sent if there is a mismatch
between host and FW dfsdomain.
WMI_VDEV_START_RESPONSE_INVALID_BAND is sent if the channel sent by
host in VDEV START is not in the supported band by the current HW Mode.

CRs-Fixed: 2514884
Change-Id: I6126cb9bf29b80ae5728e5e5a4018891510cc41a
2019-09-06 06:23:07 -07:00
Abhishek Singh
22911578a1 qcacmn: Fix WMI timeout for runtime PM
For runtime PM if the bus is suspended driver need to consider
extra PMO_RESUME_TIMEOUT time for bus resume.

Thus add PMO_RESUME_TIMEOUT extra in WMI timeouts if runtime PM
is supported.

Change-Id: Ifda596626ba39a894bebcb20fcfc2018012b0b54
CRs-fixed: 2513791
2019-08-24 04:23:53 -07:00
Jianmin Zhu
1af0d55f56 qcacmn: Add items for vdev start
Add hidden ssid flag and cac duration in vdev mlme obj, populate
vdev start param.
Register wmi ops extract_vdev_start_resp for target_if converge.

Change-Id: Iaebd49049fb791aaee39ef67611f96eed37d3605
CRs-Fixed: 2506245
2019-08-15 12:28:47 -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
sumedh baikady
60c3301c25 qcacmn: Remove comments in vdev subtype addition
Comments for vdev subtype added for mesh is not
required.

Change-Id: I9d6104fc0883b97f7462aa964d823f99dee653d7
CRs-Fixed: 2491087
2019-08-09 11:18:51 -07:00
Gurumoorthi Gnanasambandhan
80e1ae17a6 qcacmn: Enable/Disable multi group key support
Support to Enable/Disable multi group key and configure
maximum number of group keys.

Change-Id: Ie6ce2a38d0ad04a47f966fc281f35a8af7125447
CRs-Fixed: 2490599
2019-08-06 10:31:49 -07:00
Abhishek Ambure
21ff0a53bf qcacmn: Common code changes for VDEV conversion
This change is required by MCL for VDEV conversion. This change
adds target_if all common code.

Change-Id: If43cbbe12c9b4a2bc7fc46ff01f24a2fb6fda09e
CRs-Fixed: 2460791
2019-08-05 07:50:05 -07:00
sumedh baikady
0876d02741 qcacmn: Add new vdev subtype for smart monitor
Smart monitor uses HOSTAP type and no subtype currently.
Also vdev_up is not sent for smart monitor vap. Therefore
target will not enable rx_unicast for this vap and in dfs
channel we dont receive pkts. To differentiate between
regular Host ap and smart monitor vap for target to enable
rx_unicast we send new subtype.

Change-Id: I6c82c152d75eefb608cd80279e60ce211e17b709
Crs-fixed: 2491087
2019-07-30 16:23:01 -07:00
Naga
bf48fb69ac qcacmn: Add support to print vdev req/resp string
Add support to print vdev req/resp string
on target_if timer start conflict and timer
timeout handler

Change-Id: I0116c03089f4ab80623596bb9e8d0268efb0dd87
CRs-Fixed: 2495018
2019-07-29 02:22:54 -07:00
Himanshu Batra
1b60b56578 qcacmn: Replace void * data members of mlme with specific type
Replace mlme void * data members having different types across
different drivers with specific type.

Change-Id: I4343800e836c8ae0996c19b39a420b314e465a75
CRs-Fixed: 2477457
2019-07-27 18:21:29 -07:00
Santosh Anbu
f0a42162ac qcacmn: Add pdev mlme component attribute
With the addition of the pdev restart command to handle multivdev restart,
a placeholder is required at the mlme to hold pdev restart attribute.

Change-Id: I885bf71d0e7977452120714a659e839769ade33e
CRs-Fixed: 2492531
2019-07-20 00:36:44 -07:00
Abhishek Ambure
6825cfe7fe qcacmn: Move rsp timer stop logic from tgt to target if
Currently vdev response start timer logic is in
target_if layer and stop timer logic is in tgt
layer which is asymmetry.

So, move stop timer logic from tgt layer to
target_if layer for vdev start, stop and delete.

Change-Id: Ia06e2e6d90cf9c4366d654e016e2eeab8c2a0719
CRs-Fixed: 2442199
2019-07-19 20:40:38 -07:00
Santosh Anbu
0616b55fed qcacmn: API to support serialization of restart cmds
Add APIs to support serialization of pdev restart and vdev
restart commands.

Change-Id: I367a8f369692e660c37278f7494db7aa0aeb7cd6
CRs-Fixed: 2480314
2019-07-16 15:53:56 -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
f69b80a563 qcacmn: Add support for target_if timer restart
Add support for target_if timer restart when
vdev mgmt ops request is queued though the intended
response corresponding to request is not yet received.

Change-Id: I08e474ac66a0c399a93ffbc4a24aab78084072d2
CRs-Fixed: 2463180
2019-06-21 13:40:24 -07:00
sandeep puligilla
370e41c760 qcacmn: Create vdev rsp wakelock api in target if
Currently, wakelock apis are in wma. Create vdev resp wakelock apis
in target_if. Plan is to remove it latter from wma.

Change-Id: Ib410ee2404751544db2f291b466ff0d6ff248e8f
CRs-Fixed: 2441245
2019-06-17 11:45:04 -07:00
Vivek
140070028c qcacmn: Avoid adding cmd to serialization queue if disabled
Add API to fetch the vdev queue status and avoid enqueueing command
to serialization queue if the vdev queue is found to be disabled

Change-Id: If615b07dceaeb3113592f24355f254c8e70ca8a2
CRs-Fixed: 2470208
2019-06-14 07:41:05 -07:00
Nirav Shah
05e77685a6 qcacmn: Add API to check vdev is in INIT state or not
Add API to check vdev mlme state is in INIT state
or not.

Change-Id: I86a919331d674f1defd896d5b8ae93a87a0a9376
CRs-Fixed: 2459908
2019-05-28 03:46:52 -07:00
Abhishek Singh
3b2666f1a5 qcacmn: Cleanup VDEV SM related flags and unused code
Legacy code for VDEV_SM is no more used, thus clean up flags
CMN_VDEV_MLME_SM_ENABLE and CMN_VDEV_MLME_CMPT_ENABLE.

Change-Id: I4f7b1099d4929f6250b1868c53b73d7c235a9c22
CRs-Fixed: 2457270
2019-05-24 06:42:20 -07:00
Akshay Kosigi
a8a1f93112 qcacmn: Add change to deinit vdev timer
Move deinit of vdev timer under CMN_VDEV_MGR_TGT_IF_ENABLE
macro

Change-Id: I1815c93f8690757d8bd3b199eb009620227ee6b1
2019-05-21 06:14:16 -07:00
Akshay Kosigi
4a994eff88 qcacmn: Add change to send target if response to HOST
Add code to enable sending target_if vdev response to host,
if FW fails to send response within expiry time.
Move timer free functionality to vdev destroy path so as
to make the system not to go into deadlock

Change-Id: I72bdecf2502a755ffc09414f8b72d230bf9c559f
Crs-Fixed: 2449238
2019-05-14 23:57:56 -07:00
Srinivas Pitla
011b676abe qcacmn: On CSA complete, MLME can choose to disconnect peers
CSA on DFS channels requires CAC period after RESTART response, stations
can leave during CAC period, but AP would not receive, as it moves to new
channel. Here, MLME can choose to disconnect peers.

This change moves VDEV SM to SUSPEND_RESTART substate from CSA_RESTART
if MLME chooses to disconnect peers.

Change-Id: If4a57545007bbfd0dbc8e5cc498e2741283bcfcc
CRs-Fixed: 2446744
2019-05-10 16:28:48 -07:00
Abhiram Jogadenu
f404593b7c qcacmn: Increase response timer timeouts
Increase response timer timeout for Vdev delete response and
Vdev stop response as these take longer when KASAN is enabled.
Value is being increased from 2 secs to 3 secs after it passed
wifi up/down, load/unload for a period of ~10hrs.

Change-Id: I1884370bbc214683a238d0028c4fc26bba6c2ccb
CRs-Fixed: 2441815
2019-04-27 04:22:32 -07:00
Santosh Anbu
71b514664e qcacmn: Add debug logs for invalid response
Add change to print logs on return due to invalid response value

Change-Id: I4ca843375b95195f4e418540f895316affed17f4
CRs-Fixed: 2408750
2019-04-19 04:09:00 -07:00
Akshay Kosigi
e761764291 qcacmn: Add correct vdev id while sending vdev param to FW
Add vdev id into vdev_set_param structure for sending
        WLAN_MLME_CFG_MIN_IDLE_INACTIVE_TIME
        WLAN_MLME_CFG_MAX_IDLE_INACTIVE_TIME
        WLAN_MLME_CFG_MAX_UNRESPONSIVE_INACTIVE_TIME
timeout values to FW during vdev create complete

Change-Id: I891a683ee270f057a9d02c47019e2297c43596f5
CRs-Fixed: 2419117
2019-04-19 01:57:05 -07:00
Naga
9dad9767b1 qcacmn: Cleanup duplicate fields in vdev_mlme
Add change to cleanup duplicate fields of
of vdev_mlme, which are also in mlme_channel_param
and their dependencies while updating
vdev_start_param. Cleanup unused mlme_cfg_ids.

Change-Id: Ie32971283a337f04692c0c0bc7f41fff75c090c3
CRs-Fixed: 2407953
2019-04-11 01:14:21 -07:00
Naga
613a74a6cf qcacmn: Add change to send custom AMPDU/AMSDU aggr size
Add change to support sending AMPDU/AMSDU custom aggregation
size to FW using converged MLME and target_if framework.

Change-Id: Icf665e3bf30c5ef5903342264e89776611c7774a
CRs-Fixed: 2430278
2019-04-10 05:27:02 -07:00
Akshay Kosigi
3d91d4d32c qcacmn: Add mgmt tx rate code to send to FW
Add a new mgmt tx rate code id to send mgmt rate code to fw

Change-Id: If294982bae5c273c085d1b9bf46f3ad53db60b93
CRs-Fixed: 2428713
2019-04-08 17:43:46 -07:00