Add an API to support sending multiple COEX config in one WMI command.
This is to optimize and save target host to firmware WMI command
communication time.
Change-Id: Ie510ee3ebfca67a2b748c403ec52a8d7b597f676
CRs-Fixed: 3651226
Pine and Spruce supports 80P80 mode of operation in 5 GHz band
and hence opclass 130 is sent to the user application in
MESH_MAP_OPCLASS_FOR_CUR_HWMODE NL80211 command.
However, these chips support 80P80 mode of operation
only on CFI 138 and 155, but to the application all the 80 MHz
channels in the 5 GHz band are advertised as supported.
This causes the application's channel selection algorithm to fail.
The existing API reg_is_chan_supported() can determine if the input
frequency is 80P80 capable only if cfreq2 of the 80P80 channel is
provided and in reg_get_cfis_from_opclassmap_for_non6g() API, it is not
possible to determine all combinations of cfreq2 for the given primary
frequency. Hence, a call to is_freq_80p80_supported() is made to
determine if any 80P80 combination is possible for the given input
frequency.
Also, 6 GHz channels do not support 80P80 mode of operation.
reg_is_cfi_supported() does a lot of computation to find out that
80P80 is not supported. Hence, if the opclass entry
is 6 GHz 80P80, set 80p80_supported as false.
Hence, send only the supported 80P80 CFIs in the
supported channel list array in MESH_MAP_OPCLASS_FOR_CUR_HWMODE command.
CRs-Fixed: 3627501
Change-Id: Ib5d3e872b34b8df81b8466e877b10f2fd4e68e40
Send standby pdev/radio which is expected to be up while
in powersave mode to FW, to switch master control for
timers.
Change-Id: I4b48d93859359d1b6aee0b9993fd1bd3bff863f2
CRs-Fixed: 3621705
Register event handler for WMI_MLO_LINK_STATE_SWITCH_EVENTID.
Add target if event handler for the
WMI_MLO_LINK_STATE_SWITCH_EVENTID event, and register
corresponding mlo manager callbacks.
Add extract API for link state switch event parameters received
Call the diag event API from MLO manager post extracting the
event
Change-Id: Ib588ee87a5c37c6a34c86ce8cbf134a273c6461b
CRs-Fixed: 3610041
Implement handling of mlo sta standby csa beacon
and initiate the transmission of a link bss request
command tlv to the firmware for standby link.
Change-Id: Ibdf903c69757b47f301ab9fa7c563407915532d6
CRs-Fixed: 3605764
Fix dec and test bit of shmem arena deinit count, as
qdf_dec_and_test returns true if the decremented resultant
value is 0,or false for all other cases.
Change-Id: I59523078bec409badbe253243443a12c508c036c
CRs-Fixed: 3593556
When setting the country from user space, the thread sleeps and waits for
the init_cc event to awake. Right now the thread is woken up only in 2
case:
(i) when the country configuration is success from FW and regulatory and,
(ii) when country configuration failed in FW.
The thread is not woken up if there is failure in regulatory. This is
leading to timeout which will assert the kernel. In order to handle all the
return errors from the regulatory init_cc event handler should execute and
the status should be returned to thread waiting for the init_cc event
irrespective of the status of the init_cc handler. In order to achieve
this, the following actions are taken:
(i) Introduce a new regulatory tx_ops set_wait_for_init_cc_response_event()
that will wake up the thread waiting for init_cc response and return the
status of the init_cc response handler.
(ii) Remove the tx_ops set_country_failed() which just sends the failure
status to the thread waiting for init_cc event. This will be handled by the
new tx_ops.
(iii) Send the status of init_cc handler using the new regulatory tx_ops.
Change-Id: I1b29651682e9b7219d428c13d6d0ea299d6f81ba
CRs-Fixed: 3552823
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
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
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
Extract WMI Service bit for ATF 512 Max client support advertised by
Firmware as part of wmi service ready.
Add rxops functions as for upper modules to get it.
Change-Id: I51e8dcaad96bdd29eb6fd4c37b0917127696ede6
CRs-Fixed: 3551661
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
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
Change ATF north bound function pointer name from atf_set to more
appropriate atf_send_peer_list.
Change-Id: Icd62a39548c58b47aa3f1de9db92dee100be3416
CRs-Fixed: 3490457
Add support to trigger UMAC reset with mode1 teardown request
for mode1 target recovery SSR.
Change-Id: Ib2d1679162a2084488081c76f6753287a6e4d5c4
CRs-Fixed: 3458369
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
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
Add device Id and target type checks for qcn6432 target
compilation
Add CFR and spectral support for QCN6432
Change-Id: Ic908fa768aa1be7cfc40be7fcc7f9ca6aa85aaa6
CRs-Fixed: 3351747
Add target_if api to update SR threshold. Previously
we were using WMA api's since it will be eventually
removed in future we moved the functionality to target_if
Change-Id: Idddfcfe55d28af2b122ac9260dc8388feec42d14
CRs-Fixed: 3374628
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
Re-init mlo global shmem region whenever in case of expected
target recovery mode. In case of mode1 recovery assert, need
complete teardown of mlo and clearing out global mlo shared
memory, when asserted SoC is recovered, re-init global shared
memory region again.
Change-Id: I475b08934bdceb78b87d115b79abf45e76633795
CRs-Fixed: 3390199
Add API reg_process_r2p_table_update_response to handle the event received
from target in response to rate2power table update cmd. Make a call to
end_r2p_table_update_wait from this API to end the wait timer triggered
for the update cmd. Add end_r2p_table_update_wait to
wlan_lmac_if_reg_tx_ops. Add a dispatcher
tgt_reg_process_r2p_table_update_response for this API and register it as
a rx_ops.
Add register and unregister APIs of rate2power table update response
handler to wlan_lmac_if_reg_tx_ops. Call the register API in
regulatory_psoc_open and unregister in regulatory_psoc_close. Define
struct r2p_table_update_status_obj and its members to receive the
response of rate2power table update cmd from target.
Change-Id: I6909e37620b94dc7fdcd3c7c0915a3fad8fa1cda
CRs-Fixed: 3405417
Add 160 MHz and 320 MHz BW support for Smart Antenna.
Peer connect gets rate codes for all supported BW on connecting peer
as part of wmi_peer_ratecode_list_event. This changes add 320 MHz and
160 MHz BW support.
Change-Id: I715dd5a64c38114fef6e17c2e2f6a526e1a716c2
CRs-Fixed: 3381648
1. Enable sub chan DFS type if QCA_DFS_BW_PUNCTURE defined, or all bonded
operation freq will be affected and disabled for nol, puncture can't work,
always need to switch freq.
2. Find nearest puncture pattern for a bitmap.
For example, SAP started with channel width 320 MHz, if only 20 MHz freq
affected by radar, 320 + 20 puncture pattern is invalid, but puncture
pattern 320 + 40 can be used.
3. Fix build issue when QCA_DFS_BW_PUNCTURE defined as following.
error: incompatible pointer types passing 'qdf_freq_t[16]' (aka
'unsigned int[16]') to parameter of type 'uint16_t *' (aka 'unsigned
short *')
Change-Id: I374ed76c6a13ef5fac1a78073f1b8974b0a9bb30
CRs-Fixed: 3386020
The kernel-doc script identified a large number of kernel-doc issues
in the umac/global_umac_dispatcher folder, so fix them.
Change-Id: I576614727dd2be174563c2af4bb055ebb05e61fd
CRs-Fixed: 3375263
Add ucfg and wmi changes to support for green ap low latency
power mode enable/disable command.
Change-Id: Ib9112e384c8354f1eff0f15610301225d51ef3ac
CRs-Fixed: 3265649
WMI_MLO_LINK_REMOVAL_EVENTID will be sent by FW to update the Host on the
progress of the link removal operation. Add support to process this event.
Change-Id: I0c4d5b047cf062b421380f85717fac5a9bdea9c2
CRs-Fixed: 3334950
WMI_MLO_LINK_REMOVAL_CMDID is to be sent by the Host to initiate the
removal procedure for a given link from its MLD. This command will be sent
on the impacted link only. Add support to populate and send this command.
Change-Id: I8485d8c8897bb2bb891d50546d5fbfac2a69a4ce
CRs-Fixed: 3314430