Commit Graph

1083 Commits

Author SHA1 Message Date
Karunakar Dasineni
c45b01eb2b qcacmn: Fix bug in link descriptor pool setup
Fix bug in calculation of number of link descriptor entries per bank,
which was causing memory corruptions.

Change-Id: I68a86b8c644a4ef48a45ad5c98b739dced68d81d
CRs-Fixed: 2057893
2017-06-14 17:24:50 -07:00
Dustin Brown
4a3b96b4f1 qcacmn: Pause CDP timer during bus/runtime suspend
Converged datapath currently uses a polling timer to check for pending
traffic. As part of suspend, pause the polling timer to avoid any
invalid accesses.

Change-Id: I6b4654c6737c08475443d021c04ba9385d084d74
CRs-Fixed: 2047505
2017-06-08 13:46:55 -07:00
Manikandan Mohan
b01696ba61 qcacmn: Fix mem leaks in datapath
Fix mem leaks reported in datapath code during module unload.

Change-Id: Ife95426df11d61b253110ed7153fe8f8981006ed
CRs-fixed: 2044907
2017-06-01 15:21:34 -07:00
Venkateswara Swamy Bandaru
a95b324a8c qcacmn: Add CDP APIs for configuring interrupt
Add CDP API for interrupt configuration to decouple interrupt
setup from soc attach / detach.

Change-Id: I422205ff5687fdc4a0936c68850455cc4e733e4d
CRs-fixed: 2046055
2017-05-30 22:01:12 -07:00
Dhanashri Atre
991ee4defc qcacmn: Modify legacy LRO implementation to use QDF
Modify the legacy LRO implementation to use the implementation
in QDF instead. This is to avoid code duplication and to unify
the LRO implementations for Napier and Helium.

CRs-Fixed: 2042812
Change-Id: I38e9da3b54392a1c5781133916361aac3875d43d
2017-05-26 16:11:22 -07:00
Ishank Jain
6290a3c543 qcacmn: Add APIs to enable HTT FW Stats
Adding support to parse stream of HTT TLV's recieved as response
to the HTT EXT stats request message

Change-Id: I44c990a1ed91c2381b89811de33c0717bd24be7d
CRs-Fixed: 1114641
2017-05-24 02:41:10 -07:00
Adil Saeed Musthafa
03e2ac22d7 qcacmn: Change DP_TRACE level to FATAL (instead of NONE)
Change DP_TRACE and DP_TRACE_STATS to use FATAL level.
Set DP module at QDF_TRACE_LEVEL_FATAL by default.

Change-Id: Ia894c6695699192feed204bb0dffdb9cfd59480c
CRs-Fixed: 2048931
2017-05-20 19:26:09 -07:00
Ishank Jain
b463d9a735 qcacmn: Bug fix for NAWDS
Add missing break statement after case to enable NAWDS in DP

Change-Id: Ia4fa740e083761d7cf8d798d82f33b7762bf58a3
CRs-Fixed: 2008205
2017-05-18 10:36:51 -07:00
Ishank Jain
997955e336 qcacmn: Add Support for Inspect Path for Lithium
Add peer-id in the meta data for the reinjected by the FW
and queue them to the HW.

Change-Id: I3f25d5f928b6891c06cad6ce3ed81df77d4e33ed
CRs-Fixed: 2024450
2017-05-18 10:36:48 -07:00
Bharat Kumar M
9a5d537249 qcacmn: changes to support lithium nss offload
Changes include
1. nss_cfg parameter to dp_soc.
2. nss_enabled field for pdev.
3. cdp api to enabled nss offload config.
4. skip rx ring configuration when nss enabled.
5. skip timter /interrupt configuration if
   nss is enabled.
6. peer map/unmap event hander.

Change-Id: Ic4a919b6b7e846e18cb15ebcb94f8736a751ecb5
2017-05-17 19:30:25 -07:00
Bharat Bhushan Chakravarty
145d393444 qcacmn: SON convergence
1) Defined modularized public api for cdp module
to track inactivity and over load detection.
2) Initialization calls are added to attach and
detach SON specific api.
3) operating system specific calls are replaced with qdf calls.

Change-Id: I130d1e99208d6454f5d9888774534cc6d619ad83
2017-05-09 17:29:11 -07:00
Ishank Jain
57c42a193c qcacmn: Add missing TxRx Datapath stats
1.Add QDF_TRACE_STATS for datapath stats to remove
  module prints.
2.Fix Stats indentation for better readability.
3.Add missing stats
  a. Update Packets on Rx side on per-ring basis.
  b. Add stats for features (TSO/SG/RAW/Mesh)
  c. Add packet type count on Rx.

Change-Id: Ief1719b67330f729ff60703ec2be26bc5e4201e9
CRs-Fixed: 2034876
2017-05-05 00:27:21 -07:00
Kabilan Kannan
56bfd8fdb3 qcacmn: Update address search flags for TDLS
Add support to set address search flags in WLAN Tx Descriptor
for TDLS operation

Change-Id: Iafb15fb1efd84a4bef436062368401a5496e4468
CRs-Fixed: 2041759
2017-05-05 00:27:20 -07:00
Venkata Sharath Chandra Manchala
918aefe25b qcacmn: Per ring - Per core statistics
Add ring_packets variable to collect packet count on rx
path. This stat variable is incremented on
per ring - per core basis.

Change-Id: If8b51a757b28c231a6444e6b7f2e336b8c0cdd8e
CRs-Fixed: 2035142
2017-05-03 11:00:45 -07:00
Pratik Gandhi
8b8334baa4 qcacmn: Smart Mesh-Add filtering configuration to data path
Add nac(non associated client) configuration to pdev. It will be
used to perform smart mesh filtering on rx packets.

Change-Id: I29989d379e10fcc4a0e4aa19dbb3499650d6bf39
CRs-Fixed: 2017269
2017-04-28 16:15:24 -07:00
Pamidipati, Vijay
c9a13a52c8 qcacmn: Set addr_search flags according to vdev opmode
Add support to set addr_search flags in WLAN Tx Descriptor
as per vdev operational mode

Change-Id: I25fcd4bf450982f8aecc6e91236211c17d5f3f22
CRs-Fixed: 2004658
2017-04-24 15:55:13 -07:00
Karunakar Dasineni
ca792543cf qcacmn: Enable WDS learning only when configured
Add support to make WDS source port learning in lithium datapath
to be configurable.

Change-Id: I63eb64d6f46560a31f8e40a806d05d1dceddd784
CRs-Fixed: 2004658
2017-04-20 10:51:25 -07:00
Pramod Simha
7f7b4aa23d qcacmn: Changing DBS query method from DP
Changing the method DP queries WMA regarding
DBS capability. Now his call will be made through
policy manager.

Change-Id: I269537761a7acfa7e20a00c0ee7fc26ec1d17106
CRs-Fixed: 2025317
2017-04-18 17:15:21 -07:00
Dhanashri Atre
0da3122669 qcacmn: Lithium LRO Support in the Data Path
Add support to extract LRO information provided by
the hardware and utilize the support provided by QDF to
perform LRO.

Change-Id: I00a26573a450e9c32586b3d5fb656dbfe802cfac
CRs-Fixed: 1107169
2017-04-17 14:52:18 -07:00
Venkata Sharath Chandra Manchala
65bf2306f0 qcacmn: Fix memory leak for soc handle
Free the allocated memory for soc handle
in dp_soc_detach_wifi3

Change-Id: I555b9a7493338d064f2472704e24a5625800d081
CRs-Fixed: 2017582
2017-04-17 14:11:58 -07:00
Venkateswara Swamy Bandaru
19dc8b23a6 qcacmn: Fix to configure external group interrupts
After configuting the external group interrpts called configuring api
to configure external group interrupts.

Change-Id: I9db8c9dc941421fa05676be732147929be24b0e6
CRs-Fixed: 2018655
2017-04-14 11:50:32 -07:00
Ishank Jain
c838b133c1 qcacmn: Add Mcast enhancement feature support
Feature to convert Multicast packet and send them as unicast.

Change-Id: I64d44ac337bd366c6799226fd69f89cd3e46e65d
CRs-Fixed: 1116432
2017-04-14 10:17:19 -07:00
Tallapragada Kalyan
fd1edcc084 qcacmn: Add support for radio-based packet steering
packets received on a particular radio are queued to
a user configured reo destination ring.

Change-Id: I080090f22b80fd8d8868df4145b82888e1111cea
CRs-Fixed: 2017081
2017-04-12 04:42:35 -07:00
Venkata Sharath Chandra Manchala
a405eb741b qcacmn: Add dump stats feature for Lithium
Add support for dump statistics in Lithium.
Statistics include:
	1. Tx path packet flow
	2. Tx Histogram stats per interrupt
	3. Rx path packet flow
	4. Rx Histogram stats per interrupt

Change-Id: I7f399b717a9fb29a3d6ab672b669c6e323f61e27
CRs-Fixed: 2023386
2017-04-11 11:04:37 -07:00
Ishank Jain
e73c403a0b qcacmn: Add missing stats for Host Lithium Stats
Add Invalid Peer stats on rx side
Add aggregation stats missing on Tx
API to update Rx Errors

Change-Id: Ib757ee7b89d9b9113e1a41b5a520faabb9ff28bb
CRs-Fixed: 1114641
2017-04-11 11:04:18 -07:00
Pramod Simha
6b23f75bf8 qcacmn: Fix for unaligned memory access
Fix the logic to align a memory to the given boundary
and dma map the alinged address to the device.

Change-Id: I5cce07d5573949ab40f64cc08c937dfb7aa82b8e
CRs-Fixed: 2026493
2017-04-04 16:14:51 -07:00
Ishank Jain
9f174c6e2f qcacmn: Add Non Association WDS(NAWDS) Support for Lithium
Add API to handle NAWDS packets on tx side.
Add API to handle invalid peers and pass them to umac.

Change-Id: Ie8c2508e4f51c7d6969c9eb6439919c57dd427d4
CRs-Fixed: 2008205
2017-04-03 14:38:51 -07:00
Dhanashri Atre
398935eb56 qcacmn: Fix the null check before invoking function
Fix the logic that verifies that the dbs function pointer
in data path is valid.

Change-Id: I35418f2a66eb2d4b44260b005ab0d927d91eeac7
CRs-Fixed: 2025317
2017-04-03 13:45:57 -07:00
Karunakar Dasineni
1d891ed8d3 qcacmn: Fix for datapath latency issues
Reduce DP poll interval to 10ms and change per-packet prints in Rx path to debug level.
Also fixed HAL macros used to setup Rx buffer descriptors.

Change-Id: I112393a3f021b275dbe9da9df9c1bac584a96f3f
CRs-Fixed: 2026389
2017-03-31 14:50:19 -07:00
Dhanashri Atre
2c6381da6b qcacmn: Add null check before invoking function
Verify that the dbs function pointer in data path is valid.

Change-Id: I2add5cf3b58ef52240d9cda01220ba444b7716ad
CRs-Fixed: 2025317
2017-03-31 12:05:50 -07:00
Tallapragada
57d866024a qcacmn: fix crash found in intrabss-forwarding
We are zeroing out complete peer structure after
initialing ast_entry queue. so re-adjusted code.
Also wds source port learning is called before we
pull the TLVs from the nbuf resulting in accessing
wrong src mac address.

Change-Id: Ifd5a2056a3f9f03a1ff1cf5b79046f932dd38510
2017-03-31 05:54:35 -07:00
Dhanashri Atre
b178eb464d qcacmn: Initialize LRO and rx hash during vdev attach
We need to send the LRO and rx hash configuration to the
firmware during vdev attach. Currently they are being incorrectly
sent before WMI service ready indication.

Change-Id: I69680b48e6725c6deaad434d722546052cfe86b4
CRs-Fixed: 2022770
2017-03-30 14:53:31 -07:00
Kai Chen
6eca1a62da qcacmn: Monitor mode configuration and processing
This change is for supporting monitor mode VAP.  All the monitor mode ring
is configured. The related monitor mode ring includes:
-monitor mode buffer ring
-monitor mode destination ring
-monitor mode status ring
-monitor mode link descriptor ring
The packet is not sent to monitor mode ring unless the monitor mode VAP is
configured. This release support Multiple VAP - AP/STA VAP plus Monitor
VAP configuration. The status ring is not used in this release. However,
the ring is tested and the ring is moving and there are TLV's in the ring.

Change-Id: I782ee0c3b998d8b3bbac79b5e7fdecdbff15fa93
CRs-Fixed: 2013049
2017-03-29 05:58:52 -07:00
Venkata Sharath Chandra Manchala
87686d9a2f qcacmn: Fix for ampdu aggregation in host statistics
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
2017-03-28 11:03:06 -07:00
Tallapragada Kalyan
6f6166e36c qcacmn: Add support for intra-bss forwarding
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
2017-03-25 06:38:24 -07:00
Manikandan Mohan
e2fa8b7861 qcacmn: Setup CDP interface for flushing RX queue
Refactor flush rx queue function call based on soc by adding an
interface to CDP funtion indirection table.

Change-Id: Iea201553f555a6c317cf37e586433aa493e51623
CRs-fixed: 2023399
2017-03-24 19:01:10 -07:00
Karunakar Dasineni
7957fa9705 qcacmn: REO descriptor allocation change
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
2017-03-24 05:41:20 -07:00
Venkata Sharath Chandra Manchala
a77da0da85 qcacmn: Txrx statistics for Lithium datapath
Introduce a new iwpriv command txrx_stats to
print host and firmware statistics for lithium
chipset

Change-Id: Ib048c64f903c7a97508f8b03bebe7f7c1d9e6c05
CRs-Fixed: 2017426
2017-03-22 09:50:29 -07:00
Ishank Jain
949674c4cb qcacmn: Add DSCP_TID changes for Lithium
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
2017-03-21 22:01:27 -07:00
Kiran Venkatappa
9edb9614d9 qcacmn: Send osif_pdev in peer_unref handler
peer count is maintained per pdev. Pass osif_pdev instead of osif_soc in
peer_unref handler.

Change-Id: Idc17e63a9a12562cd15aa4527e4aa6db08586690
2017-03-16 20:42:20 -07:00
Ishank Jain
1e7401cbc7 qcacmn: Add Host Lithium Stats
Add per peer stats
Add support to update APSTATS
Change QDF_TRACE to DP_TRACE for improved readablility

Change-Id: I4be2adf2a1d7f978eb2961a544435d525c97923d
CRs-Fixed: 1114641
2017-03-16 20:03:16 -07:00
Dhanashri Atre
1404917b6e qcacmn: Add support for hash based rx steering
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
2017-03-13 14:01:49 -07:00
Venkateswara Swamy Bandaru
5caa83a44e qcacmn: Fix review comments(trivial) given previously
review comments give for 1779700 are addressed.

Change-Id: I1fb5321c2dbcf3ef987ee460c772e668e344e1fc
CRs-Fixed: 2003389
2017-03-13 01:28:32 -07:00
Ishank Jain
bc2d91f8f3 qcacmn: Add TxRx Statistics for Lithium datapath
Statistics can be displayed by issuing following commands

iwpriv ath0 txrx_fw_stats 3 /*Rx Rate Info*/
iwpriv ath0 txrx_fw_stats 6 /*Tx Rate Info*/
iwpriv ath0 txrx_fw_stats 8 /* print Tx stats */
iwpriv ath0 txrx_fw_stats 27 /*print Rx stats */

To reset the stats:
iwpriv ath0 txrx_fw_stats 9 /* clear all stats */

Change-Id: If4be2549f43403e71ef092c23b1cf14b35a2e5d4
CRs-Fixed: 1114641
2017-03-09 17:37:42 +05:30
Ravi Joshi
86e9826f04 qcacmn: Fix interrupt handling after pdev deinit
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
2017-03-09 01:59:17 -08:00
Venkateswara Swamy Bandaru
ec4f8e61c6 qcacmn: Add support for Mesh Rx filters
Added support to filter out received packets on mesh vap based on
rx filter setting.

Change-Id: Ibc541324d928a9d006531c8908f4792e0c7d854e
CRs-Fixed: 2003389
2017-03-08 08:24:49 -08:00
Kiran Venkatappa
5dba3a3f9a qcacmn: Fix init failure and DP detach crash
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
2017-03-05 21:38:40 +05:30
Venkateswara Swamy Bandaru
3f62370e23 qcacmn: Add support for Mesh Tx path
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
2017-03-03 11:37:09 -08:00
Ravi Joshi
af9ace8358 qcacmn: Fix wlan_cfg file inclusion and remove duplicate static API
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
2017-03-01 19:01:51 -08:00
Kalyan Tallapragada
277f45e2b1 qcacmn: Add support to handle RAW packets in RX path
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
2017-02-23 14:05:53 -08:00