Commit graph

101 commits

Author SHA1 Message Date
Himanshu Agarwal
533baa3076 qcacmn: Add policy mgr API to get no. of active sessions
Add policy mgr API to get no. of active sessions for a specific
mode.

Change-Id: If91685ae7b72c6be52426648e9d01cba92eee85e
CRs-Fixed: 2178921
2018-02-06 17:33:06 -08:00
hqu
eb32063dcc qcacmn: Use no_of_open_sessions to check multiple beaconing sessions
When start sap+sap with acs concurrently, the first sap usually
choose dfs channel, the second sap will be failed to start.
when check multiple beaconing sessions it only checks in_use sap for
pm_conc_connection_lis which means bss started sap while it has no
started sap at that time, so the second sap can't follow the first sap's
dfs channel and start failed according to current code flow.

Fix is to use no_of_open_sessions to check multiple beaconing sessions.

CRs-Fixed: 2170567
Change-Id: Iada737dffcd826aaff3873b81355018d53485948
2018-01-29 02:17:47 -08:00
Min Liu
c5b104351d qcacmn: Fix safe channel switch failure
For the AP+AP SCC LTE-Coex case, when channel avoidance event
is reported, the channel switch request for SAP will be blocked
by policy manager if the target channel is different with the
operating channel of the existing SAP due to the SCC policy.

Need to update the logic to give higher priority to the channel
avoidance request.

Change-Id: Ie42bab50c1fa92e4e8df9f1b0ce8b8f4f09551b5
CRs-Fixed: 2176250
2018-01-25 11:27:42 -08:00
Sourav Mohapatra
0c1a7f6c69 qcacmn: Converge on wmi service/ext service is enable
Converge on wmi service/ext service is enable

Change-Id: Ib246befa72cce927bee157394cd22c7d1562d341
CRs-Fixed: 2152751
2018-01-24 13:19:48 -08:00
Liangwei Dong
76659b0055 qcacmn: Disallow Dualband MCC
For non DBS capable chip, to disallow dualband MCC
in case dnbs vdev exist.

Change-Id: Iee96e12dbb09e2d4633ca2fb73b5fb8bf155bd66
CRs-Fixed: 2164835
2018-01-24 13:19:45 -08:00
Will Huang
e93f5d1b34 qcacmn: Fix copy length error of unsafe_channel_list
unsafe_channel_list is defined as uint16, but copy with length of byte.

Change-Id: I35cd1d006f561c6bb1e64fd56e9822fefd991848
CRs-Fixed: 2170439
2018-01-21 23:20:53 -08:00
Krunal Soni
7728e21cf9 qcacmn: Check pcl array size against QDF_MAX_NUM_CHAN
While populating preferred channel list array, length
has not been checked against QDF_MAX_NUM_CHAN which
is size of PCL.

Fix it by checking indices and length against QDF_MAX_NUM_CHAN

CRs-Fixed: 2169424
Change-Id: I8c4d050bfc7040fba052eb42b32a91302a0a0ecb
2018-01-13 02:17:52 -08:00
Krunal Soni
4943b90122 qcacmn: Choose opportunistic timer's session id dynamically
Current opportunistic timer chooses session id as 0 up on expiry
which creates the issue when session id 0 doesn't exist.

Fix the situation by dynamically choosing existing session id to
complete the action.

CRs-Fixed: 2166667
Change-Id: I2e1da2ba0078381a5e91decd32d32b8ad77cec19
2018-01-13 01:28:18 -08:00
Himanshu Agarwal
0c738b7b02 qcacmn: Green AP UMAC componentization
Add APIs, structures for Green AP component.

Change-Id: I4a39470104c89c20eec5440b7ae251a764151fd5
CRs-Fixed: 2166428
2018-01-12 12:20:17 -08:00
Varun Reddy Yeturu
e23b6bc5fc qcacmn: Fix static analysis issues in policy manager
1) Check for policy manager context to be non NULL before
   dereferncing and return if it is NULL.
2) Use QDF_MAX_NUM_CHAN consistently to represent the maximum
   number of channels supported.

Change-Id: I3393bc801dd780d881423c8be346e74ac6d3ac6c
CRs-Fixed: 2160770
2018-01-12 02:38:01 -08:00
Tushnim Bhattacharyya
3b9ff3715a qcacmn: Keep HW mode in sync with FW when hdd stop happens
Stop the opportunistic timer & take action to keep HW mode in sync
when hdd stop happens.

Change-Id: Id34adb579987605831d2c7c4e22c2d76fe7d25dd
CRs-Fixed: 2165109
2018-01-03 20:09:48 -08:00
Bala Venkatesh
17623642ea qcacmn: Initialize pcl length to 0 in cds_get_alternate_channel_for_sap
When number of connections is more than 2 then the pcl length will be
garbage value. Initialize the pcl length with 0 to avoid wrong channel
list initialization.

Change-Id: If08dc2670ff5ff296220d6ad68766becb252fab7
CRs-Fixed: 2164773
2018-01-02 03:25:05 -08:00
Yeshwanth Sriram Guntuka
067cd3e3eb qcacmn: Set passive dwell time
Set passive dwell time to 28msecs for active
scan when bt a2dp is enabled and hw is not dbs
capable and when sta is connected on 2G band.

Change-Id: I44f2e3d98f2d7ddc52e4902ba989131c256da4ef
CRs-Fixed: 2160963
2017-12-21 05:26:49 -08:00
Srinivas Girigowda
efbeeab4fc qcacmn: clang: Remove unnecessary NULL check for address of array
Clang generated the following warning in various places:

warning: address of array 'weight->pcl_list' will always evaluate
to 'true' [-Wpointer-bool-conversion]
        if (weight->pcl_list) {
              ~~ ~~~^~~

Remove the unnecessary NULL check for address of array.

Change-Id: Ibc82b4d7135a0425748c0fb7f065435ccd28ad6f
CRs-Fixed: 2150493
2017-12-07 01:25:25 -08:00
Ganesh Kondabattini
8a611c641c qcacmn: Allow SAP to come up on DFS channel in SCC mode
Allow SAP to come up on DFS channel in STA+SAP concurrency mode
only when g_sta_sap_scc_on_dfs_chan enabled in ini file and also
disable chan_switch_hostapd_rate_enabled when force SCC is enabled.

CRs-Fixed: 2147032
Change-Id: Id1333a49d0538eb4ccfaf3c8498e9ca06671de02
2017-11-23 11:22:21 -08:00
Tushnim Bhattacharyya
9420656c9b qcacmn: Make the set HW mode & NSS update actions independent of each other
Typically set hw mode & Nss update happens at the same time. Since the
order of these 2 actions may not be same always, make them independent
of each other.

Change-Id: I652ad08e16680991535e0f064c7b5996f4f58792
CRs-Fixed: 2144977
2017-11-22 01:53:25 -08:00
Jeff Johnson
275208bd39 qcacmn: Use enum QDF_OPMODE
Change "qcacmn: Rename enum tQDF_ADAPTER_MODE" (qca-wifi-host-cmn
Change-Id I20f1b6d1a0ab4b8fe6a85cefdff96a49e2f4652c) renamed enum
tQDF_ADAPTER_MODE to QDF_OPMODE. Update all references to use the
new name.

Change-Id: Ic6f663dac11a100f168b2626c7c0fbcaccbfca4f
CRs-Fixed: 2141061
2017-11-09 23:42:58 -08:00
Tushnim Bhattacharyya
bdda5823be qcacmn: Stop the opportunistic timer when hdd stop happens
Stop the opportunistic timer & take action if needed when hdd stop
happens. Also, take action when set_hw_mode request to FW times out.

Change-Id: I32f1e38e93a5805e0d85b800cc4e070cd6f79669
CRs-Fixed: 2133388
2017-11-04 06:59:56 -07:00
Ganesh Kondabattini
a598b91ee0 qcacmn: Set weight of DFS/passive channels in pcl to 0
If force SCC is set and SAP is active then all DFS/disabled
channels in PCL should have 0 weight to avoid the STA roaming
to these channels.

Change-Id: I4519c29477c5108f5131b7caa806505b69efea8b
CRs-Fixed: 2135750
2017-11-04 06:09:13 -07:00
Yun Park
ab131773f7 qcacmn: Enable RPS dynamically for SAP mode
SAP Rx TPUT is bounded by host network stack, which is running in the
context of IPA work-queue, when IPA offload data path enabled.
However RPS shouldn't enabled for legacy Rx data path, where NAPI is
enabled. So, we dynamically enable RPS for SAP interface when the vdev
comes up and IPA was enabled only.
Send RPS enable indication to CNSS daemon to enable RPS only when SAP
interface comes up and disable RPS when SAP interface is closed.

Change-Id: Ia669b2c3ae814d0577f5226d8acbf026740ad760
CRs-Fixed: 2129520
2017-10-24 02:33:19 -07:00
Manjunathappa Prakash
fb82833f38 qcacmn: Disable LRO capability during concurrency
LRO rx jumbo packets cannot be forwarded to other vdev and kernel drops
them with warning message:
"skbuff: wlan0: received packets cannot be forwarded while LRO is enabled"
So disable LRO capability during concurrency.

Change-Id: Ib35e1ee5f9c18a846e21ce1eb293e12e17761fa8
CRs-Fixed: 1092193
2017-10-24 00:49:36 -07:00
Rachit Kankane
a07e4b97d4 qcacmn: Enforce MCC to SCC for 3-port combinations
This update is for moving of AP/GO to enforce SCC for 3-port
combinations AP+AP+STA and AP+GO+STA.

Change-Id: I878b56cd8215f0d0f846af62fa2033b268e96317
CRs-Fixed: 2127091
2017-10-23 06:12:41 -07:00
Rachit Kankane
1303fcd9b1 qcacmn: policy_mgr update for new connection
Policy Manager updated when new connection request is under process.
The update is resctricting below behavior:
1. Maximum 2 vdevs are only supported per mac.
2. Intraband MCC among beaconing entities shall not be supported.
3. Intraband MCC shall be allowed when STA is operating on
   DFS/Passive/LTE avoidance channel.
4. No DFC SCC shall be allowed both in 2-port and 3-port for Auto.

Change-Id: If4e78791832207838c38ab7525f8081093cc73ed
CRs-Fixed: 2127091
2017-10-23 06:12:39 -07:00
Rachit Kankane
758528a6e5 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
Rachit Kankane
c4e7ce7142 qcacmn: Correction in PCL index fetching routine
In case of SBS or DBS, both the MACs are used for operations.
We have issue in PCL index fatching routines for 3-port
concurrent combinations when first two ports are configured
in DBS mode.

Change-Id: I36ca9979ef4222428e383d89b52ff1388c79ac22
CRs-Fixed: 2127091
2017-10-23 06:12:36 -07:00
Rachit Kankane
76b8464512 qcacmn: PCL update for 3-port combinations
Updated PCL table to support 3-port concurrent scenarios AP+AP+STA,
AP+GO+STA and AP+AP+AP.
The PCL entries are updated to have below behavior:
1. AP+GO or AP+AP will be supported either in DBS or in SCC mode
2. The Precedence order will be DBS, SCC.

Also disabling 3-port combinations with P2P-CLI.

Change-Id: I678e2b5a49577e173c0e34f83a7ccc528313aadd
CRs-Fixed: 2127091
2017-10-23 06:12:34 -07:00
Dustin Brown
3c49b2e6f9 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
Tushnim Bhattacharyya
e677364a0f qcacmn: Update PCL table for non DBS to give preference to SCC
Update PCL table for non DBS to give preference to SCC in STA+P2P cases.

Change-Id: I0dfa1f2f37960b90a32e325e1397e301f6ce313d
CRs-Fixed: 2118720
2017-09-29 16:29:15 -07:00
Ganesh Kondabattini
2a8c7b0c6d qcacmn: Refactor the code to update the conc_system_pref
Refactor the code to dynamically change the conc_system_pref.
Whenever user changes conc_system_pref from application,
driver is overwriting the conc_system_pref which is getting
populated from ini file. Once it is overwritten there is no way
to get the configured value for this setting. So add a new
variable to hold the value of conc_system_pref without disturbing
default value read from ini file.

CRs-Fixed: 2082073
Change-Id: Icfb245c7a8872885332ec222780c911d08521d46
2017-09-25 13:21:42 -07:00
Ganesh Kondabattini
6c0554aac7 qcacmn: Initialize SAP mandatory chan list
Initialize SAP mandatory chan list.

Change-Id: I126d67da1bfe8426cd3a7b031e97aba907e6155a
CRs-Fixed: 2089122
2017-09-15 11:19:59 -07:00
Tushnim Bhattacharyya
5d284f7b1a qcacmn: Update PCL table for non DBS to give SCC preference
Update the non DBS PCL table to give preference to SCC.

Change-Id: I9d2d982f367bf6fb8d18e4d448fa0c45e95cbbf4
CRs-Fixed: 2063060
2017-09-08 14:28:02 -07:00
Tushnim Bhattacharyya
15c3144230 qcacmn: Strip out the DSRC channels while getting valid channel list
Strip out the DSRC channels while getting valid channel list from sme.

Change-Id: I540869a01dbc045033ba1e3623c3d237b1e5a54c
CRs-Fixed: 2063060
2017-09-08 14:28:01 -07:00
Tushnim Bhattacharyya
b641b5e094 qcacmn: Avoid deadlock while protecting connection list
Avoid deadlock while protecting connection list during SAP channel
switch.

Change-Id: Ib4f8bd3e185b3dd6bd746e49645b6456dca50e96
CRs-Fixed: 2088106
2017-09-02 04:19:21 -07:00
Tushnim Bhattacharyya
126d7e1281 qcacmn: Handle no common channel between PCL and the favorite channel list
Handle the scenario where no common channel between PCL & the
favorite channel list is found.

Change-Id: I560d7ef861d89f3f4a0c63afacd0ffbf6aaa976e
CRs-Fixed: 2063060
2017-09-02 04:19:18 -07:00
Tushnim Bhattacharyya
c5348955ec qcacmn: Fix logic to force SCC in SAP+STA concurrency
If SAP is up & STA is coming up next(or vice versa) on a different
channel causing MCC, move SAP to cause SCC or DBS. This logic is
enabled only if gWlanMccToSccSwitchMode is set to
QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION or
QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL.

Change-Id: I16615d828a285762133ee3533339320ef119b3d3
CRs-Fixed: 2063060
2017-09-02 04:19:15 -07:00
Tushnim Bhattacharyya
8d185ebf41 qcacmn: Dynamically allocate memory for work sta_ap_intf_check_work
To handle back to back scheduling of sta_ap_intf_check_work, allocate the
memory used by the work dynamically.

Change-Id: Ibbcfafb2fadd2de1cca44086f9335dca86641f50
CRs-Fixed: 2070220
2017-09-02 04:19:12 -07:00
Tushnim Bhattacharyya
5e026735cb qcacmn: Add logic to force SCC in SAP+STA concurrency with ACS
If STA is up & SAP is comings up on a ACS derived channel causing MCC,
move SAP to the other band if DBS is supported. This logic is enabled
only if gWlanMccToSccSwitchMode is set to
QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION.

Change-Id: I48d809f83921292f51ca1735bff4c4d6dd339975
CRs-Fixed: 2063060
2017-09-02 04:19:09 -07:00
Tushnim Bhattacharyya
a2c3b62a86 qcacmn: Add logic to force SCC in SAP+STA concurrency - Part 2
If STA is up on a a DFS or passive or LTE unsafe channel & SAP is
comings up that causes MCC, move SAP to the other band if DBS
is supported. This logic is enabled only if gWlanMccToSccSwitchMode
is set to QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION.

Change-Id: I5d393a21301f3fa838f7cf38620fb1d57ae1d57a
CRs-Fixed: 2063060
2017-09-02 04:19:06 -07:00
Tushnim Bhattacharyya
08a833946d qcacmn: Add logic to force SCC in SAP+STA concurrency
If SAP is up & STA comes up or moves to a DFS or passive or LTE
unsafe channel that causes MCC, move SAP to the other band if DBS
is supported. This logic is enabled only if gWlanMccToSccSwitchMode
is non zero.

Change-Id: I56f78dfaedec31c4c41aea6ac8c66261c9ad4c91
CRs-Fixed: 2063060
2017-09-02 04:19:03 -07:00
Liangwei Dong
0027e3f02b qcacmn: Fix hotspot starting failure
When softap is stopping, there are two threads
accessing the "conc_connection_list".
hostapd thread (__wlan_hdd_cfg80211_stop_ap) read
and modify it by cds_decr_session_set_pcl.
cds_mc_thread thread (cds_get_valid_chan_weights)
read and modify it by cds_store_and_del_conn_info
and cds_restore_deleted_conn_info.

They are not protected,which causes two same
station connection info saved to the
"conc_connection_list".

This fix is to acquire lock before read/modify
the list.

Change-Id: I5f1becef711363f659044c46e69fab1cd6d07d81
CRs-Fixed: 2038000
2017-08-29 20:57:54 -07:00
Tushnim Bhattacharyya
05328bb022 qcacmn: Save the unsafe channels in policy manager
Save the list of unsafe channels in policy manager to be used on PCL.

Change-Id: Ibb705830e878d1cc03dfbc76e49c169d2febd75d
CRs-Fixed: 2095290
2017-08-29 20:56:02 -07:00
Linux Build Service Account
2e60f19594 Merge "qcacmn: Fix the use of uninitialized variable in policy manager" 2017-08-24 08:11:07 -07:00
Linux Build Service Account
8d8abf08a3 Merge "qcacmn: Reduce log spam from policy manager" 2017-08-24 08:11:06 -07:00
Tushnim Bhattacharyya
8b60ebb5c6 qcacmn: Reduce log spam from policy manager
Reduce log spam from policy manager by converting non essential & periodic
logs to debug level.

Change-Id: I3cb01b47dd56edcf141479b14ea1e51e89b0473a
CRs-Fixed: 2094743
2017-08-22 10:56:00 -07:00
Tushnim Bhattacharyya
ecc6e108b1 qcacmn: Expand the use of gDualMacFeatureDisable INI
Few OEMs want DBS to be disabled for connections while
keeping DBS scan enabled.
Few OEMs want advance DBS scan features to be disabled.
Provide different value to gDualMacFeatureDisable INI item
to achive the goal.

Change-Id: Iddf5df23575a2f907bb8dbd0c37e03ff4ebbdea8
CRs-Fixed: 2068779
2017-08-22 08:40:53 -07:00
Tushnim Bhattacharyya
42b8067e18 qcacmn: Fix the use of uninitialized variable in policy manager
Initialize the uninitialized variable in
policy_mgr_get_channel_from_scan_result().

Change-Id: I435e6021b989562b69b3bccaa9a90d9cfd3ae560
CRs-Fixed: 2091884
2017-08-21 13:16:35 -07:00
Tushnim Bhattacharyya
c989ebe26e qcacmn: Relax the check on nss field during HW mode table lookup
Relax the check on nss field during FW advertised HW mode table lookup.
Instead of looking for exact match look for less than or equal to the FW
advertised nss value.

Change-Id: I360d14282f03aad25f4338546cbcbfb3cbd3a76b
CRs-Fixed: 2090863
2017-08-17 17:25:19 -07:00
bings
ffe5ca51ed qcacmn: Fix connection information deleting and restoring
Currently only one connection information corresponding to the
provided mode is deleted and restored, which causes channel
selecting failure in DFS testing with AP+AP concurrency mode.
When radar is found in AP+AP concurrency mode, a new valid channel
should be selected. Before selecting the channel, all existing
connection information of SAP mode should be deleted, otherwise
no valid channel can be selected.

All the connection information corresponding to the provided mode
should be deleted and restored.

Change-Id: Id363dbb2c31485fefcd6915696060923063079bb
CRs-Fixed: 2079597
2017-08-16 03:27:29 -07:00
Tushnim Bhattacharyya
da68b5a736 qcacmn: policy_mgr_mode_specific_modification_on_pcl to be called per mode
policy_mgr_mode_specific_modification_on_pcl to be called for the
connection type for which get_pcl is called.

Change-Id: I78010ebf877130eca9eaa0074a833fb5b7faa4a1
CRs-Fixed: 2079986
2017-08-03 18:04:24 -07:00
Archana Ramachandran
944f1fda18 qcacmn: Disallow moving to single MAC mode when a 2.4GHz connection exist
After the P2P GO is up on 2.4 GHZ, the opportunistic upgrade
timer handler is sending request to move to single MAC mode.
Since 2.4 GHZ connection is always on MAC1 in DBS 2X2 capable
HW, this is causing P2P connection failure. Add fix to not
downgrade to single MAC mode when there exist a 2.4 GHZ
connection.

Change-Id: I90e2b5b43a6bc8a5b5b44ea96905410092f2866e
CRs-Fixed: 2055867
2017-06-27 18:12:55 -07:00