Commit Graph

2503 Commits

Author SHA1 Message Date
Sai Rupesh Chevuru
ea5aa01827 qcacmn: Fix for crash observed in E2E FTM mode during Tx
Fix for crash observed in E2E FTM mode during Tx.
Change-Id: Ib7d1723b0887f1abfbf4bdb564bbdf1c5d4acc7e
2021-11-02 00:15:33 -07:00
sandhu
88ff3516d7 qcacmn: Make changes to support fisa flow deletion
Add fisa deletion support by invalidating the fisa
DDR entry when adding a new entry.

Change-Id: I02189e22e09ca0ef5e1fdb5952c7e72cd87d3673
CRs-Fixed: 2954060
2021-10-29 12:03:50 -07:00
Amit Mehta
9cf3f44770 qcacmn: Update MPDU retries in case of successful transmission
In case of successful transmission If MPDU tx
is retried more than the threshold then
increment MPDU retry count by transmit_cnt / threshold

Change-Id: Idbc7e2d0579ff68e272132fe4ffe9f951c4aacf5
CRs-Fixed: 3058464
2021-10-29 10:23:17 -07:00
Pavankumar Nandeshwar
146d67af95 qcacmn: Avoid using ast_entry in intra_bss handling
Avoid using ast_entry in intra_bss handling, instead use
da_peer_id directly from the msdu_metadata

Change-Id: Ic586f297e8e393504d7d399cff7a67c3035aa11f
2021-10-29 07:25:10 -07:00
Jinwei Chen
b521830197 qcacmn: get sw_exception from reo dest ring descriptor
sw_exception bit will be marked in reo dest ring descriptor for
FW re-injected frame, get this bit and save it in skb->cb,
this bit value can be used for FISA further check.
there is no reo_dest_indication field in reo dest ring on beryllium,
so share same cb member for sw_exception and reo_dest_indication.

Change-Id: I2321121be7dda68ed19faca177d868c7e8ba1dbf
CRs-Fixed: 3056156
2021-10-28 10:21:20 -07:00
Ananya Gupta
122bc19864 qcacmn: Fix REO reinjection path in hamilton DP
Add HAL APIs to fix REO reinjection path in hamilton DP

Change-Id: I73c6ec0aeb2f6d4bc72b366e22e9bc826f852426
CRs-Fixed: 3058549
2021-10-27 07:05:06 -07:00
Amir Patel
6d6881fff4 qcacmn: Fix compilation issues from monitor mode
Fix compilation issues from monitor mode

Change-Id: If687dd91bbf29d2bb7d30546e6c1e332cc97d220
2021-10-27 05:34:17 -07:00
Jianmin Zhu
fb1db30308 qcacmn: Fix wrong rssi in monitor mode
If ppdu rssi unit is dbm, need convert to db for API:
qdf_nbuf_update_radiotap, only need convert once for first mdpu in the
ppdu. if convert for each mpdu, wrong rssi will be saved.

Change-Id: I85e92121ddb289e3513022ff092083825197efb4
CRs-Fixed: 3057041
2021-10-27 02:36:07 -07:00
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
Tallapragada Kalyan
5026c5a3d3 qcacmn: Add nbuf and nbuf->data prefetch in Lithium RX
Adding a nbuf and nbuf->data prefetches in 2nd loop
of Lithium datapath RX improved UDP throughput by
about 250Mbps.
PINE default driver: 3189Mbps @ 100% core-3
PINE with prefetch:  3469Mbps @ 100% core-3

Note: PINE reo ring is mapped to core-3.
Change-Id: I7f166b52c3697facdce3954994755c9c1412c1f3
2021-10-25 07:47:11 -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
Rakesh Pillai
c634e23cf7 qcacmn: Fix the parsing of current pn in REO error path
The current PN is a 128-bit field which was incorrectly
stored into a 64-bit variable, leading to stack corruption.

Fix this by increasing the size of the variable
for current PN to 128-bits.

Change-Id: Ib26cc0bb7d244360afb258a55d5b9a8ddd6aa4ca
CRs-Fixed: 3059345
2021-10-22 03:04:53 -07:00
Naga
3e3c3c8df3 qcacmn: Fix to disable full monitor mode
Fix to disable full monitor mode.

CRs-Fixed: 3057668
Change-Id: I43238db8bf29ab3c7c24d8e5bea537cbd28da896
2021-10-21 22:07:57 -07:00
aloksing
2674d65536 qcacmn: Add tx capture timer stop flag
Add stop timer flag to avoid resubmission of tx capture work queue timer
while del_tiimer_sync.

CRs-Fixed: 3056656
Change-Id: I72bfb6916f02297b15bb733359c0e4d7f91f0b73
2021-10-21 08:55:47 -07:00
Sai Rupesh Chevuru
ba3f9c04c8 qcacmn: Update TID value in skb priority from the MPDU buffer
Update TID value in skb priority from the MPDU buffer.

Change-Id: I707190f0c3095b4c47bd4b3cffd4a94f5952939c
CRs-Fixed: 3037067
2021-10-21 02:33:44 -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
2069fa6cdd qcacmn: Handle htt peer map/unmap v3
Add the handler for processing the htt
peer map/unamp v3 and MLO peer map/unmap msgs.

Change-Id: Ie2ab0b76e7aee566ca3b9637b83fd7a14718ab01
CRs-Fixed: 3039326
2021-10-15 13:13:22 -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
Naga
8020841ce4 qcacmn: Add sanity check for monitor pdev
Add sanity check for monitor pdev while enabling
enhanced stats.

Change-Id: Icd1a2e7daf57d32d85d7c5ad5e11f0d6ea2456ee
CRs-Fixed: 3055767
2021-10-14 03:34:55 -07:00
sandhu
3de5365a37 qcacmn: Fix hamilton whunt compilation issue
Change-Id: I0ac3ab0530cfb645c0eef81aafc9d1ef6a35c776
CRs-Fixed: 3052592
2021-10-14 01:16:02 -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
Rakesh Pillai
e7c9776900 qcacmn: Fix the mask for tx completion near full irq
Currently the IRQ mask for tx completion near full
interrupt is not in sync with the tx completion rings
which are enabled for WCN7850.

Fix the mask for tx completion near full interrupt.

Change-Id: I1432191b260094060873406d48e04fde5b7bc35e
CRs-Fixed: 3052650
2021-10-12 04:52:16 -07:00
Naga
c46ec16889 qcacmn: Add change to modify if to ifdef
Add change to modify if to ifdef

Change-Id: I49e3841deb4168cbbc4e0a4f045413717aa97d2a
CRs-Fixed: 3050747
2021-10-12 02:29:35 -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
Naga
df329ebb84 qcacmn: Allocate and Initialize monitor rings
Allocate tx/rx monitor destination rings for waikiki

CRs-Fixed: 3010845
Change-Id: I1c6950188e2693cab648679d34d6731db53978f9
2021-10-12 02:29:11 -07:00
Naga
e1a6f926ed qcacmn: Add new HTT msg support for BE
- Add support htt msg for HTT_H2T_MSG_TYPE_TX_RING_SELECTION_CFG
  msg configuration
- Add support for configurable length dma
  per packet type for rx monitor.
- Add support for wordmask subscription for rx monitor.
- Add support for per packet msdu/mpdu logging config.
- Add support for tx monitor tlv subscription.
- Dummy APIs for 2.0 filter configuration

Change-Id: I36b18c03eff452537c2f051b24275b81ab98ebae
CRs-Fixed: 2991330
2021-10-12 02:29:05 -07:00
Naga
5475a38feb qcacmn: Add support for BE monitor buf processing
Add support for BE monitor buffer processing

Change-Id: I2b7563e7a2c4d7e091ed093774b4f24047791708
CRs-Fixed: 3010502
2021-10-12 02:28:53 -07:00
Naga
69bd3e218f qcacmn: Add buffer mgmt support for BE monitor
Add support to allocate, free and replenish
rx and tx monitor buffers.

Change-Id: I9e59f4466740c0cf29a02711b6a112715e0224ab
CRs-Fixed: 3010486
2021-10-12 02:28:48 -07:00
Naga
9d6b212c7a qcacmn: Add sw desc pool support for BE monitor
Add APIs to allocate, free, init and deinit
sw descriptor pool for rx and tx monitor.

Change-Id: I03287cf3c590ace91825f16a7b0c5752c04fc8ed
CRs-Fixed: 3010468
2021-10-12 02:28:41 -07:00
Naga
84c4158c87 qcacmn: Add support for BE Monitor soc attach
- Change to allocate BE specific monitor soc
- Allocate, initialize soc and pdev level monitor rings
- HTT srng setup for source ring
- Dummy APIs to allocate, initialize sw desc pool

Change-Id: Icf90994e7bd76017cf3c83ae00449d839967321d
CRs-Fixed: 2991298
2021-10-12 02:28:36 -07:00
Naga
db1a6c8418 qcacmn: Add new data structures and ops for BE monitor
- New data structures are added for BE monitor support
  - dp_mon_soc_be  - to maintain soc level BE specific fields
  - dp_mon_pdev_be - to maintain pdev BE specific fields
  - dp_mon_desc_pool - to maintain descriptor pool
- Monitor ops are updated for 2.0 and corresponding dummy APIs
  are added.
- dp_mon_filter_srng_type is enhanced for TxMON

Change-Id: I12a2fbc53e4eecc7a191b7aa925431298d0a9f54
CRs-Fixed: 2991276
2021-10-12 02:28:30 -07:00
Naga
3289db4279 qcacmn: Monitor code segregation
- Features common to both Li and BE and
  their APIs are retained files at dp/wifi3.0/monitor.
- New monitor ops are introduced if there
  is a requirement for divergence of API.
- Diverged API definitions for 1.0 are captured
  in this change.

All of code in below files are moved to 1.0
- dp_rx_mon_dest.c -> 1.0/dp_rx_mon_dest_1.0.c
- dp_rx_mon_status -> 1.0/dp_rx_mon_status_1.0.c

Only Li and HMT specific are moved for below file
- dp_mon_filter.c -> 1.0/dp_mon_filter_1.0.c
- dp_mon.c -> 1.0/dp_mon_1.0.c

Change-Id: I44d163b27565b86068d80e1d97ec11d0b4a081d4
CRs-Fixed: 2991248
2021-10-12 02:28:25 -07:00
Naga
cca6b74fe7 qcacmn: Add new directory structure for Monitor
- dp/wifi.3.0/monitor/ => directory for monitor specific code
  - dp_rx_mon.c: status TLV procesing + packet buffer processing
  - dp_rx_mon.h: Rx monitor header file common for Li and Be
  - dp_mon_filter.c: Monitor filter configuration
  - dp_mon_filter.h: Monitor filter header file common for Li and BE

  - 1.0/ => directory for Lithium specific handling
    - dp_rx_mon_1.0.h: Rx Monitor specific header file
    - dp_rx_mon_dest_1.0.c: Packet buffer processing
    - dp_rx_mon_status_1.0.c: status TLV processing
    - dp_mon_filter_1.0.c: Rx Filter configuration
    - dp_mon_filter_1.0.h: Rx Filter configuration header
    - dp_mon_1_0.h - Li specific monitor ops
    - dp_mon_1_0.c - Li monitor ops handling

  - 2.0/ => directory for BE specific handling
    - dp_rx_mon_2.0.h: Rx Monitor specific header file
    - dp_rx_mon_2.0.c: Packet buffer processing
    - dp_rx_mon_status_2.0.c: status TLV processing
    - dp_tx_mon_2.0.h: Tx Monitor specific header file
    - dp_tx_mon_2.0.c: Packet buffer processing
    - dp_tx_mon_status_2.0.c: status TLV processing
    - dp_mon_filter_2.0.c: Rx and Tx Filter configuration
    - dp_mon_filter_2.0.h: Filter configuration specific header
    - dp_mon_2.0.h: BE specific monitor ops and defs header file
    - dp_mon_2.0.c: BE specific monitor ops handling

Change-Id: I74b5408460b5f2f4b31f73947b55d97dfe3b971e
CRs-Fixed: 2991215
2021-10-12 02:28:19 -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
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