The bcast twt functionality may need to be enabled separately
for requestor and responder roles. Enable such configuration
by looking up WMI service bit support from target:
wmi_service_twt_bcast_req_support
wmi_service_twt_bcast_resp_support
Change-Id: Ibc91173c23cf69f0d248af27d61c77bee3e8f48a
CRs-Fixed: 2828720
Add support to view station's peer RSSI value in auth and assoc request
packet by extracting rssi from probe request and passing it down to
FW in the auth request and assoc request mgmt frames.
Change-Id: I92f714ed815ab8c77f6a6b7df3363dc96f1119bc
CRs-Fixed: 2832982
The regulatory structure which contains country and regulatory domain,
needs to be expanded to include 6Ghz superdomain.
Make changes in the regulatory component to send the 6G super domain
set by the user, to the target.
Change-Id: I84b96cd74012e33d464d98675158c9cd5eabff4e
CRs-Fixed: 2802131
Currently, there is no INI parameter to control NAN feature in 6GHz
frequency band. Because of this, there is no provision to disable the
NAN in 6GHz when there is no requirement.
To address this, add INI parameter to configure NAN feature in 6GHz.
Change-Id: Ibc653d6241d176f7fb75f18d2886175231ad71cc
CRs-Fixed: 2817925
FW diag events will be dropped when number FW diag events pending for
processing is reached to configured RX_DIAG_WQ_MAX_SIZE value. Add a
log when these diag events a getting dropped for debugging purpose.
Change-Id: Ifc303991bdf274fa7426794eaf71517722e9f386
CRs-Fixed: 2824458
Currently, FW diag logs, management frames and stats responses are
processed in worker context. Because of this, there is a possible
out of memory scenario when there are huge number of diag events
waiting in work queue.
To address this, process diag events in a separate worker thread and
set the limit for the number of diag events that can be queued in
work queue.
Change-Id: Ie6e5b905a3b591cf724cd6b024bec0612f9e2e0c
CRs-Fixed: 2818013
Skip wmi sequence check during SOC stop and enable after
initializing wmi handle. It is required to skip sequence check
during soc stop as the endpoint flush is preceding CE flush.
CRs-Fixed: 2813341
Change-Id: Ieb821483e9786471d033773dc2365ab456345f83
Swap each word of beacon and mgmt frame for big endian platform.
This is needed since copy engine swap is enabled but beacon and mgmt frame
needs to be given in same order to FW in order to get transmitted in the
intended network byte order.
Change-Id: I09290f3beef5f0cde33a5543c2778473b35d232c
The event WMI_ROAM_STATS_EVENTID is received after
every roam, once the roam synch complete is sent by the host.
This event contains details regarding the btm response.
This helps to debug the scenario when roam failure happen.
Print the info received related to roam scan type & roam status
info into kmsg.
Change-Id: I7c01d482e3152dfbf500dba97001c328f39564de
CRs-Fixed: 2812515
Below optimizations can help to improve 6g scan,
1. RNR-only: Consider only 6g RNR(PSC and non-PSC) channels found
while scanning 2g and 5g bands, as the 6g APs are likely to
present in RNR channels.
2. Duty cycle: There is a chance to miss the standalone 6g APs as
they don't advertise RNR IEs. So, instead of optimizing all
scan requests, we can consider to do a full scan with duty
cycle(n) where optimization is skipped for every nth full scan.
The full scan requests 1 to n-1 are going to be optimized as
per RNR-only policy.
Driver shall maintain a scan count to track the full scans and
decides whether to optimize the scan (scan count 1 to n-1) or
send it as it is(scan count n) to firmware.
Change-Id: I35b31e900b74dbcd7791f4c2fcfe87b3c629758b
CRs-Fixed: 2806409
Firmware advertises the service capability bit
WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL when it supports per channel
scan config flags. Get this and cache in psoc.
If firmware supports WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL, it uses
the upper-12 bits(bit-20 to bit 32) of channel_list for flags and
lower 20-bits(bit-0 to bit-19) for frequency. If firmware doesn't
support it, then channel_list holds the frequency value only.
Fill the flags and frequency accordingly.
Change-Id: I88a6f29f61e1ecea75bc5574cadcbbfbb7f8b188
CRs-Fixed: 2806405
Add bus related info in hif layer in order to get bus status
when hang issue happened.
Change-Id: If922e0892e0f65de778b9696bbc56fc63c25c169
CRs-Fixed: 2801350
Currently, NDP app info length is not being validated with max NDP
app info length. This may result in buffer oveflow wile accessing
NDP app info received from the firmware.
To address this, validate NDP app info length before accessing NDP
app info
Change-Id: Ifddf1afca7ecf2585e8eb450864d9ba127238f6e
CRs-Fixed: 2795961
Add host data structure and api declarations
corresponding to peer response event and register
WMI_PEER_CREATE_CONF_EVENTID in global wmi event_ids.
Change-Id: I143a4a85d079cc113397348512b0d86f500cae5b
CRs-Fixed: 2797197
Add b_twt_enable variable to enable/disable broadcast TWT in
wmi_twt_enable_param structure and use FW macro in WMI layer
to enable/disable BCAST_TWT in TWT_ENABLE cmd.
Change-Id: I892e922dda14d16019f3f433f885d1eb5b7169fc
CRs-Fixed: 2793360
For QMI events, recevid QMI event length is used to allocate wmi buffer
using wmi_buf_alloc. The received QMI event length includes WMI head
room and wmi_buf_alloc also try to reserve WMI head room again.
Because of this, WMI buffer allocation is exceeding max WMI msg length.
To resolve this, use length of the received actual WMI msg to allocate
WMI event buffer using wmi_buf_alloc.
Change-Id: Icd259988c4b1091580a35aaf2c3fabc606e0f2a9
CRs-Fixed: 2786326
Many firmware do not send wmi_ext_service bitmap in wmi_ready event
so the ext_service_bitmap will be empty in such cases. So the condition
in the is_service_enabled_tlv to check for wmi_ext_service bitmap
and return false is wrong as wmi_ext_service bitmap support is not
necessity. This condition leads to incorrect behavior in cases when
firmware do not support wmi_ext_service bitmap as is_service_enabled_tlv
returns false for every service.
Fix the above failure by addition of condition check for wmi_ext_service
bitmap only when wmi_ext2_service bitmap is supported by firmware.
Change-Id: I94d0b65e640d44f41d14de889955a6d6330e88b2
CRs-Fixed: 2786491
Reset the WMI sequence counter after FW recovery to avoid
false assert due to CE pending packets freed in htc layer
instead of WMI completion handler.
CRs-Fixed: 2787424
Change-Id: I109ff56655e5fb428aca637e6420efed5943b3f7
As part of removing gOclCfg ini, remove code used for it that is
no longer needed.
Change-Id: I00c32988cb3b852381be9810377aeefdd22454db
CRs-Fixed: 2791469
log level for some frequent prints is set to info those
logs would be present in dmesg as well as driver logs
and System performance may get affected due to excessive
logging.
Avoid redundant logs which may affect system performance
and change default log level to debug.
Change-Id: Ic8669c2d7158200e5881bc1ffd15079c8d24af68
CRs-Fixed: 2794518
Add WMI command buffer address information(DMA/Physical addr) to
the WMI TX completion logging. This will help in debugging issues
when HW DMAs copies data from a different location than the one
configured.
Change-Id: I60586b865a97e7ff88e48606806ec151321ff0aa
CRs-Fixed: 2789492
Send unified ll_stats and get_stats request over qmi based on INI
configuration.
Change-Id: Icc43352c1ba19696148619100ee27fda4d5ffb41
CRs-Fixed: 2791043
Currently driver can handle only one radio stats event,
if the size of radio event exceeds more than the size which
can be accommodated in single WMI event in that case FW needs
to send multiple radio stats events.
Add support in host to send WMI capability to indicate FW
that host supports the multiple radio events.
Change-Id: Ifb89419715c87959095c0c88a23c8dd650d456e7
CRs-Fixed: 2783251
Log WMI work queue call stack when WD timer expires to assist
in debugging on non slub debug enabled builds.
Change-Id: Id3dd575700ca586b0738a88ca2af88a757238d1b
CRs-Fixed: 2789114
Currently ll_stats and get_station requests are sent back to back
from user space. The firmware time difference between these two commands
results in extra sleep and wakeup for Q6.
To avoid this extra Q6 sleep and wake, send both requests in a single
command from the driver if the firmware supports that operation. Cache
the get_station results in the driver until user space request reach
to the driver.
Change-Id: I5e6f42f9e3836ef4bf61d3d9220f8cedb775cbd5
CRs-Fixed: 2778479
Add peer assoc parameter 'peer_bss_max_idle_option' to
update the peer's Max BSS Idle option cap to FW.
Change-Id: If7fd4369bade8b289655c491849562c2357de877
CRs-fixed: 2781050
Host add support to send WFA test configs to FW using WMI command
i.e. WMI_WFA_CONFIG_CMDID.
Change-Id: Id9bdec16c69a8c16cb4ce1fac87688023c768ee6
CRs-Fixed: 2772004
Firmware advertizes the capability to allocate CMEM memory for
FST via a WMI service flag; adding the support for the same.
Change-Id: Ic33bf0584f5ce4880fdfe5abe8fd4cf2a653a06e
CRs-Fixed: 2771256
Set "action" field when send WMI_THERMAL_MGMT_CMDID
to firmware. Then driver can configure the target management action
based on different customer requirement.
Change-Id: I3da5eea0d756444ede816be5cb74407863d63781
CRs-Fixed: 2767144
This records all the WMI events and commands, for all
PDEVs. Set WMI_EXT_DBG flag to enable this feature. Refer
Original Change-Id: I18e46f683e35912cad717ca3b9cc3d1885315362
Change-Id: I4c9bdfe6fdd195656ca0c01ca400eba595be24a3
CRs-Fixed: 2762266