Introduce a new wmi_send pdev param to enable/disable
"Subchannel Marking" in Firmware (only in Full Offload)
Change-Id: I3cd4f4f13ebca72c4505b6195cc8dc4856d41671
CRs-Fixed: 2334258
Introduce dfs_tgt API to send the WMI command to enable/disable
"Subchannel Marking" in Firmware (only in Full Offload)
Change-Id: If739409521c8704b612e52dfc8ed6b86ffe32bca
CRs-Fixed: 2334258
Changes configured to operate in Channel 100(HT80), if bin5 chirp
radar is injected at center frequency at 5530 MHz, instead of adding
channel 108(HT20), it adds channel 116(HT20) of adjacent 80 MHz band
to NOL list.
We have the following variable assignments in function
dfs_pulses_within_window:
dfs->dfs_min_sidx = pl->pl_elems[*index].p_sidx
dfs->dfs_max_sidx = pl->pl_elems[*index].p_sidx
Since the variable pl->pl_elems[*index].p_sidx is of signed type
and variables dfs->dfs_min_sidx/dfs->dfs_max_sidx are of unsigned type,
if the value of the variable pl->pl_elems[*index].p_sidx is negative,
the values of the variables dfs->dfs_min_sidx/dfs->dfs_max_sidx become
very large unsigned value.
When sidx is converted to frequency offset, the frequency offset
also becomes very large and it is greater than 40Mhz(half of HT80).
In this case, 50MHz is added to center frequency 5530 MHz, which
becomes 5580MHz(channel 116(HT20)). This results in the channel
116(HT20) of adjacent 80 MHz band to be added to NOL list.
Change the type of the variables dfs->dfs_min_sidx/dfs->dfs_max_sidx
from unsigned to signed so that assignments do not alter the actual
value of the frequency offset.
Change-Id: I13995888b618d9dd8a91447d5dffe27aa2e27a27
CRs-Fixed: 2342743
Current HTT_H2T messages from host driver does not have
consistency in message length set by host driver. Some
message types include HTC header length also within the
message length, while other types have message length
itself only, which causes difficulty in handling message
length in FW.
Change-Id: I885a21530a2d8f852387ae54cf7ee0751aad2516
CRs-Fixed: 2345075
Set TDLS channel offset correctly when TDLSSECONDARYCHANNELOFFSET
command is sent with offset 20.
Change-Id: Ifac48da3fea0c83415f3d30caa2919a559f5c3c5
CRs-Fixed: 2341883
Firmware could send same channel list for each pdev. Since SOURCE DRIVER
is default, it would be set for the second event. Avoid that. Remember the
source of the first event itself.
Change-Id: Ib9db58da1fa27673b04a4c62e10f2a05702348ad
CRs-Fixed: 2352151
In target_if_dbr_fill_ring(), min_buf_align (8 bytes) was added to
min_buf_size before allocating the memory for dbr_buf_pool. This leads to
extra 1MB allocation.
To avoid this extra allocation, call qdf_aligned_malloc() to allocate
aligned memory for direct rx buffers.
Change-Id: I72f7c616c7a699437b081de7149a4a67a3ad30c4
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed : 2336697
Define qdf_aligned_mem_alloc_consistent() and qdf_aligned_malloc() which
allocates the memory and checks if allocated base address is aligned with
ring_base_align. If not, it frees the memory and re-allocates by adding
7 bytes to alloc_size and returns aligned address to the caller.
Change-Id: I412153c20e4e4566450b006356fe78d98f1fd3f0
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed: 2336697
HKV1 does not have support to maintain per pdev AST table.
Hence workaround is required to ensure that AST entry is deleted before
adding an entry with same MAC. This syncronization needs to done across
pdev. This workaround in required on for HKV1, add changes to enable
workaround only for HKV1 and disabled for other platforms.
Change-Id: I9aa43ea51fdff2f02cdcc8ff7e906c7305446317
CRs-Fixed: 2344921
For HKv2, BA window size can be configured on per tid
basis as opposed to per peer basis on Hkv1. This per
peer per tid configuration on Hkv2 is for Tid 0 to 7.
Change-Id: Ic4afee92792af829a9ad8fdfc211625743b9d052
Remove the QDF_BUG in sa valid case when AST entry is not found
and peer is found as this can be a valid case in DBDC repeater
In DBDC repeater case we may receive the L2UF frame sent on 5G
radio on 2G interface
In this case SA will be valid and peer will be found for 5G VAP
mac address, but ast entry will not be found in ast_table as we
dont receive peer map events for STA vaps
Change-Id: I22e8582605f59a8691d8fcbb43627655d1a6500c
Fix WMI message for peer channel width switching to account
for reserve space allocated in the message between num_peer
and chan_width_peer_list.
Change-Id: I5f0cec3c263cb68f44f0fcaa2aa26d120e807b1a
CRs-Fixed: 2352372
Typecast 'rowsize' to qdf_size_t, to avoid compiler error
'comparison of distinct pointer types lacks a cast'.
Change-Id: I29e05a1f0d165accf3bebefc0af2b9f97cac0f5d
CRs-Fixed: 2350601
The reference counter will be increased after using peer find by
id API. So the unreference operation must be performed whenever
the peer which is returned by this API is released. Fix one peer
ref_cnt unmatch issue in TQM bypass mode.
CRs-Fixed: 2348316
Change-Id: Icae09b351315f38d9b7521b29c0e930339c9f83a
Remove the unused fields from WMI unified vdev_start_params structure.
The channel information duplicated in vdev_start_params and
it sub structure channel is removed and all implementations
can use the channel sub structure directly.
Change-Id: I47cf4c4223111b6f564ec8336dbfcda4592e8e0c
CRs-Fixed: 2350505
reset_control_get not defined without CONFIG_RESET_CONTROLLER, use
reset_control_get_optional instead accordingly.
Change-Id: Ibd1c68a2fe8f063dffb556b4c0e49eca96eb0b86
CRs-Fixed: 2350601
Initialize revision_id to avoid compiler error as
'variable may be used uninitialized'.
Change-Id: Ia76b297e0f0f745284c7d0ede72a55dcc3d0dc65
CRs-Fixed: 2350601
WAR to discard duplicate indications (buffers and link descriptors)
from monitor DMA seen sometimes on RXDMA2SW ring.
Change-Id: I687b782f54fbbf85ae932ee833ac9263b5879ca6
After driver suspend some thread can still queue scan req
which will cause scan during suspend and WOW_ENABLE received
while SCAN in progress.
TO avoid this block all new scan during suspend.
Change-Id: I02ddc9b5e6ba5f1782d00e34f044ace34c54d0b0
CRs-Fixed: 2343385
Add an array bounds check for the FFT bin arrays in SAMP message so
that they do not overflow even if an unexpectedly high FFT bin count
parameter is requested by the caller. Also reflect FFT counts limited
by bounds check into SAMP message. These changes act as an additional
guard sequence - functionality for the calling path itself to reject
samples that exceed the expected FFT bin count or have other
unexpected issues will be added in the future based on target side
profiling.
Change-Id: I4af24f623691cc2c2b04243cb64f05d159f035f6
CRs-Fixed: 2348397
Since there is user case to check the input value is in range of bool
type, add API to support it.
Change-Id: I03b225210768506e53ca60a0dd71af58e4f142a9
CRs-Fixed: 2350740
scan_config command for 2G pdev was not listing 2GHz frequencies.
Fix frequency range check condition in is_chan_enabled_for_scan() to
include 2G frequency in the scan channel list.
Change-Id: I9883583505ab318328999c5cf2dd33e687a784b2
CRs-Fixed: 2350530
Use QDF spin_lock APIs so that we can make use the debug infra.
This will help to identify catch issue related to unbalanced lock
operations or unexpectedely long locks.
Change-Id: I318bcb90340d98813f19862fda14e6ada30bbed6
CRs-Fixed: 2349308
In Repeater configuration when a STA first associates to Root AP
on some radio and then roams quickly to repeater AP on other radio,
some times target assert is observed due to below race condition.
1. Root AP sends peer delete command to FW on radio X and clears
its AST entry. This peer delete command not processed by FW yet.
2. STA roames to repeater AP and starts ping traffic to Root AP.
3. Root AP receives the ping frame and tries to add wds entry on
radio Y as AST entry was not found.
4. FW receives add wds entry on radio Y while on radio X an
direct peer ast entry for same mac was present.
5. FW asserts.
Change-Id: I02ac409f2b4f6b2ea307d99c5f1fdab7776ca938
CRs-Fixed: 2347818
Add TDLS device mode to get the nss chains shift params
and store the ini and dynamic nss config in vdev.
Change-Id: Ia2f3dba1860eda23018e6b930866931886834879
CRs-Fixed: 2349203
Radio band which is classified and it's operating in 5G_HIGH_BAND
or 5G_LOW_BAND or 5G_FULL_BAND freq range or NON_5G_BAND,
ie It's 2G BAND
Change-Id: I9d140960c4b1fdab41621a1b277c140323d86e59
CRs-Fixed: 2339508
Enums tdls_add_oper and TdlsAddOper are same. Instead redefining
use the same enum across different files.
Change-Id: Ibb71b0f80e156e4bd3a345a56c7b4d99ce770ef7
CRs-Fixed: 2349643
If Vdev id is not present driver tries to get vdev with vdev id 0
from pdev. Vdev with vdev_id 0 might not be present on pdev so use
objmgr API wlan_objmgr_pdev_get_first_vdev to get the first vdev.
Change-Id: I2ae0d6056709339a8167582ec327269aa84c93f4
CRs-Fixed: 2349699
Calculate last_per based on unicast packets and success packets
in last one second
Change-Id: I8b469e5d9c1e40498b3267bf7bdf3149159bdc31
CRs-Fixed: 2343479
Removet the host ast_entry after sending delete ast_entry
to the firmware. This will handle the situation where we
might receive an add request for the same ast_entry,
while we are waiting for delete response from the firmware.
Change-Id: I105504a9c6a1e8e53bef9f3d011c10f846fd098e
CRs-Fixed: 2347989
For the case that there is leakage of vdev due to incorrect reference
count usage, and another vdev for the adapter is created, get ref of
vdev by mac address might get the incorrect vdev object since both vdevs
will have the same mac address and the leak one will be first matched
since it is created first.
To address this issue, use vdev pointer in adapter instead of pdev as
input parameter of related functions.
Change-Id: I855497358b5dabf3fc5c0f71a859dd7cae1b450a
CRs-Fixed: 2312155
Add new flags for MEC and DA enable/disable
and keep it independent of WDS enable flag
Change-Id: Idb49c45ebb34a38f876dbdb293806c4e96d49b5d
CRs-Fixed: 2336332
Add support to handle Tx completion processing and Rx processing into
different NAPI threads/contexts for Lithium DP
Change-Id: I4f5c6ef3ce969ce457e26cf3e8305df1ae782f09