Add apis to map generic registers to shadow region. Existing
logic includes mapping only srng based regs to the shadow
region.
Add support to map REO control regs and WBM2SW2 rel
ring HP reg address to the shadow region in case the direct
reg writes in IPA enable/disable autonomy fail due to UMAC
block being in a power collapsed state.
Shadow reg mapping for these regs is provided to FW during
init. Add stat shadow_reg_write_fail to track shadow reg
write failure and shadow_reg_write_succ to track successful
shadow writes.
Change-Id: I04790765a3de80047689657e2cad0b73123440b9
CRs-Fixed: 2790321
Add log limit to error "DMA not done" when reaping Monitor status ring
to avoid flooding other useful driver log.
Change-Id: I251ef8082d49bfdbcc6a234224cbefdba608b5f5
CRs-Fixed: 2798732
In monitor mode, if channel is initially configured from 5G
band and then moved to channel from 2G band, packets are still
received on MAC-0 RXDMA2SW ring since IMPS is disabled for both
MACs. Since driver reaps only MAC-1 RXDMA2SW ring, ring full
condition is hit for the MAC-0 ring causing ring backpressure.
Fix is to drop packets received on the non-monitoring MAC
ring.
Change-Id: I49cb276827f4a06791183ee3fe8c88ba84df085d
CRs-Fixed: 2791341
Handle case in mon dest ring buffer processing,
where one MPDU can have more than QDF_NBUF_MAX_FRAGS MSDU.
Change-Id: If09099814b7f701efbaa20b1406958ad97d64829
CRs-Fixed: 2788919
Update message length for debugfs support for HTT stats.
Max length will be 2048 to avoid mem leak issue.
Change-Id: I4688f4ae52d5dfc5317a1f8fe1ada334af2eb8c5
CRs-Fixed: 2792365
A htt message arrived after ipa context is freed as part of
deinitialization which was dereferenced by event handler
assigned to pdev->ipa_uc_op_cb, resulting in crash.
To fix this, during deinit pdev->ipa_uc_op_cb is deregistered
and assigned NULL before freeing up ipa context.
Change-Id: I8125cb104a538e88cda93960f7443129fabd850a
CRs-Fixed: 2793295
HTC runtime count is incremented after posting the HTT
ver req message to CE4. There could be possibility of
processing the ver response message from FW even before
htc_runtime_cnt is incremented. This can casue RTPM put
to not happen causing imbalance in get/put count.
Fix is to increment htc_runtime_cnt before enqueuing
the HTT message to CE.
Change-Id: Ib9b69910cd14193c41ecfee804b390f8a6cdef49
CRs-Fixed: 2794451
Compiling with gcc 9.3 will cause many implicit-fallthrough
compile errors.
Fix is to add keyword fallthrough to resolve such compile error.
Change-Id: I2e7dd1525861d951e3be44f6665e149499f0f5d6
CRs-Fixed: 2785178
Add API to do IPA Tx buf SMMU-S1 unmapping and register it
with cdp ops for Hastings, also assert if map/unmap failed.
Change-Id: I4071b5fccd84c3c97b9dccc40c6f798d70993189
CRs-Fixed: 2792170
In teardown API update logical delete state to peer
before deleting AST entries of peer. Also in delete
AST API use __dp_peer_get_ref_by_id to get the peer
Change-Id: I6db227a284cf3726cc241ebc98386230eca58fcf
Add a new cdp datapath ops - mscs_ops for Mirrored
stream classification signalling feature. This function
will be invoked from ECM flow acceleration manager
Change-Id: I749623846395057b6ea8328c881efa8733700b0e
This change fixes the below issue.
1. Clear the histogram statistics per peer.
2. Separate out the Tx/Rx histogram prints.
Change-Id: I5fc51f6bca14dc4c615c5501441e1a6b28bb0f02
Add support to configure REO ring threshold through ini
for WLAN_DP_PER_RING_TYPE_CONFIG feature.
Change-Id: I02a14adcf243905ab25c2af12cb9499f32ff453f
CRs-Fixed: 2789147
For HTT h2t message which has a response from FW, runtime
get is done in HTC layer and the corresponding runtime_put
is done as part of the HTT response processing. In a scenario
where the HTT response is not received from FW or not processed
by host, runtime_put is not done as part of cleanup and panic
is triggered due to get/put imbalance.
Fix is to do RTPM put as part of htc cleanup when the HTT
response from FW is not received or processed.
Change-Id: I17ccb7c3e2293c95f5f233d36c6ef38a75733cce
CRs-Fixed: 2779113
Delete self ast entry along with other ast entries
belonging to peer during peer tear down
Change-Id: I08373929b7e510d79cd677b12f3ee897c1c6790b
CRs-Fixed: 2776743
While processing monitor status srng when DMA is not done
for current peeked HP+1 and DMA is done for HP+2 then nbuf
at HP+1 is freed without processing. But nbuf should be unmapped
before freeing. So unmap nbuf then proceed for freeing.
Change-Id: I9e808a7c9b6452d6b6e1fddc49fb08871c8c90f9
CRs-Fixed: 2785364
When multi page alloc is activated, spinlock for rx_desc_pool
is being held for more than 2 seconds, resulting in QDF_BUG.
The major proportion of the time period is used in unmapping
the nbufs.
To fix this, lock rx_desc_pool only to collect nbufs from
rx_desc in a list and unmap and free the nbufs after releasing
the lock.
Change-Id: Iff2078a0de56b51712e2f9a7c5ace7a959e2445d
CRs-Fixed: 2779498
Add a variable to indicate FST's placement in CMEM; all
FST CMEM operations will be based on this.
Change-Id: I6d8c541d939d3ab74eab22d13d5034b8ea79e99c
CRs-Fixed: 2784299
Deinit of HTT stats debugfs files from dp_pdev_detach to prevent
deleting of files after 'wifi".
CRs-Fixed: 2782235
Change-Id: I77d86225762063af16bc8c2b716ca834698f1520
In Monitor mode, frag len is not adjusted taking l2 hdr
padding into consideration. This will result in inclusion
of l2 hdr padding length twice in skb len and would cause
skb expansion due to length exceeding 2048 bytes.
Fix is to adjust frag len taking l2 hdr padding into
consideration.
Change-Id: I31d57621bc71c51ff581a30adb654cd7b9448443
CRs-Fixed: 2781177
rssi value is always zero when retrieved from tlv header.
so added war to populate rssi value from stored value
of peer instead.
Change-Id: I6d5127438dae1f3891e3e78c97be93b79b4ee128
Use AST override feature to send out multicast packet in
4 address format. Pass per packet peer_id from osif layer.
Change-Id: Ic86120169c89e7972caa3cc8c967de72670314d0
CRs-Fixed: 2775051
Add logic to exclude dp peer stats from
dp vdev stats if wds extended is enabled.
Change-Id: I1a5a1794e04f90877916f92b7f4216a525ce6cce
CRs-Fixed: 2778199
1. Register peer->osif_peer for per-STA netdevice delivery.
2. Wi-Fi 3-address frame packets received would be processed
through AP netdevice.
3. Wi-Fi 4-address frame packets received would be processed
through per-STA netdevice.
Change-Id: I102874ea1de9fba40ab7f0e2c32c9de1c9b4d075
Reserve 128 bytes headroom for monitor status buffer
to accomadate feature specific radiotap header or any other info
in the headroom.
CRs-Fixed: 2775118
Change-Id: I2b1aba26e565b58c48a2e24ad17965aacd6b4526
While sending me packets, if failure is encountered
either while preparing tx desc or while enqueuing
to h/w,the cloned nbuf's must be freed.The unmap
must be done only if the failure is encountered
for all the me buffers.
Change-Id: I08dbae1fa1820b4fb31119f65e939aead829321b
While preparing raw packets for transmission, the count
of nbuf belonging to one mpdu must be less than the
number of segments.This makes sure the frags array inside
seg_info does not go out of bounds.
Change-Id: I7fffba7f64da274aa73c558cfc63d90f4419a04d
In addition to firmware capability, add INI param to decide FST
placement in CMEM.
Change-Id: Icc5fdfa49e35665b59efce3fc1f1855d84c16140
CRs-Fixed: 2778898
Firmware advertizes its support to place FST in CMEM,
export this capability to DP.
Change-Id: I265246bcfd38a36e34c4ede66e117a92bb185032
CRs-Fixed: 2772238
CMEM FSE details like offset into CMEM where flow search table(FST)
is allocated and the size of the FST will be sent by the firmware
in response to FSE setup message. Adding the logic to parse the
response message and update the CMEM parameters in the SW FST.
Change-Id: Id1dd4b59be02c175da3fc6fcb5ed56e6f491133a
CRs-Fixed: 2771187
Adding data structures required to place FST in CMEM.
CMEM is an on-chip memory in QCA6750.
Change-Id: I39d47d6f0514941497d41301643344ee3b2dad30
CRs-Fixed: 2771186
Skbs allocated for CE1 ring are of size 2048 bytes. On
receiving PPDU stats HTT message, skb is pulled for 8
bytes corresponding to the HTC header length. As part of
dp_ppdu_stats_ind_handler, skb len is set to HTT_MAX_MSG_SIZE.
In the case where skb allocation is exactly of 2048 bytes,
including HTC header length, the aforementioned set_len
causes the skb to be expanded due to lack of tailroom.
This causes the skb data pointer to be changed which results
in invalid memory access.
Fix is to remove the qdf_nbuf_set_pktlen as skb len is
appropriately set by HTC layer.
Change-Id: Ied68c30456dc0e263ccfd03102962233a0e43d9f
CRs-Fixed: 2777516
Drop frame if it is not for the vap, to which
client is connected.
Enable this check only for ap.
Change-Id: I33d7eb79267490bdb8697e4e45f789e9f6279f0e
CRs-Fixed: 2756304
While creating sg frames,if map fails for a fragment,
the previously mapped fragments must be unmapped.
Also, the nbuf mapping should happen for headlength.
Change-Id: I218efa60be7100a661da7bc3783fa25e5203a273
During driver initialization, IPA TX and RX doorbell registers
are provided to wlan as physical addresses. With SMMU S1 enabled,
they're mapped to IOVA of wlan domain.
On driver deinit path, do smmu unmap for the two IOVA addresses.
Change-Id: I85ef1c3e99bef504abf09eebf9ace760b68f35f1
CRs-Fixed: 2768303
- Added data structure for wds ext peer
- Enhanced DP peer structure to maintain
wds ext peer data structure, which inturn
maintain pointer to osif device.
- Enhanced DP vdev structure to maintain feature
configuration, which will be updated during vdev
creation when feature is flag is set at control
psoc.
- Enhanced cdp_vdev_param_type and cdp_config_param_t
to set wds ext configuration into DP vdev
- Enhanced cdp_cmn_ops structure and corresponding
call back definitons to get peer id, which will
be saved in osif private structure and to set
wds ext peer rx.
- Enhanced cdp_ctrl_ops to send event to control
path when 1st 4 address frame is received from
backhaul.
Change-Id: Ide0ea54e7b2d480ad646fb84b6e4e3108930f986
CRs-Fixed: 2773492
The logging macros implicitly takes care of embedding function name
in the log, hence there is no need to include __func__ again.
Getting rid of redundant __func__ reduces driver memory footprint.
Change-Id: I26bfac840ac6732ac83fb008db8e1702996eb21e
CRs-Fixed: 2774457
With new design, peer is deleted from hash table in
cdp_peer_delete. Hash table search in dp_peer_can_reuse
API at cdp_peer_create will always fail
Update the peer reuse logic to search from inactive list.
Insert peer to inactive list from cdp_peer_delete() and
in peer reuse case search in inactive list to get
peer.
Also add a new lock to protect peer state transition
Change-Id: I2e672fc4a9346c95d67716d437538dd0f96b2207
Currently, check is performed only on tx_comp_ring and rx_ready ring,
after getting the resource from soc in pdev.ipa_res.
Adding check for tx ring and rx refill ring as well.
Change-Id: I462073357bcd2b4a3f5e888d77d84621855f973c
CRs-Fixed: 2771401
MSDU count is not reliable in all cases.Hence it is better
to check whether next_link_desc is valid or not and then
free the MSDUs in the next descriptor and subsequently
release both the current and next link descriptor back to HW.
Change-Id: Ie5ea3be547f9aed6673293221f6b47661cd92cce