提交图

964 次代码提交

作者 SHA1 备注 提交日期
Himanshu Batra
ff8ee42eac qcacmn: Add API to get dp peer authorize state
Add API to get dp peer authorize state.
Also modify dp_tx_get_rbm_id_li to update rbm for IPA offload
scenario

Change-Id: I0f8cca4623a1c3b840f336aa6d67740951cb6700
2021-10-26 03:10:03 -07:00
Naga
85bfde2f0a Revert "qcacmn: Enable timer based low threshold interrupt"
This reverts commit Ia33b110337e610ab9b5d7a9cecb61f6952cd3379.

Change-Id: I07e2c8565b2aaa6cfd55b262d65ba0269a0a1d8a
2021-10-22 12:41:13 -07:00
Sai Rupesh Chevuru
ffb9ec5cae qcacmn: use appropriate MOD_ID while updating primary VDEV for a peer
In the case of MLO updating the mod id param,
where initial link is not the primary link.

Change-Id: I2fe21ffb2ebf3a081da7f07a4828d41f1bcea98e
2021-10-18 11:54:49 -07:00
Chaithanya Garrepalli
4c9b9c0ab0 qcacmn: fix compilation issue for WCN7850
Fix compilation issue for WCN7850

Change-Id: Iaf5bb6d320a2b639b20c7bc8edb0aa9c4c55a985
2021-10-15 17:54:22 -07:00
Rakesh Pillai
57e2c01e5e qcacmn: Peer id parsing changes for beryllium
Take care of the MLO peer bit indication to be
concatenated with peer_id to access the peer map
object.

Change-Id: Ia603a728101e83829a8906d1b847f42389e78ca6
CRs-Fixed: 3039326
2021-10-15 13:13:27 -07:00
Rakesh Pillai
32046ad850 qcacmn: Vdev attach changes for MLO
Add mld mac address info during datapath
vdev attach.

Change-Id: I0ea22025d19be82be0c56809871e8513c3ce7962
CRs-Fixed: 3039326
2021-10-15 13:13:17 -07:00
Jinwei Chen
5c85cfb5a0 qcacmn: cdp/dp peer change for MLO
cdp/dp peer change for MLO

Change-Id: I9b8eb741317a0dc7337aff7e773148892e531ba2
CRs-Fixed: 3031166
2021-10-15 13:13:12 -07:00
Chaithanya Garrepalli
3c3e5709ac qcacmn: Increse num TX rings for QCN9224
This change includes below
1) Changes needed to increase Tx rings to 4
2) Use WBM2SW4 ring for rx error in QCN9224
3) memset srng at alloc to avoid populating RBM_id
in per packet path and enable implicit RBM

Change-Id: Icbd5ac2378273b8f3c6adc41c611e29551fff22f
2021-10-13 13:12:19 -07:00
Naga
1648e13dbe qcacmn: Add HTT ring setup for monitor rings
Add HTT ring setup for monitor source and destination rings

CRs-Fixed: 3010856
Change-Id: Ice96ed938a25069fd60f07e2a4bebd9ad0184200
2021-10-12 02:29:29 -07:00
Naga
92ac36e016 qcacmn: Enable timer based low threshold interrupt
Enable timer based low threshold interrupt for waikiki monitor
tx/rx source rings

CRs-Fixed: 3010853
Change-Id: Ia33b110337e610ab9b5d7a9cecb61f6952cd3379
2021-10-12 02:29:23 -07:00
Naga
fa9b23b61f qcacmn: Enable monitor destination ring interrupt for waikiki
Enable monitor Tx/Rx ring interrupt for waikiki

CRs-Fixed: 3010851
Change-Id: I33537f7d4dbab700af7ccdb2ca511531fd3ade76
2021-10-12 02:29:17 -07:00
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
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
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
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
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
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
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
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
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
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
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
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
aloksing
b158abe417 qcacmn: API renaming for monitor module
Add prefix dp for all monitor APIs
Add mon_debug/mon_info/mon_err for logs

Change-Id: I71d49f6bcacd77f5695269817fed83337169227b
CRs-Fixed: 3006497
2021-08-12 05:32:47 -07:00
lihual
bde0001eed qcacmn: Fix a memory leak during soc attach
hif_ext_group and soc->intr_ctx[i].lro_ctx are allocated
but not free while fail to register parts of ext_group in
hif_register_ext_group, which cause memory leak. Fix is
to detach according resource before return.

Change-Id: I03ecc37437d09bf9275f128b1f2b320124a7df64
CRs-Fixed: 2988891
2021-08-11 15:50:50 -07:00
Jeevan Kukkalli
1665e7c8e5 qcacmn: Scan radio special vap stats support
-Add flag to inidicate special vap configuration
-Add frame type counters while processing tlv
 WIFIRX_MPDU_START_E
-Add function to update special vap rx stats
-Add dp pdev param to enable/disable special vap
 stats reset
-Add function to reset special vap stats
-Add fucntion to get special vap stats
-Add CDP function to retreive special vap stats

Change-Id: Ia5de6743e472dc86c9e66b9e789c909a57025e35
CRs-Fixed: 3005425
2021-08-07 11:31:43 -07:00
Jeevan Kukkalli
2536fbaf5c qcacmn: Add function to reset mon interrupt mask
Add function to reset monitor interrupt mask.

Change-Id: If40093cc87dc02432645ec687b00fe856894238d
CRs-Fixed: 3007273
2021-08-05 08:29:02 -07:00
Mohit Khanna
47a165fe8e qcacmn: Config edits for multiple TX rings in HMT
The following configurations are changed
- Change numer of WBM2SWRELEASE rings from 7 to 8
- Use configurable RBM value when enqueuing packets for TX. This is needed
since WBM release ring numbers do not have an easy mapping to RBM values
for HMT1.0.

Change-Id: Idcf9e48e00b7039331fc1837bb1e900b12f19eb3
CRs-Fixed: 2984362
2021-08-05 08:28:52 -07:00
Mohit Khanna
c75f9cc178 qcacmn: Support multiple TX rings in DP interrupt handler
In dp_service_srngs, the current logic assumes that WBM2SWRELEASE ring
number as obtained from interrupt_ctx->tx_mask matches the index of
soc->tx_comp[] array. However this may not be true, esp for HMT.
Add logic to fix the same.

Use a separate macro to enable use of single TX ring.

Change-Id: I1bee27b800ad4e4ab1a1fe5e2b01b5b43acfe1f7
CRs-Fixed: 2984362
2021-08-05 08:28:43 -07:00
aloksing
c60b9619a3 qcacmn: Conditionally compile monitor related features and issue fixes
PATCH[7/7]:
This patch consists following changes:
 -Conditionally compile all monitor destination ring related code
  Macro used QCA_MONITOR_PKT_SUPPORT
 -Add QCA_ENHANCED_STATS_SUPPORT macro to conditionally compile
  enhanced stats support
 -Use QCA_MCOPY_SUPPORT and QCA_TX_CAPTURE_SUPPORT macros
  to conditionally compile MCOPY and Tx capture features
  respectively
 -Use QCN_IE macro to conditionally compile BPR
  feature
 -Use QCA_ADVANCE_MON_FILTER_SUPPORT macro to conditionally
  compile advance monitor filter feature
 -Fix vdev attach issue for special and smart monitor vap
 -Fix status ring initialization issue.

Change-Id: I0deaa28a9a54bf34b0f41e6dd510fdd8d4992db2
CRs-Fixed: 2983780
2021-07-30 21:51:26 -07:00
aloksing
53fe7000ba qcacmn: Move monitor related fields from soc/pdev to mon_soc/mon_pdev
PATCH[6/7]:
This patch consists following changes:
 -Move monitor related pdev variables to struct dp_mon_pdev
 -Move monitor relted soc variables to struct dp_mon_soc
 -Move cookie to monitor link desc va to monitor file
 -Add APIs to access monitor related variables
 -Add dummy APIs to build without monitor support.

Change-Id: I032a480b1383d061f984cee3ba6b10ac7a0ff350
CRs-Fixed: 2983781
2021-07-30 21:51:21 -07:00
aloksing
c4796962ca qcacmn: Monitor vdev and peer attach/detach
PATCH[5/7]:
This patch consists following changes:
 -Monitor vdev context allocation while vdev attach and free
  while vdev delete
 -Monitor peer context allocation while peer create and free while
  peer delete
 -Move monitor vdev timer function to monitor file
 -Move monitor reap timer handler function to monitor file
 -Move monitor timer related variables to monitor file
 -Add timer init/deinit and start/stop in monitor file.

Change-Id: I9c7910671d3678c53ca9ec44a57bc10e892008d9
CRs-Fixed: 2983994
2021-07-30 21:51:16 -07:00
aloksing
e7cc727374 qcacmn: Move core monitor and monitor dependent feature func
PATCH[4/7]:
This patch consists following changes:
 - Move core monitor and monitor dependent feature functions
   to monitor file
 - Move enhanced stats functions from htt to monitor file
 - Move vdev set monitor mode rings function to monitor file
 - Create and initialize relevant funct ptrs
 - Initialize cdp monitor related ops.

Change-Id: Iac1ab43eb1c4b98bd21bbb8a5741ee53034da2f1
CRs-Fixed: 2984635
2021-07-30 21:51:12 -07:00
aloksing
f20f31dc10 qcacmn: Move cdp_mon_ops initialization to monitor file
PATCH[3/7]:
This patch consists following changes:
 -Move struct cdp_mon_ops to dp monitor file
 -Add new function for dp monitor soc cfg initialization
 -Move full monitor mode function to dp monitor file
 -Move vdev set monitor mode function to dp monitor file
 -Move config debug sniffer function to dp monitor file
 -Move set advance monitor filter function to dp monitor file
 -Set monitor delayed replenish entries for target types

Change-Id: If8dac4eedc0c8eb4e956df34c7c3adae8712c840
CRs-Fixed: 2983939
2021-07-30 21:51:07 -07:00
aloksing
420c5b3e6f qcacmn: monitor soc/pdev attach and detach
PATCH[2/7]:
This patch consists following changes:
  -Allocate monitor soc context and initialize monitor ops
   for pdev attach/detach and init/deinit functions.
  -Move monitor rings alloc/free/init/deinit to dp monitor file

Change-Id: I97c24f28cfdad10fa1c22e5978224db196bbdd74
CRs-Fixed: 2983970
2021-07-30 21:51:01 -07:00
Ananya Gupta
f2851b458b qcacmn: Affine rx_err srng to all CPUs except 0
IPA and rx_err ring are processed in same CPU resulting
in low Tput.
To fix this, not allow processing of rx_err ring in
CPU 0

Change-Id: Id53a03c9290607beb1a595c84bfb0fd8d9f5d105
CRs-Fixed: 2949569
2021-07-27 01:00:14 -07:00
Linux Build Service Account
c8b371848e Merge "qcacmn: Fix assert for flush rx ptk when vdev deleted" 2021-07-23 05:10:22 -07:00
Jianmin Zhu
8008ac5bac qcacmn: Fix assert for flush rx ptk when vdev deleted
When vdev deleted and interface down, there are pending pkts in nbuf
queue of dp rx thread in cornel cases, when flush cmd comes, even vdev
is not found by vdev id, rx stack callback isn't set to NULL, pkts are
still delivered to kernel stack, but rx queue is invalid now, assert
will happen when GRO flush happens.
Fix by setting rx stack callback as NULL when vdev isn't found by vdev
id.

Change-Id: Iad3b71dbc86563a4f8b5369474b2a901cdf8b325
CRs-Fixed: 2995694
2021-07-22 23:38:30 -07:00
Jianmin Zhu
9975a180cf qcacmn: Mark vdev as delete in process before rx flush
Mark vdev as delete in process after flush out the packets in rx thread
queue currently.
If rx packet received after flush and before mark vdev as delete in
process, the packet is enqueued into rx thread queue and not flushed after
vdev deleted physically and net interface down. After that, if flush
pkts after interface down, assert will happen.

Fix:
Mark vdev as delete in process before flush out the packets in the rx
thread queues.
If the vdev is marked as delete in progress, then the
packets received on that particular vdev should not be
enqueued to dp rx thread any more.

Change-Id: If651a9e97b8501efc26400079194570ba6407f13
CRs-Fixed: 2996534
2021-07-21 21:09:00 -07:00
Jia Ding
9304c2d00e qcacmn: Add support to calculate uplink delay
Add support to calculate uplink delay on a per vdev basis.
The delay calculated excludes bus delays, where packet
enqueueing time and complete time are fetched from HW release
ring.

Change-Id: I4bbcbf28b197f7a87cb822a841f1f957ebcf063b
CRs-Fixed: 2958833
2021-07-21 21:08:48 -07:00
Yeshwanth Sriram Guntuka
04f9725d81 qcacmn: Skip MSI cfg for monitor sts ring in MISSION mode
In MISSION mode, MSI address and data are still
configured for monitor status rings even though MCC
uses only polling mode for this ring.

Fix is to skip MSI configuration for monitor sts
ring in MISSION mode for MCC.

Change-Id: If295a5afc6731bbec1ad7182590e0015f3a911ba
CRs-Fixed: 2992167
2021-07-20 11:09:16 -07:00