Commit Graph

2744 Commits

Author SHA1 Message Date
Chaithanya Garrepalli
b733f89803 qcacmn: change RxDMA rings to DMAC mode for QCN9224
For Waikiki use same SW2RxDMA ring for both radios

Change-Id: I33ab1749afada08e97d0b16fe68773c2d5532a15
2021-10-11 08:06:37 -07:00
Chaithanya Garrepalli
60db195327 qcacmn: Change to route vdev_id exceptions to FW
Configure HW to route vdev_id mismatch exceptions
packets to FW.

Change-Id: I8baf4a2f299ddda253a9cd3c247054a0e546af23
2021-10-11 04:51:39 -07:00
Yu Tian
112813c1b7 qcacmn: Add API to get TX pending in WoW state
This change is used to provide an API for PMO module to
check whether there are pending TX frames before HOST sends
wake up indication to FW. PMO module uses this to indicate
FW whehter to discard HWDTIM.

Change-Id: Icc3271e87e376e3313fddc5f4f99e39daeaf6af7
CRs-Fixed: 3046947
2021-10-11 00:30:47 -07:00
Amit Mehta
76d60607f4 qcacmn: Ring History Display update
TP and HP values are assigned wrongly while
printing ring history. Fixing assignment.

Change-Id: I50ea90a3b49ab4d5459a3e0ddfa259f669764433
CRs-Fixed: 3051531
2021-10-08 08:17:32 -07:00
Harsh Kumar Bijlani
2cd98c7974 qcacmn: Restrict length of pdev backpressure event list
In current architecture, when host receives backpressure
event from FW, it prints pdev_id, ring_id, hp and tp values
for that ring in the tasklet context.
In same context, memory to hold the information of other
rings is allocate,  which then put into the list maintained
at pdev level and work is scheduled for printing this info.

In scenarios of heavy load, where the backpressure events
are continuously triggered, the list can grow to a bigger
one and printing of ring stats for all of these events can
be a heavy CPU hit.

As an optimization, restrict the depth of the list to 16
by checking the size of list when backpressure event is
received from FW. When list size reaches the max value (16),
then remove the entry from head and insert the new entry at tail.

Also in the worker thread, fetch only 1 entry from the list for
printing and schedule the work again if the list is not empty.

Change-Id: If4291b9d5ebee1e3d1eea80bbd0134faf090b2b8
CRs-Fixed: 3049635
2021-10-08 02:36:17 -07:00
Surabhi Vishnoi
449ae318e0 qcacmn: Add cdp api to update the packet capture mode
Add a CDP api to update the packet capture mode in dp_soc
when it get updated by user using vendor command.

Change-Id: Id0856aeeb5e1a77e1ce6fb23562fdbff4a2fb320
CRs-Fixed: 3048344
2021-10-06 02:07:05 -07:00
sandhu
18fe5c3f02 qcacmn: Add dp functionality to support stats sysfs
Add dp functionality to collect stats for sysfs buffer.
Add both host and fw stats.

Change-Id: I64f84804d36cccec9d701925d96cc7ee96943b7a
CRs-Fixed: 3035864
2021-10-05 02:51:27 -07:00
Pavankumar Nandeshwar
851b1f68c0 qcacmn: enable MEC support for Beryllium
The multicast echo check feature is moved to hardware in
Beryllium. Enable this hardware feature and also disable
the MEC handing code for Beryllium in the host.

Change-Id: I86d319963191f3ed77aba16dcccbc659906edd9f
2021-10-01 15:18:25 -07:00
Pavankumar Nandeshwar
6b1d142d98 qcacmn: Enable wds changes in Beryllium
wds in Beryllium is managed by hardware.
Make use of hardware managedwds and disable
the corresponding wds handling done in host
for Beryllium.

Change-Id: I39f23cb40c6c5f85ada8ce59c92ff2855bb18da3
2021-09-30 15:15:25 -07:00
Devender Kumar
8ee13b33da qcacmn: Add Sanity check for num_users in pktlog feature
When num_users is 0 and PKT_LOG feature is enabled,
it can cause out of bound access
to avoid this add a sanity check for num_users

Change-Id: I33401d2e6a139f9fc6db145c588e08547afdd2ba
2021-09-25 11:36:09 -07:00
Pavankumar Nandeshwar
26c6cd1397 qcacmn: Enable intra-bss in Waikiki
In Beryllium the HW does the ast lookup and match
and sets the intra-bss bit in the msdu_desc_info
structure of reo_destination ring and WBM Rx release ring.

So, change the Beryllium code to make use of this
hardware assistance for intra-bss.

Change-Id: Ic7c89efc741fefe35603082309204fbe3c9a97c7
2021-09-24 18:28:07 -07:00
Jeevan Kukkalli
4ac551c7ef qcacmn: Set log level to info
Log level was accidentally bumped up during monitor legoization
change hence reducing log level to info to avoid unnecessary
prints on console.

Change-Id: I338632b98beb2a1f832f9e066109a2ac71a63749
CRs-Fixed: 3039441
2021-09-24 18:27:53 -07:00
Harsh Kumar Bijlani
87edde8b30 qcacmn: Do not populate meta_hdr on Tx completion path for mesh mode
Do not populate the struct meta_hdr_s into for buffers received on
Tx completion path when operating in mesh mode.

Also update the fields in tx_capture_hdr as per the new definition.

Change-Id: I6150b4ce891ca73d5ed7c7620568606c377223c6
2021-09-22 00:57:22 -07:00
Chaithanya Garrepalli
9165949820 qcacmn: Enable Tx implict RBM mapping for Waikiki
Changes to enable Tx implicit RBM mapping support
for Waikiki

Change-Id: I4c30c34a250f6fb028c64741745fb5a3e6733ee3
2021-09-21 01:56:39 -07:00
Amit Mehta
cfa44c7843 qcacmn: init mon_intr_id_lmac_map in interrupt mode
Currently mon_intr_id_lmac_map is set only in poll mode
Which is only in Global Monitor mode.
In case of dynamic switch from STA to Monitor Mode
This can cause issue while removing monitor mode

Initialize mon_intr_id_lmac_map in interrupt mode also
and add sanity check for mon_intr_id_lmac_map value in
monitor ring flush.

Change-Id: Ic7dae948078661e376541b30aa70e4e12ca9d24f
CRs-Fixed: 3037952
2021-09-17 16:53:40 -07:00
Harsh Kumar Bijlani
6f20be8754 qcacmn: Add string for RXDMA Monitor Destination Ring
Ring name for RXDMA Monitor Desination Ring is missing which
results in printing Invalid Ring in backpressure prints output.

Add string name for same.

Change-Id: I02848d296bd08aa2ac9dda767e0db1475012a162
2021-09-17 08:45:32 -07:00
Yu Tian
9fa8dd3bc3 qcacmn: Correct pkt length check for scatter frame rx
When a scattered frame is received, msdu length caclulation
is incorrect, this leads to while loop can't break. At last
skb, null pointer dereference happned. Change is aimed to
correct the length caclulation.

Change-Id: Ifb316f004ea5829b1130ce4c0fc9253134e26713
CRs-Fixed: 3025973
2021-09-17 03:40:58 -07:00
Linux Build Service Account
e65d0f5ed1 Merge "qcacmn: Disable monitor peer attach when feature is disabled" 2021-09-16 12:10:28 -07:00
Rakesh Pillai
157f4c7c51 qcacmn: Disable monitor peer attach when feature is disabled
Currently there is an attempt to allocate monitor
peer even when the feature is disabled, thereby leading
to an attempt to allocate 0 bytes. the failure in this
allocation propagates back and prints an error message
which can be misleading.

Disable monitor peer attach when the below feature is disabled.
- WLAN_TX_PKT_CAPTURE_ENH
- FEATURE_PERPKT_INFO

Change-Id: Ifc6ba1421da0f569971fafa530bbcd3dbaa16b87
CRs-Fixed: 3036720
2021-09-16 08:28:39 -07:00
Chaithanya Garrepalli
4fa2c22c80 qcacmn: Add ini param for reo dest ring
Add ini param for reo destination ring size and
cleanup usage of emulation macro

Change-Id: I6e8e0c2d8f57469289eccd3c12c07f3bf6b47c04
2021-09-16 05:09:44 -07:00
Chaithanya Garrepalli
acbec267ec qcacmn: disable addr_x and addr_y flags for STA mode
For STA mode when index based search is used ADDR_X
flag need to be disabled. This is needed to generate
HW mec notify events to FW

Change-Id: Ib074c474f6e06accf09adeb53b3a1f85e30d4076
2021-09-15 13:02:05 -07:00
Chaithanya Garrepalli
95e96be744 qcacmn: Add hal_soc NULL check before call arch soc init
Call dp_soc_init_be only when hal_soc is initialized

Change-Id: I75b94f23074862fb3e711daee951498c86586461
2021-09-15 00:49:22 -07:00
Vivek
307546f6f9 qcacmn: Add dependent macros for dp_rx_update_protocol_tag
The function dp_rx_update_protocol_tag is called from
dp_rx_mon_update_protocol_flow_tag which is enabled when either
WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG or WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
is enabled.

However the prototype and definition is enabled only when
WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG is enabled.

So adding the dependent macro to the prototype and definition
of dp_rx_update_protocol_tag

Change-Id: Ic1120b77d527dc8ceeb981bb6516816e4658bdcb
CRs-Fixed: 3022319
2021-09-14 02:33:30 -07:00
Yeshwanth Sriram Guntuka
ccb6664db1 qcacmn: Dump flow pool stats as part of periodic stats display
Dump flow pool stats even for low verbosity level as
part of periodic stats display.

Change-Id: Iea59d20b0a81cfd0bfdac65ad54a11fa33f30f2f
CRs-Fixed: 3031168
2021-09-13 13:04:58 -07:00
aloksing
2f1aa9829a qcacmn: Fix continuous print on console
"Invalid peer id" prints are flooding the AP console
Adding log level as fatal to avoid these prints.

Change-Id: I773476542018389035996e45ea2f7c4cf296e9fd
2021-09-08 17:09:08 -07:00
Harsh Kumar Bijlani
a7e391e49f qcacmn: Remove WDI event WDI_EVENT_UPDATE_DP_STATS from per pkt path
WDI event WDI_EVENT_UPDATE_DP_STATS is triggered for updation of peer
stats from both per packet and monitor path wherein per packet path is
applicable for MCC and monitor path is applicable for WIN.

Trigger for this event is flag protected under the macros
FEATURE_PERPKT_INFO and WDI_EVENT_ENABLE.

FEATURE_PERPKT_INFO is not defined for MCC.
With this, WDI event in per packet path is not triggered and hence unused.
Make changes to remove the unused code.

Change-Id: Ibcb0948b0ecae313270b6a173e243b2f27f1bbee
2021-09-08 14:55:32 -07:00
Karthik Kantamneni
663626d52d qcacmn: Skip updating OOR/2K jump BAR frames to H.W
Currently error BAR frames are routed to host, but host
doesn't have complete information to check whether these
frames are valid and really action need to be taken or not.
If host updates H.W without validating SSN it is causing
window movement and REO HW aging timeout happening for
next set of RX packets and delay is induced.

To avoid RX packets delay skipping BAR update to H.W

Change-Id: I92c1614993b6985218a453fe528fbd274fab254f
CRs-Fixed: 2995461
2021-09-08 00:19:34 -07:00
Shiva Sankar Gajula
dcbdb29d04 qcacmn: Register separate function pointer to receive EAPOL frames
Add changes to register separate function pointer to receive EAPOL
frames instead of using regular RX path and adding export symbol
for __qdf_nbuf_data_get_eapol_subtype() to access in it multiple
modules

Change-Id: Id05b982d31a7e008536d10dd5281e88cceba96db
2021-09-07 07:59:06 -07:00
Jeevan Kukkalli
4de1557d99 qcacmn: Release vdev ref in error cases
Release vdev reference in error cases while
collecting scan radio special vap stats

Change-Id: I030105f62fa8bb67c34c49950012f0e1dbf613a0
CRs-Fixed: 3025050
2021-09-06 09:32:48 -07:00
Harsh Kumar Bijlani
f366355211 qcacmn: Correct the HTT config parameters for Pine full monitor mode
For Pine full monitor configuration to FW, HTT config parameters are
incorrect. Make change to use correct config parameters.

Change-Id: I964c8a28cea36b4e1e93c106540412c8cbfc7f29
CRs-Fixed: 3029362
2021-09-04 07:58:08 -07:00
Surabhi Vishnoi
91674a4b07 qcacmn: Add support to parse HTT_PPDU_STATS_FOR_SMU_TLV
Firmware sends some ppdu stats required for packet capture
mode in new ppdu stats tlv HTT_PPDU_STATS_FOR_SMU_TLV.
Add code to parse it if feature is enabled via ini and
send the ppdu stats using wdi event to packet capture
component.

Change-Id: I5567007a91093dd342f37458760b3a61c040b779
CRs-Fixed: 3004476
2021-09-03 08:45:17 -07:00
Surabhi Vishnoi
9aaf9e8110 qcacmn: Remove rx packet capture events processing if feature is disabled
Currently, rx packet capture events processing happens even
when feature is disabled by ini. This incurs per packet overhead
in rx path.

The fix is to move all the processing from rx path to packet capture mode
component. Send only wdi event from rx path, when feature is enabled by
ini.

Change-Id: I647256b85117cd3373950c78a5a0ae7d6710e4e2
CRs-Fixed: 2969123
2021-09-03 03:25:02 -07:00
Karthik Kantamneni
48b496eabd qcacmn: Conditionally update BAR frame info to H.W
Host updates BAR info to H.W when out of order or 2K jump
BAR frame is received. But some AP's frequently transmitting
out of order BAR frames even before reception of all the
frames in the current window, if station updates window
and SSN based on BAR frame, RX frames sequence number in
older window range which are yet to be received suffers
REO aging timeout and causes RX packet delay to avoid
this skipping BAR update to H.W conditionally.

Change-Id: If56571ffc0dc0880d7104ea3bb193ed9766124dd
CRs-Fixed: 3015643
2021-09-02 12:16:58 -07:00
aloksing
ca013a2078 qcacmn: Add enhanced stats flag
Add enhanced stat flag in dp pdev to make independent of monitor ko

Change-Id: I6da989db54829e28ce680fc9671eb9b866e4b2b1
CRs-Fixed: 3020454
2021-08-31 05:39:42 -07:00
Rakesh Pillai
ffb8752cf3 qcacmn: Print TXBF related stats
Add support to print the TXBF related FW stats

Change-Id: Ib3e2ac04df114d588a66fdf5e30b2a0cfdffcc8f
CRs-Fixed: 3001216
2021-08-31 03:26:28 -07:00
Amir Patel
437f0113c8 qcacmn: Use atomic variant mem alloc API while in ndo_get_stats
When kernel calls driver callback to get stats, dev_get_stats()->
ndo_get_stats64() .Host driver allocates memory using
kmalloc (size, GFP_KERNEL) routine,
but as ndo_get_stats is under RCU lock but not in interrupt
context(in_irq = 0, in_interrupt = 0, irq_disable = 1),
qdf_mem_malloc () uses ‘GFP_KERNEL’ to allocate memory,
leading to backtrace.
As per kernel doc
(https://www.kernel.org/doc/Documentation/networking/statistics.rst),
while in ndo_get_stats64 () API, driver should not calling a routing
which can sleep. Use atomic variant of qdf_mem_malloc() to fix this.

Change-Id: I3585b93d227a36b4b01c9c4f72d878c6cdb44cd4
CRs-Fixed:3020603
2021-08-30 02:57:31 -07:00
Shivani Soni
d06d841dc6 qcacmn: Add support for VOW Reo and Rxdma error statistics
Support for Rx REO and Rxdma error statistics for version 3

Change-Id: I2a558f62d6d7b66658bb064810d0ea13528d9a28
2021-08-29 00:54:41 -07:00
chunquan
14d9d6d697 qcacmn: Support configure IPA tx alt ring and tx ring separately
Add support configure ipa tx ring and tx completion ring for
2.4G and/or 5G separately.

Change-Id: Iafb8fa589ff0cce15609a3dfa2209364291d7cef
CRs-Fixed: 2996604
2021-08-24 11:02:09 -07:00
nobelj
050c08476e qcacmn: Add support to capture delayed ba in SU
add support for delayed block ack for SU frame type

Change-Id: Ia99aebcd84a2ccd3d4139b3ada0a68e010e093c9
2021-08-23 19:09:25 -07:00
Ananya Gupta
13bc719612 qcacmn: Fix QDF status for no phy level ack
Use QDF_TX_RX_STATUS_NO_ACK when phy level ack is not
received for packet.

Change-Id: Ic518dd0a9caee7197e9f11cb8b85773f4622fe36
CRs-Fixed: 3018626
2021-08-23 19:09:12 -07:00
aloksing
00832d6f5b qcacmn: fix mvdev NULL issue
set mvdev to null only if mvdev is pointing to vdev
for which monitor vdev detach is called.

Change-Id: I5c82db4e8ea192636a8c322c36f55a5574f9dcee
CRs-Fixed: 3015003
2021-08-23 13:26:31 -07:00
aloksing
a4d289451e qcacmn: Fix pktlog compilation error
Fix compilation error when pktlog feature is disabled

Change-Id: I2bf51c8a994e5b01ba83c21e5b5b4d1f02c10615
2021-08-21 09:58:04 -07:00
Mohit Khanna
af4c03b546 qcacmn: Reserve a TX bank for FW usage
FW has some usecases when it needs to enqueue frames into hardware. In
BE WLAN chips, some hardware TX desc fields are moved into Tx
banks, hence a TX bank is also needed to queue to HW.

Dedicate a bank for FW usage.

Change-Id: I1f19f0ef85aff4c7592b0f07de4631259da743a6
CRs-Fixed: 3016828
2021-08-19 07:07:04 -07:00
Neha Bisht
942476d37d qcacmn: Fill peer Tx/Rx statistics from ppdu
Fill peer level statistics such as nss, mcs, etc. from ppdu descriptor

Change-Id: Ibc348b7fa1b6438adc06de74aeff36c882519a80
2021-08-18 21:04:11 -07:00
Pavankumar Nandeshwar
2228afc5b4 qcacmn: Enable HW cookie conversion feature
Enable Hardware cookie conversion feature

Change-Id: I75299384ad7b795160b9cf04768326c74401b1ba
2021-08-16 23:14:14 -07:00
Chaithanya Garrepalli
81de2fc14d qcacmn: disable monitor rings for QCN9224
Add dedicated monitor flag at SOC level and do not
enable legacy monitor rings for QCN9224
Also add flag to disable rxdma2sw ring for QCN9224.

Change-Id: I399d22d6c3361bb75ebaad4e46b156db5e628d6b
2021-08-15 09:01:31 -07:00
Jeevan Kukkalli
8fd6fe32e8 qcacmn: Conditionally compile scan radio special vap stats
Conditionally compile scan radio special vap stats.
Also rename spcl_vap to scan_spcl_vap to better reflect
funtionality.

Change-Id: I7d7f636209f6aa12cca0a3e808d7ae1fac9f397d
CRs-Fixed: 3009837
2021-08-15 01:53:08 -07:00
Vevek Venkatesan
6a3c9eaa85 qcacmn: add CDP interface support for pkt_log_exit
Add CDP interface API support for pkt_log_exit,
to cleanup pkt_log_init on failure.

Change-Id: Ib50efaed5997d341d3e76c2e1dbe42856df40191
CRs-Fixed: 3012201
2021-08-14 23:07:04 -07:00
Chaithanya Garrepalli
627c3c7ec3 qcacmn: Changes needed for E1.5 release
Below are the changes in HW headers for E1.5
1) WBM2SW release source enum changed back to lithium values
2) DSCP to tid table num is added in Bank register
3) MCAST ctrl value is moved from Bank to seperate register

Change-Id: I342c451d792b1618dcb62ca9d4c77dcf4d4beeac
2021-08-13 12:04:28 -07:00
Chaithanya Garrepalli
0702aaf463 qcacmn: initialize PPE rings
Changes to initialize PPE rings based on ini
configuration

Change-Id: Id6a26b557c45fd78ae17675b0292424e979958ad
2021-08-13 12:04:22 -07:00