Extract btm response and initial roaming stats coming
from FW through WMI_ROAM_STATS_EVENTID event as
wmi_roam_msg_info_tlv_param.
Change-Id: I9a9b768d09a45ba70066cacb4aa420a90a39a76d
CRs-Fixed: 2826323
Currently, there are separate list for 2g/5g and 6g reg rules. Only one
list is sent north from pdev, so append the corresponding rules to the
existing list in the pdev only.
Change-Id: I28e68f345ae6faad3ac2d929dac3922e9389d53e
CRs-fixed: 2860702
Add SAP and P2P GO d3wow feature support config to send it down
to FW during WMI INIT such that FW is aware when SAP and GO with
client connected mode d3 wow feature is enabled.
Change-Id: I04b398f71727112ce5c536bbf2bfcfd4eefe2752
CRs-Fixed: 2866604
Add a pci gen switch flag in the wmi resource config to send
to FW in the init command.
Change-Id: If3a50d80103387a8f1f77ecb43a16c7b41ce5a11
CRs-Fixed: 2865866
1 Add protection for wrap around of jiffies.
2 fix assign issue from uint32_t to uint64_t.
Change-Id: Idbd3604d0cb985d08aa82e3b1d7f32fa6be8c3ef
CRs-Fixed: 2864737
When RTPM suspended, wlan_hdd_cfg80211_stats_ext_request and
dp_peer_rxtid_stats are called to get tx rx status, dp and ring
spin_lock_bh is held, if RTPM suspended, printk happens in
hif_pm_runtime_get which consumes 1 ms. In dp_peer_rxtid_stats,
REO cmd CMD_GET_QUEUE_STATS and CMD_FLUSH_CACHE are called for each of
17 tid, so total 34 printk delayed 34 ms.
To fix it, disable prink in hif_pm_runtime_get when called in
dp_peer_rxtid_stats.
Change-Id: If043d6772e337e42a5478de17480253f45d779c6
CRs-Fixed: 2858534
Add support to process RX offload packets in packet capture mode.
To distinguish rx offload packets from normal rx packets,
DP_PEER_METADATA_OFFLOAD bit is set in peer metadata, based on value
of this bit rx packet is delivered to stack or packet capture
component.
Change-Id: Ice656a0bc14efd0382c4949d695daa8e926ce41e
CRs-Fixed: 2856792
When parsing FILS Indication IE, the data pointer is not
validated while moving the pointer which may cause
out of bound issue.
Validate data pointer before moving pointer.
Change-Id: Ib20f78fe58d7a4c8f9245e6b8d28212499cc6f50
CRs-Fixed: 2842475
Firmware advertises service capability WAPI_CONCURRENCY_SUPPORTED
if it supports other security modes when WAPI is active. Get the
same from service capabilities to decide whether to accept a
new concurrent connection or not.
Change-Id: I718503e52be2dda8ebd440f5a68b496d846b6ffc
CRs-Fixed: 2858770
DBR srng details are not sent properly to F.W via WMI_DMA_CFG_REQ
msg, this leads to F.W accessing undefined address.
Fix this by passing DBR srng details properly.
Change-Id: I15b393ad809dc0757e3637558f0bddd05530149d
CRs-Fixed: 2861621
For QMI events qdf_nbuf_set_pktlen is invoked twice. Once in
wmi_buf_alloc and again in __wmi_process_qmi_fw_event. Remove
this duplicate set packet length.
Change-Id: I06c7e077fb1d554215a5ebc52f9d69a333a25a84
CRs-Fixed: 2859036
Suspend type log is very critical for debugging wow related
issues, and hence log this using wmi_info level.
Change-Id: Icac658bdb10682bc02dd5aa7ad37d0a74d4a2bc0
CRs-Fixed: 2860518
Firmware has added support for control path stats
infrastructure. Add wmi support to prepare wmi tlv buffer
and send WMI_REQUEST_CTRL_PATH_STATS_CMDID. In the response
path, add support to handle WMI_CTRL_PATH_STATS_EVENTID and
extract the tlv.
Change-Id: I930a44187af29adfda8acd90d0e41cff5fc94603
CRs-Fixed: 2856370
Add common target_if event handler for wmi_pdev_cp_fwstats_eventid
from the control path stats infrastructure of firmware and register
with the wmi.
CRs-Fixed: 2856380
Change-Id: Ia16e34c4dc1e12b817258c5e6d617a8cb560cf5b
Add support in cp stats component for the control path
stats infrastructure provided by firmware via
WMI_REQUEST_CTRL_PATH_STATS_CMDID and
WMI_CTRL_PATH_STATS_EVENTID. Also add support for TWT
type operations over this infrastructure.
Change-Id: I154babff396ac39c11c7548ad91cc4dc0d0c52af
CRs-Fixed: 2847603
In the API reg_find_txpower_from_6g_list, if the frequency is not found,
txpower is not touched and could cause undefined behavior. Initialize
it to 0.
Change-Id: Ic65c678144bf88959407ef28ab0d401278fa4738
CRs-fixed: 2855200
Per channel maximum regulatory bandwidth depends on country
bandwidth settings and the reg-domain bandwidth settings.
Therefore, take channel bandwidth into account in channel
bonding calculations. Here including condition to check for
80p80 mode.
CRs-Fixed: 2781127
Change-Id: I5f9a5960f4df8170d39fa8d6ea195700db741f51
Initially, Host updates the AKM only after the EAPOL
handshake. Due to this, Enterprise auth is not detected
for initial connection.
Add AKM in peer assoc command(WMI_PEER_ASSOC_COMMAND)
to the firmware. In firmware, this will help to detect
Enterprise auth as part of connection and prioritize
the WLAN connection over BT traffic accordingly.
Change-Id: I6463dacbba098c76e6c3b7f4722915797bee1a99
CRs-Fixed: 2848392
Currently on vdev start WMI_CHAN_FLAG_DFS flag is being set
irrespective of the device mode which may lead to unexpected
behavior in FW.
To address above issue set WMI_CHAN_FLAG_DFS flag in vdev
start only if vdev is operating in ap mode.
Change-Id: I96b291ad137b96e40c6620c86f50860670595ae0
CRs-Fixed: 2808013
Currently if the driver is in runtime suspend/suspending
state, any packet transmission will request for resume
via hif_pm_runtime_get.
Unfortunately there is a logging in the above API which
will lead to more time consumption in the NET_TX softirq
context. This can lead to other delay in processing other
softirqs in the system.
Fix this by skipping the logging in the packet transmission
path.
Change-Id: Icc9f5b67794f7666243eb059f2e07a06a987002e
CRs-Fixed: 2844126
DP references of the peer will be removed once we receive PEER
unmap message from the firmware. If the firmware has failed to
send the peer unmap message (due to an assert in FW), then the
peer entries will remain the inactive peer list and will trigger
a explicit QDF_BUG() during driver unload.
Force clean the inactive peer/vdev list during driver unload in such
cases.
Change-Id: Ib8a5f8179ce51378a825034e411f89ff024017e1
CRs-Fixed: 2847742
Expose the API to send WMI_SET_TPC_POWER_CMDID within the target_if
module. Register the callback under tx_ops.
Change-Id: I1d075df717cff997e7ac85884fe587ed298cbb28
CRs-fixed: 2849695
Add new API to handle the logic of sending the WMI command,
WMI_SET_TPC_POWER_CMDID. Create the struct to hold this new
transmit power information.
Change-Id: Ibc7c6109176577f56d149baf87022de557e84445
CRs-fixed: 2841781
Firmware has added TWT nudge, All TWT and TWT stats support.
This feature capability is advertised by firmware in service
ready. Add support fetch and store this information.
Change-Id: Ife3f9e4fbebd5e971c512115d924535a84bf82e6
CRs-Fixed: 2854129
In nudge response, FW sends wake TSF value. Implement changes
to handle wake TSF values.
Change-Id: I941f1dbab3ba83bba1f0b8e03b83d1b81365c7dd
CRs-Fixed: 2847181
The response for the respective TWT operations can either be synchronous
or asynchronous (wherever specified). If synchronous, the response to
this operation is obtained in the corresponding vendor command reply to
the user space. For asynchronous case, the response is obtained as an
event with the same operation type.
Drivers shall support either of these modes but not both simultaneously.
The support for asynchronous mode is advertised through the new flag
QCA_WLAN_VENDOR_FEATURE_TWT_ASYNC_SUPPORT. If the driver does not
include this flag, it shall support synchronous mode.
Change-Id: I359e12c5147b0115158d03a7a08d74beca78455c
CRs-Fixed: 2842872
Add support for WMI_TWT_NUDGE_DIALOG_CMDID and
WMI_TWT_NUDGE_DIALOG_COMPLETE_EVENTID.
Change-Id: I9d4bf1061f6f08479967619ce50d2756c062f55f
CRs-Fixed: 2825138
Define the following additional TWT operations:
QCA_WLAN_TWT_GET_STATS, QCA_WLAN_TWT_CLEAR_STATS,
QCA_WLAN_TWT_GET_CAPABILITIES, QCA_WLAN_TWT_SETUP_READY_NOTIFY.
Also define new attributes to qca_wlan_vendor_attr_twt_setup
and qca_wlan_vendor_attr_twt_nudge.
Change-Id: I687fd215c13aa12741d8ba7af23507f930d0ec81
CRs-Fixed: 2842072
Issue1: Driver RTPM state is ON/NONE, Kernel state is RESUMING.
cdp_runtime_resume is already complete,
hif_pm_runtime_get return -E_INPROGRESS,
dp_tx_hw_enqueue will set the flush event,
but cdp_runtime_resume is already done,
this flush event will be handled only on next pkt tx.
Issue2: Driver RTPM state: Resuming
hif_pm_runtime_get returns -EBUSY,
dp_tx_hw_enqueue is interrupted by any IRQ,
cdp_runtime_resume is completed,
dp_tx_hw_enqueue will set the flush event,
This flush event will be handled only on next pkt tx.
Fix:
Introduce a link_state_up atomic variable in hif to track the link state
change by pld_cb.
Set atomic variable link_state_up=1 in pmo_core_psoc_bus_runtime_resume
just after pld_cb. pld_cb brings the PCIe bus out of suspend state.
Set atomic variable link_state_up=0 in pmo_core_psoc_bus_runtime_suspend
just before pld_cb. pld_cb puts the PCIe bus into suspend state.
Introduce dp_runtime_get and dp_runtime_put.
dp_runtime_get get refcount with increment of an atomic variable.
dp_runtime_put return refcount with decrement of this atomic variable.
If hif_pm_runtime_get returns -EBUSY or -EINPROGRESS,
take the dp runtime refcount using dp_runtime_get,
check if the link state is up, write TX ring HP,
return the dp runtime refcount using dp_runtime_put.
cdp_runtime_suspend should reject the suspend, if dp_runtime_get is non
zero.
cdp_runtime_resume should wait until dp_runtime_get becomes zero or time
out, then flush pending tx for runtime suspend.
Change-Id: I5b97d50cba710082f117f3845f7830712b86cda7
CRs-Fixed: 2844888
Currently there is no support to register both common cp stats
ops and MC specific cp stats ops. Add support to register common
ops and MC/WIN specific cp stats ops.
Change-Id: Ibaee9da8b1ce3185161821f2be751d8bb4bf10e2
CRs-Fixed: 2851235
Add support to configure minimum and maximum wake duration
values, minimum and maximum wake interval values for TWT setup.
Change-Id: I69c328815be511833abce0fcd18649e136027f53
CRs-Fixed: 2827115
When sorting channels by weight, a lot of the channels can be disabled,
depending on the regulatory domain. Getting the information on disabled
channels can cause excessive error logs. Rate limit these error logs.
Change-Id: Ife70b9578bb5ce61013392d92a5dd4c4e160075d
CRs-fixed: 2852753
Add API to check if channel frequency is PSD power or not.
Add API to get tx power for client and server at different
power levels.
Add API to get EIRP power level from the reg rules.
Change-Id: Ifac29775f4f8a7f58b34abd6d395a0e74b10b7f9
CRs-fixed: 2838079
Add functions to handle the new WMI event,
WMI_REG_CHAN_LIST_CC_EXT_EVENTID. This includes processing new
data regarding standard power, low power indoor, and very low
power Clients and APs.
Process the regulatory rules from FW to populate the new 6G
channel lists. Fill in the current channel list with the
correct 6G master channel list. Copy other information from
the event into the regulatory private objects as needed.
Change-Id: I0c2001d809e4f0b292bac866780faa2850b1a8b1
CRs-fixed: 2799403
Register the event handler for new WMI event,
WMI_REG_CHAN_LIST_CC_EXT_EVENTID. Extract the parameters to be used when
building the channel lists in the regulatory component. Update the reg
rule parsing function to include the new PSD flag and PSD power levels.
Change-Id: I0f5a747f98e43ac3d43b4aa1fb5958f0eac69a9d
CRs-fixed: 2843793
Add new master channel lists for standard power, low power indoor, and
very low power clients and APs. Add new lists for default and
subordinate clients.
There is a total of 9 new channel lists. 3 of the lists are for each of
the AP power levels. The other 6 are for each power level of default
Client and subordinate Client.
Ensure the new channel lists hold both EIRP and PSD information. The
PSD power information will apply mainly to Indoor AP/Client mode.
Change-Id: Icb038329d55e221aa0dded1469de68c45bb4f3f4
CRs-fixed: 2843791
Add a boolean is_chan_hop_blocked in struct regulatory_channel to check
if a channel is blocked for ACS hopping, when the noise detection param
on that particular channel is above the threshold.
Change-Id: Id1c73f1b153d2064eaf3a72a21d14a6f63ad0de4
CRs-Fixed: 2837859
Write disptacher and core functions to set and get the following
6g ap and client power type parameters in regulatory:
1) current 6G AP power type - LPI/SP/VLPI.
2) current 6G client mobility type - Default/Subordinate.
3) RNR Usable.
4) Unspecified AP usable.
Change-Id: I926642d1a3e7d9049772c5c4d2aad7cd472f8bd0
CRs-Fixed: 2825676
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
Add connect/disconnect log ring buffer to existing ROAM
debug functionality to record OS IF layer event.
Change-Id: Ifcbcd9a38ead27d60757983a0f56a37ae5d8af81
CRs-Fixed: 2852405
rx_mpdu_missed statistics used by CNE records instances
of BA hole happens, not duplicated frames instances.
Fix this field with correct value to avoid incorrect
VOLTE switching.
Change-Id: I815b9a4caeb6eedf36be66f8650ca98d00542c60
CRs-Fixed: 2848460
CONFIG_PCI_MSM will not be defined if MSM PCI driver is compiled
as a module, so if wlan driver invoke hif_pci_prevent_linkdown to
prevent linkdown, pld_wlan_pm_control() actually is not invoked,
result in Noc error due to inactive PCIe link.
PLD driver already abstract MSM specific feature, remove CONFIG_PCI_MSM
complilation flag in wlan driver.
Change-Id: Iaaf929a74b44ac94370f1d98b7aef7aaec308e0f
CRs-Fixed: 2850839
In SAP on non DFS channel, there are double votes for PCIe
link down and later if there is PCIe link up, this counter
sends D3 WoW case instead of D0 WoW case to firmware.
To fix this, In vdev restart case, if SAP is on non DFS
channel and previously it was on DFS channel then vote
for PCIe link down and if SAP is on DFS channel and
previously it was on non DFS channel then vote for PCIe
link up. Also, the PCIe link down should be needed if
vdev stop response is for DFS channel.
Change-Id: I817ffceb482091b8d9c5441d80abb43b7d0f866b
CRs-Fixed: 2849706