Move the call to reg_save_reg_rules_to_pdev after
reg_init_pdev_mas_chan_list. Since initialization is being called after
saving the reg rules, wlan_regulatory_pdev_priv_obj structure members
are not getting updated.
Since reg_set_ap_pwr_type requires reg rules to be saved in pdev, call
this API after saving the reg rules to pdev.
Change-Id: I24e98edec45114ad76490d4e3776edaa0fce66e2
CRs-Fixed: 3327492
Add a new enum for WBM2SW_RELEASE ring used
specifically for handling tx completions from
ppe2tcl ring in DS
Change-Id: I88f033e87f2a40e6f730728da3168b18b5e39f5c
CRs-Fixed: 3303259
In case of fast_recycled is set we can avoid invalidating
the complete buffer as it would have been invalidated
by tx driver before giving to recycler.
But we need to still invalidate rx_pkt_tlv_size as this
area will not be invalidated in TX path
Change-Id: I9e5202d8b251a5d59117609a705a311e499d05b0
CRs-Fixed: 3332713
Currently, value of domain ETSI18_WORLD is 0x3D which is not
correct.
Fix is to map ETSI18_WORLD to correct hex value to avoid any
issue.
Change-Id: I064896a089fd512bc350ff4401c03822dd78fa96
CRs-Fixed: 3331649
The MSI address and data information for Direct Link
copy engines will be available once the WiFi driver
on LPASS is initialized. Add support to configure the
IPCC address and data values into Direct Link copy
engines at runtime.
Change-Id: I5e7dff90c2f1ff764462c235deb5795ed019a16b
CRs-Fixed: 3316679
Add support and ops for initialization and
deinitialization of Direct Link refill ring.
Change-Id: I2c7018c4f8411fb7a590cfbb8b991f9152b22397
CRs-Fixed: 3316656
Some platform would like to disable wake IRQ, so add INI to disable
wake IRQ.
Wake IRQ can't share the same IRQ with the copy engines. In one MSI
mode, we don't know whether wake IRQ is triggered or not in wake IRQ
handler. known issue CR 2055359.
Disable wake IRQ for one MSI mode. If you want to support wake IRQ.
Please allocate at least 2 MSI vector. The first is for wake IRQ while
the others share the second vector.
Change-Id: Id9e54e287f146ff64d94669bbc44dc0a724d9480
CRs-Fixed: 3290867
MSI vector number is defined in platform driver, so use platform
driver API to check whether it is in one MSI mode or not.
In case of one MSI vector, interrupt migration needs to be disabled.
This is because when interrupt migration happens, the MSI data may
change. However, MSI data is already programmed to rings during initial
phase and there is no way to know that MSI data is changed during run
time and reprogram again.
If it is in one MSI mode, disable interrupt migration by adding IRQ
flag IRQF_NOBALANCING.
Change-Id: I54579dfe1e658c1a2c395be93875d013d6e6affd
CRs-Fixed: 3290829
Current code directly passes the result of wlan_vdev_get_psoc(vdev) to
wlan_objmgr_get_peer_by_mac, without null pointer checking, which can
result in null pointer dereferencing.
To fix this issue, add checking of the psoc pointer before passing to
wlan_objmgr_get_peer_by_mac.
Change-Id: Ica5ebbc448a6da8b1e7c846f05773d95f995eaca
CRs-Fixed: 3327337
80+80 MHz support HE capability as well. To make it generic,
change the function name from dfs_is_precac_done_on_ht8080_chan
to dfs_is_precac_done_on_80p80_chan.
The function dfs_is_precac_done_on_ht20_40_80_160_165_chan_for_freq
checks for 320 MHz channel width also. To make it generic, this function
has been renamed as dfs_is_precac_done_on_non_80p80_chan_for_freq.
Change-Id: I942e27b85f4f9e2ccc1786072b044deb0b4a6e45
CRs-Fixed: 3317795
Add new enum WIFI_POWER_EVENT_WAKELOCK_DYN_MAC_ADDR_UPDATE
for dynamic MAC address update wake lock reason code.
Change-Id: I61b9b54b2aca30eec9aa1d153a40877bfda88af9
CRs-Fixed: 3327592
Currently, only single pd_threshold is fetched and
treated as SRG and NON-SRG pd threshold instead of
handling both threshold separately.
Fix is to get SRG and NON-SRG pd threshold from
userspace instead of single pd threshold.
Change-Id: I414843dfd08068c81531d0e96d71fb68d8bfccd1
CRs-Fixed: 3328201
Add MAC ID to which the Spatial Reuse stats is requested from.
Pass this MAC ID to FW to get the respective Spatial Reuse stats.
Change-Id: Ief2434bf1f2fc82d9339ee38933effbd580088af
CRs-Fixed: 3328686
FISA update may come when target in suspend state, then
UMAC force wake may return failure and lead to system timeout
crash. Change is used to defer the update when resume happens.
Change-Id: If033bed692dccf2d27e9c76825ab2063a3f56841
CRs-Fixed: 3324926
Add "validate_set_mlo_link_cb" callback to mlo link set serialization
request context. Mlo mgr component client can register such callback to
be invoked before set mlo link command to target.
Change-Id: I0e860186dd33fc45b3f662d6af91329f10e4c638
CRs-Fixed: 3324888
A new capability bit from FW is introduced that provides
ADFS 320 MHz support information. supports_adfs_320 signifies
chainmask capability service bit if FW supports ADFS on 320 MHz
channel width. Add this capability bit(supports_adfs_320) in host.
Change-Id: I09c689658ef495d8a8707425ecc9ba922fce4d41
CRs-Fixed: 3317795
Reduce CE0 source and destination ring sizes for XPAN
usecases to reduce memory footprint based on the
frequency of transactions between LPASS and FW.
Change-Id: I65076a2720fa72d10327981994763dc4ac295ab3
CRs-Fixed: 3319659
Add reg txops to fetch min_psd for punctured SP channels.
min_psd is computed from afc response. Using the min_psd power value,
EIRP is computed for the non-punctured BW using the formula
EIRP = PSD + 10 * log10(non-punctured BW).
Add an entry in bw_to_10log10_map for all possible non-punctured
bandwidth.
CRs-Fixed: 3329625
Change-Id: I79707cb233640342c521e41e9c4d776e121c1d6d
Currently vdev id is passed from nbuf cb
but vdev_id is not being updated in nbuf cb
which is resulting in passing wrong vdev id to the
packet logging function.
So to fix issue pass vdev id from tx descriptor instead
of nbuf cb and also rate limit the error log in vdev NULL
case.
Change-Id: I69f568b7da52f1c96f208a220c6c4a7f6d98e082
CRs-Fixed: 3327359
320 MHz bw are overlapped, if you want special 320 MHz center freq,
pass center freq of 320 MHz to reg_set_channel_params_for_pwrmode
through ch_params->mhz_freq_seg1.
Change-Id: If5947ed1303c5c7d978161b6ffc6490ab07b8296
CRs-Fixed: 3326837
Currently the mdpu_desc_info from the msdu buffer tlvs,
for 2K-jump or OOR errors, if its the first-msdu-in-mpdu.
But if this flag is incorrectly indicated, there is a chance
of decoding garbage data and accessing invalid/NULL memory area.
In order to mitigate the above mentioned issue, add a sanity
check to determine if the first-msdu-in-mpdu has been processed
once and process/drop subsequent msdus based on this flag. This
flag also helps in handling cases, where first-msdu-in-mpdu
is indicated incorrectly for multiple msdus in an mpdu.
Change-Id: I990301d5a101dc7aa71303420bf49ab6fcee27c6
CRs-Fixed: 3325334
Currently sme_switch_channel set new_ch_width as phy_ch_width, while
wma_csa_offload_handler set new_ch_width as raw bit in wide bandwidth
channel switch IE.
Clean up the code. Define new_ch_width in csa_offload_params as
phy_ch_width.
Change-Id: Ie1999860421aa60c18cdc8059275954d910b4b66
CRs-Fixed: 3324746
Ideally in MLO, Rx buffers should be routed to error
rings of the SOC which owns the RX buffer or link desc
incase of any error or fragment
But in case of HW issue if the packets are routed to
partner soc. Handle gracefully instead of assert
Change-Id: Ia56188808dfd034e960e1c1345de8f760e4b05f1
CRs-Fixed: 3327959
In case of MLD, if one of the partner vdev is not brought up and
CSA is triggered on self pdev with multiple vdevs configured then
all the vdevs of this pdev will move to restart state.
But the ML AP vdev in MLO_SYNC_WAIT will not handle CSA restart
leading to multivdev restart request timeout.
Add change to handle CSA_RESTART when the ML AP vdev is in MLO_SYNC_WAIT
state. Thereby all vdevs of this pdev will move to restart state.
Change-Id: I9b729e2f81d3c72ab5e321f3a396f157424c1663
CRs-Fixed: 3328931
Add support for new vendor sub-command attributes for 320 MHz
channel width and puncturing information as part of the
external ACS.
Change-Id: Ic8181619949061794775bfe55f4afd0f408a7316
CRs-Fixed: 3323216
In defrag path match addr1 with VAP mac address
and if there is mismatch do not process considering
it as corrupted packet
Change-Id: I003c07949e760ff4e64a7d22bfbefc25cc817ae2
CRs-Fixed: 3327977
In case of MLO, when back to back connect is received, if the previous
connection is still in progress, hold the disconnect and the new
connect.
The same is the behavior for disconnect followed by connect.
Change-Id: I174f5fa40df2441d3dce693550542fd43d6dd991
CRs-Fixed: 3323721
CE2 ring gets full pretty quickly as target side entries
count is 32, host side config is 64.
Increasing target's pipe entry to 64 as well.
Change-Id: Idbcb3675af0b39fc9741ae68d7ec3f1ad5e67bf1
CRs-Fixed: 3322383
Typecast vdev->ref_cnt, from qdf_atomic_t to int,
using qdf_atomic_read() when logging as an
integer value.
Change-Id: I3432f5b8247a3031f1896d8964529a568fc3af19
CRs-Fixed: 3326096
The kernel-doc script has identified numerous documentation issues in
wmi_unified_tlv.c, so fix them.
Change-Id: Icf82bc87e576965f5bfe64d416be2da71a250cb6
CRs-Fixed: 3326205
User space issues scan, which does not include non-PSC channels.
If user space does not customize these channels, kernel fills
all the supported channels (2 GHz, 5 GHz and 6 GHz all channels).
Driver does not add channels to the scan channel list even if
it is present in RNR IE, as this increases the number of channels
given by user space and increases scan time.
User space should not send customized channel list, even if it
wants to scan the RNR channels.
If the flag NL80211_SCAN_FLAG_COLOCATED_6GHZ is set or at least
one 6 GHz channel is present, driver need to add all 6 GHz
channels which are not present in the scan request and sets
RNR flag for those channels so that FW can do co-located 6 GHz
channel scans on these channels.
Without the change, Driver adds 6 GHz channels to the scan request,
which are present in PSC list only.
Withdraw logic to add all 6 GHz channels to the channel list,
if Scan req carries at least one 6 GHz channel in
scm_add_all_valid_6g_channels, which indicates that the target
or regulatory supports 6 GHz channels, as they are added if
Scan req carries NL80211_SCAN_FLAG_COLOCATED_6GHZ flag.
Change-Id: I3c8f5cd7eadf39557f24f685a260fe76ea5d08be
CRs-Fixed: 3312385
This change is to populate the phase delta for the valid
chains as per rx_chainmask for scan radio in special
vap mode.
Change-Id: I3ff9a928d93b0e81221b2bf9a515c63150f04272
CRs-Fixed: 3316528
Use rate limit print for BAR frames to in avoid of
slow processing when BAR flood happens.
Change-Id: I92063787501c8f6467a211bd2695108a9fe42724
CRs-Fixed: 3325043
When Multivaps are configured in a radio, the vdev_id's are
not updated as expected.
With the changes, the vdev_id are properly updated in the registers
Change-Id: I7d987e96bd0f8a91f13025fa6975415ea235ce12
CRs-Fixed: 3318563
In function wifi_pos_process_app_reg_req(), it uses function
wifi_pos_get_vdev_count to get vdev_count;
Then wifi_pos_process_app_reg_req->
wifi_pos_get_vdev_list-> wlan_objmgr_iterate_obj_list,
it uses wlan_psoc_get_max_vdev_count to get max_vdev_cnt,
if vdev is not NULL, it invokes function wifi_pos_vdev_iterator
to fill the vdev_info.
For the failure scenario:
In wifi_pos_process_app_reg_req, it gets 2 for vdev_count
from function wifi_pos_get_vdev_count; Then the process is
interrupted and vdev 2 is created in another process; Now
since there are vdev 0, 1, 2, wifi_pos_vdev_iterator is
called 3 times and memory corruption happens since it writes
two more bytes with op mode and vdev id in vdev_info.
Change-Id: I5222836a1448bfaa7df31c919419d448eaa20895
CRs-Fixed: 3320183
Forward the 4 addr eapol packets received in
dp_rx_process_rxdma_err() to osif stack instead of network stack.
Change-Id: I1d8ff065096844ebe61974329754e54fc9d28640
CRs-Fixed: 3323480
Indexing array after checking 'ce_id' for boundary
condition to avoid array out of bound.
Change-Id: Iffa776021dbd70bc135152ad06cb9488a74c335f
CRs-Fixed: 3328146