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
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
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
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
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
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
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
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
sgi is getting overwritten in cmn usr TLV.
Add check if sgi and ltf_size is already set.
CRs-Fixed: 3279670
Change-Id: I8260eb71230b2c218e45460adc8f404a19eefa80
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
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
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
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
Multiple instances of the misspelling "recevied" are present, so
replace them with the correct spelling "received."
Change-Id: Ibd7f4a136541be8aa98f5bee4db7f75af0271f53
CRs-Fixed: 3273526
Add handler to get the start of 802.11 header when
NO_PKT_HDR_TLV feature is enabled.
Change-Id: I8d0cb453221ccb56996212c616e629256422a337
CRs-Fixed: 3273441
Hal layer changes to handle Umac post reset
and post reset complete events from firmware.
Change-Id: Ib25427930aab25650731c87b38e2ef7e47ae98d9
CRs-Fixed: 3267222
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
Use WLAN_CONFIG_TX_DELAY to enable HW Tx delay for both
SAWF and non-SAWF stats.
Change-Id: I6db7d386c0e3654f53398dcba1db7c5568544b0c
CRs-Fixed: 3262425
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
Add HW, SW and nbuf prefetch support in Berryllium, this will
ensure we have prefetched the HW desc, SW desc and nbuf by
the time we are in the 3rd iteration of the dp_rx_be_process
first loop.
CRs-Fixed: 3218647
Change-Id: I27d371c5d1c9a37d61e4fc00d5eb03609fad589c
In QCN9224 fetch the peer meta data from the msdu end tlv
instead of MPDU start
Change-Id: Icd9420cd83e06abe5e54e9e05cc8cbf8d8312ae1
CRs-Fixed: 3245626
Added fix,
a. To populate response timestamp from phy timestamp.
b. Based on window type swap address1 and address2 to match the sniffer.
c. For VHT frames, increment 1 to the received nss value.
Change-Id: I68dffadb609d82e2ad2cf433fcee2a76b0be98e7
CRs-Fixed: 3235718
Smart Antenna retrieve Rx EVM info support for RX feedback collection.
Support is for Wikiki.
Change-Id: I0daa657efe1054dbcc58f9318e97be02701723e6
CRs-Fixed: 3255729
This function fails to register in the 6750 platform.
Since some old chips do not have l3 type field, the
callback function cannot be registered, so this change
solves it by recognizing whether the callback is NULL.
If it is NULL, then return an invalid vallue: 0xFFFF.
Change-Id: I47c8df5e54eeac9489010e45057e44eccdb2bf22
CRs-Fixed: 3258200
Use hal_debug_rl to limit the PN error print when lots PN
failure packets received, to avoid RX process slow down.
Change-Id: If3b008343d0cc273e4c5b718accd620c4deefeb5
CRs-Fixed: 3248037
Add support and handle tx monitor full buffer payload and
other minior fix include change of name for uniformity.
Change-Id: If401ecd5e1c6263584fa7013df672459c883ca8b
CRs-Fixed: 3215244
Change macro IPA_WDI3_RX_TWO_PIPES to IPA_WDI3_VLAN_SUPPORT to represent
the feature supported under this macro
Change-Id: Ie1e387d641052cd5690c63f0c1216f4852544605
CRs-Fixed: 3250264
1. Changes to move hal_tx_config_rbm_mapping_be function from common to
device specific as it has ppe related snippets.
2. Changes to remove all PPE related codes in QCA5332 hal code.
3. Changes to correct macros according to fw_hrs.
4. Changes to move functions with device specific Macros to header files
so that it gets compiled with respective device's FW headers and gets
correct Macros
Change-Id: I479b406f318aa42d2b1032349aaf42d95b8c18e5
CRs-Fixed: 3235966
In IPA offload, both tagged and untagged traffic cannot be handled with
a single rx pipe. Hence, add support for 2nd RX pipe for tagged and
untagged traffic respectively.
Change-Id: I77ff633327696f66df42fb592492321c1591646b
CRs-Fixed: 3226021
Skb under panic issue is seen when a packet comes via RX err path,
MSDU length read by SW is coming as 0 and leaving no space for skb_push
in buffer, data is moving beyond the head and causing the issue.
MSDU length is read by generic API which is architecture-independent,
hence the struct size for one architecture is different from another
architecture.
FIX is to get the MSDU length by architecture-specific API.
Change-Id: I5a6259034e5e06ae9ce7ba6b135b44f2849f2fd9
CRs-Fixed: 3235636
Host failed to read some of cfr elements by HAL_RX_GET
for Waikiki since their LSB is big then 32 and reading
4 bytes isn't enough. This change reads 8 bytes and then
gets cfr elements properly.
CRs-Fixed: 3241915
Change-Id: I0863f22a1cc0c5fd490ec3669ff6a97b27c66f15
To support WDS feature in IPA driver, WLAN needs
to update the ast entry for any new rx packet, and for
end-nodes connected via repeater to root.
CRs-Fixed: 3226348
Change-Id: I7383b12f18e7c70ec06499d66130667eca033131