mac pointer that is a result of func "cds_get_context"
that may return null.
Add null check for mac pointer while sending the connect rsp.
Change-Id: I51c021b99b2014fafc4c33519b0de6dbeffa0025
CRs-Fixed: 3120707
Currently, wma_add_sta status is not considered while voting for
link up in case of NDI. But if wma_add_sta fails to add a peer,
this link vote leads to stale link vote up.
Same is the case for wma_delete_sta and the return status is not
considered. This leads to a vote down of link for a non-existing
peer if peer is not present.
Below scenario leads to this situation,
1. Enable NAN and have an NDP connection between two devices.
2. Try to establish another NDP between the same devices but
don't respond for the request on the responder side.
3. NDP timeout happens in firmware and firmware sends an
NDP CONFIRM failure with timeout reason. This event carries
number of NDP-peers on the peer also and firmware sends
this as 0.
4. Driver removes the peer entry as firmware mentioned
no.of peers left as 0. It shall vote down the link also.
5. Firmware sends NDP_END for the first NDP connection and host
tries to delete the peer entry as part of this. But the peer
got deleted @step-4 already and wma_delete_sta returns a
failure now.
As the peer is not present, corresponding link vote-down also
should be skipped.
To avoid these, consider the return status of wma_add_sta for
link vote up and consider the return status of wma_delete_sta for
link vote down.
Change-Id: Iea40961366307f57b4f969245c0732d685d5e415
CRs-Fixed: 3108455
When WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE enabled and user space sets
mac address, host will detach vdev and attach again without setting
vdev tx data callback. Then host tx TDLS discovery request timeout
since lim_mgmt_tdls_tx_complete isn't called, finally TDLS link
establish failed. This change set vdev tx data callback after dp vdev
detach and attach done.
Change-Id: Iada58ba2df0612a92503ccfa5f246f7cca9db9ad
CRs-Fixed: 3112831
Intersecting EHT beamforming configuration from ini and FW
indication, then save it to eht caps of mlme.
For sta, update mlme EHT beamforming configuration to FW
through WMI_VDEV_PARAM_SET_EHT_MU_MODE directly.
For ap, intersecting mlme EHT beamforming configuration and user
configuration, then send result to FW.
Change-Id: I3d6185896af9fc58eb1fb6db913d4a425f72c696
CRs-Fixed: 3113235
CM, PE and WMA changes for mlo roaming
- Roam start and roam sync propogation updates.
- Handling connected link bitmap.
- Link specific assoc response generation
- WMA changes to handle add/remove peer
for mlo roaming scenarios.
Change-Id: I365a26ebb761d93dadd33c9fb8248c28e9eda94b
CRs-Fixed: 3033766
Update HW mode change tlv information to wma/policy mgr.
Losing the information will cause FW/host out of sync.
Change-Id: I1ba9931d10617664da653e85335fade1352c3600
CRs-Fixed: 3109789
Currently firmware is crashing due to levelconf structure received NULL
from host.
Hence initialize num_thermal_conf param to fill levelconf structure part of
WMI_THERM_THROT_SET_CONF_CMDID.
Change-Id: Ifcfb49253222fff6656327d9be3977a707c18af4
CRs-Fixed: 3064400
For send_ll_stats_req from upper layer, need send 1 wmi cmd:
WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID, and need 4 events from F/W
for dbs platform:
1. radio_stats_event for radio 0
2. tx_power_level_stats_event for radio 0
3. radio_stats_event for radio 1
4. tx_power_level_stats_event for radio 1.
If new ll_stats_req comes before last send_ll_stats_req finished,
link_stats_results memory wil be freed, left event can't be handled and
last send_ll_stats_req can't get response from low level and time out
after 1.6s, netlink is blocked during 1.6s, many app will be blocked.
To fix it, if new ll_stats_req comes before last send_ll_stats_req
finished, don't free link_stats_results memory.
Change-Id: I27453d8a3c72e62b030657323ecdf463114b4ac8
CRs-Fixed: 3106562
For QCA6390, firmware not advertise service capability for
tx aggr size 256 support information. Actually it supports
max tx aggr size 256. If user want to use aggr size 256 from
ini file , current behavior will reset the size 64 for QCA6390.
Fix this issue to adopt size from ini file configuration.
Change-Id: Icaed9af65d70e3d14ac604636c4269bd00a8c801
CRs-Fixed: 3089384
In function wma_data_tx_ack_comp_hdlr, wma_handle, which is already
validated by wma_validate_handle, is NULL checked again after
dereferencing. The fix is to remove the irrelevant NULL check.
Change-Id: I9eebdb398e61d2991d0ff8e23cd08870d57707e5
CRs-Fixed: 3096718
Delete the BSS peer if failure happens before STA "Join"
and wait for peer delete event.
After peer delete event is received, send lim_cm_send_connect_rsp
to CM to continue the next candidate try.
This is to avoid previous bss peer deleting pending and send
new bss peer create wmi command to target, which is unexpected
by target.
Change-Id: I5da969546994d9a6fe3cd5053f468fb59ba13e18
CRs-Fixed: 3100305
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. Interface down and up will lead to VDEV
delete and VDEV create commands to the FW.
To optimize Host-FW interactions during set MAC address, add support
to update the MAC address without bringing the interface to down state.
Change-Id: I76afa8f8c2504e8271bf689392d526f994afff0a
CRs-Fixed: 3063201
Add support for QCA_WLAN_TWT_SET_PARAM command to configure
QCA_WLAN_VENDOR_ATTR_TWT_SET_PARAM_AP_AC_VALUE attribute.
This attribute provides access category value for
WMI_PDEV_PARAM_TWT_AC_CONFIG. This is used by firmware to
configure access category for TWT HW queue in TWT Responder
mode(SAP).
Change-Id: I06a14d099c516767fe57ba94acc2a5fb95dc4e17
CRs-Fixed: 3052909
After roaming, old peer is deleted and new peer is created,
rx tid queue of new peer need set up again.
In dp_rx_tid_setup_wifi3, if CM is in ROAMING state,
dp_peer_rx_reorder_queue_setup isn't called, REO queue descriptor
isn't configured correctly by host for FW to do reorder/pn check.
To fix it, in dp_rx_tid_setup_wifi3, if CM is in ROAMING state
and not ROAM_START substate, but ROAM SYNC state after roam sync
event received, dp_peer_rx_reorder_queue_setup still can be called,
rx tid queue of new peer will be set up.
Change-Id: I34fbb60ad509a0bc70e112c7ec53a862c8f9ce2d
CRs-Fixed: 3090061
Currently if disable NAN support in host and fw, max vdev will still
decrease 1, which make it unable to support 4 SAP currency case.
Fix it by checking WMI_SERVICE_NAN capability, if don't have to support
NAN feature, skip reserve vdev for NAN in host.
Change-Id: I771a8678d285cbbfc2f92598ac63a27a989ac5a0
CRs-Fixed: 3091454
In cdp_peer_setup_info "is_assoc_link" flag is changed to
"is_first_link" flag to avoid confusion caused by naming.
is_first_link flag means the first link in the ML connection
trying to setup DP ML peer, it can be assoc or non-assoc link.
Change-Id: I2643866dfd465025d98cef14d06e44276799098d
CRs-Fixed: 3092858
Currently, the host does not check STA+STA concurrency
before sending VDEV/PDEV level PCL command to FW.
1. In case of STA Standalone connection, Host should send
PDEV level PCL commands to FW and marks all channels in PCL
as allowed.
2. In the case of STA + STA connection in MCC/SCC, Host
should send PDEV level PCL command for primary vdev id and
mark all channels in PCL as allowed.
3. In case of STA + STA connection in DBS, Host should
send VDEV level PCL command for both vdev id and via PCL
list host should make sure band is restricted to maintain
only DBS.
4. Initially STA + STA connection in DBS and then one STA
got disconnected. In this case, After disconnection Host
should send PDEV level PCL command for connected vdev id
and mark all channels in PCL as allowed.
Change-Id: I59cf5dfd1bf8fb26e360a8b0b5456fe05037376a
CRs-Fixed: 3084156
It is possible tx_time_per_power_level is not freed
in last event, and it is reused in
__wma_unified_radio_tx_power_level_stats_event_handler,
the buffer size may be different for each event by
manually test.
Fix is to check if memory is freed before malloc, if
not null, free it before malloc.
Change-Id: I51064734cf97b9ff0ecbbaf27f38d5a223c91d3b
CRs-Fixed: 3057436
Currently there is no provision to get the calibration failure
information from the driver. Because of this it is getting difficult
to debug the calibration failure issues.
To simplify the calibration failure issue debugging, add support to
parse calibration failures events in the driver.
Change-Id: I6d831804cca259862fea3e8bb4af33d556138d43
CRs-Fixed: 3078926
When fixed_param->num_radio is 0 from FW, host allocates
struct tSirLLStatsResults with 0 count of struct wifi_radio_stats
to wma_handle->link_stats_results.
When the second radio stats comes, the driver will
not allocate wma_handle->link_stats_results because
wma_handle->link_stats_results is not NULL.
Later driver will access the wma_handle->link_stats_results based
on radio_stats->radio_id. This will access invalid memory
because the original wma_handle->link_stats_results memory
didn't include the wifi_radio_stats.
Fix by free the link_stats_results if
wma_handle->link_stats_results->num_radio is 0, then driver
will allocate wma_handle->link_stats_results memory including
the struct wifi_radio_stats based on num_radio.
Change-Id: Ie1d6bbe8c668d2fb475fddb60907fd13a7f8de66
CRs-Fixed: 3082779
Add numss_m1 and ru_bit_mask check before access the data in
ppet16_ppet8_ru3_ru0.
numss_m1 + 1 should not exceed WMI_HOST_MAX_NUM_SS.
ru count should not exceed 4.
Change-Id: Ide6b562dacb0592fb5c2101c0ce016570cb1dac3
CRs-Fixed: 3080599
The driver sends BMISS disconnection logging event when firmware
sends the bmiss event to host. But if the AP responds after
sending the unicast probe request then we stay connected to
same AP. This could cause the BMISS disconnection log sent
earlier to be a false alarm.
Send the BMISS disconnection logging event only when host driver
initiates teardown with the AP.
Change-Id: I021b335071f803829bdc55249f1071ceaa92edc9
CRs-Fixed: 3083568
In HW mode transition event for mac_freq_mapping,
fw sends pdev id for identifying mac in following
format:
WMI_PDEV_ID_1ST 1 /* first pdev (pdev 0) */
WMI_PDEV_ID_2ND 2 /* second pdev (pdev 1) */
WMI_PDEV_ID_3RD 3 /* third pdev (pdev 2) */
Covert these PDEV_ID to the ones used in policy manager
used for filling current mac frequencies
Change-Id: I745de0278b1ddf627062163364b684745df5e4e7
CRs-Fixed: 3083289
Currently, Host is not caching the response status for the set HW mode
request. Without this status, it is difficult to debug HW mode mismatch
between host and FW when the logs are not available during the set HW
mode command.
To address this, cache the set HW mode response status.
Change-Id: I61b935d54648bc80901bfe7127227ffaa8d7cd7b
CRs-Fixed: 3076445
Instead of the wma macro use the wmi macro to validate the max
supported arguments for the unit test command.
Change-Id: Ia6b8e5a57f3f1d4ca14efddd8c16ff5d7931cad8
CRs-Fixed: 3070809
RX LDPC configuration is not getting properly for the new hardware
mode resulting in tput issues.
Update the ht/vht configuration for the new hardware mode
WMI_HW_MODE_DBS_OR_SBS.
Change-Id: Iadbb731f12c004395361e2339ece3e6e3893ef56
CRs-Fixed: 3069014
FW sends lower band end frequency filter in service ready
ext2 event.
Frequency Info for every supported mode gets updated in
wma_update_hw_mode_list when service ready ext evt is
received.
Although, FW sends lower band end frequency filter in
service ready ext2 event.
So, update SBS Frequency Info when Service ready ext2 evt is
received.
Change-Id: Iefe1e601bffaba877979e7ce42a32763b61293c2
CRs-Fixed: 3073649
Reduce logging level to debug in get peer pmf
capability API to avoid excessive logging.
Change-Id: Ia8f339f880429d478f68300eb6ace3b1a8c87ea2
CRs-Fixed: 3073012
Support to deliver below mlme event to SON:
MLME_EVENT_VDEV_STATE,
MLME_EVENT_INST_RSSI,
MLME_EVENT_TX_PWR_CHANGE.
Change-Id: I0535d80cea155f5b94abecfa609d34940e57cdd7
CRs-Fixed: 3054810
This change sends the new wow event in the bitmap to FW only
when the roam stats suspend mode attribute is enabled from the
user space.
Also, the new wow reason is added to wake up the host while
sending the roam event stats.
Change-Id: Iaefb229929e8791870f33bf787487f7c20daf218
CRs-Fixed: 3050830
This change gathers the roam event stats from the FW.
New vendor event is used to fill in the vendor attributes
whenever the roam stats are received from Firmware.
Change-Id: I9a2ddef62d26b0b68897891788733df452ac1ceb
CRs-Fixed: 3036518
Update the concurrency policy for STA mode.
For an upcoming STA connection:
1. Disallow the 2nd STA connection if multiple STA connections are
not allowed.
2. Allow the secondary MLO link when primary link is connected.
3. Disallow ML STA when ML STA/SAP is present.
4. Disallow the 3rd STA.
5. Allow for the other cases.
Change-Id: I70c41177b7a3a9aa9cbac0aaced08c6eafca2b6d
CRs-Fixed: 3012577
Cleanup WMA HWMODE and WMA HWMODE List
as the same functionality is already taken
care by policy manager
Change-Id: I5dc1342422e70737111f882013ed3a6351a85336
CRs-Fixed: 3064739
INI item enable_dynamic_pcie_gen_speed_switch is no longer. Hence,
delete all uses cases of it.
Change-Id: I1082620c4354bda48ebc54aae7e72e5a81c4aa94
CRs-Fixed: 3068122
Along with 11BE feature macro, check for Kernel 11be macro to avoid
compilation issues when kernel doesn't support 11be.
Change-Id: I9fb84b6263cbdca4cde93e3a581acdbfe0fe2b34
CRs-Fixed: 3066175
As requested by OEM, change PAGE_FAULT log string to PF so as
not to confuse it for a critical problem for OEM.
Change-Id: I4057513670b348dd772b42777b5623722eeafc45
CRs-Fixed: 3064527
Add Ini to Disable/Enable SBS.
Also, if INI is set then only set
the fw mode config bit corresponding
to SBS.
Change-Id: I839990dcd9bd2daf3df2c64abe5fa74a99c73051
CRs-Fixed: 3065084
Add support to send beacon miss disconnection logging event.
Fix the diag attribute end marker in the event table.
Change-Id: I11fc8859af383b69bcba42654fb3a2bc597fef83
CRs-Fixed: 3056266
Currently WMI_DBGLOG_TIME_STAMP_SYNC_CMDID command sent
every 1 sec causes RTPM collapse and inturn has power
impact. So to avoid this enable time of the day synchronization
only after connection/roaming.
Send WMI_DBGLOG_TIME_STAMP_SYNC_CMDID as part of RSO
start command.
Change-Id: Iee3cefe1318a6e5507a43cefb9666cc2a439fe06
CRs-Fixed: 3060762
As DP requirement, CP should not provide peer mlo information for
cdp_peer_create and CP should provide peer mlo information for
cdp_peer_setup.
Change-Id: Ic15f209b009e5a3bd6b154992d2a88cb19f489de
CRs-Fixed: 3020662
Currently, WOW wake up event is logging the critical messages
using the fatal log level. These logs are not fatal but critical
to know the reason of the WOW wakeup.
Change the WOW critical log level from fatal to info.
CRs-Fixed: 3052107
Change-Id: Iebd1e08ca5d75eb5b312fa19820702b514dd03f9
MLO link peer fails to be detached if MLO peer state isn't set as
ML_PEER_DISCONN_INITIATED.
Notify peer disconnection to MLO when connection fails, which updates
MLO peer state to ML_PEER_DISCONN_INITIATED.
Change-Id: I0f044d12d7a8412757b76e1baccd71e146538afe
CRs-Fixed: 3053729