Commit Graph

472 Commits

Author SHA1 Message Date
Linux Build Service Account
519d203401 Merge "qcacmn: Change format specifier %p to %pK" 2017-11-15 11:57:36 -08:00
Pamidipati, Vijay
57a435a7e0 qcacmn: Move peer stats to PPDU indications
Move peer stats updation to PPDU indications from per-MSDU indications
to optimize CPU cycles. Add dp_rx_stats_update for receiver side PPDU stats

Change-Id: I4bdda8ac447e64cd1017e5be3949ec3f915a9d71
CRs-Fixed: 2123969
2017-11-15 12:39:08 +05:30
Yun Park
fd269b5021 qcacmn: Remove kernel includes from datapath
To abstract kernel header inclusion, create a new QDF APIs for all IPA
APIs and redirect all IPA API calls through QDF interfaces.

Change-Id: I7bff975ad7cb32fc128320c124633594471e0a1f
CRs-Fixed: 2098907
2017-11-11 19:25:09 -08:00
Venkata Sharath Chandra Manchala
aa62ae7615 qcacmn: Add NULL checks within CDP Layer
Part-1: Add Null checks for all API's in the cdp
layer.

Change-Id: I283fa5e9ff7c5f2024ecbc91d7544469ab64fcaa
CRs-Fixed: 2136173
2017-11-10 00:27:52 -08:00
Jeff Johnson
616d1309d2 qcacmn: Rename enum tQDF_ADAPTER_MODE
The name tQDF_ADAPTER_MODE is a poor name on many levels:
-  The "t" prefix implies it is a typedef when it isn't.
-  The "t" prefix makes this a mixed-case identifier which is "frowned
   upon" in the Linux coding style guide.
-  The term "ADAPTER" is MCL-specific and is not suitable for
   converged code.

Therefore rename enum tQDF_ADAPTER_MODE to enum QDF_OPMODE to better
align with with the Linix coding style and the converged nomenclature.

Change-Id: I20f1b6d1a0ab4b8fe6a85cefdff96a49e2f4652c
CRs-Fixed: 2140295
2017-11-08 21:57:31 -08:00
Dustin Brown
231f929686 qcacmn: Add QDF cpu hotplug APIs
Currently, there are two consumers of the Linux kernel CPU hotplug APIs.
Besides being problematic for not being operating system agnostic,
different versions of the Linux kernel export different CPU hotplug
APIs. In order to consolidate the various abstractions for different
operating systems and API versions, create a CPU hotplug abstraction in
QDF.

Change-Id: Ib17c6e3ed3a87a90a82d909a6c493360cab27855
CRs-Fixed: 2132632
2017-11-07 13:42:43 -08:00
Deepak Dhamdhere
7e0b8ba31a qcacmn: Create roam debug log infrastructure
Add a circular buffer to hold roaming related debug log information
for peer and vdev operations in the driver. Purpose is to dump
this information after host or target crash. 256 entries will go
back much deeper into history than dmesg or wlan driver logs found
in crashScope. Information is dumped out as error messages from
crash detection points as necessary.

The support routines help to store the debug logs and dump them,
typically after peer related timeout or assert.

wlan_roam_next_debug_log_index () - Utility routine to compute next index
wlan_roam_debug_log() - Adds a log entry
wlan_roam_debug_string() - Returns debug log type string
wlan_roam_debug_dump() - Dump all wlan roam debug log records

Add new QDF module ID QDF_MODULE_ID_ROAM_DEBUG.

CRs-Fixed: 1116078
Change-Id: If2077f560405ec0414d08ef4ece0fb0d2db2ccc7
2017-10-31 17:39:09 -07:00
Balamurugan Mahalingam
1666dd32aa qcacmn: Enable support for Coldboot calibration in IPQ8074 platform
This changes checks the con_mode value and passes corresponding PLD mode value

Change-Id: I08a8f87c3dc92b7af02c36851b27eec800b7f4a7
2017-10-24 04:51:47 -07:00
Rachit Kankane
4298b392d7 qcacmn: New value for ini gWlanMccToSccSwitchMode
Currently ini variable gWlanMccToSccSwitchMode has 4 values.
Value 3 enforces SCC in anycase, if SCC is not possible then switchoff
the AP.
Added new value 5 for auto specific scenarios where, if SCC is not
possible the allow MCC.

Change-Id: I584958c6c61f7d1f5e077871e3891bba79f726a3
CRs-Fixed: 2127091
2017-10-23 06:12:37 -07:00
Nachiket Kukade
110e03024d qcacmn: Create a list for events and force complete them during SSR
During an SSR/PDR any threads waiting on an event won't be purged
unless they are timed out. This increases the recovery time taken
by the host after an SSR/PDR. Before waiting on an event, put the
event in a list. During an SSR set all the events in the list and
return error to the threads.

Change-Id: Iac4790a88cde1665fba4c23924566b4b309a2b03
CRs-Fixed: 2045141
2017-10-23 01:55:57 -07:00
Aniruddha Paul
b2f7ab65cf qcacmn: Added new debug module id for NSS
A new debug module ID is added for NSS offload.

Change-Id: Ie14aa4fda6ff9d68eb8b810fa3e7071addf8e1c6
CRs-Fixed : 2125829
2017-10-17 03:02:08 -07:00
Mahesh Kumar Kalikot Veetil
68bb47153d qcacmn: Add debugfs APIs
Add qdf abstraction for debugfs APIs such as create file, create
directory, create types and remove files/directory. If a particular
operating system is not supporting debugfs or similar feature, these
API's will be a no-operation.

Change-Id: I09fe366b85d4914ebdab52d3fb23acab72aa2116
CRs-Fixed: 2097140
2017-10-17 00:07:45 -07:00
Mahesh Kumar Kalikot Veetil
164ecb724a qcacmn: Add QDF file permissions
Add file permissions and a function to map that to Linux OS. Also
define a type for __qdf_dentry_t and __qdf_debugfs_file_t.

Change-Id: I91b293b262d955324e65157909ca9d3b831e2cf6
CRs-Fixed: 2097140
2017-10-17 00:07:43 -07:00
Dustin Brown
f653d16e6c qcacmn: Remove qdf_handle_t from unused qdf_defer APIs
There are many QDF APIs require a qdf_handle_t parameter. None of these
APIs actually use the qdf_handle_t parameter, meaning it can be
completely removed. As a step toward globally removing this unused
type, remove qdf_handle_t parameters from unsed qdf_defer APIs.

Change-Id: I0568aa7cbd430abc0d046143482a067d96bf6313
CRs-Fixed: 2112646
2017-10-12 14:22:02 -07:00
Yun Park
2fedb13531 qcacmn: Add IPA ownership clear for Intra-BSS Tx packets
Set IPA ownership for intra-BSS Tx packets to avoid skb_orphan(), and
clear the ownership after check it to avoid ipa_free_skb() is called
when Tx completed.

Change-Id: I03883773e418bb5518ea63a324d22503173ea436
CRs-Fixed: 2064191
2017-10-12 14:21:44 -07:00
Anurag Chouhan
6e56986cae qcacmn: Introduce QCA_NL80211_VENDOR_SUBCMD_HANG
Event indicating to the user space that the driver has detected an
internal failure. The driver is expected to recover from such a failure
automatically, e.g., by resetting the device.
This event carries the information indicating the reason that triggered
this detection.

Change-Id: Ia13e6f102e5e18ec4864ed258728369d51a77ff4
CRs-fixed: 2120886
2017-10-06 07:58:02 -07:00
Sravan Kumar Kairam
49bc225a92 qcacmn: Implement nbuf alloc fail replenish timer
Implement nbuf alloc fail replenish timer which starts when
there is an nbuf allocation failure and stops when there is
an nbuf allocation success with in the timer expiry duration.

Change-Id: Ie956ea144dec4323664632d00bb8f0f82ba22439
CRs-Fixed: 2036900
2017-10-05 12:18:20 -07:00
Poddar, Siddarth
bf4231b6d8 qcacmn: Add support to log ICMPv6 packets in DP Trace
Add support to log ICMPv6 packets such as NS/NA, RS/RA and
ICMPv6 Req/Res in dp trace.

Change-Id: I11aab230b03254ea46c019cdb4488d1439a9504d
CRs-Fixed: 2075963
2017-10-03 16:02:25 -07:00
Sravan Kumar Kairam
66d15b2908 qcacmn: Record nbuf free information for debug
During network buffer free record the information such as file name,
line number, net buff address and time stamp. This helps to debug
issues related to buffer access after free.

Change-Id: I579a4764d8ea08210a3eedd349780cab2c081e3a
CRs-Fixed: 2071563
2017-09-29 05:40:03 -07:00
Jeff Johnson
c70ccac86e qcacmn: Remove typedef v_CONTEXT_t
Typedef v_CONTEXT_t was inherited from a previous version of the
driver. It was always strange to have an abstraction for (void *)
since that is an integral part of C99 and hence does not require
abstraction. Now all references to this typedef have been replaced
with (void *) so remove this obsolete relic.

Change-Id: Ibe61708d0315e541376be24746d167d1f7a8ccc0
CRs-Fixed: 2117100
2017-09-28 16:11:17 -07:00
Dustin Brown
37dd1494e6 qcacmn: Interpret delayed work interval as milliseconds
The QDF delayed work APIs currently expect delay intervals in terms of
jiffies. Since QDF is OS agnostic, and jiffies are Linux specific,
interpret delay intervals in terms of milliseconds instead. This aligns
the delayed work APIs with the general timer APIs as well.

Change-Id: I9b9300425baa0857c35f63823de2037a954eed1f
CRs-Fixed: 2111987
2017-09-21 16:41:46 -07:00
Dustin Brown
a86de10a9a qcacmn: Add qdf_print_thread_trace API
Add an abstraction to QDF for printing the stack trace of a given
thread.

Change-Id: Ibea6e6bed7f3ebe67538b8ea8b6b437b643d5541
CRs-Fixed: 2088806
2017-09-13 15:25:44 -07:00
Anish Nataraj
38a2956c7a qcacmn: Add PPDU Statistics Support for Rx datapath
Add support for processing rssi, mcs etc fields from
PPDU status ring and delivering to CDP interface

Change-Id: I312bef20605594645bae6ec748f0b59e4d427075
CRs-Fixed: 2098696
2017-09-13 01:48:19 -07:00
Mohit Khanna
7750a17a55 qcacmn: Dptrace enhancements
* Log EAPOL, ARP, DHCP, MGMT, ROAM Events, ICMP, Data packets,
  TX-Completions by default.
* Set default verbosity as low (existing is high)
* Throttle ICMP and Data packets if threshold exceeds.
* Enable live mode by default. Added ini entry to disable
  it and configure high throughput thresh - gDptraceConfig
* Log only SA and DA for proto packets (and not 32 bytes)
* Format prints to fit in 1 line.

CRs-Fixed: 2051134
Change-Id: I2f82c38f5fda73f440c4c4c760e633904705b5a2
2017-09-12 03:37:55 -07:00
Houston Hoffman
5645dd2803 qcacmn: Use qdf_dbg instead of qdf_print for non-error logs
Stats printing with excessive loops should not go to the console.
Avoids watch-dog bites.

Change-Id: I7b0f9d73139dff97c16f492cbd1cb2d255255b3e
CRs-Fixed: 2091039
2017-09-08 02:37:26 -07:00
Dustin Brown
24c31020a2 qcacmn: Use refcount APIs for sk_buff.users with 4.13+ kernels
The 4.13 Linux kernel changed the sk_buff.users type to refcount_t from
atomic_t. Add conditional compilation based on kernel version to use
appropriate refcount APIs for kernels 4.13+.

Change-Id: I6918b4f45ffa247c74e54d8653a80821ceab1a86
CRs-Fixed: 2092031
2017-08-29 20:56:28 -07:00
Prashanth Bhatta
65b0eaa24b qcacmn: Change semantics of Runtime Lock APIs
Runtime PM lock init API right now returns pointer to a context
but this would cause confusion to the caller if feature is not
defined and dummy function return NULL as caller can't find real
failure versus dummy function returning because feature not being
enabled.

Fix declaring a data structure in QDF layer that caller can use
but it hides the internal details of HIF implementation for
Runtime PM locks.

CRs-fixed: 1116509
Change-Id: I4dcba604e803faa0e14fac6403610391895e382e
2017-08-15 13:27:07 -07:00
Rajeev Kumar
eca1b64d6c qcacmn: Add host initiated self recovery callback in qdf
Add host initiated self recovery callback in qdf such that
self recovery can be invoked from all layers.

Change-Id: Ied2a468019a2e27039686a4acb0e4c8b4577ba8f
CRs-Fixed: 2083099
2017-08-13 15:36:36 -07:00
Yun Park
fde6b9e551 qcacmn: Enable WLAN host data path support for IPA WDI3.0
Change to support WLAN Napier host autonomy data path architecture.

Change-Id: I07f7592d547bb796a3c12bbc4745cee22e2c0022
CRs-Fixed: 2064810
2017-08-07 17:47:38 -07:00
Srinivas Girigowda
2cde14e687 qcacmn: Fix clang warnings enum qdf_nbuf_l4_rx_cksum_result_t
warning: implicit conversion from enumeration type
'qdf_nbuf_l4_rx_cksum_result_t' to different enumeration
type 'qdf_nbuf_l4_rx_cksum_type_t

Change-Id: Ib6d9e863d6355746138c4b087a0cb19f12404f75
CRs-Fixed: 2055513
2017-08-03 19:48:35 -07:00
Srinivas Girigowda
f6b3aacb2e qcacmn: Add qdf_driver_type
Add qdf_driver_type.

Change-Id: Ib5c1d71ed43ea09cea8d65ed9aef0937391b6d09
CRs-Fixed: 2055513
2017-08-03 19:48:29 -07:00
Chaithanya Garrepalli
cdc307f70b qcacmn: Replace SKB CB vdev_ctx member with vdev_id
Removed submit_ts and replaced vdev_ctx with vdev_id
in qdf_nbuf_cb

Change-Id: Ib478aa69ee8069d1c5ff5de29ee0431c238f4b7d
CRs-Fixed: 2065367
2017-08-01 10:02:46 -07:00
Yingying Tang
96b8cea9be qcacmn: Fix "__aeabi_uldivmod" symbol error
There is an unknown symbol error "__aeabi_uldivmod" due to
a division operation between uint64 value in wlan driver.
Add qdf API to use do_div to avoid "__aeabi_uldivmod" symbol
error.

Change-Id: I24e51990ff9e0ecea327ad9c71266fd768d62a6c
CRs-Fixed: 2013952
2017-07-24 07:52:42 -07:00
Ashish Kumar Dhanotiya
1c5d902876 qcacmn: Add proper api for ktime_get_boot_ns for kernel 3.10
Kernel api ktime_get_boot_ns is not supported in kernel version 3.10
so add correct api for kernel 3.10.

Change-Id: Id78d50d759db90a9c6edf4114f8af1a925dfb9bb
CRs-Fixed: 2076538
2017-07-24 02:37:31 -07:00
Rajeev Kumar
bc19894820 qcacmn: Add QDF debug capability to track total SKB allocation
Enhance existing SKB leak debug capability to track total
SKB allocation by driver in SLUB debug enabled builds.

Change-Id: I6bb19ab482961febd8bb5adebe8f71e732ff60dd
CRs-Fixed: 2066205
2017-07-12 21:44:29 -07:00
Srinivas Girigowda
43977f7e6d qcacmn: Fix kernel checkpatch warnings in QDF
Fix kernel checkpatch warnings in QDF.

Change-Id: Id2f54c6c436bde55b040012fbbe9922cb177461e
CRs-Fixed: 2028128
2017-07-12 20:12:49 -07:00
Ravi Joshi
1eaf7b5b82 qcacmn: Update radiotap header to include HE parameters
Add/extend radiotap header to include high-efficiency (11ax)
parameters.

CRs-Fixed: 2071602
Change-Id: I8bfbed16edca42eb38256bccc2efff8f21e50f15
2017-07-06 21:55:15 -07:00
Kapil Gupta
7401104431 qcacmn: Add support for AES ctr mode for kernel 3.18
Add changes to support AES CTR modes for FILS encryption and
decryption.

Change-Id: I418e85987bfa96efb7b9dc10e9b2125290299c89
CRs-Fixed: 2039626
2017-07-06 08:29:27 -07:00
Ashish Kumar Dhanotiya
c846868cd8 qcacmn: Add correct api call to get proper boot time
Propagation from qcacld-2.0 to qcacmn

Currently to get clock boottime, qdf_get_monotonic_boottime_ns
api is getting used which does not include the suspend time.

To include the system suspend time also in clock boottime, use
qdf_get_bootbased_boottime_ns api which uses ktime_get_boot_ns
kernel api.

Change-Id: Ibcc628c315201fa3ced7e1ad96753772d91707b2
CRs-Fixed: 2069085
2017-07-05 03:40:50 -07:00
Kapil Gupta
830881389a qcacmn: Add changes to support crypto API
Add support for hash, hmac-hash calculation and
aead encryption and decryption.

Change-Id: Idddcfaa2ec4c5689c997559551230bc8f59df032
CRs-Fixed: 2029962
2017-06-28 12:47:14 -07:00
Tallapragada Kalyan
0cd1793ba5 qcacmn: fix skb cb corruption issue
the ftype in skb->cb is overshooting allocated 48 bytes
causing kernel crash

Change-Id: Ie33508c462a032b28624de5270ce91a93d0b067d
2017-06-27 10:32:46 -07:00
Zhu Jianmin
af3420af93 qcacmn: Add icmp dptrace for latency issue debug
Ping latency is a key performance KPI for some customers,
need log in debug mode

Change-Id: I96eebf3f249668dd220aa1062fb339f940d36975
CRs-Fixed: 2039646
2017-06-22 04:38:28 -07:00
Sravan Kumar Kairam
a46056182a qcacmn: Add support to log IP addr of the wow wakeup packet
Add support to log the IP header source and destination address
for the first Rx packet received after host wakeup.

Change-Id: Ie8cf71c8ce913378687ad2c79ab9d5f46c0c2419
CRs-Fixed: 1106593
2017-06-21 19:40:49 -07:00
Manjunathappa Prakash
86287dcf2e qcacmn: Define platform CACHE_LINE_SZ
Add platform CACHE_LINE_SZ so that it can be used to roundup the data
structures.

Change-Id: Iec45f5747956d0797411f76c2fec1368a13e7d6d
CRs-Fixed: 2046852
2017-06-19 12:43:31 -07:00
Karunakar Dasineni
4055568bad qcacmn: Monitor status ring handling
Changes to process PHY TLVs from monitor status ring and extract
information required for radiotap header.

Change-Id: I99d642e7506ea797b26dbfac89fd223d1a4c0a55
CRs-Fixed: 2048006
2017-06-16 17:12:13 -07:00
Ravi Joshi
52569e2a83 qcacmn: Extend radiotap header to include HE parameters
Extending monitor/radiotap header structure to include
high-efficiency (HE) headers.

CRs-Fixed: 1113187
Change-Id: I841dcdff3a91f1c70c3b0aac0a555c2f4b40aed7
2017-06-08 11:34:39 -07:00
Vivek
2c86b213c6 qcacmn: Replacing qdf_print with QDF_TRACE
Replace all object manager qdf_prints with obj_mgr_err/obj_mgr_info
based on QDF_TRACE with the right log levels.

Added additional debug information like
Pdev_id
Vdev id
Peer MAC address

Change-Id: I96d96182176d332b9fbdb202305d29c08ddc0d18
CRs-Fixed: 2026537
2017-06-06 01:26:00 -07:00
Nandha Kishore Easwaran
e43583f3c1 qcacmn: Dptrace changes to take per pdev stats
Initial changes for adding dp trace in common framework. Modified dp_trace
record sturcture to include pdev_id as a member to take per_pdev stats.
Dump command has been modified to dump stats per pdev.

Change-Id: I8aede0bd8ab6f381c7fa0542d077bdd8bf66b3d2
CRs-fixed: 2038944
2017-06-05 22:52:34 -07:00
Rajeev Kumar
a86e46fee9 qcacmn: Relax spin lock abuse detection thresholds
Increase irq save spin lock abuse detection threshold to 10 ms
and spin lock bh abuse detection threshold to 1 second such that
very obvious spin lock abuse cases by WLAN driver are detected
and fixed.

Change-Id: I8ca751404dc05e3fc3b6aa5db8538cb98c710260
CRs-Fixed: 2047464
2017-05-30 17:31:21 -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