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
ring_desc is being validated in dp_rx_err_process before passing
the ring_desc to dp_rx_defrag_store_fragment.
Hence removing the additional checks for ring_desc.
Change-Id: Ib863ea4d512075beed58f09ff6167aa2a556efea
CRs-Fixed: 2771408
There's no declaration for API dp_peer_qos_stats_notify().
Define the API as "static inline".
Change-Id: Id6769d680b3304cebf00b2348fb5b9a3bc9c7368
CRs-Fixed: 2773655
Add statistics if the packets of the flow are coming on
a different REO than the one configured. This would help
in debugging the race conditions where the packets of the
same flow arrive on different REO rings.
Change-Id: I73714c4ad64e00df06c72ac4ae5f7567adeab505
CRs-Fixed: 2771719
Macro MAX_MONITOR_HEADER is used to specify the max. headroom size for
different buffer rings. With the monitor frag feature, macro
DP_RX_MON_MAX_MONITOR_HEADER is required to specify the headroom size for
the monitor destination buffers as per the the approch being used.
Change-Id: Ic4c0132292008942d7d443235e5f54d7eaa77e74
CRs-Fixed: 2772048
Add the support to coalesc the tx head pointer
register writes to reduce the number of PCIe
writes.
Change-Id: I4fea22464c2bf6930bac42dab72c1c2fc5fa18e2
CRs-Fixed: 2769017
The 11g and 11a connections are latency critical and
hence the tx coalescing cannot be applied on traffic
running for these connections.
Add a CDP API to save the number of low latency
connection in the dtapath vdev handle. The Software
latency manager can use this information to decide
and skip the tx register write coalescing for packet
transmission on low latency connections.
Change-Id: Iff51867447e9d4537a3637cb65d94e184e4249ef
CRs-Fixed: 2769025
The variable 'ret' in ‘__dp_ipa_tx_buf_smmu_mapping()’ maybe
used uninitialized. Set one default value for it.
CRs-Fixed: 2771822
Change-Id: Ibf4bf6aa2076de84b3a47122ff4f3cae055cd0f7
Change log level of print from qdf_err to dp_err in
dp_peer_qos_stats_notify to avoid console flooding
Change-Id: I214942135826a6b94e6cf0b34b69d2c662a35e7b
Currently the stale cookie and invalid cookie
counters are being logged inter-changeably.
Fix the logging for stale and invalid cookie counter.
Change-Id: I43346fe961ee750a3baa1bf8c2da2551fb06e973
CRs-Fixed: 2770877
1. Add flag to support hlos id override feature in dp vdev
2. Update tid from nbuf->priority in dp_tx_send
3. Update tid to nbuf->priority in dp_rx_process
Change-Id: I66e8d77733a667f3f60b77e0d7bb444f7c5ad93d
dp_tx_pdev_detach API takes care of flushing
tx descriptors and multicast enhancement mem
cleanup
dp_pdev_deinit takes care of cleaning up the
above actions and dp_tx_pdev_detach is simply
a redundant piece of code
Hence remove dp_tx_pdev_detach API and call
dp_tx_desc_flush directly from dp_pdev_deinit
CRs-Fixed: 2769303
Change-Id: Ic798793e81eefc7dc905ca7552fdca13e9fddd8c
Currently when IPA is enabled, all RX frames will be routed to IPA
ring REO2SW4 by default, there is no REO2HOST option. once IPA RX/TX
is slow, then likely will give RX back pressure to wlan RXDMA. per
FW feature request, when IPA RX is slow or stuck, route RX frames to
wlan host to mitigate issue, thus provide REO2SW1 ring as REO_DST
option into HWIO_REO_R0_DESTINATION_RING_CTRL_IX_0.
To make sure if without FW dynamic REO_DST ring switching change,
current host change should not give chance that RX frames
route to host when IPA is enabled, select CTRL_IX_0 index 2 to
set REO_DST option, the reason is: if RX hash is enabled, CTRL_IX_2
and CTRL_IX_3 index 16~31 is REO_DST option filled with REO2SW4,
if RX hash is disabled, then CTRL_IX_0 index 1 and 4 filled with
REO2SW4 is REO_DST option configured by
WMI_HOST_PEER_SET_DEFAULT_ROUTING, so CTRL_IX_0 index 2
is only used for FW dynamic ring switching.
Change-Id: I6af12e07472dbdd4ab6d97f24e9fd4082c4e7328
CRs-Fixed: 2767844
Dont pass las_msdu as a param to restitch func for frag
approach as it doesn't contain valid value and is not used
in the restitch api.
Change-Id: I974a8ae5e6ce4a9bf04985cbd37e103700f48301
peer wlanstats context is used only for RDK Plume stats
but the name is misleading as wlan statistics
Hence rename peer's wlanstats_ctx to rdkstats_ctx and
the APIs the APIs around the same
CRs-Fixed: 2767192
Change-Id: I9e8955554b94fa29a3964fed729a95a4db67c8f6