Commit Graph

6289 Commits

Author SHA1 Message Date
Amir Patel
17b91788b0 qcacmn: Update vdev list and peer list access locking in below order
a. Acquire peer list lock
b. Acquire vdev list lock
y. Release vdev list lock
z. Release peer list lock

Change-Id: Ifc1e57fd1a243d909ca65421f269830d24d6b31b
CRs-Fixed: 2372947
2019-01-29 16:54:42 -08:00
Sravan Kumar Kairam
4c6a8a9123 qcacmn: Zero out the memory of hal shadow pointers
Currently hal shadow pointers after memory allocation
are not memset to zero. In case of SMMU S1 enable when
host starts to access hal srng the random value of shadow
memory is copied to host cached values which leads to accessing
the rings even when HW has not updated to it. So zero out
the memory of hal shadow ring pointers after memory allocation.

Change-Id: I10ac6bfff957e953ee9caa15056ce3fa9d57b70e
CRs-Fixed: 2368491
2019-01-29 14:32:03 -08:00
Varsha Mishra
a6e589234e qcacmn: Add new enumeration parameters in set pdev param
Add new enumeration parameters in cdp_pdev_param_type.

Change-Id: I7bfeb2ec8828e35283493c2d22b532fb78b5d236
2019-01-29 12:20:59 -08:00
Amir Patel
36a79a672c qcacmn: Fix htt ppdu tlv bitmap issue
Define two tlvs for 64-bit and 256-bit transmission window

CRs-Fixed: 2377256
Change-Id: Id11e1d3695101ef001c689d33e4546ac8a5faea6
2019-01-29 12:20:55 -08:00
Pavankumar Nandeshwar
753eed32c1 qcacmn: free the dp peers before cp peers in fw recovey case
Free the pending dp peers before cp peers in fw recovey case,
to make sure dp peers release all cp peer references they hold.

Change-Id: Ie6c7562e7214f40be895cf8a57a1aa6245d717cb
CRs-fixed: 2383984
2019-01-29 09:58:12 -08:00
Vivek
c4eabce922 qcacmn: Use QDF_TRACE with no fl for serialization history
The current serialization history output is printed with
file and line information since the common ser_err is using
the FL variants of trace function.

Add ser_err_no_fl to use non FL variant of the trace function
for printing the serialization history.

Change-Id: Icc0b5d00d50aaa8fd8fb6b072784a26177004219
CRs-Fixed: 2387039
2019-01-29 09:58:09 -08:00
Vivek
d34b7d0d62 qcacmn: Change default log level for serialization
Change default log level of serialization to QDF_TRACE_LEVEL_ERROR
Change error print to debug, when pending queue is empty,
which is a possible expected case.

Change-Id: I21cd6b5f158d5dffbc6e7309c9202e7e2e0162e8
CRs-Fixed: 2387017
2019-01-29 09:58:05 -08:00
phadiman
d2e88e3895 qcacmn: Reduce Log Level
Add, delete and update AST DP
functions print logs at TRACE
level

Reduce the log level from TRACE
to DEBUG to avoid ML Framework
from interpreting these logs

CRs-Fixed: 2385978

Change-Id: Ifd5c24a95e7e9f69297afff5d7a3235cfa27aaf5
2019-01-28 12:21:00 -08:00
Abhinav Kumar
f61eaf9d84 qcacmn: For SAP use dwell_time_active def dwell time for 2g chan
Driver uses dwell_time_active_2g by default for scan. In case if
ACS enabled on driver, The dwell_time_active_2g (80 msec) result
in ACS latency and thus latency in SAP start.

To optimize SAP turn-on time latency, use dwell_time_active_def
as dwell time for 2g channels instead of well_time_active_2g
during ACS scan.

Change-Id: Ib673284c99e5539abe0268319e04cc63d0cbb98f
CRs-Fixed: 2383308
2019-01-28 12:20:56 -08:00
Gurumoorthi Gnanasambandhan
e1334b3595 qcacmn: Accept EAPOL packets in uncrypted error case
rx unencrypted eapol frames are dropped with dynamic WEP on de-tunnel mode.
Accept EAPOL packets alone in uncrypted path.

Change-Id: Ie576211c3d408fd7e319fba05c9d1badaa4b4676
2019-01-28 12:20:53 -08:00
Pavankumar Nandeshwar
7eddeddb17 qcacmn: Make ce-debug lock per HIF
Make ce-debug buffer lock per HIF instead
of global. Rectify the #if conditional macros.

Change-Id: I0063014ed2fd9c7716386877dcbefec40e9fa2d9
2019-01-28 12:20:49 -08:00
Srinivas Pitla
39a9222d27 qcacmn: VDEV MLME SM changes
1) Fixes to enable VDEV MLME SM with legacy code
2) Define/Enable PDEV MLME component object.

Change-Id: Ieb87e5b7b70d6bb593ba0950297894a81c6a4feb
CRs-Fixed: 2384173
2019-01-26 19:58:58 -08:00
Pamidipati, Vijay
b113bbc335 qcacmn: Fix a race condition in WDS timer attach
WDS aging timer is dependent on a flag which is set in soc_cmn_setup,
but in current implementation wds_timer_attach is done from soc attach
and soc_cmn_setup is involed from pdev_attach. Fix this race condition
by moving wds_attach to soc_cmn_setup

Change-Id: Ia88201c627b434b85e56daadd0c7ab20e6ce0b3f
CRs-Fixed: 2373127
2019-01-25 15:19:06 -08:00
stonez
2c6f4d1906 qcacmn: Add a vendor attribution to transfer evm information
User layer need to get evm info of each groups of antenna.
Host first get this info by WMI command and then transfer it
to user layer with attribution QCA_WLAN_VENDOR_ATTR_CHAIN_EVM
in netlink.

Change-Id: I66b745b0fd1052b0c75d45376334e5d08d35ae10
CRs-Fixed: 2381139
2019-01-25 01:05:53 -08:00
Shiva Krishna Pittala
13452334e3 qcacmn: Set the default QDF trace level to ERROR for Spectral module
To enable all the Spectral fatal and error logs by default,
set its default trace level to QDF_TRACE_LEVEL_ERROR.

Change-Id: I05d958f2206684f0e413e4e9a5576a96b228ddcd
CRs-Fixed: 2384360
2019-01-24 19:07:04 -08:00
Vignesh Mohan
94e1f2308f qcacmn: Unify radar simulation commands
Replace all three radar simulation commands with a single variant which
will perform required functionality based on its number of arguments.

Existing variants of radar simulation commands:

    1). Bangradar:
          Description: Adds all subchannels of segment ID "0" in the
                       current channel to NOL.
          Syntax: radartool -i wifi0 bangradar.

    2). Second Segment Bangradar:
          Description: Adds all subchannels of segment ID "1" of the
                       current channel to NOL.
          Syntax: radartool -i wifi0 secondSegmentBangradar.

    3). Enhanced Bangradar:
          Description: Adds the radar infected subchannels computed based
                       on segment ID (X), chirp information (Y) and
                       frequency offset (Z) to NOL.
          Syntax: radartool -i wifi0 bangradarenh X Y Z.
                  where,
                    X - Segment ID.
                    Y - Is chirp/non chirp.
                    Z - Frequency offset.

New radar simulation command:
     Bangradar:
     Types of usage:
       1). No arguments:
           Description: Adds all subchannels in the current channel to NOL.
           Syntax: radartool -i wifi0 bangradar.

       2). 1 Argument:
           Description: Adds all subchannels of segment ID "X" of the
                        current channel to NOL.
           Syntax: radartool -i wifi0 bangradar X

       3). 3 Arguments:
           Description: Adds the radar infected subchannels computed based
                        on segment ID (X), chirp information (Y) and
                        frequency offset (Z) to NOL.
           Syntax: radartool -i wifi0 bangradar X Y Z
                  where,
                    X - Segment ID.
                    Y - Is chirp/non chirp.
                    Z - Frequency offset.

All other combinations of arguments will result in error (insufficient
arguments).

Change-Id: I10c86d78bf46c075e65f93ad0f0143f328f5c7be
CRs-Fixed: 2373228
2019-01-24 12:30:31 -08:00
Chaitanya Kiran Godavarthi
f2278991a1 qcacmn: KW fixes in Rx mon DP
Move the mpdu debug prints where the mpdu is valid

Change-Id: I3ef3e9c5738776cade507a302b5e768f4cc2314f
2019-01-24 12:30:29 -08:00
nobelj
fdbe712790 qcacmn: rx_status is passed as argument to osif_rx_mon
Passing mon_rx_stats to osif_receive_monitor_80211_base as
it expect valid rs pointer on ATH_SUPPORT_NAC defined

Change-Id: I1fb4eae690b64dc2e73e4793bec13524affe5635
2019-01-24 12:30:26 -08:00
Srinivas Pitla
1ff074ce30 qcacmn: Add support for scan and MLME synchronization
Reject scan request, if any VDEV is in START/DFS_CAC/SUSPEND states.

Change-Id: I1047ba510df5ae5debd1e3d5c8a064a57af65fbf
CRs-Fixed: 2384163
2019-01-24 09:59:14 -08:00
Santosh Anbu
cdf3813a9c qcacmn: Fix debug log string
Add change to print debug log without function name and line number.

Change-Id: I0d07c42e5a3b0f6e5e17d77b94c1dc70d52fa744
CRs-Fixed: 2382526
2019-01-24 09:59:11 -08:00
nobelj
bc064fb1b9 qcacmn: Fix transmit type double increment and RU increment
transmit type is incremented twice on update status.
RU tone need to get increment for MIMO_OFDMA and OFDMA

Change-Id: I4e83a91b7653b7452cf5605b7f8aad956c355350
2019-01-24 09:59:08 -08:00
nobelj
4e9d51f914 qcacmn: Populate MU-MIMO user pos and mu group id
populate TX OFDMA and TX MU MIMO information from
user rate tlv and display the same in fc_peer_stats.

Change-Id: If1dab15bbdf391fba00a701abd6024c420d1d8f7
2019-01-24 09:59:06 -08:00
Shiva Krishna Pittala
66ae9bef51 qcacmn: Check whether Spectral is disabled upon setting rxchainmask
When Spectral is disabled via INI and the rxchainmask is set for
the radio via iwpriv/cfg80211tool, it results in null pointer access
of target_if_spectral pointer. To fix this, add Spectral feature check
inside target_if_spectral_set_rxchainmask.

Change-Id: Ibd43d3bbc8622d4b8502653b55511bb4667cec7a
CRs-Fixed: 2380653
2019-01-23 21:46:39 -08:00
Nirav Shah
7dd1429dab qcacmn: Properly featurize QCA_WIFI_FTM_NL80211
Properly featurize QCA_WIFI_FTM_NL80211.

Change-Id: I7bb2ce1c84c46582b87ffcd7fa5b582a9fdec271
CRs-Fixed: 2384335
2019-01-23 21:46:37 -08:00
Pragaspathi Thilagaraj
cc3af93f48 qcacmn: Converge PNO related ini items to scan component
Add basic infra to move the following PNO  to converged scan
component:
CFG_ENABLE_DFS_PNO_CHNL_SCAN 	 CFG_PNO_SCAN_SUPPORT
CFG_PNO_SCAN_TIMER_REPEAT_VALUE	 CFG_PNO_SLOW_SCAN_MULTIPLIER
CFG_PNO_CHANNEL_PREDICTION	 CFG_TOP_K_NUM_OF_CHANNELS
CFG_STATIONARY_THRESHOLD	 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS
CFG_ADAPTIVE_PNOSCAN_DWELL_MODE	 CFG_SCAN_BACKOFF_MULTIPLIER
CFG_MAWC_NLO_ENABLED	         CFG_MAWC_NLO_EXP_BACKOFF_RATIO
CFG_MAWC_NLO_INIT_SCAN_INTERVAL	 CFG_MAWC_NLO_MAX_SCAN_INTERVAL

Change-Id: I81bdbd917969fc8a73e6e5359ca69f78acdf723c
CRs-Fixed: 2357605
2019-01-23 15:14:34 -08:00
Shashikala Prabhu
7517a8d7b9 qcacmn: Call regdb wrapper functions from other components
Do not call regdb core functions from other components directly.
Instead, call regdb dispatcher  functions.

Also, wlan_objmgr_vdev_obj.h file is removed from reg_services.h file in
Ie43acc03a5c35200f3e43bc978b792d5047eeb77 and reg_services.h is removed
from wlan_reg_services_api.h in I891b14fac7a4eddf2697d2ecdc0ac4a82046f532.
Therefore to fix "'struct wlan_channel' declared inside parameter list"
error in wlan_dfs_utils_api.h file, I have included wlan_objmgr_vdev_obj.h
file before wlan_dfs_utils_api.h in scan, dfs and wmi component.

Change-Id: Id8816f5137c3b1f9200c59fc3f9041980631f22f
CRs-Fixed: 2349173
2019-01-23 15:14:32 -08:00
Shashikala Prabhu
daa645bcab qcacmn: Add 11d, LTE, opclass, getset and callback regdb files
Create below regdb file in core component and move the code from
reg_services.c file.

These files has only MCL specific code.

reg_db_lte.c: this file has LTE feature code.
reg_host_11d.c: this file has 11d feature code.
reg_opclass.c: this file has opclass related code.
reg_getset.c: this file has the functions related to setting and getting
              regdb related variables.
reg_callbacks.c: this file has regdb callbacks/notificatoion functions.

Change-Id: Ie43acc03a5c35200f3e43bc978b792d5047eeb77
CRs-Fixed: 2349173
2019-01-23 15:14:29 -08:00
Shashikala Prabhu
c8c709f6d4 qcacmn: Add common, build_chan_list and priv_objs regdb files
Create below regdb files in core component and move the code from
reg_services.c file.

These files has the common code used by both WIN and MCL.

reg_common_services.c: this file has regdb common APIs used by both WIN and
MCL.
reg_build_chan_list.c: this file has APIs to build master and current
channel list.
reg_priv_objs.c: this file has the APIs to create regulatory private PSOC
and pdev objects.

Change-Id: I891b14fac7a4eddf2697d2ecdc0ac4a82046f532
CRs-Fixed: 2349173
2019-01-23 15:14:26 -08:00
Shashikala Prabhu
65572e5538 qcacmn: Remove 11d and LTE feature code from target_if_reg.c file
Remove 11d and LTE feature specific code from target_if_reg,c file.
Removed code is present in target_if_reg_11d.c and target_if_reg_lte.c
files.
target_if_reg.c file has the common code used by both WIN and MCL.

Change-Id: I976efbfadc6b01289cb258be4856b81d4783456a
CRs-Fixed: 2349173
2019-01-23 15:14:23 -08:00
Vivek
20209b5300 qcacmn: Move to next rx handler when nbuf clone fails
When calling registered mgmt rx handlers,
we iterate through all handlers,
and for each handler, clone the nbuf and if cloned successfully,
we call the corresponding handler.

In case of clone failure, we would simply continue, and not move to the
next rx handler, and would possibly attempt cloning for large number
of iterations. Instead, when clone fails,
we should move to the next rx handler

Change-Id: Ia752a2e7699f6fd92fe2a363a6ae19ca2e0cc5fe
CRs-Fixed: 2379751
2019-01-23 06:37:35 -08:00
Vivek
0043ad80db qcacmn: Reset cmd_in_use flag when returning cmd_list to free pool
There is an instance where the cmd_in_use flag is not
reset when cmd_list is not returned to the free pool

Need to reset the cmd_in_use every time the cmd_list is
returned to the free pool

Change-Id: I1fae24dc691779c6c372936d2963f11f98898750
CRs-Fixed: 2379448
2019-01-23 06:37:33 -08:00
Abhishek Singh
0c1dedb899 qcacmn: Add support to acquire wake lock during user scan
Acquire wakelock to handle the case where APP's send
scan to connect. If suspend is received during scan, scan will be
aborted and APP will not get scan result and will not connect.
eg if PNO is implemented in framework.

Fix is to avoid the system suspend by taking the wake-lock
during scan. Added INI wake_lock_in_user_scan to control this.
The INI is disabled by default.

Change-Id: I62fdbbcbc6f049cb4e36e774d5a417600a2dfa86
CRs-Fixed: 2381622
2019-01-22 12:40:20 -08:00
Jeff Johnson
6a00f1e830 qcacmn: Address Unified WMI "get link status" deficiencies
The original implementation of the "get link status" feature contains
some design and implementation details that are not ideal, so fix the
following deficiencies:
- The link_status_params struct contains three fields that are unused.
- The only link_status_params field that is used, session_id, uses
  legacy terminology instead of converged terminology
- The wmi_unified_link_status_req_cmd() implementation uses a void
  pointer instead of the correct underlying type for the WMI handle.

Note that change I508ec083298caa45d4cbb1ba28b21e47e379a804
("qcacld-3.0: Align with revised "get link status" Unified WMI") is
interdependent with this change.

Change-Id: I057ca0aff4a627c7fcdb9f90a5da46473813f60a
CRs-Fixed: 2381364
2019-01-22 05:06:43 -08:00
Jun Wang
62fe1e3f45 qcacmn: Fix core_ctl_set_boost not released issue
hdd_napi_serialize(0) will call hif_napi_event() with
NAPI_EVT_USR_NORMAL mode. But in this mode, blacklist_pending
is not set as BLACKLIST_OFF_PENDING, so the function
hif_napi_core_ctl_set_boost(false) is not called.
Then core_ctl can not resume to normal status, which
will result in performance and power issues.

Change-Id: Ia2084d9febab0ff4aadb0951bd3347f608a1d101
CRs-Fixed: 2381895
2019-01-22 05:06:39 -08:00
Santosh Anbu
6e2fed8f5f qcacmn: Add scheduler mq handler for mlme
Add mlme message queue handler as the call back for non scan commands
getting activated in the scheduler context.
Add cmd already exists enum to be returned if the command already exists
in the serialization queue.

Change-Id: I24fe453ffddbd4341459874458f11688adebc740
CRs-Fixed: 2377219
2019-01-22 05:06:24 -08:00
Venkata Sharath Chandra Manchala
965035c642 qcacmn: Access soc handle after null check
Dereference soc handle after checking if soc
handle is valid.

Change-Id: Ifc409ab410b0ff41ad7d45c422f147325d7adadf
CRs-Fixed: 2382178
2019-01-22 05:06:20 -08:00
Manjunathappa Prakash
09387ef63c qcacmn: Add peer debug ID for unmap_timer_work peer reference
There is race when unamp_timer_work and peer is deleted. Hold the
reference to peer while handling the peer_unmap_timer_work.
Add new peer debug_ID for unmap_timer_work.

Change-Id: Ibfd5de602883d3219d1e634ef74ff04e7914efb4
CRs-Fixed: 2383778
2019-01-22 02:37:56 -08:00
Madhvapathi Sriram
1397a33f48 qcacmn: Optimize schedule msg post error logging
This change will reduce the repeated logging of scheduler posts

Change-Id: I26c297d2d3def55377f062a2de94f61cf09522de
CRs-Fixed: 2373005
2019-01-22 02:37:53 -08:00
Qun Zhang
84da07f17e qcacmn: Avoid double free in wlan_cfg80211_sched_scan_start()
In wlan_cfg80211_sched_scan_start() in the case where
wlan_cfg80211_is_chan_ok_for_dnbs() returns failure,
"req" is freed both at the point where the test occurs
as well as at label "error". Since label error provides
centralized cleanup for all of the error cases,
remove the free at the point where the test occurs.

Change-Id: Ibde90c58d76d1db48ee3f12c251be5eaa2b68c7b
CRs-Fixed: 2372789
2019-01-22 02:37:47 -08:00
Abhishek Singh
6c962c7ac0 qcacmn: Remove unused commands from serialization
Remove unused commands from serialization.

Change-Id: I7fedbc028b2bdc8b7176d074855b62dc3e411767
CRs-Fixed: 2384370
2019-01-22 00:18:44 -08:00
Hariharan Basuthkar
a12d19d67b qcacmn: Change utils_fill_dfs_chan_info to dfs_fill_chan_info
Change the name of utils_fill_dfs_chan_info to dfs_fill_chan_info since it
is not used by any components other than DFS.

Change-Id: I91e8d2326a830303fbad4564aa13655e50caa4c4
CRs-Fixed: 2375672
2019-01-22 00:18:41 -08:00
Abhishek Singh
b337ebbad3 qcacmn: Add channel info in beacon and probe resp debug prints
beacon and probe resp debug prints doesn't have channel info, so
add them.

Change-Id: I1dbfc4f62924f3eee774517b45f4f7442b18f635
CRs-Fixed: 2381796
2019-01-21 22:10:56 -08:00
Arunk Khandavalli
f15ef34107 qcacmn: Add the wrapper for dsc function operations
Add the qdf wrapper functions for the new dsc infrastructure.

Change-Id: I126b14b00b2f7ef77493a2abb7d8ec4f1394b15c
CRs-Fixed: 2364042
2019-01-21 19:21:32 -08:00
Dustin Brown
ae81599125 qcacmn: Add nbuf history for clone and copy
The network buffer (nbuf) history records the usual nbuf allocations
and frees, but does not record allocations due to copies or clones.
Record these allocations in the nbuf history as well to aid in
debugging.

Change-Id: If5bed9a41d301d43a1e610df4366d0bcf2c3efc4
CRs-Fixed: 2379866
2019-01-21 17:12:51 -08:00
Venkata Sharath Chandra Manchala
ec9a530bc0 qcacmn: Fix statistics counters
1. Account for total Tx completions received on wbm2sw release ring.
2. Avoid multiple updates to invalid peer counter on
   wbm error path handling.

Change-Id: I904208e1bd83e98598870a1f05c4b17c3fb20e2d
CRs-Fixed: 2366790
2019-01-21 17:12:47 -08:00
Srinivas Pitla
0b50f1289c qcacmn: Add lock for MLME command queuing to Serialization
MLME commands need to be queued back to back in few scnearios,
added lock to avoid interleaving between commands queueing.

Change-Id: If34aee5849938cbd76183af971ea058ce63505ee
CRs-Fixed: 2384147
2019-01-21 17:12:44 -08:00
Chaithanya Garrepalli
65e6fc1a43 qcacmn: add flag which indicate use of monitor ring
Add a flag to indicate monitor destination being used

Change-Id: Ic89f5ad2ed918fe1d894a214416866ea88f1b96a
CRs-fixed: 2371551
2019-01-21 07:55:22 -08:00
Harprit Chhabada
71c9846f58 qcacmn: Use the same callback signature for MCL as WIN
Callback signature in wmi_process_fw_event_default_ctx
is different for WIN and MCL. Make it same.

Change-Id: I28ad8e6068742095bdb9bc265e46dead8bfb217d
CRs-Fixed: 2372980
2019-01-21 03:55:04 -08:00
Shashikala Prabhu
6872218ab7 qcacmn: Add makefile changes for directory changes of WMI files
Add makefile changes for directory changes of WIN only WMI files.

Change-Id: Ic66f68cf04ea84f7007a390bf83ebebfde1b338b
CRs-Fixed: 2360078
2019-01-21 01:46:34 -08:00
Shashikala Prabhu
4fbfffb536 qcacmn: Delete WIN only wmi header and source files
WIN WMI only header and source files are moved from cmn_dev to
qca-wifi-oss.

Change-Id: Icb7edfb309922de0aed537e89152e3b1cef3326b
CRs-Fixed: 2360078
2019-01-21 01:46:31 -08:00