Add qdf wrapper API for hash_for_each_safe which iterates over a
hashtable safe against removal of hash entry
Change-Id: I89d8b6520a4bee583d44a771b4359ed287d0c2fa
CRs-Fixed: 2528484
Add debug code to print the vdev, pdev and psoc info before getting
destroyed. This will help in cases where we dont get crash dumps
for panics and we need to look up few important data, which
can be done by enable object manager debug.
Change-Id: Iab1895d348ccf225ee6390abef26b76936fbe560
CRs-Fixed: 2528290
Currently the interrupt mode is set as a part of
interrupt attach. The interrupt mode is needed for
pdev attach and hence it is decoupled from the interrupt
attach, setting the interrupt mode during soc attach.
Set the correct interrupt mode during soc attach.
CRs-Fixed: 2500015
Change-Id: I68496bed68cac5a2a2bd19adf2377bae7eb8783c
Currently after runtime resume all SW2TCL data and reo cmd
srng rings hp and tp value are flushed. In case of IPA
offload case SW2TCL3 righ hp value will be updated by IPA
and not by host. In case of runtime pm enable host is
setting the value to zero as part of runtime resume which
results in incorrect hp value of SW2TCL3. As part of this
change set flush event for rings which are accessed by host
during link down state and after runtime resume flush the
rings for which flush event is set.
Change-Id: I5c9afa708277cf3a6e6d5ef99447bc21f88cfdcf
CRs-Fixed: 2514621
Based on the ini "ignore_fw_reg_offload_ind" ignore regulatory
offload indicatin from fw.
Change-Id: Ia95b5bdda6ee1fcc2b07f28f997a7c80afcbc32b
CRs-Fixed: 2533001
Few phymode are missing from enum wlan_phymode and many are not
valid phymode, e.g for 5ghz 40minus and 40plus are not valid.
So add the missing enums and remove invalid enums from enum
wlan_phymode.
Change-Id: Id6a1fb4cf0d629cc410bd262a048b5050d05ed5d
CRs-fixed: 2505422
The macros attributing the Tx encap type have been erroneously
named as TX decap.
Rename all occurences of TX_DECAP_* to TX_ENCAP_*. Also add support
to send WMI vdev params for tx_encap and rx_decap values.
CRs-Fixed: 2533710
Change-Id: Id6ef2955868010b264e76d2a416d22d30d2acedc
Enable data field in hif_ce_desc_event structure
and copy the buffer posted to CE SRC ring. This is
done to validate the contents of the buffer.
Change-Id: I6745422f6c3a8ac013bb35032056f041d2216d89
CRs-Fixed: 2540707
In cases where one of the interfaces is a P2P-GO and
IPA has been enabled, the P2P connection establishment
fails.
When IPA is enabled, the REO destination is changed to REO4
which can be reaped only by IPA module. But in case of P2P-GO
interface in operation, this change in configuration causes
all the RX packets to be stalled due to incorrect REO configuration.
Hence, to avoid this case, do not change the REO dest config
when the interface subtype is P2P.
CRs-Fixed: 2498315
Change-Id: Ie9f01c3b353c7c0503e1541d6c79c2f47c9782f3
Refine dp_vdev_flush_peers,
a. wrap ast entry flushing into dp_peer_flush_ast_entry()
b. if unmap_only is true, logic keep same.
c. if unmap_only is false, also use __dp_peer_find_by_id
instead of dp_peer_find_by_id to get peer object.
only if peer flag valid is true, then call dp_peer_delete_wifi3
to avoid peer member invalid accessing.
Change-Id: I7a6d53e124ff369305b91050731901ff0a43d6af
CRs-Fixed: 2534274
As part of the ETSI preCAC feature, every 20MHz channel that is CACed
and not in NOL is maintained in a list which is then checked during every
channel switch for CAC reuse (avoiding CAC).
With the introduction of preCAC list(Binary Search Forest) for
20, 40 and 80MHz channels which also includes the current channel CAC
information, the ETSI preCAC list has become redundant.
Remove all APIs and changes that support the redundant ETSI preCAC list.
Change-Id: Ie71e2fda3f6f62ec6ea312c3bf0bdfc53a7df003
CRs-Fixed: 2484864
Use macro PKTLOG_TYPE_RX_STATBUF for indicating
received Rx Full pktlog messages.
Change-Id: Ia7e69bc385fd7b1367c191f657ace8327388cf03
CRs-Fixed: 2529520
Sequence number should be obtained from user_compln_ack_ba_stats_tlv
in HTT PPDU stats messages since enq_bitmap TLVs are not sent for
non-QOS frames.
Change-Id: I2d5ddb8c7397953081df94f77f0bd8a30a581b11
vdev_mgr_start_param_update will handle STA and
AP mode in vdev start. So, we need to check and
only set DFS AP's channel to Radar component by
tgt_dfs_set_current_channel. Thist will avoid
seting incorrect channel to Radar component
in STA+AP(DFS) or AP(2.4G)+AP(5G DFS) concurrency
case.
Change-Id: If60e1630c5288884d01242a20d68b2cd315942ca
CRs-Fixed: 2531766
Default pdev id is redundant now. Therefore remove def_pdev_id from
the regulatory component.
Change-Id: I383f904e373df0e7d02fb0e2d00141fcacebe82a
CRs-Fixed: 2505161
--Treat SRD channels as PASSIVE if INI enable_srd_chan_in_master_mode
is 0. Add API reg_modify_chan_list_for_srd_channels for this purpose.
Mark channels as PASSIVE in both driver and kernel. Do not add this API
for WIN use-cases.
--Make default value of enable_srd_chan_in_master_mode as 1. WIN needs
default value as 1. MCC can over-ride with INI.
--When pdev is added, compute pdev current channel list only after pdev
private object is attached to the pdev. Computation of current channel
list accesses the private object via the pdev.
--When a pdev is added and deleted, set and reset def_pdev_id
correctly. Currently reset is not being done when pdev is destroyed.
--When programming current country to the firmware, do not use
def_pdev_id, since def_pdev_id can be -1. Ask for response for all phys.
Program pending reply for every phy, since the reg-domain for all phys
need to be re-programmed.
--Remove reg_reset_reg_rules when pdev is processed, after addition of
master channel list. The psoc copy of master reg rules need not be
cleaned up.
Change-Id: I5eaa457b8819d7a22d2e592d1b79fff15b364f40
CRs-Fixed: 2491045
Ensure that at a time only one Agile Spectral scan is
happening across all the 5G pdevs in SBS mode.
CRs-Fixed: 2517522
Change-Id: If31a4451b82ce1d7d8a46bc604ca91bf4b6dac29
If more than MAX_NUM_CHAN_PER_WMI_CMD are present, wmi buffer size can
exceed the maximum allocated buffer size. So iterate over the channel
list, and send multiple messages till channel list is empty. Also check
if 6 ghz channel is a PSC channel and mark channel flag accordingly.
Change-Id: I977a2d220c750cec1f261377b3838360bd8c0df3
CRs-Fixed: 2522763
Rectify three issues in the Regulatory APIs as follows:
1) Within the API reg_update_nol_ch_for_freq, replace the call of
reg_get_chan_enum with reg_get_chan_enum_for_freq, as
reg_update_nol_ch_for_freq is a frequency based API.
2) Change the return type of wlan_reg_get_channel_reg_power_for_freq
to uint8_t and change the datatype of its parameter, freq, from uint32_t
to uint16_t.
3) Place the API wlan_reg_chan_to_freq, under the macro
CONFIG_CHAN_NUM_API, as it uses IEEE channel number as a parameter.
Change-Id: I1bc1d767d34cd97ca971bd7e12b685a55fb9a494
CRs-Fixed: 2531183
Add new APIs that return minimum and maximum channel frequency,
supported by regulatory domain.
Change-Id: I878bd6f4ff8fdbe28661769033c37a000aebf582
CRs-Fixed: 2538143
STA is unable to do roam from one AP to another AP due
to not handiling FT action frames that are received from
the STA.
So, Added changes to handle FT action frames without
dropping the FT action frames in driver.
Change-Id: I6461fe84ffb29b33636b6831e6ed046fae22e19e
With the change I7d4d4fdf4a6defac8fc436b63495b51c272669af the CAC is
restarted for both VAP down-up case and VAP restart case in the same
channel. For the VAP restart in the same channel CAC should not be
restarted.
Restarting CAC for VAP down-up is handled in
I456bbee34a722f3d18c781cbcc87585cbeee5d54.
Revert I7d4d4fdf4a6defac8fc436b63495b51c272669af without merge
conflicts.
Change-Id: Icbde60be9515a7a31e06ba74158ca2126f58520c
CRs-Fixed: 2539623
Some chip sets don't have the capability to run agile Spectral with
160/80p80 modes. For this add separate agile Spectral capability for
160 MHz, 80p80 and non 160 MHz modes.
CRs-Fixed: 2536823
Change-Id: Ic5b2335e3183688b7a007cf0380f0c3644e50219
Make band related changes given below:
1. Add the API wlan_reg_chan_band_to_freq, that takes IEEE Channel Number
and bands as input and returns the Channel center frequency.
2. Add the API wlan_reg_freq_to_band, that takes frequency as input and
returns the corresponding band.
Change-Id: I8554f6a9c24e7508e8a551c5f318b643741f13c8
CRs-Fixed: 2523257
Add conversion from frequency to channel, for frequency falling
within two consecutive supported channels. Use the master
channel list of the pdev for the same. Add new API
wlan_reg_legacy_chan_to_freq to convert legacy 2G and 5G channel
number to frequency. Existing API wlan_reg_chan_to_freq would be
slowly deprecated.
Change-Id: Id7e1939b9e05b78c17751d13bb0b02a891f999ad
CRs-Fixed: 2526886
This reverts commit I010c9295fd6ca42a950f84f0d7a19b00d8b0c0da due to
crash caused by excessive logging.
Change-Id: I38701eb5be9a25f38e4cb5738824b635a2b0442c
CRs-Fixed: 2535471
Validate user provided agile center frequency and throw
an error if it is invalid.
CRs-Fixed: 2529280
Change-Id: Ibb43dda98d29d8bc8360d1a204c67b64ca987ca6
TLV and non-TLV definitions of vdev mgr ops are in component_dev,
they are carved out to a separate file in cmn_dev/wmi for adapting
target_if/vdev mgr component, they are made part of same file
which conflicts tlv design. Create separate file for tlv ops
to definitions and enable respective pointers.
Change-Id: I1e67c7c59adee61b4eb46acb8f51a7a6c385f056
CRs-Fixed: 2517009
Exceeded 500 logs per second in target_if_get_dbr_data().
Move the info level logs to debug level in direct buf rx as
heavy logging is triggering an assert.
Change-Id: I725bd50f83dc65f4e5378c4a882829a0ad1b7893
CRs-Fixed: 2534298
WAR for IPA_OFFLOAD case. In IPA_OFFLOAD case, host provides buffers in
the WBM2SW release ring designated for IPA for TX. So this ring is used
to release TX completions into, by WBM, and also by IPA to pick up
buffers from, for TX.
In some cases, its observed that when WBM tries to release a buffer
into this ring, however the ring is full. This causes back pressure,
resulting in a FW crash.
By leaving some entries with no buffers attached, WBM will be able to
write to the ring, and from dumps we can figure out the buffer which is
causing this issue.
Change-Id: Ia0450d36dec643f2631fea13cb0b8facba7425b8
CRs-Fixed: 2535170
Currently if tx flow control is enabled allocated tx desc pools
are deleted only in tx flow pool unmap handler from control path.
So cases in which control path unable to handle pool unmap handler
leads to tx desc pool resources memory leak. To handle this free
allocated all tx desc pool resources as part of dp flow control
deinit which is done as part of soc tx detach.
Change-Id: Ib750c2ce39baf7fc5aae5f0c8cb62bc848d2f864
CRs-Fixed: 2511515
Currently as part of rx frag packets handling, nbuf is unmapped,
but the corresponding rx desc unmapped bit is not set. The fragment
is stored until all the frags are received. Only after all the frags
are received defrag packet is reinjected back to reo. While in between
if driver is unloaded, as part of unload rx desc buffer pool is freed.
During buffer free corresponding rx desc unmapped bit is checked and
if the bit is not set buffer is unampped and then freed. This leads
of double unmap in case of the stored frag list buffers. As part of
this change set the unmapped bit during nbuf unmap.
Change-Id: I24cf1e88f3102bc985f95d2dc325509308a7bef9
CRs-Fixed: 2532302
Currently in the scan path frequencies received
in the scan request are getting converted to channel
number and again converted to frequncies.
For 6GHz support in the scan path do not convert
frequency to channel number, instead use frequncies
received in scan request to send the scan command to
FW, remove the dummy conversion from chan to freq and
freq to chan.
Change-Id: Ieab7dded0678fac54796bba3b1b210c910f6173e
CRs-fixed: 2534897
Enable configurable dfs_pri_multiplier. The ETSI typ2 type3 radar
detection ratio is lower than expected(>80%) while channel loading is
high(>30%). The host improvement for this are:
1. Add configurable dfs_pri_multiplier, controlled by
DFS_PRI_MULTIPLIER. Default value 2, min 1, max 10.
2. Lower adrastea ETSI type 2/3/4 radar filter rssi_threshold,
controlled by DFS_OVERRIDE_RF_THRESHOLD, dfs log shows that
QCS405 target report RSSI range [18, 45] while radar power
is 3 dbm. By using default rssi_threshold 24 will reject
many radar pulses, which leads to low detection ratio.
3. Calculate deltapri for each searchpri based on dfs_pri_multiplier
in dfs_count_the_other_delay_elements(), check deltapri
between [1, dfs_pri_multiplier] * refpri and searchpri, if
the primargin is desired, mark it as matched pulse.
4. Pick lowpri as refpri for the radar filter with
rf_ignore_pri_window equals to 0 while DFS_PRI_MULTIPLIER is
enabled. Observed original findref logic has some problems
which selects refpri is bigger than lowpri, which leads to
the lowpri pulses pri_match are set to 0, and in this case,
radar was not detected. Example for the issue, assume
rf->rf_pulseid 34 (ETSI type 2) has 7 pulses with pri:
1489, 2978, 2978, 2978, 1489, 2978, 1489 us in this case,
highscore is 4 (2978), scoreindex is 5, refpri is 2978, which
leads to: index 0, 4, 6 pulses with pri_match 0 in
dfs_count_the_other_delay_elements(). The fix is to select
lowpri as refpri(1489 in this case).
Change-Id: I1f3ca3298c9ab1f1e2651ad6b4a0a4810f83f8a1
CRs-Fixed: 2531811
Do not log when we succeed to find the vdev for vdev_id.
Instead log only on failure.
Change-Id: I292839af763a77c2c5e75124b24accbee222d58f
CRs-Fixed: 2501696
Add runtime pm apis to record last busy mark set by data path
during dp rx process.
Currently for mcl in some scenerios runtime sync suspend is issued
which puts the link in low power state with out waiting for link
inactivity timeout. This leads to throughput degradation in case of
rx direction as in rx processing data path extends the timer by marking
last busy to avoid immediate runtime suspend. But runtime sync suspend
does not take in to account of the link idle timeout value before
suspending the link. So using this apis, before issuing runtime sync
suspend check the duration since last busy mark by data path rx process.
If the duration is less than run time delay just do runtime put.
Change-Id: I694ef6ddec8f11fed44bf3b9e5ae18ad93b6ec24
CRs-Fixed: 2512326