Commit Graph

1235 Commits

Author SHA1 Message Date
jingxiang ge
6b70bdc5b0 qcacmn: restructure function in target_if_free_psoc_tgt_info
Restructure memory free function so both win&mcl can call
it. to avoid memory free mismatch.

Change-Id: I31634f94421f30d74d2eaad44e5df089d489d67f
CRs-Fixed: 3572976
2023-08-03 10:04:15 -07:00
Vinod Kumar Pirla
a147f231ea qcacmn: Use VDEV response timer in PSOC for MAC update
Use the VDEV response timer infrastructure to hold MAC address update
requests sent to FW on VDEV which is in link switch progress.

As post disconnect and sending set MAC address request, the scheduler
thread is exited and to notify MLO mgr about set MAC address update
complete (or either timer expiry due to FW response timeout) and
further the link switch process based on response.

This code is only applicable for Link switch VDEV MAC address update
path. For MAC update request from userspace still use the same path
without starting the timer as for those wait event is already in place.

Change-Id: Ice3e6f7b00f0d9d08d6aa62ee9c1e4d183142358
CRs-Fixed: 3556517
2023-08-02 04:55:03 -07:00
Liangwei Dong
adb0ec3b16 qcacmn: Fix duplicate process of link set event
Add flag in event response struct to indicate event processed
or not.
Use scheduler thread to process set link active event same as
other link switch and vdev event to avoid race condition.

Change-Id: I963f9106e296a59cff5078c85a4accf63c7026dc
CRs-Fixed: 3572868
2023-08-01 09:38:15 -07:00
Vinod Kumar Pirla
af6cf93a07 qcacmn: FW Link switch request event handler and cnf resp
Once the FW sends the link switch request to host handle
the request from scheduler thread and send confirmation
back on completion of link switch process with status of
link switch (success/failure).

Add new serialization command type for link switch.

Introduce flags to get the current state of link switch
request, set the state to idle when no link switch in
progress or once the current link switch is completed.
Access to state is protected with MLO dev context lock.
Implement various helper API to:
    a) Transition link switch to next state.
    b) Get current state of link switch.
    c) To check whether any link switch is in progress.
    c) To check whether link switch is happening
       on assoc VDEV or not.

Introduce a new VDEV flag to suggest the VDEV is in
link switch process and also implement helper APIs to
set/get/clear this VDEV flag.
   a) The flag is set at start of link switch, once
      the FW request params are validated and before
      proceeding for link switch disconnect on VDEV.
   b) Clear the flag once the Link switch confirmation
      is sent to FW.

Validate the link switch request params:
     a) IEEE link ID's received.
     b) Check if new connection is part of MLO connection.
     c) Check if VDEV is MLO STA VDEV or not.
     d) Is VDEV in connected state or not, that means
        VDEV is not in transitioning state due to disconnect.
     e) Check if any link switch in progress on this MLD
     f) Current link ID of VDEV equals the FW params.

If validation is successful, serialize the link switch
command and in the serialization activation start the
actual link switch process.

Change-Id: Ie582650541054c8cf39aaa8316e86a7a40256a15
CRs-Fixed: 3556422
2023-07-31 19:38:48 -07:00
jingxiang ge
f8d1f8ac6f qcacmn: Extract aux device capability
Extract aux device capability from service ready ext2
event, and report such info to wma/mlme/hdd.

Change-Id: I888624fd3443118ba66fadd7a40fcce4f4b5d521
CRs-Fixed: 3549753
2023-07-30 22:45:25 -07:00
Jianmin Zhu
8ebdc0ccc9 qcacmn: Avoid mutex in soft irq
When handle wmi_mlo_link_disable_request_event in tasklet, mlo mutex is
acquired, assert will happen.
To fix it, let wmi_mlo_link_disable_request_event be handled in scheduler
thread instead of tasklet.

Change-Id: I65b84d0b6dc92a6649925d5844657fa44df1fada
CRs-Fixed: 3563195
2023-07-27 08:32:20 -07:00
Vignesh U
416c570033 qcacmn: Include opclass 80p80 in AFC request only if device supports
AFC request is sent for all the opclass supported in the global opclass
including 80p80. Not all the devices support 80p80 and so, it is
unnecessarily included in the AFC request.

Create a callback function in regulatory to check if 80p80 is supported by
the device. If the support is present then the AFC request can include
80p80 opclass (opclass number 135 in global operating class). If not, then
the AFC request excludes 80p80 opclass.

Include 80p80 opclass in the AFC request based on the devices' support.

Change-Id: I9e72c960fefe6fbdc106bb83fb240d84d8522b80
CRs-Fixed: 3538926
2023-07-27 08:32:09 -07:00
Pragaspathi Thilagaraj
50de05c257 qcacmn: Add support to enable CFR for EVROS
Add support to enable CFR for EVROS

Change-Id: Ie6feea940d40b04d54058d662116deb2b6972a5e
CRs-Fixed: 3528559
2023-07-20 01:12:16 -07:00
Vijay Raj
de88d935fd qcacmn: Improve accessibility of target_if_is_vdev_valid
Move  api target_if_is_vdev_valid() in order to improve
its accessibility.

Change-Id: Ia2085da6ab62144fb690b9474359caa31b415e74
CRs-Fixed: 3555929
2023-07-18 22:55:59 -07:00
Liangwei Dong
39fabd2c13 qcacmn: Zero memory of mlo_link_set_active_resp struct in event handler
Zero memory of mlo_link_set_active_resp struct in event handler to
avoid invalid value in it.

Change-Id: I18cbe0903bea23c9069a84af8207f4265a7111e1
CRs-Fixed: 3558678
2023-07-13 11:24:35 -07:00
Edayilliam Jayadev
62d03ddb2c qcacmn: Add infrastructure to gracefully handle frames
Add infrastructure to gracefully handle frames in management
Rx reorder module.

Change-Id: I9d5302acfc020686b4c51b666fc7828dddf20ca7
CRs-Fixed: 3525838
2023-07-10 21:23:06 -07:00
Deeksha Gupta
5bda5de6ce qcacmn: populate num_max_mlo_link_per_ml_bss in WMI init
Set num_max_mlo_link_per_ml_bss to WMI init command.

Change-Id: I48a46f66cea86ee660656509a9cd688e3e1f7541
CRs-Fixed: 3512393
2023-07-10 12:13:51 -07:00
Deeksha Gupta
589214a617 qcacmn: Extend wmi_service for n-link MLO connection
Extend wmi_service for n-link MLO connection.

Change-Id: I269d1730eb59dcf492aca675b0fbfc3e56a0fbb7
CRs-Fixed: 3512375
2023-07-10 12:13:40 -07:00
Prasanna JS
5f2fa5a090 qcacmn: Add target_if API to update SR threshold
Add target_if api to update SR threshold.

Change-Id: Ia2fd40a92598c772bb02998d938edb9b98ac253e
CRs-Fixed: 3374628
2023-07-03 12:53:54 -07:00
Thirusenthil Kumaran J
0da20d2361 qcacmn: Fix Bootup crash for Partial Offload chipset
Swift radio in Hawkeye is a partial offload chipset supporting
11AC mode. It has no support for MLO. Currently, when MLO event
handler registration fails due to No Support, an error is returned.
This terminates the device bootup causing a crash.

To solve this issue, do not return an error status when the
event registration fails due to No support.

Change-Id: I89819461bbc1d0fa31ef0558c93d06723f13de35
CRs-Fixed: 3520749
2023-06-28 01:23:05 -07:00
Himanshu Batra
be34bbe6fc qcacmn: Add support for ptqm migration
Add support for ptqm migration

Change-Id: I3f3d6e410bee554477e8e058b1da51f2af5abb23
CRs-Fixed: 3529926
2023-06-27 04:03:41 -07:00
Rakesh Pillai
b47aea82ae qcacmn: FISA data structure movement
Move the non-converged data structure for FISA
out of converged DP section.

Change-Id: I76d8ac924814d5881f3fd1f75db3ee01cf87113f
CRs-Fixed: 3512037
2023-06-24 13:32:07 -07:00
Jianmin Zhu
35f33b2cbe qcacmn: Add API to convert chan width
Add API to convert channel width from wmi_host_channel_width to
phy_ch_width.

Change-Id: I3d7e45b63060e1093d4d44942fd863077e6462d8
CRs-Fixed: 3529281
2023-06-17 03:59:00 -07:00
Gururaj Pandurangi
2d67497cfb qcacmn: Add support to force power save the active MLO links
Add MLO manager and target interface support to force power
save on all the active MLO links for a defined number of
beacon periods. Force power save allows the firmware to
suspend STA links for X beacon periods and remain asleep
even if the AP advertises TIM as opposed to regular power
save mode where STA links wake up if the AP indicates that
it has buffered data to send.

Change-Id: Idb3ea42cfc2333a4b177780d09ddec6904ea0c16
CRs-Fixed: 3514468
2023-06-09 13:49:57 -07:00
Vijay Raj
843992732f qcacmn: Extract Multipass SAP support in target capabilities
In api extract_service_ready_ext2_tlv(), Multipass
SAP capabilities is extracted to enable multipass
sap suppot in host

Change-Id: I422a5dbaca405ceaea70559863af48d046f92cbe
CRs-Fixed: 3515331
2023-06-07 13:58:49 -07:00
sivaraman
5ca9d1b8b4 qcacmn: Update the CFR streamfs buf size for Miami
Update the CFR streamfs buf size for Miami

Change-Id: Ie8ddc32161e9c9eafc258da8fbb0c2cd9173cbe7
CRs-Fixed: 3409861
2023-06-05 01:33:34 -07:00
Aniruddha Mishra
6324e57636 qcacmn: Read MSD values from FW
Get MSD values using FW provided getter functions
and store it

Change-Id: I894ffabd5d46c038c8c552dd670199b94ad6a16a
CRs-Fixed: 3500478
2023-06-02 16:49:52 -07:00
Shwetha G K
6bce625a5b qcacmn: Fix invalid RSSI issue
For QCN9160 target, uCode reports the dBm converted values
in status tlv. Hence, remove conversion at HOST.
Populate proper chip type for QCN9160's RCC.

CRs-Fixed: 3509733
Change-Id: I8422f661161337cdce5ef8001fb502aebdbe0dc2
2023-06-02 16:49:32 -07:00
Shwetha G K
06106258e5 qcacmn: Gain 62, 63 & 64 support for 11be targets
11be target support 65 gain values from 0 to 64.
Add changes to support the same.

Change-Id: I4239683ca7e49b2cc8c5de7b0a719e27a74b8494
CRs-Fixed: 3513135
2023-06-01 02:58:40 -07:00
Naveen S
1aacf20138 qcacmn: Fix for qdf spinlock destroyed twice or never created
Fix for qdf_spinlock_destroy being destroyed twice or never created.

Change-Id: Id2a471c7f1efbdba5b31dfc106263c587dae2c1a
CRs-Fixed: 3471529
2023-05-30 02:58:03 -07:00
Thirusenthil Kumaran J
6e4cdcf45c qcacmn: Support channel list update when afc_reg_no_action is set
In enterprise mode, when power event is received from Target, ACS is
not called and regulatory takes no action to AFC power event.
Hence, when host receives the event REG_AFC_EVENT_TIMER_EXPIRY with
subevent type SWITCH_TO_LPI or STOP_TX from FW as a response to payload
reset command from client application, the channel list is not updated
as 'afc_reg_no_action' is enabled.

To fix this issue and update the channel list, add reg txops to trigger
channel list update while processing REG_AFC_EVENT_TIMER_EXPIRY event
from FW when 'afc_reg_no_action' is set.

It is to be noted that 'afc_reg_no_action' should be set only in
enterprise mode.

Change-Id: I9ba2a0a0d0c4282895b3787943aca1dd45c199c3
CRs-Fixed: 3492604
2023-05-22 16:46:10 -07:00
Edayilliam Jayadev
d8b480fa26 qcacmn: Add upper bound check for scan count
Add upper bound check for Spectral scan count parameter.

CRs-Fixed: 3495755
Change-Id: I31cb9313bc1abcc8323a00242a6f34b25af9ed9d
2023-05-21 22:13:50 -07:00
Surya Prakash Raajen
488ebc9cd9 qcacmn: Fix subsequent wifi failuers after mode1 recovery
After mode1 recovery, because of short circuit operator "&&",
decrement of init count is not happening and causing failures
to read global shmem arena tlv, fix the issue by changing the order

Change-Id: Iae922f09c2a9c3690318e35657f92cc3bf1061e7
CRs-Fixed: 3497802
2023-05-17 16:11:41 -07:00
Shashikala Prabhu
8b6fd27e6e qcacmn: Restart vdev mgmt rsp timer if UMAC reset is in progress
It is possible that the host queued the peer delete command to FW
but no peer delete event was received within the peer delete
timeout as FW initiated a UMAC reset.

When the vdev mgmt response timer times out, check if umac reset is in
progress. If so, restart the vdev mgmt response timer.
The entire umac reset handshake completes within 200ms if not
FW asserts. Hence no need to add the count check before
restarting the vdev mgmt response timer.

Change-Id: Ief3351b940658a870e303d191a3873bd60499023
CRs-Fixed: 3475168
2023-05-17 08:34:46 -07:00
Jhalak Naik
d563641c08 qcacmn: Add support for handling MLO TSF sync capability
Add APIs to init the TSF sync capability based on
WMI_SERVICE_MLO_TSF_SYNC service bit sent from FW,
per ML group.

Change-Id: I5dad3fef7ebfa2af330b95d45cac3bef862f46f0
CRs-Fixed: 3491364
2023-05-16 11:43:24 -07:00
Surya Prakash Raajen
cb01519700 qcacmn: Trigger UMAC reset with mode1 SSR teardown
Add support to trigger UMAC reset with mode1 teardown request
for mode1 target recovery SSR.

Change-Id: Ib2d1679162a2084488081c76f6753287a6e4d5c4
CRs-Fixed: 3458369
2023-05-14 13:37:48 -07:00
Will Huang
638086f05d qcacmn: Fix possible compile error if include service_ready_param.h
enum reg_afc_dev_deploy_type afc_dev_type is defined as variable in
service_ready_param.h if AFC enable, reg_afc_dev_deploy_type defined
in wlan_reg_afc.h.

Include this head file if AFC enable so that don't have to include it
everywhere include service_ready_param.h.

Change-Id: I4bab90dc051c8afb984d7a486c97743b5c277589
CRs-Fixed: 3482426
2023-05-14 11:07:31 -07:00
Namita Nair
2613f207e0 Revert "qcacmn: WAR for opt_wifi_dp feature to disable IPA(1)"
This reverts Change-Id: I7aad275f4d86a2ffc239f1fe343de31ec2988fad.

Change-Id: I875e8d15430c3f0a0f4bf10d275b203b24023a64
CRs-Fixed: 3483264
2023-05-12 16:39:36 -07:00
Rahul Gusain
ce53e06591 qcacmn: extract max number of NAN pairing sessions
Currently, there is no provision to identify that the driver supports
NAN pairing protocol. So, new kernel and new firmware will start
exchanging PASN frames without realization that old driver is loaded
and thus, frames will be drops in driver.

So, to fix this issue, firmware introduces new parameter in nan
capabilities to indicate host about pairing capability. Host driver
extracts the TLV to get nan capabilities and cache the max num of
pairing session.

Change-Id: I4153c7ec4d425294b0799122bf61e735184f0960
CRs-Fixed: 3492518
2023-05-12 05:03:47 -07:00
Surya Prakash Raajen
8171e77523 qcacmn: Add recovery mode support in shared memory
Add api support to read the pointer to recovery mode in shared
memory, this pointer will store the if the mode recovered is
mode1 or mode0

Change-Id: I9e8dbd32c62dbb75d27d590a5013b4a9837fae24
CRs-Fixed: 3458369
2023-05-09 21:48:39 -07:00
Amruta Kulkarni
c16aa9d544 qcacmn: Add handling for mlo link disable event
Add code changes to handle new wmi_mlo_link_disable_event
Extract the wmi event params and store in host defined
structure.

Change-Id: I6893bfa4da7b27f4a9b1ce2936057bb3576a317c
CRs-Fixed: 3458680
2023-05-09 01:48:41 -07:00
abhinav kumar
df618544a3 qcacmn: Process get_cu_for_each_subbw driver command
1. Read the new service capability:
WMI_SERVICE_CCA_BUSY_INFO_FOREACH_20 MHz: Via this host knows
whether FW supports reporting of CCA busy info for each 20 MHz
subband of wideband scan channel or not.

WMI_SERVICE_VDEV_PARAM_CHWIDTH_WITH_NOTIFY_SUPPORT: Via this
host knows whether FW supports VDEV param channel width switch
with OMN/OMI notification or not

2. Register osif callback to send scan done indication to upper
layer

3. Add 2 new scan flags pause_home_channel and
report_cca_busy_for_each_20 MHz

Change-Id: I63d561a3c5f8e49a3ca42d956e6b630c63edeaf4
CRs-Fixed: 3460901
2023-05-03 04:58:20 -07:00
Edayilliam Jayadev
95bcc4cdfe qcacmn: Change the magic pattern to indicate the blanking
Change the magic pattern to indicate blanking from 0xdeadbeaf
to 0xc0debeaf.

Change-Id: Ifc72e0afe35e9f49fb27f4d5fb674af81231e196
CRs-Fixed: 3471929
2023-04-28 03:07:03 -07:00
Naveen Gurujala
2467d81f7b Revert "qcacmn: Add target_if api to update SR threshold"
This reverts Change-Id: Idddfcfe55d28af2b122ac9260dc8388feec42d14

Change-Id: I4f79b0bcc223adfc776608d85156721eb80f9d21
CRs-Fixed: 3374628
2023-04-26 03:26:17 -07:00
Prabhu Dass Mahalingam
424a29be96 Revert "qcacmn: Add MSD support in multi link ie"
This reverts Change-Id:	If5c2955a7bf8638d8725c753bfbe1e50a4836e40

Change-Id: I0783ec1c5ec7633237b888a57b5165295bd01f07
CRs-Fixed: 3436404
2023-04-25 12:08:55 -07:00
D Harilakshmi
eea6497c2c Revert "qcacmn: Add support for handling MLO TSF sync capability"
This reverts Change-Id:	Ie8ca48f8f6065f02eefaea85ad967e32d09787fc

Change-Id: I3cdd1a5748189811222fb5ba18d8dcb9a740c253
CRs-Fixed: 3470139
2023-04-25 12:06:23 -07:00
Linux Build Service Account
70cae165fc Merge "qcacmn: Add support for handling MLO TSF sync capability" 2023-04-21 09:15:34 -07:00
Linux Build Service Account
fe4470547c Merge "qcacmn: Add target_if api to update SR threshold" 2023-04-21 09:15:27 -07:00
Linux Build Service Account
1ef740327a Merge "qcacmn: Update rx_peer_metadata version to DP" 2023-04-21 09:15:23 -07:00
Linux Build Service Account
d5900af48a Merge "qcacmn: Pebble bring-up changes in Umac and target_if layer" 2023-04-21 09:15:21 -07:00
Linux Build Service Account
ee21c80c5f Merge "qcacmn: Add MSD support in multi link ie" 2023-04-21 03:18:17 -07:00
Jinwei Chen
bedb4f3049 qcacmn: Update rx_peer_metadata version to DP
Save rx_peer_metadata version to wlan_res_cfg, update this value
to DP.

Change-Id: If559d85ebb390b54d267f4bc4ba214631b547d32
CRs-Fixed: 3469154
2023-04-21 03:16:59 -07:00
Kannan Saravanan
e11f459ade qcacmn: Pebble bring-up changes in Umac and target_if layer
Add device Id and target type checks for qcn6432 target
compilation
Add CFR and spectral support for QCN6432

Change-Id: Ic908fa768aa1be7cfc40be7fcc7f9ca6aa85aaa6
CRs-Fixed: 3351747
2023-04-20 04:59:28 -07:00
Jhalak Naik
7acca67784 qcacmn: Add support for handling MLO TSF sync capability
Add APIs to init the TSF sync capability based on
WMI_SERVICE_MLO_TSF_SYNC service bit sent from FW,
per ML group.

Change-Id: Ie8ca48f8f6065f02eefaea85ad967e32d09787fc
CRs-Fixed: 3470139
2023-04-19 15:10:17 +05:30
syed touqeer pasha
5b0980f461 qcacmn: Check Tx halt during umac reset
1. Check Tx halt during umac reset and avoid halt if set already.
2. Perform SRNG disable only in case of umac reset

Change-Id: Id364a6460a64e83002b5c96e08031ad2a0bc8fd7
CRs-Fixed: 3459427
2023-04-14 01:54:13 -07:00