Графік комітів

87 Коміти

Автор SHA1 Повідомлення Дата
Rachit Kankane
f5820188d2 qcacmn: Trigger SAP / GO channel switch
Trigger SAP / GO channel switch on receiving
wmi_csa_ie_received_event_id from FW in STA + SAP / GO DFS SCC
concurrency.

Change-Id: Iff60dffb71b170f56c4fbee4e297b81b87632a2a
CRs-Fixed: 3431365
2023-03-27 09:23:01 -07:00
Srinivas Dasari
539d3bfb53 qcacmn: Add APIs to set and get acs_mode in vdev mlme obj
To support fixed channel SAP in unsafe channels, driver needs
to cache and retrieve SAP start mode i.e. ACS or fixed.
Add a new param is_acs_mode to vdev_mlme_mgmt_ap and APIs to
set and get the same through vdev.

Change-Id: Ib274b95be66e774b15f4687a02ed7fef6bf21056
CRs-Fixed: 3381401
2023-01-19 00:47:38 -08:00
Roopavathi Lingampalli
04a62bd736 qcacmn: Add Component APIs for required ucfg APIs
Implement component APIs for existing vdev_mgr
to get bssid in DP component module.

Change-Id: If70832308028ad1965f4960bc2ba9664b7c09452
CRs-Fixed: 3351504
2023-01-17 21:05:23 -08:00
Srinivas Pitla
3bae1f975c qcacmn: add MLME changes for ML reconfig
1) add op flags to indicate Link removal in progress
2) update API to include link removal check for ML peer create
3) add API to check whether all link peers to be deleted.

CRs-Fixed: 3341256
Change-Id: I8fabd19d3321315eb13d874a7e9b2e93392a7886
2022-12-07 16:19:21 -08:00
Sheenam Monga
6748c79f29 qcacmn: Update SRG and NON-SRG PD threshold
Currently, SRG PD threshold is updated with
addition of SR_PD_THRESHOLD_MIN which is already
added in srg threshold and threshold is left shifted
to 8 bits and type casted to unit8 which is causing
0 value and NON-SRG PD threshold is updated
to NON-SRG PD threshold advertised by AP
only in case threshold provided by user space
is not within the range of connected AP but
in some cases user may enable command without
threshold in such cases NON-SRG threshold
will be sent as 0.

Fix is to update SRG PD threshold directly to the
value without any addition and use QDF_SET_BIT
to add SRG and NON-SRG data in value which is
required by FW. Update NON-SRG PD threshold to
threshold advertised by AP in case userspace
doesn't provide any PD threshold.

Change-Id: I162722264a566e731352f11874f310714bffe4b2
CRs-Fixed: 3340905
2022-12-02 03:30:58 -08:00
Sheenam Monga
6b53d5f9bb qcacmn: Handle Spatial Reuse on Roaming
Currently, if SR (Spatial Reuse) is supported by AP and then
STA roams to another AP then host needs to parse SR IE and
send events to userspace and commands to Fw based on below
scenarios:

i.) Roamed AP doesn't support SR: If roamed AP doesn't support
SR then async event with SR disable is required to be sent to
userspace.

ii.) Roamed AP supports SR: If roamed AP supports SR then below
validations are required.

a.) existing thresholds are in range of roamed AP: Send SR enable
command to FW with previous thresholds , as FW disables SR during
roaming.

b.) existing thresholds are not in range of roamed AP: then decision
will be based on whether threshold is provided during SR enable command
or not. If threshold is provided along with SR enable command then send
disable to userspace and in other case update thresholds as per roamed
AP , send async event to userspace with new configured values and send
enable command to fw with new thresholds.

Change-Id: I7eeebddbaa5075f0ba5d823f946b0cfa9d78c1c6
CRs-Fixed: 3331049
2022-11-29 05:29:10 -08:00
Sheenam Monga
fee16fbe5a qcacmn: Handle SRG and NON-SRG pd threshold
Currently, only single pd_threshold is fetched and
treated as SRG and NON-SRG pd threshold instead of
handling both threshold separately.

Fix is to get SRG and NON-SRG pd threshold from
userspace instead of single pd threshold.

Change-Id: I414843dfd08068c81531d0e96d71fb68d8bfccd1
CRs-Fixed: 3328201
2022-11-10 09:33:46 -08:00
Sheenam Monga
f390986aac qcacmn: Don't include policy manager headerfile
Logic of checking concurrent vdev while sending
pd threshold command is removed from mlme as it
is handled while concurrenct vdev up and down. So,
we don't need to include policy mgr headerfiles in
vdev_mlme file as no policy manager function is invoked
from mlme.

Change-Id: Iec307437d929df5dceb58bf931fd20fa29b55550
CRs-Fixed: 3313112
2022-10-17 06:49:10 -07:00
Sheenam Monga
7d1a7719b8 qcacmn: Add SRG pd offset in OBSS_PD_THRESHOLD
Currently, SRG pd offset is not sent to fw as part
of WMI_PDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD. Add
support to send SRG pd offset provided by userspace,
if provided offset is with in the range of min and max
SRG PD offset advertised by AP.

Change-Id: I8b70dedbabcc6c3a296b8d378b9317924dd5c581
CRs-Fixed: 3304747
2022-10-17 06:48:36 -07:00
Sheenam Monga
663294c0f3 qcacmn: Handle SR Enable vendor command
Handle SR enable vendor command as part of which
send PD threshold value provided by userspace
check the range of the provided threshold,
if threshold lies with in SRG or NON-SRG
range then provide the threshold sent by
userspace else send the MAX of SRG and NON-SRG
offset advertised by AP.

Change-Id: I428a933cc324446fdb4f18f535f1b78228d504fa
CRs-Fixed: 3304779
2022-10-17 06:48:29 -07:00
Guru Pratap Sharma
2184df8f12 qcacmn: Exporting wlan_util_vdev_mlme_set_param
doing qdf_export_symbol for wlan_util_vdev_mlme_set_param
so it can be use in offload

Change-Id: I19c1be6ad8e6462aff29c284131fcc4765df7e25
CRs-Fixed: 3301968
2022-09-30 07:49:12 -07:00
Bing Sun
cb2c6707f6 qcacmn: Add API to update peer channel width and puncture parameter
Add API to send peer param WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP

Change-Id: Id05629b12059ff2258e196b3e9aa78f5fb52bda4
CRs-Fixed: 3269745
2022-09-23 20:20:55 -07:00
Jhalak Naik
56fa1788e4 qcacmn: Allow MLO peer create when ACS scan completes
Allow peer create and association only when full ACS
scan is complete for any link in an AP MLD.

Change-Id: I54d60f31c2521c87fb715b23fc3e0ea7e6100248
CRs-Fixed: 3232153
2022-07-07 12:40:26 -07:00
Jayachandran Sreekumaran
9aefacd777 qcacmn: Dynamic ratemask config support
Add dynamic ratemask config support.

CRs-Fixed: 3112486
Change-Id: If419d1672b92085eb3f27b1d6505b1facfa9c09d
2022-03-01 05:39:25 -08:00
Bing Sun
7ee4663048 qcacmn: Save quiet status to sta context of MLO mgr
Save quiet status of indicated link to sta contect of MLO mgr. Any link
should check quiet status of MLO connection, then decide whether it
can trigger inactivity to FW or not.

Change-Id: Ic294bbe6452030b6cae495ca0dd3e504416e2c9e
CRs-Fixed: 3117825
2022-02-11 02:57:40 -08:00
Bing Sun
385e355013 qcacmn: Add vdev mlme API to get/set dfs cac duration
For MCC, dfs cac duration is saved in vdev mlme object. Add API to
get/set dfs cac duration from/to vdev mlme object.

Change-Id: Iafcf382f884fe453bd4cc4c733f44f43ab00df69
CRs-Fixed: 3103634
2022-01-09 23:10:14 -08:00
Arun Kumar Khandavalli
411dc3777f qcacmn: Correct the marking
The commit eb3e1b4096 wrongly updated the marking,
correct the marking.

Change-Id: Icf912acdaf3e381b248bacf7327c342b73c45544
CRs-Fixed: 3104534
2022-01-06 23:22:58 -08:00
Amruta Kulkarni
c1e9855dd5 qcacmn: Add new api to get link and mlo vdev
Add new api's to get link and mlo vdev from psoc and vdevid.

Change-Id: I4c36baab6199dbc31ba11d1b9c547589a84c9625
CRs-Fixed: 3098600
2022-01-06 12:51:14 -08:00
Shashikala Prabhu
3090d55051 qcacmn: Compute the remaining max channel switch time
As per the spec,
"A STA affiliated with a non-AP MLD, that operates on Link2, transmits a
(Re)Association Request frame to AP2 requesting Link1 as one of the links
for multi-link setup. Since the (Re)Association Response frame is
transmitted by AP2 after the last Beacon frame on the initial operating
class/channel on Link1 and before the first beacon on the initial
operating class/channel is transmitted, AP2 includes the Max Channel
Switch Time element in the per-STA profile corresponding to AP1 in the
(Re)Association Response frame it transmits. The value carried in Max
Channel Switch Time element provides an estimate of time until the first
TBTT on the new channel on Link1."

Hence, calculate the remaining max channel switch time using the below
steps.

When host receives the CSA complete event with the CSA count 1, calculate
the Max channel switch time for each vdev by adding the below values,
	a) Host triggers the channel switch when CSA complete event is
	   received with the CSA count 0. The time difference between
	   CSA count 1 and CSA count 0 is one beacon interval. Hence, add
	   one beacon interval.
	b) Add the channel change time. The total time required to receive
	   CSA event handler from FW with CSA count 0, plus, the time required
	   to process the CSA complete event, plus, the time required to send
	   multi-vdev restart request for all the vdevs in the new channel and
	   send updated beacon template (only for non-DFS channel) is
	   approximately 1 second (added a few milliseconds as delta and
	   considered 16 AP vaps here).
	c) Add DFS CAC duration of the new channel if the new channel is DFS.
	d) Add one beacon interval time (time required to send the beacon on
	   the new channel after VDEV up).
	e) Store the sum of the above time values in max_chan_switch_time of
	   the vdev_mlme object.
	f) Save the current time when host receives CSA complete event with CSA
	   count as 1 in the last_bcn_ts_ms of the vdev_mlme object.

Calculate the remaining channels switch time using the below formula.
- Remaining channel switch time is equal to the time when the last beacon
  sent on the CSA triggered channel plus max channel switch time minus
  current time.

Reset the max channel switch time and the last beacon sent time after
sending the VDEV UP command to FW.

Change-Id: I7c03bfae5e159419a6c9462591aeb2d6c5b4fb87
CRs-Fixed: 3076245
2022-01-03 09:04:19 -08:00
Bapiraju Alla
76caeb9b44 qcacmn: Use target if component for VDEV manager response path
Currently, VDEV manager responses are using legacy path instead of
target_if, vdev_mgr and os_if components. As the driver implementation
is planned for converged model, legacy implementation will be moved to
the respective components.

To avoid rework, Use target_if, vdev_mgr and os_if components to process
the FW responses corresponding to the vdev manager.

Change-Id: I778f6de93481fc730383e8f8e1c604f173947d69
CRs-Fixed: 3093776
2021-12-23 00:54:35 -08:00
Arun Kumar Khandavalli
eb3e1b4096 qcacmn: Reset the vdev response timer during SSR
Presently, whenever there is any kind of reference leak in the system
wlan driver doesn't recover and goes into a bad state.

Add support to forcefully reset the vdev response timer so the system
can gracefully recover and wifi can be functional.

Change-Id: Iab705c17f4313e4b8efd980d5427bf8d4ce9496f
CRs-Fixed: 3051962
2021-12-16 16:12:48 -08:00
Bapiraju Alla
ca4b3fabf6 qcacmn: Add support to dynamic MAC address update
Currently, MAC address update is supported only when interface is down.
Because of this framework needs to issue interface down and interface
up to update the MAC address.

This is resulting in connection time increase when MAC address
randomization is enabled for every new connection.

To optimize the connection time, add support to update the MAC address
without bringing the interface to down state.

Change-Id: Ic3eff6a9571f885292021b2c178d26b0eace5042
CRs-Fixed: 3063475
2021-12-09 13:42:05 -08:00
Santosh Anbu
1c97f0226b qcacmn: Rename peer create check to be MLD specific
Add change to rename peer create in MLO scenario to include MLO prefix
to void interpretation with generic peer create

Change-Id: I0ebf15964390275270e8b02d1e87df8532c63a0b
CRs-Fixed: 3075987
2021-12-09 12:25:46 -08:00
Santosh Anbu
cd43975f65 qcacmn: Allow peer create only when VDEV is in UP state
Replace the state check logic with the existing implementation
that is used to check if VDEV can allow peer create.

Change-Id: I7141ef4ace73e3aacee27e423b42c6c59c509b13
CRs-Fixed: 3075987
2021-12-09 12:25:41 -08:00
Harsh Kumar Bijlani
d7aada5bea qcacmn: Convey vdev_stats_id to FW in wmi_vdev_create_cmd
In BE architecture, HW provides basic vdev stats support for upto
48 vdevs. For each vdev, there is vdev_stats_id which represents the
id of this vdev on HW. This vdev_stats_id is assigned by host and
is conveyed to FW at the time of vdev creation in wmi_vdev_create_cmd.
FW uses this vdev_stats_id to fetch the stats from HW.

Add logic to convey vdev_stats_id to FW at the time of vdev create.

Change-Id: I91782c73a7f3f94175a0c28ab4adda2d894856db
CRs-Fixed: 3069992
2021-11-30 00:57:54 -08:00
Neha Bisht
fdc38fa3f7 qcacmn: Export APIs to be used by another module
Export APIs which need to be used by qca_ol module

Change-Id: Ifbd83603ed6de9aebf9b9ea3fe0d0214fda7b806
2021-11-25 02:52:36 -08:00
Rakesh Pillai
32046ad850 qcacmn: Vdev attach changes for MLO
Add mld mac address info during datapath
vdev attach.

Change-Id: I0ea22025d19be82be0c56809871e8513c3ce7962
CRs-Fixed: 3039326
2021-10-15 13:13:17 -07:00
Lincoln Tran
ce48d77998 qcacmn: Add debug MLO changes
-Add debug logs to MLO manager code.
-Add ml_dev validation checks for ML peer operations.
-Add pointer checks to avoid NULL pointer dereference

Change-Id: I8e9ddf177a999a43e8612f8c6acedd08ffce63d5
CRs-fixed: 2998964
2021-08-25 19:45:02 -07:00
Sridhar Selvaraj
c9c8ccb8cb qcacmn: Adding multi vdev set param WMI API
Adding multi vdev set param WMI API support to send
vdev param update for multiple VAPs.

Change-Id: I6f331d4179afa2b331abef9b857365c60c0a64b3
2021-08-17 20:19:00 -07:00
Srinivas Pitla
7469335fa4 qcacmn: MLO peer implementation
This change adds MLO support to Peer.
It implements,
1) MLO peer list management
2) AID allocation
3) MLO Peer creation/deletion
4) Notifying partner links on peer creation/deletion/assoc

Change-Id: Ie1b675dccdf0de1d79f6f32d9255cf3cca53fdf2
CRs-Fixed: 2967057
2021-08-15 01:53:04 -07:00
Santosh Anbu
8394348196 qcacmn: Add API to check if VDEV is in UP_ACTIVE state
With the addition of MLO_SYNC_WAIT substate, now the active status
of the VDEV will be indicated by ACTIVE substate under UP state.

Add API to check if a given vdev is in UP_ACTIVE state.

Change-Id: Ia858765b07582f89e0eaa041d56c7f2aae6f1528
CRs-Fixed: 2924322
2021-05-06 01:27:58 -07:00
Venkateswara Swamy Bandaru
1ac1976b57 qcacmn: Vdev start changes for supporting 11be
Add support for setting ehtop on vdev start wmi command.

Change-Id: Ia710cfe082dafd6d36e232253fa2f5ba6d7512d3
CRs-Fixed: 2857805
2021-05-04 10:58:39 -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
Shashikala Prabhu
8c3705336e qcacmn: Add support to send FTM responder/initiator cmd to target
Add support to send FTM responder/initiator support to target.

Change-Id: I6649d90941a7448ff1901a3f1194d8d0620481cc
CRs-Fixed: 2781144
2020-12-21 20:55:11 -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
Jayachandran Sreekumaran
e238ccb793 qcacmn: Add config option to set rts/cts rate
Add config option to set rts/cts rate.

Change-Id: Ifaaca2f60c90508ebbc88e096c6c1ce0b80bb7de
CRs-Fixed: 2771302
2020-09-16 13:40:22 -07:00
Amruta Kulkarni
2f48b53345 qcacmn: Prevent link down for SAP on DFS channel
For SAP on DFS channel, the PCIe link down should be prevented
so that HalPhy can access DDR memory to report Radar found event.

Change-Id: I5eb1076196c509f0279781dbe3269d62132aeabc
CRs-Fixed: 2712800
2020-08-12 13:56:38 -07:00
Sandeep Puligilla
9c7c6259ca qcacmn: Enable VDEV response wakelock
Enable VDEV response converged wakelock logic.

Change-Id: I67917d5798d9279cb104d0e7ff2cbe26365658c1
CRs-Fixed: 2738667
2020-08-05 00:03:57 -07:00
Abhishek Singh
e2097ddb09 qcacmn: Replace different struct of SISD with struct wlan_ssid
There are different version of SSID structure used in driver, replace
them with struct wlan_ssid.

Also move struct element_info from scan module to generic structures.

Change-Id: Ia32f82d943980c23b4ff478f5a06c5c053036de5
CRs-Fixed: 2721872
2020-07-01 00:26:20 -07:00
Sourav Mohapatra
227ff6c08a qcacmn: Validate vdev_id before accessing vdev_response_timer
As a part of vdev responses from the FW, the driver fetches the
appropriate vdev_response_timer info using the vdev_id. This vdev_id is
taken from the response coming from FW. Currently, this vdev_id is not
being validated and is being used to access the array psoc_vdev_rt. This
can potentially lead to out of bounds access.

Add validation to the vdev_id before performing the fetch operation.

Change-Id: I6f25a14ccc3c8a96a1b6c863a760809c29de4003
CRs-Fixed: 2658462
2020-04-21 07:55:15 -07:00
Balaganapathy Palanisamy
db9a00bc6a qcacmn: Return status of delete all command
Return the proper status of wmi peer delete all command.

CRs-Fixed: 2644307
Change-Id: Idb44441872e3a00989ec035b187311079f93b94d
2020-04-08 13:42:53 -07: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
Santosh Anbu
060bf3975a qcacmn: Support multivdev restart response handling
Add UMAC change to support consolidated multi vdev
response handling.

Change-Id: I3383c723a96b1c8009665b00e19aa5aa4bf65bfb
CRs-Fixed: 2595743
2020-01-16 08:08:52 -08:00
Naga
29b109fa93 Revert "qcacmn: Move deletion of datapath vdev to vdev destroy handler"
This revert commit Change-Id: I727d70e77f8e913ca732b6ae56c60049161547de.

Change-Id: I2481f74d417db257ac2ab448ab6a3d7b55d2f34e
CRs-Fixed: 2593434
2020-01-15 23:32:18 -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
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