نمودار کامیت

1974 کامیت‌ها

مولف SHA1 پیام تاریخ
Chaithanya Garrepalli
3ac6dedea7 qcacmn: update peer reuse logic and add peer state lock
With new design, peer is deleted from hash table in
cdp_peer_delete. Hash table search in dp_peer_can_reuse
API at cdp_peer_create will always fail

Update the peer reuse logic to search from inactive list.

Insert peer to inactive list from cdp_peer_delete() and
in peer reuse case search in inactive list to get
peer.

Also add a new lock to protect peer state transition

Change-Id: I2e672fc4a9346c95d67716d437538dd0f96b2207
2020-09-11 13:55:42 -07:00
Ananya Gupta
f7771e45d8 qcacmn: Add NULL check for mem_info tx ring and rx refill ring of ipa
Currently, check is performed only on tx_comp_ring and rx_ready ring,
after getting the resource from soc in pdev.ipa_res.
Adding check for tx ring and rx refill ring as well.

Change-Id: I462073357bcd2b4a3f5e888d77d84621855f973c
CRs-Fixed: 2771401
2020-09-11 11:50:30 -07:00
Debasis Das
59d63401a5 qcacmn: Use next link_desc instead of msdu_count
MSDU count is not reliable in all cases.Hence it is better
to check whether next_link_desc is valid or not and then
free the MSDUs in the next descriptor and subsequently
release both the current and next link descriptor back to HW.

Change-Id: Ie5ea3be547f9aed6673293221f6b47661cd92cce
2020-09-11 11:50:20 -07:00
Ananya Gupta
34c53389f7 qcacmn: Remove check for ring_desc in dp_rx_defrag_store_fragment
ring_desc is being validated in dp_rx_err_process before passing
the ring_desc to dp_rx_defrag_store_fragment.
Hence removing the additional checks for ring_desc.

Change-Id: Ib863ea4d512075beed58f09ff6167aa2a556efea
CRs-Fixed: 2771408
2020-09-11 07:36:54 -07:00
Guisen Yang
1eaa090cf2 qcacmn: Fix compilation error
There's no declaration for API dp_peer_qos_stats_notify().
Define the API  as "static inline".

Change-Id: Id6769d680b3304cebf00b2348fb5b9a3bc9c7368
CRs-Fixed: 2773655
2020-09-11 01:32:25 -07:00
Manikanta Pubbisetty
90dea34ae2 qcacmn: add debug stats for REO ID mismatch
Add statistics if the packets of the flow are coming on
a different REO than the one configured. This would help
in debugging the race conditions where the packets of the
same flow arrive on different REO rings.

Change-Id: I73714c4ad64e00df06c72ac4ae5f7567adeab505
CRs-Fixed: 2771719
2020-09-10 23:19:31 -07:00
Ankit Kumar
30f857cb67 qcacmn: MCopy and lite monitor feature handling in case of frag
Add logic to handle mcopy and lite monitor feature
in case of frag.

Change-Id: I45fcbd22b1dcb1f68ee93a69f29fbac85cb0aafa
2020-09-10 21:00:55 -07:00
Harsh Kumar Bijlani
12c7f7a08b qcacmn: Change max headroom for monitor destination buffer
Macro MAX_MONITOR_HEADER is used to specify the max. headroom size for
different buffer rings. With the monitor frag feature, macro
DP_RX_MON_MAX_MONITOR_HEADER is required to specify the headroom size for
the monitor destination buffers as per the the approch being used.

Change-Id: Ic4c0132292008942d7d443235e5f54d7eaa77e74
CRs-Fixed: 2772048
2020-09-10 17:03:28 -07:00
Rakesh Pillai
08e5f5bf9d qcacmn: Add cdp API to enable/disable SWLM
Add CDP APIs to enable or disable the Software
latency manager.

Change-Id: I1ec182e97a245ec5848660fa912eebe83cfba2fc
CRs-Fixed: 2769030
2020-09-10 03:15:13 -07:00
Rakesh Pillai
02723d3bc2 qcacmn: Add INI support for SWLM
Add support to enable or disable the
Software latency manager via INI

Change-Id: I4acde4d5d2b9813de8f64f336d4b3b8c25e67b63
CRs-Fixed: 2769029
2020-09-10 01:04:39 -07:00
Rakesh Pillai
b6835a9413 qcacmn: Add support to dump SWLM stats
Add the support to print the software
latency manager statistics.

Change-Id: I7b6f77eefc6f4f800996dc868d41e7e0f7dd3331
CRs-Fixed: 2769020
2020-09-10 01:04:35 -07:00
Rakesh Pillai
156a7ecfc0 qcacmn: Coalesc the tx head pointer writes
Add the support to coalesc the tx head pointer
register writes to reduce the number of PCIe
writes.

Change-Id: I4fea22464c2bf6930bac42dab72c1c2fc5fa18e2
CRs-Fixed: 2769017
2020-09-10 01:04:25 -07:00
Rakesh Pillai
21af5ba8cf qcacmn: Add data structures for SWLM
Add the necessary data structures for the
software latency manager.

Change-Id: Ibf55f0eef7ee6602b007de39a28f09c4622bd356
CRs-Fixed: 2769004
2020-09-10 01:04:20 -07:00
Rakesh Pillai
4b6f9e082b qcacmn: Add CDP API to save low latency connection count
The 11g and 11a connections are latency critical and
hence the tx coalescing cannot be applied on traffic
running for these connections.

Add a CDP API to save the number of low latency
connection in the dtapath vdev handle. The Software
latency manager can use this information to decide
and skip the tx register write coalescing for packet
transmission on low latency connections.

Change-Id: Iff51867447e9d4537a3637cb65d94e184e4249ef
CRs-Fixed: 2769025
2020-09-10 01:04:15 -07:00
nobelj
a5219e6980 qcacmn: modify ppdu desc print log level
modify ppdu desc print that flooding the console

Change-Id: I30342dfade7967ac3bc7cb9740697fc09e4ade03
2020-09-09 14:03:55 -07:00
Guisen Yang
60b35027b2 qcacmn: Set the default value for variable 'ret'
The variable 'ret' in ‘__dp_ipa_tx_buf_smmu_mapping()’ maybe
used uninitialized. Set one default value for it.

CRs-Fixed: 2771822
Change-Id: Ibf4bf6aa2076de84b3a47122ff4f3cae055cd0f7
2020-09-09 01:45:23 -07:00
Neha Bisht
78efc5e526 qcacmn: Change log level of print in qos_stats_notify
Change log level of print from qdf_err to dp_err in
dp_peer_qos_stats_notify to avoid console flooding

Change-Id: I214942135826a6b94e6cf0b34b69d2c662a35e7b
2020-09-08 15:05:54 -07:00
Shivani Soni
7f1f32855a qcacmn: Initialize HTT stats debugfs in dp_pdev_post_attach
Initialize HTT stats debugfs in dp_pdev_post_attach

CRs-Fixed: 2771470
Change-Id: Ic9eb290c5b420ce6691e1afac7799f04a64168d4
2020-09-08 11:02:44 -07:00
Rakesh Pillai
97fb02b65a qcacmn: Fix the stale and invalid cookie logging
Currently the stale cookie and invalid cookie
counters are being logged inter-changeably.

Fix the logging for stale and invalid cookie counter.

Change-Id: I43346fe961ee750a3baa1bf8c2da2551fb06e973
CRs-Fixed: 2770877
2020-09-07 08:50:20 -07:00
Mainak Sen
60cdb2185c qcacmn: Hlos tid override support in dp vdev
1. Add flag to support hlos id override feature in dp vdev
2. Update tid from nbuf->priority in dp_tx_send
3. Update tid to nbuf->priority in dp_rx_process

Change-Id: I66e8d77733a667f3f60b77e0d7bb444f7c5ad93d
2020-09-07 01:03:42 -07:00
phadiman
6510531b81 qcacmn: Remove dp_tx_pdev_detach API
dp_tx_pdev_detach API takes care of flushing
tx descriptors and multicast enhancement mem
cleanup

dp_pdev_deinit takes care of cleaning up the
above actions and dp_tx_pdev_detach is simply
a redundant piece of code

Hence remove dp_tx_pdev_detach API and call
dp_tx_desc_flush directly from dp_pdev_deinit

CRs-Fixed: 2769303
Change-Id: Ic798793e81eefc7dc905ca7552fdca13e9fddd8c
2020-09-05 10:27:22 -07:00
Jinwei Chen
b8a17e378b qcacmn: provide REO2SW1 ring as REO_DST option when IPA is enabled
Currently when IPA is enabled, all RX frames will be routed to IPA
ring REO2SW4 by default, there is no REO2HOST option. once IPA RX/TX
is slow, then likely will give RX back pressure to wlan RXDMA. per
FW feature request, when IPA RX is slow or stuck, route RX frames to
wlan host to mitigate issue, thus provide REO2SW1 ring as REO_DST
option into HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0.
To make sure if without FW dynamic REO_DST ring switching change,
current host change should not give chance that RX frames
route to host when IPA is enabled, select CTRL_IX_0 index 2 to
set REO_DST option, the reason is: if RX hash is enabled, CTRL_IX_2
and CTRL_IX_3 index 16~31 is REO_DST option filled with REO2SW4,
if RX hash is disabled, then CTRL_IX_0 index 1 and 4 filled with
REO2SW4 is REO_DST option configured by
WMI_HOST_PEER_SET_DEFAULT_ROUTING, so CTRL_IX_0 index 2
is only used for FW dynamic ring switching.

Change-Id: I6af12e07472dbdd4ab6d97f24e9fd4082c4e7328
CRs-Fixed: 2767844
2020-09-04 03:23:49 -07:00
Ankit Kumar
5eb6324b3e qcacmn: Modify frag restitch param for frag based handling
Dont pass las_msdu as a param to restitch func for frag
approach as it doesn't contain valid value and is not used
in the restitch api.

Change-Id: I974a8ae5e6ce4a9bf04985cbd37e103700f48301
2020-09-03 15:25:13 -07:00
phadiman
dbb0787de4 qcacmn: Modify wlanstats context to RDK stats context
peer wlanstats context is used only for RDK Plume stats
but the name is misleading as wlan statistics

Hence rename peer's wlanstats_ctx to rdkstats_ctx and
the APIs the APIs around the same

CRs-Fixed: 2767192
Change-Id: I9e8955554b94fa29a3964fed729a95a4db67c8f6
2020-09-03 04:04:17 -07:00
Sridhar Selvaraj
b257b236b0 qcacmn: Enable data path polling mode based on INI
Enable data path polling mode based on INI
dp_poll_mode_enable. Configure all data path
interfacing rings (UMAC/LMAC) and Monitor rings
in polling mode when NSS offload is disabled.
By default, poll mode is disabled.

Change-Id: I0e51207042811f517a423eb7276e3f33c5313450
2020-09-03 01:58:50 -07:00
Rakesh Pillai
6b95713d00 qcacmn: Skip history record if memory allocation fails
Skip the recording of rx error ring and rx reinject
history if the memory allocation for the history
fails during the attach.

Change-Id: Ifa74937d0c37e6013ccaec851dab7d9e53057ac2
CRs-Fixed: 2767579
2020-09-03 01:58:39 -07:00
Nisha Menon
d95c9bb377 qcacmn: Map IPA tx buffers as part of IPA ready callback
Register IPA ready callback with IPA driver. The callback
sets ipa_is_ready flag in the host driver and kick starts
the ipa init sequence as part of which the Tx buffers are
mapped to IPA.
None of the IPA APIs are invoked until IPA ready registration
is complete.

Change-Id: I6570b2b347052164a274fbc22358ebf0719dcabf
CRs-Fixed: 2735107
2020-09-02 13:51:44 -07:00
Yeshwanth Sriram Guntuka
004e29eceb qcacmn: Don't take peer ref by id on AST cleanup in unmap handling
In the scanerio where peer teardown and peer map happen
in parallel, AST entries could get added to the peer AST
list after cleanup happens as part of peer teardown. AST
cleanup as part of peer unmap handling would not remove
the entry from the peer AST list. This is because
dp_peer_get_ref_by_id returns NULL as peer state is moved
to logically deleted state.

Fix is to not take peer ref by id and use the peer
argument passed in which already holds ref in the
peer unmap handling.

Change-Id: I844d3f07e9eec962d44bbfba851ad46f350e4f97
CRs-Fixed: 2766779
2020-09-02 13:51:40 -07:00
Mainak Sen
14543e310a qcacmn: Add qdf and DP module id for MSCS
Add MSCS module id in QDF and DP
Change-Id: I1b5186828c2ef236bb1f05c8d54850ed37719926

Change-Id: I5049cd17e5e1ad73adc6a1d881e7882e3947796f
2020-09-02 08:48:28 -07:00
Chaithanya Garrepalli
354d64f366 qcacmn: fix MCL WHUNT compilation error
Remove comma from dp_alert to avoid compilation issue

Change-Id: Iea6bf230855d0e931fc306284db4f7a368406ba8
2020-09-01 18:14:58 -07:00
Pavankumar Nandeshwar
857e8a7579 qcacmn: Reset the mask for rx err ring
Reset the mask for rx error ring when wlan nss
offload is enabled

Change-Id: Ieebcb9c1b6f47f255c8d193c8c0068b1cab9b22f
2020-09-01 01:50:07 -07:00
Pavankumar Nandeshwar
6756b1a5aa qcacmn: Data path changes for QCN9100 bringup
Initial changes made for bring up of
QCN9100 in data path and hal

Change-Id: I6cbe90428b552b6ff5733bc0f60bfb9f7933bc9a
2020-09-01 01:49:51 -07:00
Yeshwanth Sriram Guntuka
aefb2ac3d4 qcacmn: Free nbuf from htt misc list only when magic pattern is set
In the scenario where htt packets fail to be transmitted to
FW, they are added in both endpoint tx queue and misc list.
On receiving FW down indication before these packets are sent
to FW, endpoint tx queue is flushed and nbufs are freed. Post
this, the aforementioned nbufs would be unmapped/freed again in
htt_htc_misc_pkt_pool_free causing panic.

Fix is to free the nbuf via misc pool free only when the magic
pattern is set.

Change-Id: Ie523a7ca0054eb4104a107b3bddd50cb9b585275
CRs-Fixed: 2762829
2020-08-31 17:21:26 -07:00
Shivani Soni
466f147d05 qcacmn: Debugfs support for HTT stats
Debugfs support for HTT stats under compile
time flag "HTT_STATS_DEBUGFS_SUPPORT".

Change-Id: I44c4f11265fdb3b9d53a9ac545e2945854bb9a57
CRs-Fixed: 2760947
2020-08-31 17:21:22 -07:00
Mohit Khanna
83aab371c4 qcacmn: Add support to use pre-alloc mem
Add logic to pre-allocate DP consistent memory and reuse later
on wifi on/off. This prevents memory fragmentation.

Change-Id: I1e5eb0da39950a5d028dd46d38ff715f283e53ff
CRs-Fixed: 2740889
2020-08-31 03:32:45 -07:00
Chaithanya Garrepalli
21787e51de qcacmn: remove the assert for DP peer state
Remove the ASSERTs added for DP peer state tranistion

Change-Id: I3fdf355fc6a79642b5527a35015f96d04e4272c0
2020-08-31 03:32:42 -07:00
Rakesh Pillai
351a71f1d3 qcacmn: Destroy rx tid spinlock when peer is freed
Currently the rx tid spinlock is destroyed from
peer delete (based on peer state) or peer unmap handler.
This can lead to a race condition when the peer is
deleted before the peer map command is processed/received.

Fix the above race condition by destroying the rx tid
spinlock only when the peer handle is destroyed/freed.

Change-Id: Iaf7ccea11a95732c1aa20e66af6dd4a9a66517c5
CRs-Fixed: 2763533
2020-08-28 08:54:13 -07:00
Pavankumar Nandeshwar
f0d2f53e32 qcacmn: stats VoW IGMP improvements
Add stats VoW IGMP improvements feature

Change-Id: I86b803e67f2cc3cfc01750f261f06590ff2b97c2
2020-08-28 02:01:25 -07:00
Chaithanya Garrepalli
7db23eeca2 qcacmn: use batch peer reference in TX path
In Tx data path get the peer reference and use
until there is a peer_id mismatch. This is to avoid
per packet atomic operations

Change-Id: I59cdbef19001c694654f0967381a9242788d9cbc
2020-08-28 02:01:20 -07:00
Srinivas Girigowda
d5f803a63e qcacmn: dp: Remove duplicate log line
Remove duplicate log line.

CRs-Fixed: 2763028
Change-Id: Ic7c5325ba43b9b3117f997576fa2fa9a00c3d1fc
2020-08-28 02:01:15 -07:00
Pavankumar Nandeshwar
0eeac59b4e qcacmn: VoW IGMP improvements
As part of the VoW IGMP improvements, which deals with
conversion of igmp packets to unicast packets, the
following changes are done when the new feature is enabled:

1. IGMP/MLD packets with special addresses (addresses not
   part of any multicast group) will be converted to all
   existing clients of the AP. These packets will be
   directly fed to igmp multicast to unicast conversion
   module.
2. The IGMP/MLD packets with group specific addresses will
   first go to multicast enhancement module, where they
   will be allowed to pass and will be converted to unicast.
3. The new feature will be enabled only when multicast
   enhancement feature is enabled, which will be ensured
   at the configuration level.
FR : 61063

Change-Id: I2fd5a67766c806432fbe1a12cb9654a3600100f5
2020-08-28 02:00:48 -07:00
Yeshwanth Sriram Guntuka
4c12885407 qcacmn: Delete peer AST entries as part of peer unmap
In roam HO failure, peer unmap indication is processed
even before Host initiates the peer cleanup. In the cleanup,
as part of cdp_peer_teardown, AST entries are freed up without
removing it from the peer AST list since get_peer_by_ref_id
returns NULL peer pointer as peer is moved to inactive state.

Fix is to delete peer AST entries as part of peer unmap
indication so that the entries are removed from the AST list.

Change-Id: I1b04517e8cc392b33bb439501e61e3d5534d8307
CRs-Fixed: 2763825
2020-08-27 23:52:36 -07:00
Rhythm Patwa
3a1d8d64f7 qcacmn: Add support for Punctured Preamble PPDU count in tx stats
Add support to update the count of number of Punctured Preamble
PPDU's transmitted by the AP.

Change-Id: Id85a490e9e80566e639f48190a96d3107c6e5c61
CRs-fixed: 2755288
2020-08-27 18:37:12 -07:00
Amir
376724d4f9 qcacmn: Add WAR to skip status ring entry
STATUS_BUFFER_DONE tlv written in first word for a status
buffer indicates that DMA is done for that status ring entry.

In existing implementation, for a status ring entry if
STATUS_BUFFER_DONE tlv is not written by HW, we poll on to status ring
entry until DMA is done by HW.

During lmac reset it may happnen that HW will not write STATUS_BUFFER_DONE
tlv in status buffer, in that case we end up polling infinitely leading
to backpressure on monitor status ring.

As per MAC team's suggestion, when HP + 1 entry is peeked and if DMA
is not done and if HP + 2 entry's DMA done is set,
replenish HP + 1 entry and start processing in next interrupt.
If HP + 2 entry's DMA done is not set,
poll onto HP + 1 entry DMA done to be set.

CRs-Fixed: 2740988
Change-Id: Ieef667f0bb4a47e74fc320c93243c637409f47f0
2020-08-26 14:32:13 -07:00
Amir
f6f16ac551 qcacmn: Fix full monitor support enable issue
For QCN9000, full monitor is controlled through,
	a. full_mon_mode ini param
	b. QCA_SUPPORT_FULL_MON compile time macro

Currently enabling full monitor is not taken care under
macro QCA_SUPPORT_FULL_MON.

As monitor mode is not supported for 256M profile,
QCA_SUPPORT_FULL_MON is disabled.

Enable full monitor mode when both ini and macro are enabled.

Change-Id: Id5be5f7edc4739423fd74e28bb71a8f3339d87b3
CRs-Fixed: 2744622
2020-08-26 12:13:40 -07:00
Neha Bisht
8ae1b8a9e3 qcacmn: Provide SON with per peer qos stats
Providing per peer QoS stats to SON via WDI event

Change-Id: Idd3cfbfec332269fdc8ad0ef273674e81d6ee92f
2020-08-24 05:55:22 -07:00
Srinivas Girigowda
b100ced3c7 qcacmn: dp: Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF
Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF.

CRs-Fixed: 2760938
Change-Id: Ib7999b69f79a65a67e1d9f7e24a04b7a7da0aebf
2020-08-23 23:09:31 -07:00
Chaithanya Garrepalli
e81a22ce9b qcacmn: add null check in dp_peer_find_hash_find API
In cdp_soc_deinit peer hash table is freed to add
check to avoid NULL access from CDP APIs which may do
peer hash find

Change-Id: I47c4126c34bb64d43112a4f8e268da1a98f4124d
2020-08-22 18:12:27 -07:00
Ramanathan Choodamani
dae503e5a1 qcacmn: Add build flag for MSCS procedures (Data path)
This change will add a build flag support to MSCS wherein
the functions will be called based on the status of the flag
created. This flag will be enabled by default.

Change-Id: I1c234c710d3b37f534ed2df7b37343cbd65ab930
CRs-Fixed: 2757257
2020-08-22 16:01:07 -07:00
Yu Tian
dabf6e13ee qcacmn: Add RX frame pending check for WoW
Sometimes frames are queued to dp_rx_thread wait queue
during WoW suspend in progress. At this time dp_rx_thread
is in SUSPEND state and these frames can't deliver to Linux
Stack, for ICMP case, if no other frames come to wake up
system, ICMP timeout will happen. Add a RX suspend check
in WoW to avoid suspend when frame comes before WMI_WOW_ENABLE
sends to FW

Change-Id: I756d3127f75da8f0e6e303c1250c01ce0c6ac573
CRs-Fixed: 2756263
2020-08-21 14:48:05 -07:00