Commit Graph

773 次程式碼提交

作者 SHA1 備註 提交日期
Pavankumar Nandeshwar
a2ddd8956b qcacmn: Retain ds ring indices across wifi restart
Retain ds ring indices across wifi restart to avoid
edma hang. Fetch the indices from ds module and set
the corresponding ds ring indices.

Change-Id: Ia299a7006166aef096c7d2c1f65f6bef65415a37
CRs-Fixed: 3332152
2022-11-25 00:08:26 -08:00
Amir Patel
af0472aa08 qcacmn: Update PPDU drop counter
Update PPDU drop counter from monitor ring

CRs-Fixed: 3341905
Change-Id: I63f5b4d6a3e1e0155cf0558bea18704df073e2a9
2022-11-23 21:52:03 -08:00
Mohammed Ahmed
2f2d0e141c qcacmn: Add break in case statement
Case statement is missing a break between cases.

Change-Id: Iedba605d2fdd0f111730bc2f9f02bb89bdb6c834
CRs-Fixed: 3343781
2022-11-22 18:45:12 -08:00
Jia Ding
160d6306ea qcacmn: Correct rx_msdu_end_tlv and rx_mpdu_start_tlv len
With CONFIG_NO_TLV_TAGS=n, seeing below values showing in dump.
sizeof(struct rx_msdu_end_tlv) = 136
sizeof(struct rx_mpdu_start_tlv) = 128

Indeed these values match current comments for CONFIG_NO_TLV_TAGS=y.

Therefore correct the comments for rx_msdu_end_tlv and
rx_mpdu_start_tlv length for better readability.

Change-Id: I655f8fb9df09f5f7bb63f4bb2e3f297725354fbe
CRs-Fixed: 3340399
2022-11-22 10:22:20 -08:00
Linux Build Service Account
aba8eb07d0 Merge "qcacmn: Avoid read access to IPA TX doorbell address" 2022-11-20 06:53:45 -08:00
Jia Ding
a606a71b1e qcacmn: Avoid read access to IPA TX doorbell address
Below signature is seen on sdxpinn when HOST reads IPA TX
doorbell address, which leads to HLOS crash.

Internal error: synchronous external abort: 96000010

Indeed IPA TX doorbell address is write-only. Behaviors
on such read access violation is arch-dependent. On
certains platforms, such violation is ignored but read
returns 0.

Hence remove the read access to IPA TX doorbell address
in hal_srng_dst_init_hp() to avoid arch-dependent
behavior.

Change-Id: I3486cd81741922e697e2b3d307db3209b710aa6a
CRs-Fixed: 3339302
2022-11-19 21:55:01 -08:00
Kai Chen
9cb6199f70 qcacmn: Add EHT debug counter on PPDU
Add debug count to count PPDU based on UL/DL and type compression
mode

Change-Id: I2b320e6562d309cc0a178a137162ab0499c81e58
CRs-Fixed: 3326278
2022-11-17 08:09:23 -08:00
Kai Chen
83521665e6 qcacmn: Add debug counter for monitor mode
Add debug count for count MPDU received based on preamble type,
reception type, UL/DL and user for max 4 user for MU monitor
mode

Change-Id: I87f1553e1f2f8276501366a825d629cf051d8a80
CRs-Fixed: 3326272
2022-11-14 16:20:25 -08:00
Yeshwanth Sriram Guntuka
9b059a3bc0 qcacmn: Add support for getting CE srng info for Direct Link
Add support to fetch CE srng information used for
direct link datapath.

Change-Id: If38b892b28eba711d7949fa02926205dc601a50e
CRs-Fixed: 3317501
2022-11-12 03:11:01 -08:00
Yeshwanth Sriram Guntuka
e228622034 qcacmn: Add support to configure MSI registers for Direct Link CE
The MSI address and data information for Direct Link
copy engines will be available once the WiFi driver
on LPASS is initialized. Add support to configure the
IPCC address and data values into Direct Link copy
engines at runtime.

Change-Id: I5e7dff90c2f1ff764462c235deb5795ed019a16b
CRs-Fixed: 3316679
2022-11-12 03:10:53 -08:00
Yeshwanth Sriram Guntuka
99615e170d qcacmn: Add support for Direct Link refill ring
Add support and ops for initialization and
deinitialization of Direct Link refill ring.

Change-Id: I2c7018c4f8411fb7a590cfbb8b991f9152b22397
CRs-Fixed: 3316656
2022-11-12 01:23:24 -08:00
Sai Rupesh Chevuru
7768a45743 qcacmn: Debug enhancement for rx packet tlvs
Dump all the tlvs when WORD_BASED_TLV is disabled.

Change-Id: I2615474c905417986fa8b43005db5c8e48039d0a
CRs-Fixed: 3324208
2022-11-09 02:03:13 -08:00
Nanda Krishnan
72592f40f8 qcacmn: Updating the correct vdev_id for multivap
When Multivaps are configured in a radio, the vdev_id's are
not updated as expected.
With the changes, the vdev_id are properly updated in the registers

Change-Id: I7d987e96bd0f8a91f13025fa6975415ea235ce12
CRs-Fixed: 3318563
2022-11-07 13:10:24 -08:00
Ripan Deuri
11ccd80f56 qcacmn: Add HAL APIs to read tsf2 and tqm scratch register
Add support to read TSF2 and TQM scratch regitser in the HAL layer
for WKK v1 and v2 board.

Change-Id: I0ef5e8cf4e06c0b5c98169252a81f70989285d2d
CRs-Fixed: 3321782
2022-10-31 13:38:15 -07:00
Sreeramya Soratkal
a8f77e6e3f qcacmn: Assign appropriate RBM id corresponding to the chip
For Multi chip configuration, assign appropriate value for
Return Buffer Manager(RBM) idle link descriptors based on chip_id.

CRs-Fixed: 3314584
Change-Id: I1a2f9a09b04960aff01b4ec625110e0619a9850b
2022-10-28 01:52:34 -07:00
Rakesh Pillai
f533809136 qcacmn: Drop mpdus received on non-monitor PMAC
Currently the monitor mode filter settings are set
for both the PMAC. Hence it is possible that the
non-monitor PMAC (the PMAC on which monitor vdev
is not running), can receive packets and forward them
to the monitor destination ring.

The above scenario will lead to a ppdu_id mismatch
when reaping the monitor status ring and comparing
the ppdu_id in status ring with the one in monitor
destination ring, since monitor status ring will
have ppdu_id from the PMAC on which monitor vdev is
running, whereas monitor destination ring will have
packets from both the PMAC.

In order to mitigate the above issue, detect the
packets in the monitor destination ring, which are
not from the PMAC where monitor vdev is running, and
drop them.

Change-Id: I32392ceeadffd9cb7a4dd76336004a9dcbb99404
CRs-Fixed: 3318036
2022-10-27 21:11:35 -07:00
Subrat Mishra
92fc6fa7c1 qcacmn: Add control frame stats accounting support
Add control frame stats accounting support.
Accumulate both per peer BAR and NDPA counts in Tx and Rx per PPDU stats
path. Accumulate per peer RTS success and failure count only in per PPDU
Tx stats path.

Change-Id: I78fb3546cd831559e208a7330feb2eb67b9a28de
CRs-Fixed: 3313435
2022-10-20 10:55:12 -07:00
Jeff Johnson
4f56107e25 qcacmn: Fix misspelling of "address"
Fix misspelling of "address" in hal_be_rx_tlv.h.

Change-Id: I453ba64489fc790b05e6880f943be7a8d1cba75c
CRs-Fixed: 3314144
2022-10-19 22:31:07 -07:00
Kannan Saravanan
fb0b54baee qcacmn: Initial changes for QCN9160 bring-up in HAL layer
Add device Id and target type checks for qcn9160 target
compilation.

Change-Id: I3f9bf381bd340755639184753a74159364331037
CRs-Fixed: 3282637
2022-10-18 10:08:14 -07:00
Tallapragada Kalyan
4c45f8a2ed qcacmn: get HP of RXDMA ring without incrementing
get the HP of the RXDMA ring without incrementing
This will ensure in case of nbuf failures the ring
HP remains unchanged

Change-Id: I69ec9207a44a4c50484933797326e962ad2d4a5c
CRs-Fixed: 3309394
2022-10-16 07:49:31 -07:00
Sai Rupesh Chevuru
ec90cac805 qcacmn: Compact tlv support for QCA5332
compact tlv support for QCA5332.

Change-Id: I6aff481bccab6e6368c6da5dd3a41f2e0b5f2b5e
CRs-Fixed: 3312287
2022-10-15 23:07:20 -07:00
Sai Rupesh Chevuru
12c8b0d0be qcacmn: compact tlv support for QCN9224
Adding compact tlv support for QCN9224, As part of this change
Rx tlv size will reduce from 384 bytes to 128 bytes.

Change-Id: I3f42a781e42b2e696a5b25d9c5f333c8cc83b7fe
CRs-Fixed: 3274152
2022-10-14 23:42:02 -07:00
Manish Verma
bc05063ebb qcacmn: Add support for DS UL processing
Add support for PPE-DS REO2PPE ring processing

Change-Id: I74f4195ce4a58d1afaef132257b969ce38a65e1c
CRs-Fixed: 3278270
2022-10-11 14:23:18 -07:00
Jeff Johnson
117ae69181 qcacmn: hal: Fix misspellings
Fix misspellings in hal/...

Change-Id: Icf033a647e6a15d46420d7102dc161b94fa7dd2c
CRs-Fixed: 3304685
2022-10-10 23:02:47 -07:00
Sreeramya Soratkal
3c9b433d10 qcacmn: Set REO destination indication as per REO HW in BE
In case of Beryllium, REO hardware expects the REO destination indication
needs to be set in extended MSDU structure to consider the reinject of
packets after defragmentation to REO2SW1 ring.

Set the REO DESTINATION INDICATION in msdu_ext_desc_info in case of
Berylliyum initialization while setting MSDU desc info.

CRs-Fixed: 3306818
Change-Id: I6a7862a0448afeb169e04747c1dba352ce12c278
2022-10-09 23:31:01 -07:00
Sai Rupesh Chevuru
6aef607629 qcacmn: htt support for compact tlv feature
Adding htt support for compact tlv feature

Change-Id: If45b5b32c4cef482cb6c54b5f2919b56384a8a93
CRs-Fixed: 3293927
2022-10-09 20:42:33 -07:00
Rakesh Pillai
27f5c5e7b8 qcacmn: Fix mpdu re-stitch failure for fragmented wifi frames
When the length of a 802.11 frame is more than the
size of the posted receive buffers, it is split across
multiple buffers, which have to be accumulated before
submitting to network stack.

For all-but-last buffer which are used for the above
mentioned large 802.11 frame, the MSDU_CONTINUATION
flag will be set indicating that remaining data of the
same msdu has been DMA'ed to the next buffer.

The current implementation in monitor-1.0 works for
legacy chipsets, where MSDU_START tlv is available and
hence the aforementioned information was available in
all the buffers containing the large 802.11 frame.

For kiwi target, there is no MSDU_START tlv, and hence
a lot of information eg: mpdu_len_err, decap_format and
l2_hdr_offset are not available in the buffers where the
msdu_continuation flag is set. This leads to an attempt
of mpdu_restitch using incorrect data from tlv, and hence
the mpdu_restitch fails for such large 802.11 frame.

Fix this issue for kiwi target, by gathering all these
information which are available in the last buffer and
are used to process/accumulate the entire 802.11 frame.

Change-Id: I1c4fc9fd574c1c5fabc845407aa6f2d990c60906
CRs-Fixed: 3261494
2022-10-09 06:51:07 -07:00
Kenvish Butani
a16d867018 qcacmn: Separate GetFrameControl API's for LI chipsets
For 802.11 Fragmented frames, currently there is a
generic GetFrameControl API from RX TLV for all Li
Chipsets. As the offset for frame control in RX TLV
is different for QCN9000 and QCA8074V2, reading the
frame control with generic API gives wrong frame
control value. The Offset is different as the size
of RX_MSDU_START struct is 8DWORDS in QCA8074v2 while
it is 9DWORDS in QCA9000. In the reo reinject path
the destination queue descriptor address read from ring
descriptor address is Invalid

Fix is Separating out the GetFrameControl API from
generic API to Chip specific API. Also fix the reading
of queue descriptor address.

CRs-Fixed: 3280809
change-Id: Ifc5eca31b9b7e70c84ca455d56a58c27601cd51d
2022-09-26 10:48:59 -07:00
Tallapragada Kalyan
27da15777b qcacmn: initialize BE specific HAL API callbacks
certain BE specific HAL APIs were only initialized for
KIWI chipset but not for WKK. Now moved all these APIs
under beryllium generic initialization.

These APIs are mainly used in de-frag pkt handling.

CRs-Fixed: 3294784
Change-Id: I6611f1b7ef80b432d24a490ba65880dd55539137
2022-09-26 02:04:24 -07:00
Ruben Columbus
15e2647ec7 Revert "qcacmn: add reo bit to enable reo qref in fw"
This reverts commit Ib8d4a2f6e7f598d45ba2b2c628ed6f3929fc3337

Change-Id: I00c1fe824d3776961180cc82ec398c0f9da9b403
CRs-Fixed: 3292473
2022-09-23 12:45:52 -07:00
Prakash Manjunathappa
60c0c089cd qcacmn: Free the raw mode mpdus in REO error ring
Raw mode mpdus in REO end up resulting in NULL_QUEUE_DESCRIPTOR error.
Raw mode mpdus are not expected in REO, free them without further
processing.

Change-Id: Ica920caecf90a1107ce17836051e1019c9dfc994
CRs-Fixed: 3282836
2022-09-23 10:23:44 -07:00
Hariharan Ramanathan
fbe9b32cc7 qcacmn: Fix compilation issues in QCA5332
Fix for QCA5332 compilation issue.

Change-Id: I4fa9109de58d6f71c90c13c0869e11e4a3171d78
CRs-Fixed: 3291993
2022-09-19 03:16:29 -07:00
nobelj
5e42bbc352 qcacmn: Add support for tx monitor HE MU and minor fixes
Add support for,
	a) HE MU radiotap information
	b) Multi sta BA frame generation and
minor fix,
	a) handling timestamp NULL,
	b) update NSS and other field in radiotap

Change-Id: I7a8b95328779f967b9e63ff8048242412ab472b0
CRs-Fixed: 3270361
2022-09-19 01:49:40 -07:00
Pavankumar Nandeshwar
69fe9e6427 qcacmn: Modify hal_reo_setup params for qca5332
Add qref_reset parameter to hal_reo_setup for qca5332

Change-Id: I589d2278e956cb6bfaaa892b69a2aa33ee7b7607
CRs-Fixed: 3289843
2022-09-14 03:44:54 -07:00
aloksing
d3753e856b qcacmn: Fix incorrect sgi in 11ac VHT mode
sgi is getting overwritten in cmn usr TLV.
Add check if sgi and ltf_size is already set.

CRs-Fixed: 3279670
Change-Id: I8260eb71230b2c218e45460adc8f404a19eefa80
2022-09-13 23:02:56 -07:00
Hariharan Ramanathan
0f046983ec qcacmn: HAL changes for QCA5332
1. Changes to get correct write address in hal_get_window_address_5332.
2. Fix for monitor init crash - Added dummy entries to match the
ring_id.

Change-Id: If59b1c231d4595a95e7c1f02de1dbe0ce27a8805
CRs-Fixed: 3268933
2022-09-13 16:46:48 -07:00
Amit Mehta
163dd20054 qcacmn: Add API to read tsf time
Add API to read tsf time from scratch registers.

Change-Id: If736c31f9ae522a9f853e7b83b6b8a61cad990da
CRs-Fixed: 3287544
2022-09-13 10:51:38 -07:00
Ananya Gupta
61b836202a qcacmn: Record data if pci write during suspended state
When FW was enabling WOW, a ring HP update interrupt is seen
which led to fw crash.
This change records any PCI writes that went through during
runtime suspend from host.

Change-Id: I3c44760ebaf49a131b483813522fe3e451957215
CRs-Fixed: 3280166
2022-09-12 10:15:32 -07:00
Shiva Krishna Pittala
527b0343a3 qcacmn: Fix hal_get_srng_ring_id() for Beryllium LMAC rings
For Beryllium LMAC rings, hal_get_srng_ring_id() provides the ring IDs
separately per each LMAC only if that LMAC ring is a destination ring
(This is done to use a common source ring for the DMAC rings).
But the ring IDs for LMAC source rings like DIR_BUF_RX_SRC_DMA_RING are not
being provided separately per LMAC. As a result, these ring IDs in
split-PHY mode are colliding for the 2 LMACs.
Fix this by doing the following.
 - Mark the DMAC common rings within the LMAC rings.
 - Provide ring ID separately per each LMAC if the ring is an LMAC ring
   but not a DMAC common ring.

Change-Id: Ifdae085b5784a03763abfc4edb42d94593e3ea21
CRs-Fixed: 3282702
2022-09-12 05:02:13 -07:00
Sai Rupesh Chevuru
65d7505a94 qcacmn: Configure HW to copy valid msdu_len for all the buffers
Copy msdu_len from last buffer of MSDU to all
descriptors of the MSDU.

Change-Id: I9da18d3d1da948bedc07f091b800ffedbcae7add
CRs-Fixed: 3267841
2022-09-10 04:46:11 -07:00
Amir Patel
0fe7f4446b qcacmn: Optimize monitor mode memory utilization
a. Optimize ppdu_info memory
b. Use kmem cache for ppdu info allocation

CRs-Fixed: 3265620
Change-Id: Ieee040aa703aef8c5eee5e5a34a52ef18300b696
2022-09-06 10:23:43 -07:00
Ruben Columbus
ced4c17614 qcacmn: add reo bit to enable reo qref in fw
set register WCSS_UMAC_REO_R0_MISC_CTL 6th bit to 1
to enable reo wref from fw side.

Change-Id: Ib8d4a2f6e7f598d45ba2b2c628ed6f3929fc3337
CRs-Fixed: 3273558
2022-09-03 04:44:51 -07:00
Jeff Johnson
88c15dadbb qcacmn: Fix misspelling "recevied"
Multiple instances of the misspelling "recevied" are present, so
replace them with the correct spelling "received."

Change-Id: Ibd7f4a136541be8aa98f5bee4db7f75af0271f53
CRs-Fixed: 3273526
2022-08-28 19:08:26 -07:00
Rakesh Pillai
b1869bda53 qcacmn: Add handler to get 802.11 header from packet
Add handler to get the start of 802.11 header when
NO_PKT_HDR_TLV feature is enabled.

Change-Id: I8d0cb453221ccb56996212c616e629256422a337
CRs-Fixed: 3273441
2022-08-26 14:21:19 -07:00
Pavankumar Nandeshwar
2f3e28c33c qcacmn: Configure registers for reo2ppe
Configure REO destination remap register and REO DST_INFO
register fot REO2PPE ring

Change-Id: I81cce807cde3babcfb265675ec758d33fc10214f
CRs-Fixed: 3274303
2022-08-26 07:31:54 -07:00
Sajini R
51cde26ad5 qcacmn: Initial changes in dp for ipq5332 target compilation
Added device ID and target type checks in dp for ipq5332 traget
compilation.

CRs-Fixed: 3273820
Change-Id: I03a9bc8f9a885587d7324f7907d26bfc77cfeba7
2022-08-24 07:26:03 -07:00
Pavankumar Nandeshwar
a615488cf4 qcacmn: Hal changes for Umac post reset at host
Hal layer changes to handle Umac post reset
and post reset complete events from firmware.

Change-Id: Ib25427930aab25650731c87b38e2ef7e47ae98d9
CRs-Fixed: 3267222
2022-08-21 00:37:53 -07:00
Tallapragada Kalyan
1b1b3adbea qcacmn: fast TX API and registration
This is a new FAST TX API which avoids various checks.
This API will be called when SFE tags a pkt as fast_forwarded
and vap's fast_tx flag is set.

avoid additional re-checks in the wifi TX function

CRs-Fixed: 3218650
Change-Id: Iba17ede59652a1ff2af553f57de21dc58946298e
2022-08-19 16:15:21 -07:00
Ripan Deuri
28f25ca052 qcacmn: Support HW Tx delay stat
Use WLAN_CONFIG_TX_DELAY to enable HW Tx delay for both
SAWF and non-SAWF stats.

Change-Id: I6db7d386c0e3654f53398dcba1db7c5568544b0c
CRs-Fixed: 3262425
2022-08-17 04:58:14 -07:00
Rakesh Pillai
b98780527f qcacmn: Handle monitor tlvs to avoid extra logging
Currently there are few TLVs which are received in
the monitor status ring, but are not parsed for any
data. Since these TLVs are unhandled, it causes
excessive logging per monitor status ring entry.

To avoid such excessive logging, handle the currently
unhandled TLVs which are always received as part of
other TLVs in monitor status ring.

Change-Id: Idbe5a25e926a088adacaf5dfb892aff5885f8576
CRs-Fixed: 3266650
2022-08-16 15:18:32 -07:00