Disable CHK_2K_MODE and OOR_MODE in REO descriptor. Also set RTY bit for non-BA TID queues as temporary WAR for duplicate detection issue.
Change-Id: Ifa51c20ffbfe31c807d4e7f99014cb76f411e066
Changes needed to support the new definitions introduced
in the R102 hardware header files for QCA6290.
Change-Id: I4e3c27dfdc48b4d6a44f0f50f3e4a907be20e53d
CRs-Fixed: 1105853
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code in dp_rx_err.c that is generating warnings.
Fix these warnings by making the following functions static:
dp_rx_frag_handle()
dp_rx_pn_error_handle()
dp_rx_2k_jump_handle()
dp_rx_null_q_desc_handle()
Change-Id: I45108fff8f69194b28391eebb5e079149ae5cc5a
CRs-Fixed: 1108176
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
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code in dp_peer.c that is generating warnings. Fix
these warnings by making the following functions static:
dp_peer_find_hash_find()
dp_rx_tid_update_wifi3()
dp_rx_tid_delete_cb()
dp_rx_tid_delete_wifi3()
And by exporting a public prototype for:
dp_peer_find_hash_erase()
Change-Id: I5c945f27c0334a4d88da6136de8aacae2ba840a7
CRs-Fixed: 1108459
Added a separate loop to dequeue the rx pkts and relinquish
REO and rx-Refill ring faster. Additionl rx processing is
moved to a different per vdev loop.
CRs-Fixed: 1098453
Change-Id: I43b1fa302cf7e7c77f6114ea491306c0b724e365
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code in dp_tx.c that is generating warnings. Fix
these warnings by making the following functions static:
dp_tx_desc_release()
dp_tx_prepare_htt_metadata()
dp_tx_prepare_ext_desc()
dp_tx_prepare_desc_single()
dp_tx_prepare_desc()
dp_tx_prepare_raw()
dp_tx_hw_enqueue()
dp_tx_classify_tid()
dp_tx_send_msdu_single()
dp_tx_send_msdu_multiple()
dp_tx_prepare_sg()
dp_tx_reinject_handler()
dp_tx_inspect_handler()
dp_tx_process_htt_completion()
dp_tx_comp_process_desc()
Change-Id: I4d40b836af85ea3c3dbee0c11514e2c1d2e9c8cb
CRs-Fixed: 1108175
Since dp_htt_h2t_send_complete() is only accessed from within
dp_htt.c, and since there is not a public prototype, make it static.
Change-Id: I002ac20d0e5ced8ddc9d5099a987a5ce208b4cfc
CRs-Fixed: 1108111
Currently some of the public functions in dp_peer.c do not have their
prototypes exposed in a header file. In addition clients of these
functions currently have local prototypes. Fix these issues by adding
the prototypes to dp_peer.h.
Change-Id: I461cf69024da56fad57b75a325775ecd68872c8e
CRs-Fixed: 1108085
Check for peer null check before dereference in
dp_peer_state_update to update its state.
Change-Id: Id3b743d6cbe3d156a48ad111e467579b7478e4bb
CRs-Fixed: 1107176
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
Add HAL API to parse Tx completion statistics from WBM descriptor and
populate HAL Structure and a DP API to print the statistics per packet
CRs-Fixed: 1088985
Change-Id: Ic6e918aabdbd7743d8f640e0451070dc229c6f0d
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
after every 1024 pkts (size of rxDMA ring) received we are
over-writing the start of rxDMA ring (wrap-around case)with
new buffer address, but this was not done properly as we were
ORing with the old buffer address this was resulting in buffer
address corruption.
CRs-Fixed: 1098223
Change-Id: I6b167412ef13eda3bc1403d83955afae4c83461b
Fix the packet offset value filled in Tx descriptor.
Also fix a crash in Tx completion handler because of storing wrong
pointer in tx descriptor chain (next)
CRs-Fixed: 1088985
Change-Id: Ie2895700e0bb7e6f4b7b09a01da07a17d1c41160
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 HAL definitions, macros & API's for Lithium Rx Path. These include:
- #defines, enums required for accessing REO/WBM/RXDMA descriptors
- API's required to abstract access to REO/WBM/RXDMA related data
structures
CRs-Fixed: 1074199
Change-Id: Ia359d105352f4c543b608c761c9020aca7c6260a
Implements the core error processing infrastructure
for:
- REO exception ring and
- WBM SW Release ring.
Individual error handling (e.g Defragmentation) will
be added going forward.
In this first check-in all frames routed to the WBM release ring
are dropped except MC/BC packet that get routed to this ring,
due to the default configuration (MC/BC packets cause NULL queue
descriptor violation).
Change-Id: I57a7be19d51907d6b6df2e62246a45da07325f49
CRs-Fixed: 1074199
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