Diag event processing is stuck due to skb allocation failure.
SKb allocation is done using flag GFP_KERNEL which results
in the kworker thread to sleep and results in wmi workqueue
timer to expire.
Fix is to use GFP_ATOMIC flag for skb allocation for
diag data.
Change-Id: Ifa715df89ae06b17d4dc1506ea4f3c4e2af31f33
CRs-Fixed: 2559679
The function tdls_get_wmi_offchannel_bw, returns the off channel
bandwidth value. For BW80 and BWALL types, there is no break.
This could result in the off_chan_bw value overwritten to
WMI_TDLS_OFFCHAN_20MHZ for BW80 and BWALL.
Fix the missing break statement in function
tdls_get_wmi_offchannel_bw to return proper values for
off_chan_bw.
Change-Id: Ic940c70fd0e555d27e338518301c6ed607310fa4
CRs-Fixed: 2555951
There is ini to enable the feature: Set highest priority to BSS
for connection which comes as bssid_hint from wpa supplicant,
but it is broken.
Change-Id: I795341bd13f59caafaaadf7086f5efc3d47f913c
CRs-Fixed: 2565161
MCL presently sends the vdev delete to firmware via serialization,
with a new requirement vdev delete cannot be sent via serialization.
So, disable the serialization for the vdev before sending the vdev
delete to firmware.
Change-Id: Ieffccaf815eff7627d39b0191a7be121e85965fd
CRs-Fixed: 2566113
Add WMI changes for the API he_muedca_mode
to swicth between manual, host and FW dynamic
muedca param selection.
Change-Id: If43b5da483fe082294bda33f8951187ebc7ea3c7
CRs-Fixed: 2554378
Currently, the variable argument list messages are going through vprintk.
As a result, these messages are appearing only on dmesg, but not on any
external logger. Use QDF logging functions instead to fix this.
CRs-Fixed: 2561051
Change-Id: I9cfc6aaa7b81de4945f7cfd5f7cd15540c3fc1f2
During system suspending, the target might request wakeup early to the
host. The host will wakeup the system directly to abort current suspend
to avoid mismatching PM state between host & target.
Change-Id: Icf6e58ff24cbe072ef56aa22820432efb2ca1932
CRs-Fixed: 2559306
Remove EPPING_CE_FLAGS_POLL from poll flags so that interrupt is
enabled for pine.
Change-Id: I8271ab47e75fbe254e0c5d745f861edbda4b07ce
CRs-fixed: 2507441
Set WMI_PEER_INTER_BSS_PEER peer flag in the fixed param in
WMI_PEER_ASSOC to differentiate between inter-bss and intra-bss peer.
Change-Id: Ic3f54646bfcf988ce53c3d581bacea65070a5036
Add an API wlan_reg_chan_opclass_to_freq, that takes IEEE Channel
number and opclass as input and gives the channel center frequency
as output.
Change-Id: I09733d9dc27beb8f16037aa8653acededf32b715
CRs-Fixed: 2555042
1) Add Spectral scan mode and agile center frequency in WMI
commands to indicate the current mode.
2) Obtain the Agile Spectral capability from the chain mask table.
CRs-Fixed: 2455967
Change-Id: I88ba6fc1ecf9b530a6b516d0c1e4ce88702c6d1f
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged l_flowctl_ops
- register_tx_flow_control
- set_vdev_tx_desc_limit
- set_vdev_os_queue_status
- deregister_tx_flow_control_cb
- flow_control_cb
- get_tx_resource
- ll_set_tx_pause_q_depth
- vdev_flush
- vdev_pause
- vdev_unpause
CRs-Fixed: 2539825
Change-Id: Ic526dea5bb14471cdf67bc72bec061a26d623f79
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged mob_stats_ops
- clear_stats
CRs-Fixed: 2539824
Change-Id: Id424b939c8ef77bd9fae55eaa4c08023efc32093
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged ocb_ops
- set_ocb_chan_info
- get_ocb_chan_info
CRs-Fixed: 2539820
Change-Id: I5be5270c9a3ea6e295a63681cf20cef4465b2101
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged throttle_ops
- throttle_init_period
- throttle_set_level
CRs-Fixed: 2539816
Change-Id: I2e4b3f88f6fdded6306710eb9f0c56f3354428aa
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged delay_ops
- tx_delay
- tx_delay_hist
- tx_packet_count
- tx_set_compute_interval
CRs-Fixed: 2539814
Change-Id: I15f4395f03f7321d047a230b41a5c939b52ce271
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged flowctl_ops
- flow_pool_map_handler
- flow_pool_unmap_handler
- dump_flow_pool_info
- tx_desc_thresh_reached
CRs-Fixed: 2539812
Change-Id: I084d3878df84778622340e87bddf90acd3e669d6
To config BT coex chain mode, add a new QCA sub command
QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE.
This new command has two attributes:
1. QCA_VENDOR_ATTR_COEX_BTC_CHAIN_MODE: u32 attribute. Indicates the
BT coex chain mode, are 32-bit values from enum qca_btc_chain_mode.
2. QCA_VENDOR_ATTR_COEX_BTC_CHAIN_MODE_RESTART: flag attribute.
If set, vdev should be restarted once BT coex chain mode is updated.
Change-Id: I5ae36286a865ca1459550b0a5cf538bf42b8ffa5
CRs-Fixed: 2534770
a. Add new macro HAL_REG_WRITE_CONFIRM to check register writing result,
enable register writing result check when do REO DST ring remap for
IPA.
b. only enable register writing result check when macro
HAL_REGISTER_WRITE_DEBUG is configured.
Change-Id: Ib52e6b0d689ccf714876b3978fa8e356f652d25e
CRs-Fixed: 2557252
As a part of the intermittent regulatory update, implement the following
changes,
- The country Japan should map to MKK17_MKKC regulatory domain.
- For regulatory domain MKK17_MKKC, channel 144 should be disabled by
default.
Change-Id: Ic920456fa885d9ed2b8d0419c6a261707eb10b4d
CRs-Fixed: 2560339
Currently the FW expects the flag of
scan chan cmd to be set if the max BW
is filled for all the channels, which
is not set by driver.
Fix is to set the flag's 2 bit to allow
FW to use the max chanel BW.
Change-Id: Id3ce009fbd3c846713d456436c70b44a44428577
CRs-Fixed: 2550434
Add the support for the ini gTDLSDiscoveryWakeTimeout.
with this ini gTDLSDiscoveryWakeTimeout, FW will be awake
for configured value after sending the discovery request.
Change-Id: I194e5c99972968bbaa46ffb6b8e83604bff15a0a
CRs-Fixed: 2558463
Memory leak fixed in dp_rx_tid_delete_wifi3 in the case
where update cmd send fails. Add the desc to the front of
free desc list and set a flag to ensure that the update
cmd is resent from delete rx_tid callback. In the same
callback ensure that the update cmd desc is sent out first
and then proceed to free other descs by sending out the
flush cache cmd for each of those descs.
If the flush cache cmd is not sent successfully to REO,
add the REO descriptor back to the free desc list and
defer the deletion to the callback function. This update
is made under MCL feature flag REO_DESC_DEFER_FREE.
Add a soc level stat to indicate the reo send cmd failures.
Change-Id: I4e4cf47223d5325a53f2df22571895489d033ba3
CRs-Fixed: 2551028
In function scm_update_6ghz_channel_list, while calling function
wlan_reg_get_band_channel_list change the second argument to BIT of enum,
instead of the enum itself.
Change-Id: I61dc0bf1e52e458cd26bcb278d88f687f92130e9
CRs-Fixed: 2559519
Add API to know whether 6ghz is supported. Also add API to know
whether an operating class is 6ghz operating class.
Change-Id: I75747502c0033e31d119e58a2254b220646bba10
CRs-Fixed: 2556998
Add starting frequency to each operating class. Further add behavior
limit to each operating class, if any. Behaviour limit is used for
80p80, 40 mhz low primary, etc operating class identification. Also
add 6-ghz operating classes 131-135 to the global operating class.
Also add APIs that are based on frequency instead of channel number.
Change-Id: Ic8756aada6c31ed2164f767ff1ae584b8bf055d2
CRs-Fixed: 2533419
4.9 GHz channels cannot be checked using channel number since channel
number can conflict with 2.4 GHz and 6 Ghz channels. So use frequency to
check if channel is 4.9 Ghz.
Change-Id: Ie201d2722edbc7f20ee4faa115910d92afaa3414
CRs-Fixed: 2552810
A component can register callback with regulatory component before channel
list is available.Therefore initialize channel map at time of regulatory
init. Also, call callback when pdev current channel list
is computed, at time of nol channel update.
Change-Id: I551e0ea3391710538f694c50fa7dc6f795f3196c
CRs-Fixed: 2555403
Add support for 6Ghz short ssid and bssid hint mechanism
as part of scan command.
Change-Id: I53a787d2a1406ffd658dc0765bae1e632b870b36
CRs-Fixed: 2559877
Add vendor command QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY_EXT
and attribute qca_wlan_vendor_attr_avoid_frequency_ext to send structured
avoid frequency data.
This new command is alternative to existing command
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY since existing command is
using stream of bytes instead of structured data using vendor attributes.
Change-Id: I20c4836f9dd36f2e11e70a5b892db469a14c3746
CRs-Fixed: 2533156
The datapath vdev handle is not to be used outside
datapath layer. So the cdp api for getting txrx stats
will pass vdev_id instead of the vdev handle.
Pass vdev id instead of vdev handle for the cdp api
used to get txrx stats. Use the vdev_id to retrieve
the corresponding vdev handle in the txrx stats handler.
CRs-Fixed: 2560364
Change-Id: I57b6c6b232d122583e85929fa972d68bc54e84e0
Secondary channels cfreq0 and cfreq1 are not filled in scan entry,
So fill secondary cfreq0 and cfreq1 in scan entry from HT/VHT/HE IEs.
Change-Id: I09ee15a27debe554d8ddbac8e8b3c0315aec2c1a
CRs-Fixed: 2560273
Expecting a fresh skb from reo exception ring with skb->len of 0 but are
unexpectedly receiving one with len greater than 0, so will drop the
packet.
Change-Id: I1079b40dbb3180dd1ccd87f47668f75d10003934
CRs-Fixed: 2556164
Add debugging infrastructure to record every event posted to reo
command ring. The infrastructure maintains the record of the last
64 events posted to the ring.
Change-Id: Id56fc352050eb664a64b0abb767f3b4a6b4c3aa3
CRs-Fixed: 2552822
There is use-after-free of vdev object in wlan_objmgr_vdev_obj_create
wherein vdevid is being accessed to log the create failure after the
vdev is freed.
To resolve the issue, Log the error with vdev_id before freeing the
vdev
Change-Id: Ia509f90cd2219f657ecdecbfb26d397daa3beda6
CRs-Fixed: 2559556
1) Remove the definition of plm_ch_list from
struct plm_req_params and add plm_ch_freq_list
into the same struct given frequencies will be
used directly before passing WMI command to
firmware.
2) Remove redundant channel frequency list from the
following API functions' parameters:
send_plm_start_cmd
wmi_unified_plm_start_cmd
send_plm_start_cmd_tlv
Change-Id: I982412076b422356037d9bbfa2077affd1056189
CRs-Fixed: 2560085
Update the APIs mentioned below, to handle invalid channel number and
freq value of less than or equal to 0:
1) wlan_reg_chan_band_to_freq
2) wlan_reg_freq_to_chan
3) wlan_reg_chan_to_freq
4) wlan_reg_legacy_chan_to_freq
Change-Id: I122658c974c550ff16bcfe1b664799a609c7ffcf
CRs-Fixed: 2550286
A single channel scan request is not validated for NOL and scan start
request is sent directly. This leads to scan violation.
Reject the single channel scan request, if the channel is in NOL by
proceeding to validate the channel before sending scan start.
Change-Id: I128b1bea8de534f08e9d93cb154c2ba5adeba452
CRs-Fixed: 2546693
Currently, the timeout value LOG_DEL_OBJ_DESTROY_ASSERT_DURATION_SEC is
set at 24 seconds. This is not sufficient for various cases where the
delay caused are genuine (FW and HW delays), thus leading to unwarranted
device assert.
Increase the timeout to 32 seconds to mitigate this.
Change-Id: I799b45b0d5f25a9fcf68f88d385994e31c56e939
CRs-Fixed: 2546641
Changes are done to extend vdev based pause/unpause to
peer based pauses/unpause. Added changes to mark peer
as tdls peer and supports TDLS offchan operations which
will be used to pause/unpause the peer queues based on
pause type coming with pause event from FW.
Change-Id: I3976501c318ae5a295e71ed2265db04496974c7a
CRs-Fixed: 2508209
On detecting RADAR, if SAP / Auto GO is operating on DFS channel,
host driver updates Beacon / Probe response template with CSA /
ECSA IE to firmware.
Once the count in CSA IE is reached to 0, host should remove these
IEs from both Beacon / Probe response template and send it to FW.
But with INI gDisableDFSChSwitch=1 (test only), After detecting
RADAR, host driver updates the Beacon and Probe response template
with (E)CSA IEs but doesn't remove these after count reaches to 0.
Updated the code to remove these IEs when INI gDisableDFSChSwitch
is set.
Change-Id: Ie01c80a57191a78d71a8a27f1bead533388a4580
CRs-Fixed: 2555696
NOC error is observed when PCIe accesses IPA GSI RX doorbell
register even before IPA clocks are ON. Currently for SAP vdev,
default REO dest is set to REO2SW4 and with RX hash being
disabled, packets will finally land on REO2SW4 ring. If packets
arrive on REO and are routed to SW4 ring, REO HW will ring
IPA GSI doorbell address and thus the NOC error will occur
because IPA clocks are still OFF which should be set to ON
by WLAN via ipa_wdi_enable_pipes API.
Fix is to set DEST_RING_MAPPING_4 to SW2 for REO dest ctrl
register such that packets arrived before IPA pipes are
enabled will be handled by WLAN host. Note that
DEST_RING_MAPPING_4 will be remapped to SW4 after IPA pipes
are enabled.
Also correctly configure REO dest ctrl register when RX hash
feature is disabled when enabling and disabling IPA
autonomy.
Change-Id: Ifd471bbe2e4a0e66e080d9ae51fb2a3600fd87e6
CRs-Fixed: 2554023
As FW requires, send WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID when there
is no beaconing session in DFS channel for FW which supports dfs offload.
Change-Id: I73b86328be6eb132de70bd10406495fbaefcab67
CRs-Fixed: 2554083