Graf commitů

91 Commity

Autor SHA1 Zpráva Datum
Mohit Khanna
42a8d7ef31 qcacmn: Add P2P UDP/TCP checksum offload INI entry
Add support to enable disable TCP/UDP checksum offload for P2p modes.

CRs-Fixed: 2725395
Change-Id: Id482649e501a8f9a8900a92e3e03a48f0e99603c
2020-07-12 01:49:34 -07:00
Aniruddha Paul
915f53b12f qcacmn: Add INI support for peer ext stats
Add INI support for peer extended stats. The extended
stats as of now include per peer Tx/Rx delay per packet
path.

Change-Id: I20d3c7f81f65f4db5f111eb103945151a8cd83aa
2020-07-09 13:43:41 -07:00
Neha Bisht
e3876720a2 qcacmn: Add ini config to remap reo destination rings used by host
Adding support for enabling ini config to remap reo destination rings
for HK v1, HK v2, maple and pine platforms.

Change-Id: Id9d304521f32497e3acd845ddd2973b96b641516
2020-07-01 05:42:51 -07:00
Mohit Khanna
97200aab9c qcacmn: Add NAN TX checksum offload INI entry
Currently there is a single INI item tcp_udp_checksumoffload to enable
or disable this feature for all the adapters. In some cases, we want to
be able to enable this feature selectively for NAN mode.

Add nan_tcp_udp_checksumoffload ini item to enable or disable checksum
offload feature specifically for NAN mode. If
nan_tcp_udp_checksumoffload is 'true' and tcp_udp_checksumoffload is
false, hardware checksum offload will be enabled only for the NAN
adapter and not for other adapters.

CRs-Fixed: 2693638
Change-Id: I6e255ce68ddc7b01ebdefe4e5e8d2c985388fefe
2020-06-16 12:20:20 -07:00
phadiman
1f3652debc qcacmn: Datapath init-deinit changes
Do a logical split of dp_soc_attach and
dp_pdev_attach into Allocation and initialization
and dp_soc_detach and dp_pdev_detach into
de-initialization and free routines

Change-Id: I23bdca0ca86db42a4d0b2554cd60d99bb207a647
2020-05-02 21:59:42 -07:00
Nandha Kishore Easwaran
0d69530ee2 qcacmn: Interrupt changes in MSI path
1) Modified MSI interrupt mask for QCN9000 so that rx and tx
interrupts can be decoupled.

2) Removed lmac interrupts from polling mode and switched
them to msi interrupts. Added MSI masks for lmac rings.

3) Enable monitor mode LWM interrupt. This was already enabled in
integrated ahb interrupts but missing in msi. Replenish buffers in
RXDMA refill ring based on low threshold interrupts in addition to
regular Rx processing. Also made interrupt batch counter threshold as 8
for monitor status ring since ppdu end interrupts are not available in
PCI chipset and require srng msi interrupts to reap monitor status ring

Change-Id: I5c84b14d6b0a9c26fb3f0d67c349e79751a60861
2020-04-20 06:58:08 -07:00
Pavankumar Nandeshwar
9b0c1271ed qcacmn: Initialized pdev id with default value 0xFF
pdev_id is being initialized with 0. Since 0 is valid pdev_id, though
pdev is not present for that id, it is being accessed.

Initialized pdev_id to 0xFF by default. Added checks on API to
detect valid pdev_id value corresponding to lmac_id

Change-Id: I2b2a38783615494ccc08e265702815f7e562214b
2020-03-17 03:11:13 -07:00
Linux Build Service Account
67ef957780 Merge "qcacmn: Rename cmd ring to cmd_credit ring" 2020-02-15 11:08:15 -08:00
Ankit Kumar
f63aaef3d3 qcacmn: Rename cmd ring to cmd_credit ring
Command ring is now renamed to credit ring on QCN9000
and used for credit based flow.
Renaming the ring to give meaningful name.

Change-Id: I726aed19477fcfb256e4e0cca8ddb9389035b58c
CRs-Fixed: 2562640
2020-02-15 00:32:25 -08:00
Linux Build Service Account
2bb21ea23f Merge "qcacmn: Add INI option to enable FISA feature" 2020-02-13 04:38:15 -08:00
Manjunathappa Prakash
d501c32614 qcacmn: Add INI option to enable FISA feature
Add INI dp_rx_fisa_enable to enable/disable FISA feature.
Disable the feature by default.

Change-Id: I0cc524956e32ab9f2b5c556d8ae2e1855e8d3513
CRs-Fixed: 2599917
2020-02-12 11:58:15 -08:00
Karthik Kantamneni
29343ccd79 qcacmn: Fix array subscript out of bound issue
Fix array indexing greater than array size
which may lead to buffer over-read.

CRs-Fixed: 2616852
Change-Id: I802a64fddaec1dffa8f09284af11c0ebe84b65f0
2020-02-12 05:12:41 -08:00
Saket Jha
a4a994242f qcacmn: TX Optimization
Memory optimization of unused TX rings by not configuring rings that are
not being used. Configure 2 rings for host in the case of IPA, instead
of configuring 3. If IPA is disabled then configure only 1 set of TX
rings for host.

Change-Id: I251606c728f3020a13e45e8c8386970c8a641f0a
CRs-Fixed: 2530572
2020-02-12 02:38:17 -08:00
Linux Build Service Account
f91621de73 Merge "qcacmn: Send val of separate iface support for NAN INI to Fw" 2020-01-31 05:37:07 -08:00
Alok Kumar
0265d7917a qcacmn: Add INI support for packet log buffer size
Add INI parameter "PacketLogBufSize" to populate
packet log buffer size.

Change-Id: Ic9b963a88a6f6d884d5fa3a63b4fed6768ba2fc4
CRs-Fixed: 2611409
2020-01-30 23:23:53 -08:00
Saket Jha
f0640bc083 qcacmn: Set monitor mode interrupts
Ensure monitor mode interrupt masks are set as they are DP_INTR_POLL
type. Move wlan_cfg_fill_interrupt() call to inside dp_soc_attach as it
is called before dp_soc_init.

Change-Id: Id9c49e3ed5c01e7c1bf641fa4c2f419d31381608
CRs-Fixed: 2608683
2020-01-24 14:45:19 -08:00
Amit Shukla
1edfe5ae7c qcacmn: Data path changes for Dynamic Mode Change FR. Changes include-
1. Move all LMAC rings to SOC from pDEV
	2. Dynamically obtain lmac->pdev mapping while handling LMAC interrupts

Change-Id: Ib017d49243405b62fc34099c01a2b898b25341d0
2020-01-16 17:14:39 -08:00
Nandha Kishore Easwaran
bd98e6205e qcacmn: Create new interrupt mask for msi
Created a new interrupt mask for msi chipsets so that both ahb
and pci chipsets can work together.

Change-Id: I78d1b9641e58f07d1582152c691c5ae29e6ddb03
2020-01-13 15:18:31 -08:00
Ruben Columbus
b7a1c5782d qcacmn: monitor RXDMA drop feature
Adds new INI variable for threshold control.
Host sends message to target with new threshold info.
If buffer reaches threshold then MAC drops incoming monitor frames.

Change-Id: Id659d7df68a5ec0b22fb571dc1ffa4990f8fcc4f
2019-08-29 22:11:08 -07:00
Sumeet Rao
76aa8d5194 qcacmn: Add helper functions to fetch ini config for flow tagging
Add helper functions to fetch ini settings for flow tag enable,
flow search table size, global/pdev table selection, monitor mode
enable/disable of protocol & flow tags

CRs-Fixed: 2475913
Change-Id: I66d477d145ea04809bfc17ba3b88a6b8580854a1
2019-08-07 04:58:09 -07:00
Mainak Sen
9550273ede qcacmn: Rx Sw Descriptor allocation should be configurable
To make Rx Software descriptor allocation configurable for each radio,
new ini variable is added.

Change-Id: Ifc5683629747a6fe8238c18448695abe91876ec5
2019-08-05 16:45:59 -07:00
Prathyusha Guduri
abac9eedad qcacmn: Add tx sw internode queue ini config
Add tx sw internode queue ini config that is used by NSS offload mode

Change-Id: I8236a289aa33aaa6bfd1af2ff326438042636139
2019-07-29 04:31:13 -07:00
Prathyusha Guduri
aed67e197c qcacmn: Add tx device limit
Add tx device limit configurable from INI.
This is used to limit the overall tx descriptors used in the device

Change-Id: I51e9611ca14bdc146de914317b38b98329130c9f
2019-07-29 04:31:05 -07:00
Prathyusha Guduri
36ce817b7e qcacmn: Add dp_tx_desc_limits ini config
Add dp_tx_desc_limit for 5G high, 2G and 5G low to limit the
number of software tx_desc to be allocated.

Change-Id: If97e858b73aafaed0e21fc8f6e0337e467ce0ecc
2019-07-29 04:31:01 -07:00
Akshay Kosigi
eec6db94bd qcacmn: Remove void pointer usage for ctrl psoc
Make change to remove usage of void pointers for
ctrl psoc in DP and instead use a opaque pointer
struct cdp_ctrl_objmgr_psoc.

Change-Id: I9fac21db1156378fc10b95cf10517afa4364da00
CRs-Fixed: 2484411
2019-07-27 13:42:49 -07:00
Vevek Venkatesan
4a6c3e8568 qcacmn: CONFIG_MCL cleanup in cfg module
Put MCL specific cfg default values under feaature flag
WLAN_MAX_PDEVS.

Change-Id: If34c10ca37e67fbd5fa36d04059be79600c3c328
CRs-Fixed: 2477486
2019-06-27 05:00:19 -07:00
Venkata Sharath Chandra Manchala
cb6d0c0741 qcacmn: Create a wlan configuration table for ring types
1. Add config table to accommodate per ring type
   configuration to have a finer control over the
   ring.
2. Provide struct wlan_srng_cfg interface to add
   more parameters to control the ring.
3. Add interrupt threshold configuration parameters
   to wlan_srng_cfg structure.
4. Add WLAN_CFG_INT_TIMER_THRESHOLD_WBM_RELEASE_RING
   and WLAN_CFG_INT_TIMER_THRESHOLD_REO_RING to have
   different timer values for REO and WBM ring.

Change-Id: Ied50e3241ab2cc181ca4ed7f126959cd5d9d2de5
CRs-Fixed: 2455297
2019-06-20 18:36:24 -07:00
Varun Reddy Yeturu
23fbb8796b qcacmn: Free pdev configuration parameters during pdev detach
Free the memory allocated for the pdev configuration parameters
during pdev detach so that there are no memory leaks

Change-Id: I856cc6e6082197e98ad105053f1e4cffc2d25c53
CRs-Fixed: 2444000
2019-05-27 04:23:32 -07:00
Venkata Sharath Chandra Manchala
457bee21b3 qcacmn: Handle ring processing appropriately
1. Currently, mapping multiple rings to same interrupt
   context is misleading as we cannot identify the
   interrupt source. Assign umac reo and wbm release ring
   processing under different interrupt masks.
2. Map error rings processing under one interrupt context
   as they are not frequent.

Change-Id: Ia2c4de29b99d1e25af7e2ce3068132f5995a9a95
CRs-Fixed: 2434741
2019-04-19 04:08:49 -07:00
Mohit Khanna
16cd1b2e8d qcacmn: Add Sanity checks during RX processing
- Check for rx_desc.magic before using a rx_desc retrieved from the reo
  destination ring via rx_buf_cookie (dp_rx_process). Add stats.
- Check if we end up re-using a rx_desc with rx_desc.in_use=1 in the
  replenish path (dp_rx_buffers_replenish).
- Drop RX packet and assert in case MSDU Done failures are seen in
  in the TLV during dp_rx_process. Add stats.
- Disable host2rxdma ring mask for MCL. MCL is not expected to be
  receiving these interrupts.

Change-Id: Iaa345d04b8d48814f88ed6e2237fc67696f6a20c
CRs-Fixed: 2382076
2019-04-02 11:17:32 -07:00
Jeff Johnson
2e42a9e61c qcacmn: wlan_cfg: Replace explicit comparison to NULL
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within wlan_cfg replace any such comparisons with
logical operations performed on the pointer itself.

Change-Id: I45c4869708d81fd484a5b05196d274cc648f8e7b
CRs-Fixed: 2418260
2019-03-20 22:10:13 -07:00
Shashikala Prabhu
550e69c726 qcacmn: Restrict the tx descriptors for low mem config
For low mem config, use user configured max tx descriptors to limit the
allocation of software tx descriptors.

Use dp_txrx_pflow_update_pdev_params function to print stats and to update
pdev param.

Change-Id: I8fa6f0bb8841de68e8dc205ffcb0fde264f1b0e0
CRs-Fixed: 2414452
2019-03-15 23:15:06 -07:00
Krunal Soni
03ba0f55cf qcacmn: Implement new INI to switch-on/off excessive logging in DP
In datapath, some of the messages get printed everytime when packet
is received or sent. This situation ends up in excessive logging which
leads to stability issue.

In order to fix the situation, provide knob through INI to control
excessive logging and create new macro for logging the message which
comes under per packet path.

Change-Id: I2af5f9bf39540f952138aa8308401a387fe62bf1
CRs-Fixed: 2376998
2019-03-06 12:52:00 -08:00
Tallapragada Kalyan
a702362d34 qcacmn: Check for MAX_AST entries when adding AST entry
check for max_ast entries supported by FW and add the
entry on host accordingly.

Change-Id: Ief70ba631bb41d50c79d3673e3eea0c45b0c1e19
CRs-Fixed: 2355947
2019-02-12 04:47:37 -08:00
Mohit Khanna
16816ae8d0 qcacmn: Enable GRO for TCP packets
Add support for GRO functionality for TCP packets.
- Pass GRO config to DP layer as a part of dp_update_config_parameters
- Add API to read the number of active RX contexts from DP layer
  cdp_get_num_rx_contexts
- Fill GRO info into skb->cb from rx_tlv during dp_rx_process

CRs-Fixed: 2346995
Change-Id: I1c143d8ce2c7522ba2c76142fb6cc82193df5608
2018-12-18 00:08:08 -08:00
Keyur Parekh
11865218ea qcacmn: Enable monitor mode buffer ring LWM interrupt
Eanable monitor mode low water mark interrupt.The monitor
mode processing is stuck in the monitor mode buffer ring full
if monitor mode low water mark interrupt is not enabled.This
is because there is no packet come in when monitor buffer
ring is full and hence there is no ppdu end interrupt.The
monitor is not processing the monitor ring and buffer ring
full condition is not remoevd.

Change-Id: I28b3a4b408db62873c17512d20e63c9844e8d4ea
2018-12-05 22:46:06 -08:00
Pamidipati, Vijay
a59b5607c6 qcacmn: Split Tx and Rx indication handling
Add support to handle Tx completion processing and Rx processing into
different NAPI threads/contexts for Lithium DP

Change-Id: I4f5c6ef3ce969ce457e26cf3e8305df1ae782f09
2018-11-14 12:20:34 -08:00
Venkata Sharath Chandra Manchala
f167af18e5 qcacmn: Extend txrx_stats command to print wlan cfg
Add iwpriv <interface> txrx_stats 29 and
iwpriv <interface> txrx_stats 30 to print wlan_cfg
parameters for both soc and pdev.

Change-Id: I666fe4fa999e82e92ea2961ab662e3e629b58bc7
CRs-Fixed: 2331949
2018-10-29 20:10:23 -07:00
Venkata Sharath Chandra Manchala
8747958dff qcacmn: Enable Monitor Mode for QCA6390
Support Monitor Mode for QCA6390 as RXDMA1 block is
now removed.
1. Monitor buffers are now received on rxdma_err_dst_ring
2. RXDMA1 monitor status ring is moved to RXDMA0 monitor
   status ring
3. Msdu link descriptors are now returned to WBM descriptor
   release ring.
4. Reap the Monitor buffers and return it to SW Refill ring.
5. Use the same rx descriptor pool for regular and monitor data.

Change-Id: If41e5d13f942da2b97e5aab72b88ae344925ba67
CRs-Fixed: 2297300
2018-10-26 10:39:37 -07:00
Mohit Khanna
81179cb75e qcacmn: Fixes for IPA enablement for lithium/Hastings
- Support to pass IPA enabled(disabled) flag from ini to DP layer
- Use ioremap call to translate tx_comp_doorbell_paddr obtained from
  calling ipa_setup api to tx_comp_doorbell_vaddr. This is needed to
  write the initial value of HP at the doorbell address.
- Change REO_DST_RING_SIZE and WLAN_CFG_TX_RING_SIZE to 1023
  for napier/hastings if IPA is enabled. This is needed because,
  ipa_setup API can handle only 16-bit values for the size param(bytes)
  of the ring.
- Disable hash based flow steering for SAP peers in case IPA is enabled
  and set default reo_dest_ring_4 as default RX ring. Since IPA will be
  reaping RX packets from reo_dest_ring_4 only, flow steering is not
  needed for SAP peers.
- Unmap pre-allocated TX buffers for IPA in the TX completion ring.
- Donot execute IPA functionality if IPA is disabled from ini.

Change-Id: I6855bfe293a457ccc0abd1ad5567f5c95232a9d2
CRs-Fixed: 2183519
2018-10-17 17:42:35 -07:00
jitiphil
60ac9aa036 qcacmn: Add legacy DP CFG items and APIs
Add the basic infra for legacy DP CFG items and the APIs to be used from
other components.

Change-Id: Iec1718f0a93fcb91061892b96ae6ae88174df9ee
CRs-Fixed: 2328481
2018-10-11 08:56:51 -07:00
Akshay Kosigi
a4f6e173c1 qcacmn: Replace target related feature values with INI parameters
Introduce INI parameters to fetch feature related values based on target
type and add CDP interface to get dp INI parameters to control path

Change-Id: Id6a3f409106eb7dc01b08a3f1ec00dbe7efc359f
2018-10-01 08:04:59 -07:00
Pramod Simha
b2ef27ba26 qcacmn: Fixes for IPA datapath
1. Disable host processing of REO2SW4 when IPA is enabled.
2. Change buffer memory location provide to IPA TX transfer
   ring from consistent to non-consistent memory.

Change-Id: Ibb62d9faf5dc9adb5ee8a2e113d10a2912269cbd
CRs-Fixed: 2315889
2018-09-27 16:36:58 -07:00
Jinwei Chen
38c92c691b qcacmn: remove unnecessary IRQ in host2rxdma ring mask
For MCL, only keep one interrupt in host2rxdma ring mask definition,
which is used for host2fw RX refill ring low threshold reporting.
remove the left unnecessary ones to avoid invalid access
to uninitialized RX Desc pool.

Change-Id: I0d353eb68493573383b2ccd0cb36e98cd4a7a95d
CRs-fixed: 2317464
2018-09-24 18:55:17 -07:00
Venkateswara Swamy Bandaru
6ca4112f46 qcacmn: Remove SW WAR in rawmode for qca8074v2 target
Remove SW WAR in rawmode for qca8074v2 target. Added flag in
vdev structure which will be filled during vdev attach time.
Based on the flag war is applied.

Change-Id: Id91d6359b0a575b1f2b1222e56ac93a0e08a3c73
CRs-Fixed: 2296584
2018-09-05 06:47:16 -07:00
Vivek
126db5db3f qcacmn: Add INI support for Lithium DP configuration items
The current Lithium DP configuration items are hard
code and cannot be configured for different values
without rebuilding the driver

Add the INI configurability option for the Lithium
DP config parameters

Change-Id: I30012903ccb0654bdff706beff80655313aca289
CRs-Fixed: 2246404
2018-07-30 02:53:39 -07:00
Balamurugan Mahalingam
54d16a9371 qcacmn: Use txrx_intr_attach function to attach to poll and interrupt
Use appropriate reo dst ring size based on target type

Change-Id: I6e26537d25b4b8d4507acc689b9d17c83aa4d27e
2018-07-21 00:03:25 -07:00
Jeff Johnson
23dbde8dd9 qcacmn: Fix typo "choosen"
Replace typo "choosen" with correct spelling "chosen"

Change-Id: I0a4cfca422d395d3c0da911b358744e351f9b8ec
CRs-Fixed: 2238309
2018-05-17 00:46:38 -07:00
Manjunathappa Prakash
d9ce350f01 qcacmn: Initialize and reap both 2.4GHz and 5GHz MACs
Initialize MAC1 along with MAC0. 2.4GHz monitor mode operates on
MAC1 so initialize MAC1 and reap both MAC0 and MAC1.

Change-Id: Id281def37d460b224f5f571893266f193846fd0c
CRs-Fixed: 2176848
2018-03-20 15:54:58 -07:00
Karunakar Dasineni
860938ec59 qcacmn: Move monitor interrupt to separate group
Avoid monitor procees starvation by moving monitor interrupts to
a separate interrupt group. Currently these are part of regular
data ring interrupts, and are not being handled sometimes with
DBDC peak throughput, causing ring stall assertion failure in target.

Change-Id: I51d72187c68922de582be0a9da8e191e0e3c7bcf
2018-03-15 06:08:46 -07:00