Граф коммитов

2646 Коммитов

Автор SHA1 Сообщение Дата
Houston Hoffman
4a033e4afe qcacmn: Fix wmissing-prototype errors (dp_reo.c)
include dp_internal.h for its prototypes.

Change-Id: I0992d2b14d559a0e641ded52cc74e8fe2434c5e6
CRs-Fixed: 1115552
2017-01-24 20:15:50 -08:00
Venkateswara Swamy Bandaru
99075965f8 qcacmn: Add rawmode tx support for lithium
Added raw mode descriptor preparation support in tx path when packet is
in Interface configured in raw mode.

Change-Id: I3159bce9ec6f3cd86ccfb157c51d1cb5f6412b89
2017-01-19 15:07:45 -08:00
Venkateswara Swamy Bandaru
bfbef4f48d qcacmn: Add rawmode simulation support in cdp interface
Added rx simulation decap function interface to do simulation decap.

Change-Id: I8ae3fceeec0f6ca08d7d2857c2d017dbbdafbb85
2017-01-19 15:07:43 -08:00
Karunakar Dasineni
e8380bbece qcacmn: REO descriptor changes
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
2017-01-19 12:46:37 -08:00
Ishank Jain
2fab33dcd4 qcacmn: Fix to make ping work on Hawkeye emulation(64 bit)
Change RXDMA_BUF_RING_SIZE to 2048
Change RXDMA_MONITOR_BUF_RING_SIZE to 2048

Change-Id: I1dee076e8e92259ffa43d2625a2dce0a94eb3164
CRs-Fixed: 1108439
2017-01-19 12:46:36 -08:00
Venkata Sharath Chandra Manchala
8e8d8f1e82 qcacmn: Fix for compilation issues in REO management
Added suitable typecasting for qdf_set_bit and
qdf_clear_bit functions

Change-Id: I90fc0f441a6eae8dfdea43705373fced81b26b48
CRs-Fixed: 1105853
2017-01-18 20:05:32 -08:00
Dhanashri Atre
a98e024f86 qcacmn: Change due to R102 hardware headers for QCA6290
Changes needed to support the new definitions introduced
in the R102 hardware header files for QCA6290.

Change-Id: I4e3c27dfdc48b4d6a44f0f50f3e4a907be20e53d
CRs-Fixed: 1105853
2017-01-18 20:05:31 -08:00
Karunakar Dasineni
a0f09eae1d qcacmn: REO management changes
Changes to use REO HW command/status interface to update/delete REO queues.

Change-Id: I3500d45db021ef314b4d03fa878314d407ddfe65
2017-01-18 20:05:29 -08:00
Manoj Ekbote
4f0c6b1732 qcacmn: REO command access APIs
Implementation of APIs for Lithium REO command/status rings

Change-Id: Ib428dd995bd597f7fbfbfc458dade6e7e258000c
2017-01-18 20:05:28 -08:00
Jeff Johnson
8a4fd9bec1 qcacmn: Fix -Wmissing-prototypes in dp_rx_err.c
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
2017-01-18 09:40:10 -08:00
Jeff Johnson
0771857b80 qcacmn: Add WAR for dp_soc_attach_wifi3 -Wmissing-prototypes
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
2017-01-12 07:12:00 -08:00
Jeff Johnson
f135257ccb qcacmn: Fix -Wmissing-prototypes in dp_main.c
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
2017-01-12 07:11:58 -08:00
Jeff Johnson
416168bfaf qcacmn: Fix -Wmissing-prototypes in dp_peer.c
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
2017-01-12 07:11:56 -08:00
Tallapragada Kalyan
603c594e45 qcacmn: DP RX optimization changes
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
2017-01-10 11:47:43 -08:00
Jeff Johnson
755f261b0c qcacmn: Fix -Wmissing-prototypes in dp_tx.c
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
2017-01-09 09:55:29 -08:00
Jeff Johnson
32140745b1 qcacmn: Make dp_htt_h2t_send_complete() static
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
2017-01-09 09:55:26 -08:00
Jeff Johnson
2cb8fc7e18 qcacmn: Properly export dp_peer API
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
2017-01-09 09:55:25 -08:00
Ankit Gupta
6fb389b4e4 qcacmn: Check peer for null before dereference
Check for peer null check before dereference in
dp_peer_state_update to update its state.

Change-Id: Id3b743d6cbe3d156a48ad111e467579b7478e4bb
CRs-Fixed: 1107176
2017-01-04 12:21:05 -08:00
Tallapragada Kalyan
1ef5480ea4 qcacmn: Added support to handle NULL Q descriptors
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
2016-12-29 01:48:29 -08:00
Karunakar Dasineni
ed1de12085 qcacmn: Lithium data path WMI changes
WMI changes for rx reorder queue setup. Also enable addba/delba handlers.

Change-Id: I360673d7493264d2591ffe3ba2bb5c3afba47f84
2016-12-24 10:13:22 -08:00
Vijay Pamidipati
5bcfa31ec4 qcacmn: Add support to process Tx completion status from WBM descriptor
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
2016-12-23 06:06:01 -08:00
Dustin Brown
e2e8dc2163 qcacmn: Add dummy bus suspend/resume ops for data path
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
2016-12-22 15:31:59 -08:00
Pamidipati, Vijay
b31b6b1d49 qcacmn: Add peer_unref_delete CB to CDP
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
2016-12-22 15:29:57 -08:00
Karunakar Dasineni
79cc20c174 qcacmn: DMA unmap SKBs dropped in Rx error path
Change-Id: I7135aa08062b06b3393cc09b7a5b2e0b64b3a4d6
2016-12-20 23:34:14 -08:00
Kiran Venkatappa
3ec0b30592 qcacmn: Fix for crash during unload of driver modules
Fix a typo to use correct data structure in htt_soc_detach

Change-Id: Ifbb68ef99190899e46003a95d0577f5b0a33981a
CRs-Fixed: 1097695
2016-12-20 21:52:22 -08:00
Tallapragada Kalyan
a5cbbfec4c qcacmn: fix the rxDMA buffer address configuration
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
2016-12-19 05:58:50 -08:00
Ankit Gupta
20e5958da3 qcacmn: Disable TQM bypass
Disable TQM_BYPASS_WAR flag from napier platform.

Change-Id: I0b17dad372204721058109b317389d4283e33a5c
CRs-Fixed: 1089685
2016-12-07 16:53:34 -08:00
Pamidipati, Vijay
b90a79ec7d qcacmn: Fix packet offset computation logic in Tx path
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
2016-12-07 14:38:40 -08:00
Vijay Pamidipati
88c40ff685 qcacmn: Delay DP Interrupt Poll timer start until a VAP is created
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
2016-12-06 13:18:20 -08:00
Pamidipati, Vijay
692f00cfd6 qcacmn: Add missing fields needed for DP Interrupt timer poll
Add timer instance in dp_soc for interrupt poll, to function in
poll mode till interrupts are enabled

CRs-Fixed: 1088985
Change-Id: I0d3207fe143b30317618d78b927133c43a552ef6
2016-12-06 13:18:19 -08:00
Dhanashri Atre
8abb9ee21a qcacmn: Change to set-up default TID queue
Set up default queue - use the same queue for BE and
non-qos traffic

CRs-Fixed: 1074199
Change-Id: I2e28ea1ee0a778d43a8d78005063a51776b48df0
2016-11-26 13:35:36 -08:00
Dhanashri Atre
6d90ef32d5 qcacmn: Separate peer object creation from other initialization
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
2016-11-26 13:35:33 -08:00
Dhanashri Atre
10a93237e6 qcacmn: TQM bypass workaround
Enable the TQM bypass workaround.

CRs-Fixed: 1089685
Change-Id: I83859fdedd15ddd8784f9d6629d9a459a1d9c412
2016-11-26 13:35:32 -08:00
Ravi Joshi
05d9e677a8 qcacmn: Enable timer based polling for DP rings
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
2016-11-26 13:35:31 -08:00
Dhanashri Atre
57e420d642 qcacmn: Pass the device to memory allocation and free
Pass the device instance to the QDF memory allocation and
free functions.

Change-Id: Ia6297e311cdca708b96c72fb50f8961cddc95d83
CRs-Fixed: 1087538
2016-11-21 15:20:03 -08:00
Nandha Kishore Easwaran
fd7832e906 qcacmn: Change CDP layer to include build flags
Making changes in cdp layer to include proper compilation
flags

Change-Id: I6d325386f2a6a2b01a900d0c525c7f30aa128e47
Crs-fixed: 1075597
2016-11-21 13:07:31 -08:00
Leo Chang
5ea93a4527 qcacmn: wifi3 compile against cdp
Wifi 3.0 compile against cdp apis.
Make compilable against mobile code base.
selective hw common header include.

Change-Id: I051f917001c0d13c762d9cb5a3ec141cd278d0e7
CRs-fixed: 1075736
2016-11-17 19:13:03 -08:00
Vijay Pamidipati
b775e13093 qcacmn: Add top-level interrupt handling support for DP
Add support for initialization of Lithium Datapath interrupts
and top-level interrupt handler for Datapath interrupts

CRs-Fixed: 1073253
Change-Id: I690d914221cf8a6d2ffdeb25785b1d534f56dfe7
2016-11-01 20:06:53 -07:00
Vijay Pamidipati
d41d6d6a49 qcacmn: Add configuration interace for Lithium Datapath
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
2016-11-01 20:06:52 -07:00
Pamidipati, Vijay
576bd154a2 qcacmn: Add Lithium DP Tx core functionality
Implement Lithium Core Tx Data Path, Tx HW descriptor processing
and Tx Completion Path (Processing of WBM Release Ring)

CRs-Fixed: 1073253
Change-Id: I11bebc49177398a157fcd161228859e2ef860402
2016-11-01 20:06:51 -07:00
Leo Chang
c2a7b763d1 qcacmn: add tx descriptor handle
Add memory optimized tx descriptor alloc, free and handle code

Change-Id: Iabd499b7690bbf8bc09223ea7e72e8f81818482a
CRs-fixed: 1076601
2016-10-31 09:54:11 -07:00
Debashis Dutt
f89574ad9a qcacmn: Add Lithium RX HAL definitions / macros / API's
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
2016-10-31 00:33:51 -07:00
Debashis Dutt
390645c6e1 qcacmn: Add Lithium RX Core Error Processing Infrastructure
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
2016-10-28 06:31:34 -07:00
Dhanashri Atre
7351d17b41 qcacmn: MCL Buffer Replenishment
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
2016-10-28 05:21:59 -07:00
Debashis Dutt
c4c52dc1fd qcacmn: Add Lithium RX Core Processing Infrastructure
Add Lithium Rx basic packet processing path from REO.
Implement the following in this patch:

 - Rx buffer replenishment directly to RxDMA rings (WIN)

 - Rx descriptor management

 - Rx Path Processing for non-error packets

 - RxDMA optimization (access on 128 byte boundary)

Change-Id: I25aea3a79d5494a0447bc7ca919acb87b74f2760
CRs-Fixed: 1074199
2016-10-28 04:36:42 -07:00
Karunakar Dasineni
9b814ce7e5 qcacmn: Lithium data path initialization
1. Intial version of Lithium data path initialization
2. HAL changes for REO and WBM setup

Change-Id: I52f638faf6e60c2a932acc3c76788bf8946c30db
2016-10-27 15:21:45 -07:00