Remove panic when tlv doesn't matching attributes, the following commit
takes away a chance to pass invalid values tlv to test the the wmi event
hence reverting commit ca24670e56.
Change-Id: Iafff2067288c8a6fafa016f21b1d7fdfdcb0753e
CRs-Fixed: 2706245
Host configures max ndi interfaces support to firmware using
WMI_INIT_CMD. In resource config of WMI_INIT_CMD, host updates
max number of ndi interfaces support and sends it to firmware.
Change-Id: I44ccbe726663bc18d3c69b4aae0b0e3e9c1501ee
CRs-Fixed: 2701559
Firmware uses the ESS report element information from beacon. For
roaming, station uses ESS report information to consider next AP.
Hence add support to send ESS RSSI roam trigger reason to firmware.
Change-Id: Id10cd3030d4dffde0bbcc883d582c5ca7e0f1005
CRs-Fixed: 2688520
Add support to populate 11AX wireless modes advetised in ext2 service
ready message. To support older FW that do not advertise this, use
existing host workaround to populate these in host itself.
Change-Id: I3b3b280672592c858bd3f6f0e368909a16bd30ee
CRs-Fixed: 2650136
Firmware advertises max number of ndp sessions support in
wmi_service_ready_ext2 event. If the firmware advertised value of
max ndp sessions is non-zero, then host uses a minimum of max ndp
sessions of target_resource_config and firmware advertised max ndp
sessions to configure max ndp sessions in firmware using WMI_INIT_CMD.
Change-Id: Ied6891157ce589e5d36a4f8b9694a95b5c819ad6
CRs-Fixed: 2688393
Whenever a wmi even it received the tlv received from the firmware
will be sanitized, if there is any error the event would be dropped.
This dropping of the event can give side effects in the host/firmware
after some time and making it difficult to find the actual reason of
why the tlv is not received properly.
Crash the system if the tlv is not parsed correctly to debug the issues.
Change-Id: Ic56e3f96252ac74917caeebc8296c2b50ae4f3cd
CRs-Fixed: 2695053
Update return type of wmi_discard_fw_event to return QDF_STATUS
to match scheduler_msg_process_fn_t.
Change-Id: Iba2d41c4bab2bfd5fb163d82fca6c6b895e5a2a4
CRs-fixed: 2699644
In struct weight_config, "oce_subnet_id_weightage" added newly.
Station uses "oce_subnet_id_weightage" as one of the parameter for
selecting AP candidate during initial connection. Host sends
"oce_subnet_id_weightage" ini value to firmware over WMI command
WMI_ROAM_AP_PROFILE.
Add oce_subnet_id_weightage in scan object scoring param to calculate
weightage based on SUBNET ID and select candidate accordingly.
Change-Id: I6583f46f661eaefabbad858bc7fb34e37443ebae
CRs-Fixed: 2675924
Remove the min check for channel list in PNO scan as there is no
limitation in FW for number of channel. The min check is truncating
the 6G channels.
Change-Id: Ic12a82e6b1f9d22c6136abc01125f0465fe821c9
CRs-fixed: 2661087
WMI_PEER_CHAN_WIDTH_SWITCH_CMDID sent from host fragments the
command based on the size of the WMI buffer.
Add support to instead use a FW regulated value taken from the
WMI service ready extended_2 event.
CRs-Fixed: 2684788
Change-Id: Iaeccf785c64b385bf2ad6bc372da239981143fa0
Somtimes F/W event WMI_REG_CHAN_LIST_CC_EVENTID comes for country
code changed before WMI_READY_EVENTID processed completely in
worker thread, to update current channel list,
hdd_regulatory_dyn_cbk is invoked in scheduler thread and wiphy
is extracted from pdev which isn't attached to pdev yet, assert
will happen.
WMI_READY_EVENTID and WMI_REG_CHAN_LIST_CC_EVENTID
should be serialized, both of them should be handled in same
context, such as worker thread.
Set WMI_REG_CHAN_LIST_CC_EVENTID execution context same as
WMI_READY_EVENTID: WMI_RX_WORK_CTX.
Host F/W handshake during init:
Host <- FW WMI_SERVICE_READY_EVENTID
Host <- FW WMI_SERVICE_READY_EXT_EVENTID
Host -> FW WMI_INIT_CMDID
Host <- FW WMI_REG_CHAN_LIST_CC_EVENTID
Host -> FW WMI_SET_CURRENT_COUNTRY_CMDID
Host <- FW WMI_READY_EVENTID
Host <- FW WMI_REG_CHAN_LIST_CC_EVENTID
Change-Id: I922e5f2a9722e9b441cc844dd38b1039dd4d8900
CRs-Fixed: 2689274
This commit enables support for SuiteB roaming wmi service based
on the WPA3 SuiteB roam service capability advertisement
received from Firmware.
In SuiteB the PMK length is greater than the existing PMK length,
added the extended PMK parameters to fill in the remaining bytes
of PMK in the RSO command.
Change-Id: Ia630580bba050513800e3acac875baf937ec8d14
CRs-Fixed: 2685993
In order to enable/disable the OBSSes whose transmission can be treated as
SR opportunity for SRG and Non-SRG based Spatial Reuse, add the required
WMI support. Also, add the Host abstractions for the following
- WMI_VDEV_PARAM_ENABLE_SRP
- WMI_SERVICE_SRG_SRP_SPATIAL_REUSE_SUPPORT
CRs-Fixed: 2684157
Change-Id: Ib3e919766436ca4d4e7f9242b642ba309dbf9a47
With specific AP(s), FW needs to perform FT initial mobility
association instead of FT roaming for deauth roam trigger.
Add iface changes to configure "FT initial mobility roaming
for deauth roam trigger" behavior from the HOST.
Change-Id: I695a36b66a7a53e8d08526c065a9530196646184
CRs-fixed: 2665885
With the current implementation of wmi init command,
there is no provision for the host driver to provide mem
chunks addresses with more than 32-bit, to the firmware.
WCN3990 is a 35-bit target and can accept mem chunks addresses
which are above 32-bit.
If firmware supports address range more than 32 bit, it
advertises the support by setting the WMI_SERVICE_EXTEND_ADDRESS
service. Based on this service fill the upper bits of paddr while
providing the mem chunks in the wmi init command.
Change-Id: Id65eb03d8f5cec5b9f16e24287a45a86433ab970
CRs-Fixed: 2678069
Add support for processing the start scan response
WMI event. FW provides the necessary information to
segregate FFT bins to pri80, 5 MHz and sec80 in
160/165 MHz. Also, cfreq2 and the channel width is
provided to FW via WMI command.
CRs-Fixed: 2672081
Change-Id: I666b6c18a63d5d01117aa9cbd611691c6f8b2793
When Host receives the WMI_REG_CHAN_LIST_CC_EVENT from the target,
the regulatory phymode bitmap is of the type WMI_REGULATORY_PHYBITMAP.
Convert WMI_REGULATORY_PHYBITMAP values to REGULATORY_PHYMODE values
in extract_reg_chan_list_update_event_tlv, to use it internally in
the Host.
Change-Id: Id2e37989e13007f60cf92d02c282c84407501d5f
CRs-Fixed: 2679640
The current value of WMI_BEACON_TX_BUFFER_SIZE imposes a limita-
tion on the size of the probe-response template that host can
send to target. This limit is good for offloading probe response
to target in case of soft-ap
WIN AP requires to support up to 16 VAPs in a single WIFI radio.
Also, 20TU probe response requirement for 6Ghz AP now requires
WIN AP to offload probe response
The current limit of 500 bytes is sufficient for soft-ap but does
not fulfill 16 6Ghz WIN AP requirement
Define WMI_BEACON_TX_BUFFER_SIZE for WIN AP as 1500 bytes
CRs-fixed: 2681235
Change-Id: I6251ee049451aa0c4a0482d772842a4f688b2f89
To be able to configure SRG BSS Color Bitmap and SRG Partial BSSID Bitmaps,
add the required WMI support.
CRs-Fixed: 2665817
Change-Id: I141abe24dd34cab92f45b230b385500902d01416
The stale value of this field blocks driver from sending
FW_HANG wmi messages to target after recovery
Change-Id: Ib44388c5c95c2574c96117b77fdabda26f5890bd
Enhanced Multi-BSSID Advertisement is an enhancement to the
existing Multi-BSSID feature in terms of advertising
non-transmitted bssid profile using the transmitted bssid
beacon. Mandatory inclusion of RNR IE in lower-band AP
beacon to support Out-of-Band Advertisement of colocated
6Ghz AP may impose limitation in the beacon size. EMA AP
provides a standardized way of overcoming such a limitation
Relevant WMI changes are:
1. Support of EMA AP service bit in wmi_service_ready_ext
2. Support of 32-bit ema_params in wmi_bcn_tmpl_cmd_fixed_param
to signal ema_beacon_profile_periodicity, ema_beacon_tmpl_idx,
ema_first_tmpl and ema_last_tmpl to firmware while sending the
beacon template
3. Support of 32-bit WMI resource-config params in INIT cmd
to signal number of max transmitting BSSs and max profile
periodicity
CRs-fixed: 2677701
Change-Id: I6c7b146b5071ad0a1c45fc3ec6fd03ed5dbe8020
Some targets have a single synthesizer and it allows
a single Spectral detector to scan in 160 MHz /165 MHz.
Enable Agile Spectral scanning in 160 MHz / 165 MHz for
such targets. Agile creq2 will be populated in the WMI
command after WMI interface changes are merged.
CRs-Fixed: 2648480
Change-Id: I8522cbeeab29ac41479e3041eea376b081c0758a
The user can add phy logging to be enabled in user space
by using '-ephy' option, which will let the host know about
this corresponding event and will send the event information
to the firmware.
Change-Id: Ibb4888101a80a765d196264403ce7912d1a6e9aa
Add the Host abstractions for the following WMI pdev and vdev parameters
related to Spatial reuse operation.
- WMI_PDEV_PARAM_ENABLE_SRP
- WMI_PDEV_PARAM_ENABLE_SR_PROHIBIT
- WMI_VDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD
- WMI_VDEV_PARAM_SET_CMD_OBSS_PD_PER_AC
CRs-Fixed: 2672093
Change-Id: Id9b03e304676e2896b1d40b0c6319a69be32d7fd
Support synchronization of Tbtt in multi SoC case.
Add WMI to send vdev details of one soc to another.
Info includes beacon interval, bssid and tbtt calculated
in host wrt to other Soc.
Change-Id: I465140268b0fe5e0cb69f636ebeb08dc80667cf7
In extract_roam_scan_ap_stats_tlv, if param buf is null, null
pointer dereference can happen while trying to access
num_roam_ap_info in the error message print.
Return failure if param_buf is NULL
Change-Id: I9f5cbb5534d1ef58bb9406ba8dc0aa68a9f8c194
CRs-Fixed: 2669350
The roam sequence in LFR-3.0 is roam scan start notification
from firmware followed by roam start indication and then
roam synch,roam synch frame events. Roam start is sent
after candidate selection and host driver will disable
queues when roam start is received.
But for emergency roam trigger, firmware sends roam start
indication directly without notifying roam scan start to disable
data path queues immediately after deauth received from the AP.
So roam start is received before roam scan is started at firmware
and before candidate selection is done.
After roam start notification, host sends scan abort for all scan
on vdev by setting scan command request type to
WMI_SCN_STOP_VAP_ALL. This results in roam scan getting aborted at
firmare in emergency deauth roaming case and roaming fails.
Introduce new vdev id value based on which the scan module will
abort only host triggered scans setting the flag
WMI_SCN_STOP_HOST_VAP_ALL in the scan request.
Change-Id: I3a162c55d4a008ff986fd957bed395b39c060bb5
CRs-Fixed: 2636410
This mode is supported through hw_mode_id 7. A special mode for
IPQ8074 platform alone to bring up single pdev alone on 2G mode.
FW would advertise the mode 7 support through the WMI service
ready message and this mode will be the default mode for AP-HK10 alone.
Added a function to update the svc_id mappings for this mode as FW
requires WMI commands to be received through CE 7 for this mode.
Also adjusted the preferred mode precedence to give high precedence
to mode 7.
Change-Id: Id637c59e9528779e38737b7d74b000abf2e9db9d
Currently the driver allows roaming to the BSSID
which it is already connected, which can lead to
many unexpected behaviour, for eg. if the SAP
to which the DUT is connected turns off, then the
DUT would try to roam to other BSSID of the same
SSID, and in case the SAP turns on back in time,
then the DUT would re-associate to the same BSSID.
Now if the subnet may change, and since the DHCP
does not happen again in roaming, it would then
lead to NUD failure.
Fix is to introduce an ini to allow/disallow
roaming to the same BSSID.
Change-Id: I38887bbfb74c4856a06956591be4159734f7fbf0
CRs-Fixed: 2650346
Crash happens if wma_handle->link_stats_results is allocated and
freed by two threads at the same time.
WMI event should be handled uniformly whether it is from htc or qmi
Change-Id: I415fd228d15c1342944e77a74e564fe46dd9a5c5
CRs-Fixed: 2648865
Currently, the expectation from the BLM is to flush
all the BSSIDs which are present in the blacklist
when the user does an explicit on-off, which is
meeting the expectation, but the FW does not flush
this info which leads to async between the two.
Fix is to send zero blacklist BSSID to FW during
Wifi-off so that it also flushes the list.
Change-Id: I0b7c10a31c1e47dc40d0390697efe41232c61cb1
CRs-Fixed: 2654183
Currently there is no provision to configure OCL mode in FW during
driver bootup.
To enable this configuration add a new WMI API wmi_unified_send_ocl_cmd.
Change-Id: Idb936172612ff2ed8ea029d8a363b758625eb97d
CRs-Fixed: 2647631
whenever there is a wmi timeout and recovery is triggered, the
wmi history gives insight into reason for the recovery, hence save
the last 5 commands/events to understand the reason for the hang
recovery.
Change-Id: Ie4e0431a8fa6971e6b25b20a6f267341d3f3f4fd
CRs-Fixed: 2650340
This is part of moving CFR component to hostcmn. Fix compilation
issues in this change.
Change-Id: Ia0a40da1e7e9201ffc5d1700cccea4181b358842
CRs-Fixed: 2637129
Changes to support Beacon protection. Additional key ix 6 and 7
support BIGTK. Update beacon template for Beacon protection support.
CRs-Fixed: 2632290
Change-Id: Ic37d17f5076bb28d2e1f2430da039cc8b9f759b6
Remove redundant data structure at wmi for vdev delete
response extraction, instead use mlme host data structure.
Change-Id: Iedb4280fb47d6567bc4d7b663ecd6af5e769ddfc
CRs-Fixed: 2641197
This will allow dbglog_cmd in non-tlv path
Since the fw_header structure "struct dbglog_config_msg_s" variable
"cfgvalid" increased size by one
Change-Id: I0ea9782895083b88250e9187e95456f57fa948b9
CRs-Fixed: 2626544
In function extract_roam_11kv_stats_tlv, the 11kv channels
tlv is read from the roam_neighbor_report_chan_info tlv if the
neighbor_report_channel_count in roam_neighbor_report_info tlv
is greater than 0. But in some cases, firmware sends value
in the roam_neighbor_report_info->neighbor_report_channel_count
but the roam_neighbor_report_chan_info tlv is not present.
Log error and return if
roam_neighbor_report_info->neighbor_report_channel_count is not
0 and roam_neighbor_report_chan_info tlv is null.
Change-Id: I7fa17d3afaf9d7e6736ad96c60bc5013197480f3
CRs-Fixed: 2644308
To undergo self recovery, the driver uses qdf_trigger_self_recovery to
initiate the sequence. Currently, this framework is valid for only a
single psoc driver.
Extend this framework to include support for multiple psoc driver by
providing the psoc on which the recovery has to be undertaken.
Change-Id: I782b505c03819223a914dabe7673b369aa175b7c
CRs-Fixed: 2617707
Remove redundant data structure at wmi for vdev delete all peer
response extraction, instead use mlme host data structure.
Change-Id: Ice91f55e0bf8a23ea1a639a74f6a8ac3b2779a7b
CRs-Fixed: 2641261
In struct weight_config, "oce_ap_tx_pwr_weightage" added newly.
Station uses "oce_ap_tx_pwr_weightage" as one of the parameter for
selecting AP candidate during initial connection. Host sends
"oce_ap_tx_pwr_weightage" ini value to firmware over WMI command
WMI_ROAM_AP_PROFILE.
Add oce_ap_tx_pwr_weightage in scan object scoring param to calculate
weightage based on AP tx power and select candidate accordingly.
Change-Id: I7f717e9cc398e8b9307f2f464f972b095c06364b
CRs-Fixed: 2647116
Currently QDF_MAX_NUM_CHAN and NUM_CHANNELS aren't aligned, this unalignment
may cause many potential OOB access. So replace QDF_MAX_NUM_CHAN with
NUM_CHANNELS to keep unified.
Change-Id: I7bf7829d776f7caf5b2afbd2c9fd0c20d608e630
CRs-Fixed: 2644073