Ampdu count is populated in pdev
but zeroed before printing. Fix it to
be populated in peer and aggregated
in pdev before printing
Change-Id: I51d8f1968a87c0b9dbf53928acd1bbef45acc7ec
CRs-Fixed: 2025785
pkts should be forwarded from one STA to another
STA belonging to same VAP from within the driver
Change-Id: I68eb0dd91f7ac54352b4882ffdb9d5d53d627db1
Conflicts:
dp/wifi3.0/dp_rx.c
dp/wifi3.0/dp_types.h
Conflicts:
dp/wifi3.0/dp_rx.c
Change-Id: I68eb0dd91f7ac54352b4882ffdb9d5d53d627db1
Refactor flush rx queue function call based on soc by adding an
interface to CDP funtion indirection table.
Change-Id: Iea201553f555a6c317cf37e586433aa493e51623
CRs-fixed: 2023399
Use normal allocation instead of alloc_consistent for REO descriptors to
allow freeing from interrupt context.
Also fixed an issue in ba_window_size setting in REO queues.
Change-Id: I91b06e04c0343eb7fe8580d8655c6bc5e33cfe06
Introduce a new iwpriv command txrx_stats to
print host and firmware statistics for lithium
chipset
Change-Id: Ib048c64f903c7a97508f8b03bebe7f7c1d9e6c05
CRs-Fixed: 2017426
Add command to set mapid for each VAP using:
iwpriv athX s_dscp_mapid N
Add command to change tid values in PDEV maps using:
iwpriv wifiX s_dscp_tid_map <MAP_ID> <TOS> <TID>
Change-Id: I510a40e71ecec5c453dd2dff1b13fd5ebedbe98a
CRs-Fixed: 1108452
Add per peer stats
Add support to update APSTATS
Change QDF_TRACE to DP_TRACE for improved readablility
Change-Id: I4be2adf2a1d7f978eb2961a544435d525c97923d
CRs-Fixed: 1114641
This change includes:
- Adding the hooks to send LRO and hash configuration to the firmware
- Configuring the REO remap registers
Change-Id: I6d83e2a2365647f2c7a6440bd1d4b42fa7df7eff
CRs-Fixed: 1094775
The interrupt polling timer needs to be disabled when the host
device driver decides to unload. Not handling this would cause
in processing of pending interrupts and access data structures
that are being deinitialized causing system instability.
Change-Id: I505281f36f90bef6e1fbf21a5461260272f7c7cb
CRs-Fixed: 2013609
Added support to filter out received packets on mesh vap based on
rx filter setting.
Change-Id: Ibc541324d928a9d006531c8908f4792e0c7d854e
CRs-Fixed: 2003389
Skip free of nbuf with physical address less than 0x50000000. This will
ensure that same buffer is not getting allocated again resulting longer
DP init time and affecting WMI init sequence. And use correct pointer
in pdev detach function.
Change-Id: Iaab70c92adef741d5f20115cba164bcd7718886b
CRs-Fixed: 2013500
Added mesh specific data path changes. Extract mesh meta header in the
packet and pass it to firmware. Fill tx completion stats and call upper layer
call back function incase external tx completion is registered.
Change-Id: Ic3c1c37b2f59b1a35e3cf00a4498342dc20427d2
CRs-Fixed: 2003389
Due to issues in Kbuild wlan_cfg was included using relative path.
Also getting rid of a duplicate static function definition in
dp_peer.c.
Change-Id: Ie0883340a9143b739119f18c8871b4baa9787980
CRs-Fixed: 2005582
API to handle pkts received on vdev which has RAW mode
enabled. Currently supports only MPDU with single MSDU.
Change-Id: Ife00699646bd97c5de0021fc32db434a544058f6
CRs-Fixed: 1111781
Defer freeing of REO queue descriptors to avoid corruption due to possible cache
flush by REO HW of the queue descriptors that are already removed from a peer.
Change-Id: I4b5ef8ef4fe6a11f5faef4f1f14ce27de77768e0
1. Increased the sizes of following SRNGs used by WBM and also added max size
check in SRNG setup:
-idle link descriptor ring
-Tx completion ring
-Rx release ing
2. As per HW team, TP_ADDR and HP_ADDR for Idle link ring should remain 0 to avoid
some WBM stability issues. Remote head/tail pointers are not required since
this ring is completly managed by WBM HW
Change-Id: I93d70a287329dfeb08fcfb6b04306d65776b4834
Added cdp support for external tx completion. In case of mesh mode per
packet tx completion stats has to be filled in the meta header and external
function has to be called for updating these stats. It is the responsibility
of external function to free the buffer after reading the stats
Change-Id: I45ba800acf9b4d6091cc3f9aafc67c1f1f00f379
CRs-Fixed: 2003389
Replace void pointer handles for pdev and vdev with
abstract structure handles in cdp.
New file cdp_txrx_handle.h has the abstract
structure declarations.
Change-Id: I333e6ea5e699e7cebbfc6281faf7f07c0aee4e2a
CRs-Fixed: 1109835
Firmware expects the following:
- mac id for the refill ring configuration should be 0 (soc)
- mac id for the rx dma rings should be 1, 2 (mac 0 and mac 1)
Change-Id: I23c652e2e1f8e2fca69647906321e4d867a42609
CRs-Fixed: 2003050
Hold additional reference to BSS node during node allocation, and free
it in delete response. This ensures BSS Node Freed event is sent to MLME
only after receving peer delete response for BSS node.
Change-Id: I384eac54f437000a1c09eb53751ad8b8e26617ad
CRs-Fixed: 1112381
Update dp_peer structure to store qdf timers to detect DOS attack. Following
driver ops are registerd to access the dp peer information
- last_assoc_received
- last_disassoc_received
- last_deaauth_received
- clear_peer
Change-Id: I21a3f4e5ab626e62f58f307d02640b7d96c9b1ef
CRs-Fixed: 1116647
Update peer delete sequence in dp_peer_delete_wifi3(). Currently
local peer id is freed and peer_info_spinlock is destroyed after peer
is deleted. This is resulting in OOPS error. Call dp_unref_peer_delete
only after cleaning other peer information.
Change-Id: I58cd7114d07c7d7addc941e8509661f050c23a9c
CRs-Fixed: 1116647
Currently dp_main.c generates warnings when compiled with the GCC
-Wmissing-prototypes switch because it does not include a header file
which exports a prototype for dp_soc_attach_wifi3(). Currently the "dp
soc attach" APIs are defined in a strange manner, and there is not a
prototype which dp_main.c can include. So as a WAR define the
prototype internal to dp_main.c itself.
Of course the whole point of -Wmissing-prototypes is to prevent
mismatches between callers of an interface and the implementation of
an interface, and this WAR explicitly bypasses that protection. This
WAR should be superceded in the future by a proper registration
mechanism where the architecture-specific DP implementation attaches
to the Converged Data Path (CDP).
Change-Id: I1858ac4ec9f53c28cde622a43a3adb8643328916
CRs-Fixed: 1110197
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code in dp_main.c that is generating warnings. Fix
these warnings by making all functions static that are only referenced
internally to dp_main.c.
Change-Id: If22f66ecdc3dbf4e91dbd32bb0e994a281d729e9
CRs-Fixed: 1110193
The MC BC packets cause a NULL REO queue descriptor exception,
and hence are directed to the ring that is configured to receive
this exception from REO. As of now, this error is directed to
WBM release ring. Add handling to pass these packets to stack
instead of dropping them, when received on the WBM release ring.
Note that, the final fix may be route these to REO exception ring
from which the driver may need to pass them to stack.
CRs-Fixed: 1098153
Change-Id: If544911e7882a9f5e7dbffa5ef705618e9fcbbda
Currently, suspend/resume fails because data path suspend/resume ops
are not set. Add dummy ops for data path bus suspend and bus resume,
that simply return success. Actual implementations will follow.
Change-Id: Ic43dd05e3bd9a017ae0321eebc5d816116206aaf
CRs-Fixed: 1104135
Add peer_unref_delete to CDP ol_if ops. This API is
used to update peer count in SCN radio structure in ol_if layer
CRs-Fixed: 1099955
Change-Id: Idb84cfda60e5a8f67f1e5eae0c3f1e85d73b566a
Do not start interrupt poll timer for processing datapath SRNG
interrupts till any VAP is created and is up.
CRs-Fixed: 1088985
Change-Id: I3a9d148024f66d824dc839bdf8b158c351fe22cd
Add timer instance in dp_soc for interrupt poll, to function in
poll mode till interrupts are enabled
CRs-Fixed: 1088985
Change-Id: I0d3207fe143b30317618d78b927133c43a552ef6
Seperate the dp peer object allocation from setting the peer's
default routing and default rx tid queues.
This change is to address a race condition where the HTT peer map
message arrives before the peer object is created.
Change-Id: Ibb0671d29ffac41fd06bb8a88476f37120d99ccb
CRs-Fixed: 1089662
Enable timer based polling of the UMAC rings for Tx completion
and Rx. (Interrupts are not yet ready on UMAC rings).
(DP_INTR_POLL_BASED is defined through Kbuild)
Also define the polling timer as 100 ms.
Change-Id: I243f94c3d49a80005ef9eec8a9a6f03abc81870c
CRs-Fixed: 1074199
Wifi 3.0 compile against cdp apis.
Make compilable against mobile code base.
selective hw common header include.
Change-Id: I051f917001c0d13c762d9cb5a3ec141cd278d0e7
CRs-fixed: 1075736
Add support for initialization of Lithium Datapath interrupts
and top-level interrupt handler for Datapath interrupts
CRs-Fixed: 1073253
Change-Id: I690d914221cf8a6d2ffdeb25785b1d534f56dfe7
Add a generic framework (wlan_cfg) for all configuration parameters
(eg.number of tx/rx rings) used by DP. Define all the parameters
as macro constants. We will later enhance wlan_cfg framework to
read these parameters from device tree file or ini file and populate
in DP config structures.
CRs-Fixed: 1073253
Change-Id: I7e4ddadb64006d17399acb68f92cf17fe23a98e2
Add support for replenishing the rx buffers using the host to
firmware buffer ring.
This includes adding a flag QCA_HOST2FW_RXBUF_RING:
When QCA_HOST2FW_RXBUF_RING is enabled the host will do the following:
- Allocate the refill buffer ring (HTT_HOST1_TO_FW_RXBUF_RING) and
populate it with
rx buffers
- Send the refill buffer ring configuration to the firmware
- Allocate the rx DMA ring (HTT_RXDMA_HOST_BUF_RING), leave it empty.
- Send the rx DMA ring configuration to the firmware
When QCA_HOST2FW_RXBUF_RING is disabled, the host will do the following:
- Allocate the rx DMA ring (HTT_RXDMA_HOST_BUF_RING), and populate it with
rx buffers
- Send the rx DMA ring configuration to the firmware
CRs-Fixed: 1074199
Change-Id: Iec05a973cd9d628c742e3aaa16b8dabc7797625d