int_ctx variable is not defined but it is being used which creates
compilation error. Define this variable as part of the fix.
CRs-Fixed: 2359507
Change-Id: I17e57663eb8daa449616ee99d5eb9455e3b7cee2
Need to use tid_lock to protect the rx_tid data structure in the
dp_rx_reorder_flush_frag function. Or else there will be race
condition issues.
CRs-Fixed: 2357226
Change-Id: I860a64b529f0548eced7b537c4180a2c57175a56
MCL DP initialization path is running into issues due to change
I5732453f617bdc16995fda916b645c41845c3ecb. Fix the same.
Move flow control lock variables to re-use region. This is needed since
flow control deinit happens in dp_soc_detach, while in dp_soc_deinit, the
soc memory is being partially reset.
De-init HTT memory in dp_soc_deinit and free HTT handle
in dp_soc_detach. The existing code was not freeing HTT
packets for MCL case and freeing the HTT handle twice.
CRs-Fixed: 2359409
Change-Id: I52dcccc0444d4ce139a29ffcb884598bbacda88f
Initialize the PN to the value which is given by upper layer
and plumb it to HW.
Change-Id: If6b14d2b9b92e4571a85cb20dc445608d5f56961
CRs-Fixed: 2350954
Avoid memory fragmentation that happens during
attach-detach flow.
- Reuse transmit allocated static pool memory across soc up/down.
These memories are allocated during soc attach.
- Reuse DP source ring memory, DP soc context, DP pdev context
across soc up/down.
- Reorganise structure members of DP soc and DP pdev so that
we can zero out structure members across soc up/down
- Add cdp soc init/deinit and cdp pdev init/deinit that
will be active across soc up/down
Change-Id: I5732453f617bdc16995fda916b645c41845c3ecb
ASE entry aging for MEC entry type was same as
WDS type for 120 secs, this creates an issue when
device roams from MEC to WDS connection by not
aging out till 120secs. So now we reduce the MEC
aging time to 1sec
Change-Id: I6ab3b095a85c6d09f9fcd95b3b39f7152064d297
After gerrit#2436786, vdev in monitor mode is removed from vdev
list of pdev. So it is needed to add one more cdp API to get vdev
in monitor mode.
CRs-Fixed: 2343290
Change-Id: I9d74302a464280881ce0cf25dbc8c4f9d8b8d48d
When reap data from REO2SW ring and if the TP catches up to cached
HP, current logic will update HP again and give a second chance to
reap data. but the TP is not updated to ring register, if more data
is received on this ring then HP easily catches up to TP and the ring
is full.
Update TP as well if HP get chance be updated.
Change-Id: I92f381d2a31f3be987866a829e05b5578098649a
CRs-Fixed: 2334435
The ack_rssi_valid flag to set to 1 only when completion_status
value is 0 which shows that the TX was successful.
Change-Id: I9e520422995e374d7d35b9db0c060d1fce2f9067
Change rx defrag related log level from info to debug,
it's not necessary to print normal rx defrag operation related
log default, this can avoid panic caused by excessive logging
when receive lot of fragment data.
Change-Id: Id712d546a760377a6f59b321f73d7ae5ca4af564
CRs-Fixed: 2353869
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
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
WAR to discard duplicate indications (buffers and link descriptors)
from monitor DMA seen sometimes on RXDMA2SW ring.
Change-Id: I687b782f54fbbf85ae932ee833ac9263b5879ca6
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
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
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
Add support to configure a specific tid for unicast packets derived from
multicast packets.
Set the user provided tid value when both multicast enhancement and
tid_override_en flag is set.
Change-Id: I770166a37c920a7e642c6649f918456846fb5f90
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed: 2342717
Add reference for peer before adding ast entry
Reference is taken to avoid any synchronization
issue wrt to peer when adding ast entry.
Change-Id: Id3116daed84ad15eba515fedddb1146845542742
CRs-Fixed: 2335943
mon_lock is created only once for each PDEV, but is destroyed
according to the RXDMA number. Need to ensure this lock is freed
only once.
CRs-Fixed: 2338573
Change-Id: I3630dd0a3aaf808fa910cd40864042bf23ecc79e
Currently buffers reaped in REO exception ring handler are being
replenished into 5G MAC ring always.
Fix this by using appropriate MAC ring for replenish
Change-Id: I04f5a1179a7df4b018b6a0b435e2a0421ef534e5
Invalid status completions have already been accounted
in the counters. Remove error message for every
invalid status completion as it would lead to excessive logging.
Change-Id: I4af025f3a8731e8488d1d49799c65399a6cc9e37
CRs-Fixed: 2342963
The excessive/unnecessary ERROR level log during defrag_flush will
cause WDOG timeout on MSM platform. Also, it will lead to the
spinlock be held too long.
Move them out of spinlock, and de-priority/remove unnecessary one.
Change-Id: I3501e0e40a268f073c80ab36abfe762a007e5672
CRs-Fixed: 2342065
there is a use after free case observed with the
recent changes to wait for a WMI WDS delete response
Basically the peer got deleted by the time we got
response for WDS delete and we are trying to access this
peer when trying to delete the AST entry from host.
Change-Id: I78215345ccd12d5bdd801fccf8d9f5cd196466de
Add support for parsing AST entries to resolve the RA for
multicast enhancement (mode 6) and enabling access of the API to
the higher layers through the use of the CDP framework.
Change-Id: I909bea86b90c22f311484c0b2653dd7623971c24
CRs-Fixed: 2333014
Interrupt batch count configuration "dp_int_batch_threshold_other"
was initialized to wrong values, which was causing missed interrupts
from REO status ring.
Also remove the extra RXDMA2SW ring handling, which is currently
done in both UMAC and LMAC interrupt processing loops.
Change-Id: I9a9e951780356db6b491d1301d2c08ef1ac585d5
Add debug logs for AST add, delete
and update functions under debug
level trace for debugging purpose
Change-Id: I2a1728fc97cdd00dd9bdabab5a6055e9f8464e65
Using wds_en flag to control ADDR search flags in Transmit Descriptor was
causing DP to wrongly use ADDRY search instead of ADDRX search
on WDS repeater for DBDC repeater and SON scenarios.
Fix this by removing the use of this flag in dp_tx_vdev_update_search_flags
API
Change-Id: Id8ca40f926d58b8267e89d30c2b54cc42b4d4182
CRs-Fixed: 2335867
Replace ol_if interface with WDI for dp stats updation to upper layer.
Define a new CDP API to get radiostats.
CRs-Fixed: 2326789
Change-Id: Ieaee2fe18fc9a0ad0e259e36f59529fe9bc4e208
Avoid processing tx rate stats if STATS_USR_RATE_TLV is not processed
in htt_ppdu_stats
Change-Id: Icce8ca0b351ae1ae784ba605d1d984dcdd033715
CRs-Fixed: 2316130
Add iwpriv <interface> txrx_stats 29 and
iwpriv <interface> txrx_stats 30 to print wlan_cfg
parameters for both soc and pdev.
Change-Id: I666fe4fa999e82e92ea2961ab662e3e629b58bc7
CRs-Fixed: 2331949
1. While saving ast_entry of type DA, use bss_peer.
2. Display the correct peer_mac_addr in ast_entry of type DA
Change-Id: Ic6150d6e3fc0b1c1274844ea6685df6b66afd811
CRs-Fixed: 2332417
Support Monitor Mode for QCA6390 as RXDMA1 block is
now removed.
1. Monitor buffers are now received on rxdma_err_dst_ring
2. RXDMA1 monitor status ring is moved to RXDMA0 monitor
status ring
3. Msdu link descriptors are now returned to WBM descriptor
release ring.
4. Reap the Monitor buffers and return it to SW Refill ring.
5. Use the same rx descriptor pool for regular and monitor data.
Change-Id: If41e5d13f942da2b97e5aab72b88ae344925ba67
CRs-Fixed: 2297300