Commit Graph

1040 Commits

Author SHA1 Message Date
Vivek
f4b29f3ad5 qcacmn: Use file for include path instead of environment variable
The include path passed to the CFLAGS may get very long in few cases
and passing them to the compiler results in the error
"arguments too long" from the shell.

We can pass the same argument by writing the include paths
to a file and avoid these errors when there are many include
paths added.

Change-Id: I2788d6e97a854ae6272d665943d56d581dc002bf
CRs-Fixed: 2999763
2021-07-27 07:07:11 -07:00
Ananya Gupta
f2851b458b qcacmn: Affine rx_err srng to all CPUs except 0
IPA and rx_err ring are processed in same CPU resulting
in low Tput.
To fix this, not allow processing of rx_err ring in
CPU 0

Change-Id: Id53a03c9290607beb1a595c84bfb0fd8d9f5d105
CRs-Fixed: 2949569
2021-07-27 01:00:14 -07:00
Vivek
f8167f4dbc qcacmn: Call cfg80211 functions with context aware allocation flags
There are instances in the code where the response is sent from the
driver to the supplicant indicating the allocation flags which is
used by the supplicant to allocate memory.

In those situations, we should pass the allocation flags based on
the context in which the response is sent.

Send the response with the right allocation flags to the supplicant.

Change-Id: I85f1c29fc66ba51a9f9c645692712c3a25b7fed1
CRs-Fixed: 2987552
2021-07-26 13:54:14 -07:00
Linux Build Service Account
06312dc0bf Merge "qcacmn: Fix potential NULL pointer access in qdf_ini_parse()" 2021-07-22 11:41:59 -07:00
Vivek
3853650e2e qcacmn: Add new MBSS framework component
Add a new component for MBSS framework in object manager.

Add a new trace module for the new MBSS component framework.

Change-Id: I7ef3559d90a6bc7f558e3994a1a91f09985d90e9
CRs-Fixed: 2958764
2021-07-21 17:14:56 -07:00
Debasis Das
1ae342f91a qcacmn: Fix potential NULL pointer access in qdf_ini_parse()
In qdf_ini_parse(), verify that section_cb pointer is valid
to prevent invalid memory access.

Change-Id: Ie3d2e513e2aabf0bd5f9702578074cb1191991c1
2021-07-21 03:05:41 -07:00
Manjunathappa Prakash
036b05b69e qcacmn: Enable need idle functionality for 5.10 kernel
On 5.10 kernel need idle” functionality is moved from
<linux/sched.h> to walt (<Linux/sched/walt.h>), Replace
“PF_WAKE_UP_IDLE” checks with “IS_ENABLED(CONFIG_SCHED_WALT)”.

Change-Id: Icb89b0e6e9862ed5b82680379a1d2630c9b2b4d9
CRs-Fixed: 2990760
2021-07-15 14:34:06 -07:00
Krishna Rao
1ce921eb1a qcacmn: Add separate ID for ML IE trace prints
Add a separate module ID for Multi Link Operation (MLO) Information
Element protocol processing related QDF trace prints. These are for
use in processing of any IEs related to MLO. This would help separate
the tracing of MLO IE operations which are expected to be substantial,
and avoid confusion that might arise from reuse of MLO manager
tracing.

Change-Id: If55532a89452b6432101be07fcc6aff45045e822
CRs-Fixed: 2985731
2021-07-14 15:32:22 -07:00
sandhu
81272da21e qcacmn: Add support to log ICMP packet seq no and ID
Add support to log ICMP seq no and ID in DPTRACE.
Other protcols can use this private proto data to record
there private data accordingly. Currently it is set to 0.
Increase the record entry from 40 bytes to 50 bytes.

Change-Id: Ief5fb26a97408a364af486f3eaec2e108de71d52
CRs-Fixed: 2951916
2021-07-07 04:28:14 -07:00
Abhishek Singh
61d75799c8 qcacmn: Add new reason code in qdf_hang_reason
Add new reason code QDF_VDEV_SM_OUT_OF_SYNC, in qdf_hang_reason.

Change-Id: I528fa1d2dc32ff8d8e4b7e38f16bce04cda48b5b
CRs-Fixed: 2982366
2021-07-02 13:54:08 -07:00
Debasis Das
273d2795c6 qcacmn: Initialize variable that collects return status of functions
The variable used to collect the status of function calls
should be initialized.

Change-Id: I2716673455ca4b48c4945739f2e43343be488234
2021-07-01 11:23:30 -07:00
Arun Kumar Khandavalli
4d8b3bb683 qcacmn: Add the api to set smmu fault state
There is a time involved between the smmu fault initiated
and the eventual system panic. In this time there is a
possibility of the nbuf history being overwritten losing
the information on the nbuf which might has actually caused
the SMMU fault.

Set the ssmu state and dont track the nbuf's when the smmu
fault is detected.

Change-Id: I579da332766618161567764656005ef13667270e
CRs-Fixed: 2960070
2021-06-28 05:11:12 -07:00
Mohit Khanna
c9bcf7e494 qcacmn: Handle BUF_ADDR ring desc in dp_rx_err
Currently dp_rx_err_process expects ring descriptor to be only
LINK_DESC_TYPE. In certain cases BUF_ADDR_TYPE ring descriptor is
observed in reo_exception ring. Add logic to handle the same.

Change-Id: I5baecc3f8eafc0830672b91bc9d9607b568a6cda
CRs-Fixed: 2954653
2021-06-09 23:38:08 -07:00
Harsh Kumar Bijlani
0aeac39461 qcacmn: Enable nbuf map_unmap debug framework
Nbuf map_unmap framework requires qdf_tracker to
be compiled. Add qdf_tracker.o to Kbuild in order
to compile it.

Change-Id: I4a19e525280020583466ee7dd8621958ebe4f26a
CRs-Fixed: 2959146
2021-06-09 05:17:35 -07:00
Harsh Kumar Bijlani
0212730a84 qcacmn: Add check for memory_debug_disabled in nbuf APIs
Check for is_initial_mem_debug_disabled is missing in nbuf APIs.
Add check for is_initial_mem_debug_disabled in those APIs.

Change-Id: Ie85cae8029b5d47567da861dd84b86221a68b0f5
CRs-Fixed: 2962901
2021-06-09 05:17:30 -07:00
Himanshu Batra
0f0ee4c77c qcacmn: Add print APIs for MLO
Add print api definitions for MLO

Change-Id: I7761fe01fba85bd8fb97413f95f73d995f84c1aa
CRs-Fixed: 2958486
2021-06-08 03:16:37 -07:00
Amruta Kulkarni
6084c736c6 qcacmn: Use AES api's instead of the generic crypto api's
For Kernel version 5.4 and up use AES api's instead of
generic crypto api's referenced in qdf crypto module.

Change-Id: I92031d469d0da657dce4dcb8c603c82a1e182f1d
CRs-Fixed: 2947476
2021-05-27 06:03:32 -07:00
Kai Chen
c089dc5216 qcacmn: remove duplicate definition for radiotap header
Move duplicate radiotap header definition to header file

Change-Id: Ieb833f26c6c433c7917cc2196d4957102501672c
2021-05-13 15:32:20 -07:00
Karthik Kantamneni
6370333013 qcacmn: Make QDF NBUF history size configurable
Some of the targets require more QDF nbuf history
size, so making the size configurable keeping
default same.

Change-Id: Ic4ac43a1eacb1e58c0a05b794349525d614d7fc8
CRs-Fixed: 2929968
2021-05-12 20:57:57 -07:00
Alan Chen
0fedc36000 qcacmn: Add ksize check for calling qdf_mem_prealloc_put
In perf builds, add a ksize check and call qdf_mem_prealloc_put()
only when size is greater than 4K to avoid lookup overhead.

Change-Id: If01a7cbeaf1ee7f514f16296340169a937dafa78
CRs-Fixed: 2936464
2021-05-07 22:53:58 -07:00
Ananya Gupta
9f3b9ca800 qcacmn: compiling WDI3 version of IPA
Depreciated IPA APIs are currently getting compiled.
To fix this, adding linux kernel version check

Change-Id: I2288db34c09d60047c67a5df9081de08a6c2f62b
CRs-Fixed: 2927413
2021-05-06 06:23:47 -07:00
Adwait Nayak
c2c89243d8 qcacmn: Parse and update qdf module params
Read the file wifi_module_param.ini, in which wifi module params
are present and compare these module params with qdf module params
in qdf module init function.

If any of the module params belongs to qdf module is present,
then that particular module param is updted during qdf module init.

Change-Id: I76ef876f6c7be3cdffd93b6050a190438d60bf39
2021-04-27 16:13:11 -07:00
Rajeev Kumar
034e1c4507 qcacmn: Add INI file parse success and failure logs
Some times INI file is empty or wrongly formatted on device
and WiFi ON fails because of it and hence add a log message
to indicate INI file parse success or failure.

Change-Id: I2337fc4ffb4a443ac191f584e283fdc9699a4e04
CRs-Fixed: 2931228
2021-04-26 20:37:14 -07:00
Jingxiang Ge
5b31c536c4 qcacmn: trigger recovery in hif_check_detection_latency
Replace as qdf_trigger_self_recovery here, so it can trigger
fw dump firstly.

Change-Id: I39e3bc11829a1969ac60bd3bbd71f3e2d1fa4f43
CRs-Fixed: 2928096
2021-04-26 00:17:53 -07:00
Rajeev Kumar
c0a7a9dfe2 qcacmn: Replace request_firmware by firmware_request_nowarn
Replace request_firmware by firmware_request_nowarn to avoid warning
message when the file is not found and sysfs fallback mechanism is
enabled if direct filesystem lookup fails.

Change-Id: Ib55d257aa01c52523b1f1137165c842e139ce614
CRs-Fixed: 2912039
2021-04-02 12:02:49 -07:00
Vevek Venkatesan
da069e5990 qcacmn: add qdf wrapper API for is_driver_state_module_stop
Add qdf wrapper API support for is_driver_state_module_stop.

Change-Id: I6965b4049aebcbe9ec612cf3d70398eb269450e4
CRs-Fixed: 2912016
2021-04-01 20:34:10 -07:00
Jeff Johnson
79b61afd8f qcacmn: Do not export static functions
Linux kernel commit 15bfc2348d54 ("modpost: check for static
EXPORT_SYMBOL* functions") adds a check to make sure that static
functions are not exported.

With this in place the following fatal errors are reported:
FATAL: modpost: "__qdf_nbuf_get_ether_type" is a static EXPORT_SYMBOL
FATAL: modpost: "os_if_spectral_free_skb" is a static EXPORT_SYMBOL
FATAL: modpost: "qdf_nbuf_tx_desc_count_update" is a static EXPORT_SYMBOL
FATAL: modpost: "__qdf_nbuf_get_ip_offset" is a static EXPORT_SYMBOL

To fix these errors do not export the static functions.

Change-Id: Ib5caab904401900bafb23dee23b119daa76d4055
CRs-Fixed: 2910980
2021-03-31 10:07:30 -07:00
Jia Ding
4737cf81c4 qcacmn: Add qdf macros for IPA TX two pipes
Add qdf macros to support IPA TX two pipes configuration.

Change-Id: I9d8b960355c084c49a664efafa7aac3153602572
CRs-Fixed: 2750078
2021-03-24 09:48:30 -07:00
Li Feng
8055c97ed3 qcacmn: Use ktime_get_real_ts64() api from kernel v5.4.0
Use ktime_get_real_ts64() api from kernel v5.4.0.

Change-Id: Ica8b5d2daa7560472eed084145587e3ad189503f
CRs-Fixed: 2900092
2021-03-20 20:45:49 -07:00
Chaithanya Garrepalli
20500d66ae qcacmn: Fix double free false positive with qdf_nbuf_unshare
In qdf_nbuf_unshare_debug() API remove the refernce of old nbuf
before calling skb_unshare(). As skb_unshare() will free old nbuf
and allocate a new one for a cloned skb.

Change-Id: I2a2f0277934268a346e13a0779e204f02c9bcf5b
2021-03-19 18:51:26 -07:00
Aditya Kodukula
45e98f35da qcacmn: Enable the minidump API based on Kernel Version
The minidump API msm_minidump_remove_region() was added to the
msm-kernel from version 4.19 so, to avoid compilation failures in
older kernel versions, enable the feature flag WLAN_QCOM_MINIDUMP
for kernel beginnig with 4.19 version.

Change-Id: Iba7a293fb9ca3e5ffe967e8d610251df8c2a3969
CRs-Fixed: 2901746
2021-03-18 11:51:39 -07:00
Jingxiang Ge
2c6d25c0ad qcacmn: Add detection for tasklet delay
This feature is used to detect CE tasklet scheduling delay
and credit response delay issues.

Change-Id: I9a8fcb425edd5cf96fae5f6cd3bfc7f51172c814
CRs-Fixed: 2874874
2021-03-16 00:45:23 -07:00
Aditya Kodukula
20380cee21 qcacmn: Add QDF infra for the minidump feature
Add QDF infra for minidump feature and define the
minidump_log and minidump_remove functions.

Change-Id: I875b991b7a7d9295f8b2acd95a7551a747ec962c
CRs-Fixed: 2856193
2021-03-09 21:06:54 -08:00
Bapiraju Alla
e9dd7d1d40 qcacmn: Update error if failed to read at least one INI parameter
INI parameters parsing can fail because of fail to read INI file or
failed to parse at least one parameter. In some scenarios, driver should
assert if parsing is failed for atleast one INI parameter.

To differentiate these two failures, return different error status
values.

Change-Id: I187d2b2e8f55af47a14561302d8b62e84de7da5a
CRs-Fixed: 2878966
2021-02-19 13:45:01 -08:00
Karthik Kantamneni
3c3d944246 qcacmn: Enhance error signature in qdf_check_state_before_panic
Improve error signature in qdf_check_state_before_panic API.

Change-Id: I5774c07e9359b711f0863c40072962b802318f2f
CRs-Fixed: 2879026
2021-02-18 07:47:05 -08:00
Vevek Venkatesan
fdf0a167e5 qcacmn: change the return type of qdf_queue_work to bool
Currently the return type of qdf_queue_work is void,
whereas queue_work return type is bool denoting the status,
so changing the return type of qdf_queue_work to bool,
helps to check the status of the function.

Change-Id: Ifd07923a18641790314b88d38a7eba2a73e498b3
CRs-Fixed: 2876197
2021-02-12 12:27:25 -08:00
Bapiraju Alla
ded2573351 qcacmn: Add bug_on incase of skb set packet length failure
Add bug_on incase of set packet length failure for debugging purpose

Change-Id: Ie91da71c2420c585b27625ec241e62a2706606c4
CRs-Fixed: 2849081
2021-02-11 04:43:34 -08:00
Debasis Das
eba308d926 qcacmn: Include relevant header-file
Include relevant header-file to use QDF_BUG macro.

Change-Id: I9ad43a05410cf6641f76a94e0e9f40e323997c50
2021-02-04 08:50:31 -08:00
Yeshwanth Sriram Guntuka
28c395b59d qcacmn: Add iova to nbuf map history event
Record iova address in the nbuf map history
events.

Change-Id: I1bb415537ffe68c839c4c2f69901394ad047022b
CRs-Fixed: 2856038
2021-02-02 07:49:39 -08:00
wadesong
3e2e6fd4e7 qcacmn: Fix a mismatched parameter type
Function qdf_debugfs_create_entry's last parameter should be
qdf_file_ops_t, not qdf_file_ops_t *.

Change-Id: I847a05b81944562808c29a42b176c822639509ba
CRs-Fixed: 2864863
2021-01-30 02:48:32 -08:00
Jingxiang Ge
3200bacc98 qcacmn: check wrap around in BEFORE_UNLOCK
1 Add protection for wrap around of jiffies.
2 fix assign issue from uint32_t to uint64_t.

Change-Id: Idbd3604d0cb985d08aa82e3b1d7f32fa6be8c3ef
CRs-Fixed: 2864737
2021-01-29 14:41:25 -08:00
Vivek
7d38880a19 qcacmn: Enable rate limiting on for prints in interrupt context
The current print rate limiting for prints to console is 
for all contexts.
There are some debug prints which come to console via work queues
which we don't want to rate limit and only rate limit coming via 
interrupt context or bottom halves which causes 
FW backpressure due to excessive prints.

So rate  limit prints coming to console if in 
interrupt context or bottom halves

CRs-Fixed: 2853590
Change-Id: I867b2c0d17b54037ee45eb6b7871a16c2668d7ba
2021-01-29 00:04:31 -08:00
Vivek
5589f598a5 qcacmn: Abstract the qdf_in_interrupt API
The qdf_in_interrupt API was defined in the internal
Linux util file.
Move the API from internal to qdf_util.h and provide
the appropriate abstraction

CRs-Fixed: 2853590
Change-Id: I512155776275684223c1901d789853d2529fcc83
2021-01-29 00:04:27 -08:00
Bapiraju Alla
2bd0e399d9 qcacmn: Fix compilation issues when WLAN_DEBUGFS feature is disabled
Fix compilation issue when WLAN_DEBUGFS feature is disabled.

Change-Id: Ifb186212e4d50f79f3492e194bbe82e3ed735ff7
CRs-Fixed: 2865197
2021-01-29 00:04:23 -08:00
Debasis Das
2c411d6e74 qcacmn: Make inline OS-abstraction APIs as non-inline
OS-abstraction API's are made non-inline to avoid direct
usage of kernel API's.

Change-Id: Ib35aa9271d98054ab582fc079e62714bb7fdae99
2021-01-22 05:31:44 -08:00
Debasis Das
aca02352ec qcacmn: Add non-inline OS-abstraction APIs
Use non-inline OS-abstraction APIs to avoid OS APIs usage directly in
driver.

Add new non-inline OS-abstraction APIs.

CRs-Fixed: 2742480
Change-Id: I177b41d69ca8f102fa67316d8901b6991dea3203
2021-01-21 03:43:37 -08:00
Alan Chen
64782f823f qcacmn: Return proper value of qdf timer multiplier
Return proper value of qdf timer multiplier based on this
Kbuild option QDF_TIMER_MULTIPLIER_FRAC.

Change-Id: I10c08ba900aad49fb9134d2e4d337f04a19dec7b
CRs-Fixed: 2855512
2021-01-19 23:24:33 -08:00
Alan Chen
321c15d9c2 qcacmn: Add new WoW unit test suspend type
Add new WoW unit test suspend type.

Change-Id: I721ef1c18a83d0cbc86fd804f13ae57b5acd8fa3
CRs-Fixed: 2855429
2021-01-19 21:16:10 -08:00
Ananya Gupta
a3152f3104 qcacmn: Add DP event history in non debug mode
Enable DP event history for perf mode.

Change-Id: I1b8863928f956aa39488ea357d56e182613aad8d
CRs-Fixed: 2846844
2021-01-19 19:02:49 -08:00
Vivek
69a1c93dc2 qcacmn: Rate limit prints to console from logging utility
The prints from the driver are rate limited based on the
configurations provided.

Also the prints which are redirected to user space daemon
and of certain log levels are also printed on the console.

Add a rate limiting version of the API for the prints coming
to console via the logging daemon.

CRs-Fixed: 2853590
Change-Id: I9683172ac0665b46581bad13a1050c6d70d72b5c
2021-01-19 03:52:13 -08:00