Commit Graph

179 Commits

Author SHA1 Message Date
Abhinav Kumar
392221599a qcacld-3.0: Process vendor cmd for BEACON_REPORTING_OP_STOP
Userspace request driver to report details of each beacon
received whose bssid is same as currently connected BSS's
mac address. The driver encapsulates the details of these
beacons as an asynchronous event within vendor command:
QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING with operation
type QCA_WLAN_VENDOR_BEACON_REPORTING_OP_STOP until
userspace requests to stop sending beacons.

When driver gets stop indication from userspace, it does
the following things:
1. De-register all callback which is registered while handling
start indication
2. Add beacon filter and send it to fw

If driver is in WOW mode and WMI_ADD_BCN_FILTER_CMDID is
NOT configured, fw wakeup HOST and sends connected AP beacon.
Fw should not wakeup host if host is in wow mode. In order
to support this, configure WOW_BEACON_EVENT for STA and P2P.

Change-Id: Ie7c768fa957d02e1361e1ecb95435ba3f06034b0
CRs-Fixed: 2431360
2019-05-23 09:30:32 -07:00
Sourav Mohapatra
618f208d24 qcacld-3.0: Add check for zero before division
Currently in function pmo_core_config_modulated_dtim there is a possible
scenario of a division by zero. The parameter dtim period can have zero
value.

Add a check before performing the operation.

Change-Id: Ida4a798e5c7914966db25bd188821a75caaf4353
CRs-Fixed: 2432010
2019-05-14 23:57:46 -07:00
Yue Ma
66984e2bd4 qcacld-3.0: Return error code for PMO runtime suspend failure
Some failures in PMO runtime suspend do not return any error code.
Fix them by returning proper error code.

Change-Id: Icc6b8fef45707cba6dc2cef7ec44cd5c71d2f07d
CRs-fixed: 2450271
2019-05-09 14:27:45 -07:00
sheenam monga
8cb4be3fd3 qcacld-3.0: Fix bss peer use after free in pmo
wlan_vdev_get_bsspeer() return bss peer without taking the ref count
of the peer and thus if peer is deleted after wlan_vdev_get_bsspeer()
returns a valid peer, the caller will have stale entry of the peer.
Stale entry of peer can lead to Assert.

Use wlan_objmgr_vdev_try_get_bsspeer API for pmo to get the BSS peer
which increment the refcount if peer is valid. With this the peer
won't be deleted till the caller release the ref count of the peer.

Change-Id: I0901164132c497d78c9dc603539b045e5ce0f152
CRs-Fixed: 2446618
2019-05-08 04:46:56 -07:00
Pragaspathi Thilagaraj
eb367282fd qcacld-3.0: Handle wmi_key_material_ext tlv of ROAM_SYNCH event
With current design, firmware sends the kck, kek and replay
counters as part of wmi_key_material tlv over the
WMI_ROAM_SYNCH_EVENTID event. But the maximum supported kck key
length in wmi_key_material was 16 bytes. But for FT Suite-B
(akm 00:0f:ac:13), the kck_bits is 24 bytes long and cannot be
sent over wmi_key_material. So firmware sends kck, kek and
replay counter values over the new tlv wmi_key_material_ext.

Host driver copies the kck key with fixed 16 byte length to the
upper layers. Introduce kck_length parameter in csr_roam_info
and roam_offload_synch_ind structures and copy kck based on this
length.

Also fix maximum number of AKM suites supported to 5, as some
certification test cases advertise 5 akms.

Change-Id: Iab050e3e3f7efead8070a02094998d15f7ffcbd0
CRs-Fixed: 2400770
2019-04-24 20:23:59 -07:00
Jingxiang Ge
2a67be508a qcacld-3.0: Pass hang reason to qdf_trigger_self_recovery
Pass hang reason to qdf_trigger_self_recovery

Change-Id: I9930731d0a565e021eb472163de7fb5190c39f35
CRs-Fixed: 2432834
2019-04-19 01:56:27 -07:00
Pragaspathi Thilagaraj
aa8320e1c6 qcacld-3.0: Send idle roam trigger monitor command to firmware
Send idle roam trigger monitor command to firmware based on
the SET SUSPEND mode command received from the user space.
The set suspend mode value sent will be used by firmware as
one of the parameters in determining if the device is in
idle state. When set suspend mode is 1, device is not in
idle state else the device is considered idle if idle state
data packet count, idle rssi, inactivity time criteria are met.

Add changes to send the suspend mode value over the wmi
command WMI_IDLE_TRIGGER_MONITOR_CMDID.

Change-Id: Ia4531fdab140334dbb830e0d7486db07bbdfc7e8
CRs-Fixed: 2436221
2019-04-18 17:02:14 -07:00
Srinivas Girigowda
d1e45b8dc7 qcacld-3.0: Replace multiple IPv4/v6 address len macros with QDF macro
Replace multiple IPv4/v6 address len macros with QDF macro.

Change-Id: Id8ee0e1a4d6057f74ea5b7122a33f5137ea533e4
CRs-Fixed: 2435753
2019-04-16 19:57:47 -07:00
Ajit Pal Singh
775bf3ae4b qcacld-3.0: pmo: Add API to get target suspend state
In USB devices even if the driver returns an error from bus_suspend,
still the kernel/platform goes into suspend as any error from USB
bus_suspend is ignored.
During suspend, if WoW or suspend was NACked by FW, we should not
send WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID, WMI_PDEV_RESUME_CMDID to disable
WoW or resume device (in the next system resume)
Add new PMO API to get target suspend state and use it to check if
device should be resumed.

Change-Id: Ic6be05f4f2d36ffe174774b6cd55c6da6b1ea1b8
CRs-Fixed: 2421591
2019-04-05 08:37:19 -07:00
Bala Venkatesh
0f74545bb3 qcacld-3.0: Replace duplicate api's of vdev_connected
Currently, the vdev connection status is checked by getting
the bss peer of that vdev, and if the bss peer is in associated
state then vdev connected status is sent as true. It can happen
vdev is present and bss peer is deleted after getting the bss peer
from vdev pointer. Then bss peer can not be dereferenced to get the
its status.

Instead remove all the duplicate api's tdls_is_vdev_connected,
pmo_core_is_vdev_connected, and wlan_vdev_is_connected with
wlan_vdev_is_up. wlan_vdev_is_up gives success status
if associated.

Change-Id: I863c3c0689f329870bd08c813813c16956135209
CRs-Fixed: 2424996
2019-03-29 15:26:58 -07:00
Srinivas Girigowda
a47b45f94f qcacld-3.0: Consolidate multiple MAC_ADDR_LEN to QDF_MAC_ADDR_SIZE
Consolidate multiple (redundant) MAC_ADDR_LEN to QDF_MAC_ADDR_SIZE
PMO_80211_ADDR_LEN
IEEE80211_ADDR_LEN
ETHER_ADDR_LEN
HTT_MAC_ADDR_LEN
ETHERNET_ADDR_LEN
DEFRAG_IEEE80211_ADDR_LEN
OL_TXRX_MAC_ADDR_LEN
QCSAP_ADDR_LEN

CRs-Fixed: 2406592
Change-Id: I829c5799e4724f81af996b23fdd4ea03f4728bc4
2019-03-28 16:49:58 -07:00
Ashish Kumar Dhanotiya
16fd4201f9 qcacld-3.0: Add support to configure ito repeat count
Currently there is no support to configure ito repeat
count when driver enters into wow mode.

Add support to configure ito repeat count with ini
gItoRepeatCount when driver enters into wow mode.

CRs-fixed: 2419137
Change-Id: I62d7e7df12342e9743c26e0147851347214a9ce7
2019-03-22 03:08:52 -07:00
Ashish Kumar Dhanotiya
9e0627bfd8 qcacld-3.0: Add support to set inactivity timout for PMO
Currently there is no support to configure the inactivity
timeout when driver goes to wow mode or when driver resumes
from wow mode.

Add support for PMO component to configure the wow mode
inactivity timeout with ini g_wow_data_inactivity_timeout
when driver enters into wow mode and when driver resumes
from wow mode add support to configure the inactivity
timeout for non wow mode with ini gDataInactivityTimeout.

CRs-fixed: 2412866
Change-Id: I0672f22a5dfec870e5e67b23058db2729b9a0848
2019-03-20 08:25:38 -07:00
Jeff Johnson
361e1786c6 qcacld-3.0: pmo: 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 pmo replace any such comparisons with logical
operations performed on the pointer itself.

Change-Id: I3697ede27e074252017e31be23caa93fc25885c5
CRs-Fixed: 2418398
2019-03-19 02:24:37 -07:00
hangtian
bb591aa59d qcacld-3.0: Revert "Allow SSR during driver resume"
Revert "Allow SSR during driver resume", change-id:
Ie1689e0b080f940666fbbb19c9f0e3b0fecfe564.

Change-Id: I3673ad030ecdb5112d4e28cc34102d58295c50a7
CRs-Fixed: 2412130
2019-03-17 20:42:50 -07:00
wadesong
bfc88b4a0d qcacld-3.0: cfg ini documentation refine
Some malformed comments were discovered when generating
the official documentation of wlan cfg ini items.

Refine the documentation text of the following items
in one batch:

gEnableDynamicDTIM
g_sap_chanswitch_mode
gVhtChannelWidth
gDataInactivityTimeout

Change-Id: I2b1455d0ea27fd35dc0cf66316c7dc3b348ee0ac
CRs-Fixed: 2416086
2019-03-14 11:17:48 -07:00
wadesong
e1fc997982 qcacld-3.0: Code refine for SSDP and DTIM config
1) 'ssdp' in t_wma_handle structure is not used anymore,
   remove this redundant field.
2) ucfg_pmo_set_sta_mod_dtim and ucfg_pmo_get_sta_mod_dtim
   should have been accessing 'sta_mod_dtim' instead of
   'sta_dynamic_dtim' in struct pmo_psoc_cfg.

Change-Id: Iedd7bed1c9f637a819f97b6d8c687b784739dd62
CRs-Fixed: 2415087
2019-03-13 23:21:20 -07:00
wadesong
8e3d053517 qcacld-3.0: cfg ini documentation refine
Some malformed comments were discovered when generating
the official documentation of wlan cfg ini items.

Refine the documentation text of the following items
in one batch:

gEnableVendorVhtFor24GHzBand
hostArpOffload
ssdp
gEnableDynamicDTIM
gEnableModulatedDTIM

Change-Id: I3cd617e52e86e2a890e35edb33b37ba3df8f4f6e
CRs-Fixed: 2414259
2019-03-13 00:07:14 -07:00
hangtian
ee84dbeb33 qcacld-3.0: Allow SSR during driver resume
Allow SSR during driver resume. Assume firmware goes down during driver
is in suspend state. Avoid get into bad state and wmi access during driver
resume.

Change-Id: Ie1689e0b080f940666fbbb19c9f0e3b0fecfe564
CRs-Fixed: 2412130
2019-03-11 01:35:00 -07:00
Rajeev Kumar
c80f91056d qcacld-3.0: Mark client kick out event as wake event in SAP mode
In SAP mode apps should wake up to handle the client kick out event
from fw and delete the remote peer such that remote peer is not hanging
in partial connected state when apps is in power save mode. Mark client
kick out event as wake event in SAP mode such that apps can wake up and
properly disconnect the kicked out remote client.

Change-Id: I9e2e56820be0bed8019d2fb810a12a129deadd37
CRs-Fixed: 2410124
2019-03-08 06:04:28 -08:00
Sachin Ahuja
981e8e7b41 qcacld-3.0: Update MC address list correctly
Currently while copying the MC address list, PMO
checks for the IPv6 router solicitation address. If this
address is found in the source list then this address is
ignored but the hole is created in the destination list.
As a result of this hole, FW does not filter the packets
for the last configured MC address in the list.

To mitigate this issue, add the correct logic of copying
the MC addresses from source list to destination list when
IPv6 router solicitation address is found in the source list.

Change-Id: If9412933d30259e7260e4d9e11cc514dec964355
CRs-Fixed: 2403419
2019-02-27 05:09:30 -08:00
Jeff Johnson
e723995185 qcacld-3.0: Remove session_id from struct pmo_wow_add_pattern
The session_id field in struct pmo_wow_add_pattern does not serve any
purpose, so remove it.

Change-Id: I477b74c1360f124fb493440a8289fb2a4382c6d5
CRs-Fixed: 2404828
2019-02-27 05:09:26 -08:00
Wu Gao
814ce703b4 qcacld-3.0: Format ini descriptions
Some ini descriptions are different to common, and some of them
include wrong information, so correct them and use unified form.

Change-Id: I36348fb26a03cab254fd309d792125b8a21ad02f
CRs-Fixed: 2402446
2019-02-24 21:34:47 -08:00
Nachiket Kukade
6159553884 qcacld-3.0: In PMO, replace cfg_get_int with component cfg API's
Legacy WNI CFG items are refactored into new CFG implementation.
PMO uses a wma callback which uses cfg_get API to get listen
interval. Listen interval is now part of the MLME component's
private object. Define API's to get this value and use it instead
of the callbacks.

Remove WMA callback implementation and use new API that gets
listen interval from MLME component.

Change-Id: I797001ea14cc654f9daee3ce297e1ad0c0a08f2a
CRs-Fixed: 2386725
2019-02-17 20:49:59 -08:00
Nachiket Kukade
92ee534ea3 qcacld-3.0: Cleanup usage of RA rate limit variables in WMA
By design, when APF is supported by target, RA filtering need
not be configured. Legacy code handled this by passing INI value
of RA rate limit value to WMA and intersecting it with APF
enabled flag. Change Iabb75b46fce64b2c4a7a303848d7cb6b4714253b
replaced this implementation by a single check in PMO. So remove
the WMA legacy code since it has no purpose now. Also remove
unused PMO prototypes pmo_update_ra_limit and
pmo_update_target_service.

Cleaunp the WMA code that intersects RA rate limit and APF
variables.

Change-Id: I870a1271a627d47242000f5e04068e628f567216
CRs-Fixed: 2379745
2019-02-15 11:46:18 -08:00
Nachiket Kukade
4816c5985f qcacld-3.0: Fix typo in INI definition in CFG framework
Change I3b1ee6254de158ad6408dc8c61e83be571e180af refactored 3
APF related INI's into CFG framework. This was merged with a
a copying error causing INI string "gActiveMcBcBpfMode" being
replaced by "gActiveUcBpfMode". Fix this by correcting the
string name.

Fix copying error by replacing with the correct INI string.

Change-Id: I41576b1b22287f7c0fd751ce96ceddb8f7cbc62a
CRs-Fixed: 2393504
2019-02-06 17:12:31 -08:00
Abhishek Singh
d5cf22dffb qcacld-3.0: Change to include PDEV MLME component object
Changes to include PDEV MLME component object for VDEV SM.

Change-Id: I1f89e9bf5a4d5b17be7ec3c4fc52a5f8fe8f1862
CRs-Fixed: 2381858
2019-01-24 20:14:33 -08:00
Jeff Johnson
62dbb183fc qcacld-3.0: Remove ucfg_pmo_vdev_update_dp_handle() stub
Change I1f668fff633a5e5cdfc478e7f619e9600930b333 ("qcacld-3.0: Use wma
callback to get vdev dp handle") removed the implementation of
pmo_ucfg_vdev_update_dp_handle(), but left behind the stub
implementation for use when PMO is disabled. This stub, since renamed
to ucfg_pmo_vdev_update_dp_handle(), is unused, so remove it.

Change-Id: I042ea081a4c2e5288963f7882129d06667e5b707
CRs-Fixed: 2380780
2019-01-18 16:36:23 -08:00
Jeff Johnson
ee066a08a3 qcacld-3.0: Remove pmo_dump_wow_ptrn() prototype
Change I47cce6123566b67d4aa0c56f1cf6738f4fdbf77d ("qcacmn: Initial
power manager offload skeleton") included a prototype for function
pmo_dump_wow_ptrn(), but not an implementation. Since subsequently
an implementation was never added, remove the unused prototype.

Change-Id: I4fda06ef5cabdbff069e542319a9d5296a0e932a
CRs-Fixed: 2380102
2019-01-15 18:41:19 -08:00
Jeff Johnson
844da097fc qcacld-3.0: Remove nlo fields from struct pmo_vdev_priv_obj
Fields nlo_in_progress and nlo_match_received in struct
pmo_vdev_priv_obj are unused, so remove them.

Change-Id: I4152e55e407628bbcc32118aa702770a401cfe3b
CRs-Fixed: 2379076
2019-01-14 12:58:47 -08:00
Jeff Johnson
18dd808afa qcacld-3.0: Harmonize PMO packet filter APIs
Update the PMO packet filter APIs to make sure the parameter names
in the prototypes match the ones in the implementations and in the
documentation.

Change-Id: I7fd924d17edb54c690e8ef5b85d4829a4a165edc
CRs-Fixed: 2379075
2019-01-14 08:38:06 -08:00
hangtian
127c953c7f qcacld-3.0: Use qdf_mem_zero for zero initialization
Use qdf_mem_zero for zero initialization.

Change-Id: Ic2b8d907623cf67a4569aaf01398c1b3a2bff707
CRs-Fixed: 2376644
2019-01-14 08:38:03 -08:00
Wu Gao
9d117fbfc2 qcacld-3.0: Refactor three INI in PMO
Based on cfg framework, refactor below INI:
 - CFG_RA_RATE_LIMIT_INTERVAL_NAME
 - CFG_ACTIVE_UC_APF_MODE_NAME
 - CFG_ACTIVE_MC_BC_APF_MODE_NAME

Change-Id: I3b1ee6254de158ad6408dc8c61e83be571e180af
CRs-Fixed: 2379743
2019-01-13 18:45:51 -08:00
Wu Gao
a796d7153a qcacld-3.0: Refactor one WNI cfg and two INI cfg about PMO
Based on new cfg framework, refactor below WNI and INI cfg items:
 - WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT
 - g_wow_data_inactivity_timeout
 - gDisablePacketFilter

Change-Id: I9a975263021ba4fd5ccea19ed1147a661f73317f
CRs-Fixed: 2375866
2019-01-10 19:42:02 -08:00
Yue Ma
a66ccb8e2a qcacld-3.0: Do not directly call QDF_BUG in PMO
Use qdf_trigger_self_recovery instead of QDF_BUG for runtime PM
resume failure case as qdf_trigger_self_recovery can handle more
scenarios gracefully.

Change-Id: Iff0348fafb1be82f46400099e3cd551c079eea74
CRs-fixed: 2377677
2019-01-09 06:11:32 -08:00
Jeff Johnson
33c542ff92 qcacld-3.0: Remove enum pmo_offload_type
Enum pmo_offload_type is unused, so remove it.

Change-Id: Ibe1c488fbf72d577eac0424151adf5bd593be3c6
CRs-Fixed: 2375418
2019-01-07 08:46:58 -08:00
Jeff Johnson
cbcc2c5b6a qcacld-3.0: Remove bmiss_enable from struct pmo_psoc_cfg
The bmiss_enable field in struct pmo_psoc_cfg is unused, so remove it.

Change-Id: I456c420faea23616aa0b273a57fd661fd8c4eaf5
CRs-Fixed: 2375417
2019-01-07 08:46:52 -08:00
Nachiket Kukade
13bbe41414 qcacld-3.0: Don't configure RA filtering when APF is supported
RA filter is getting configured while APF is supported.
Since APF implementation internally handles RA filtering,
this is not needed. Therefore if APF is enabled in INI
and target supports it, do not configure RA filtering.

Don't configure RA filtering when APF is supported.

Change-Id: Iabb75b46fce64b2c4a7a303848d7cb6b4714253b
CRs-Fixed: 2352248
2018-12-24 10:06:35 -08:00
Sourav Mohapatra
0dfe5550e0 qcacld-3.0: Relocate HDD ini items (1)
Relocate below HDD ini items as per converged infrastructure.
1. CFG_ENABLE_RUNTIME_PM
2. CFG_STA_KEEPALIVE_METHOD_NAME
3. CFG_ENABLE_MCC_ENABLED_NAME
4. CFG_ENABLE_SAP_SUSPEND
5. CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME
6. CFG_INFORM_BSS_RSSI_RAW_NAME
7. CFG_AP_ENABLE_RANDOM_BSSID_NAME
8. CFG_VC_MODE_BITMAP

Change-Id: I881c87f9ca73804d03af358163c9a043b3193c81
CRs-Fixed: 2357174
2018-12-06 13:43:56 -08:00
Rajeev Kumar
1f97e10701 qcacld-3.0: Decouple PMO LPASS and NAN wow enable check from vdev
LPASS is driver specific feature which is controlled by INI item
and similarly NAN is also driver specific and not vdev specific
hence decouple PMO lpass and nan feature get APIs from vdev to
psoc.

Change-Id: I152f8b909cf85e412c2fa72a2e7147a1505e60e1
CRs-Fixed: 2361991
2018-12-06 12:02:56 -08:00
Ashish Kumar Dhanotiya
68ee2e4c50 qcacld-3.0: Reset wow pattern on vdev destroy
Currently if a vdev is destroyed, wow patterns are not
getting cleared for that vdev, so when a new vdev is
created, host tries to configure new wow patterns for
this new vdev but due to FW limitations on number of
wow patterns that can be maintained at FW, FW is not
able to act on this filter and will not maintain this
new wow filter.

To resolve this issue, clear the wow patterns for the
vdev before it gets destroyed.

Change-Id: Iae7ad8b683c95d8eaf11355bc0e36b91cece2202
CRs-Fixed: 2344337
2018-11-28 09:35:06 -08:00
Wu Gao
70afa0e409 qcacld-3.0: Split PMO configures into different files
Split PMO configures into different files by feature. Remove
unnecessary macro limitation.

Change-Id: I1e431fd2f38988c771e02c979c5ce55d0627e605
CRs-Fixed: 2323999
2018-10-24 03:17:03 -07:00
Wu Gao
d7dd6e4157 qcacld-3.0: Rename some ucfg APIs of PMO
To keep names of PMO ucfg APIs consistent, change some of them from
"pmo_ucfg_xxx" to "ucfg_pmo_xxx".

Change-Id: I77165be8c5c408c3f91f84a477c15be1c6ea15e8
CRs-Fixed: 2334109
2018-10-22 03:52:11 -07:00
Dustin Brown
7cc1f4cd0f qcacld-3.0: Succeed when offload config is disabled
PMO returns failure codes for enable/disable of NS and MC List offloads
when their respective configurations are disabled. As this is expected
behavior, return success instead.

Change-Id: I91b00da9b4026f5975c14f5889cd913b13e1347b
CRs-Fixed: 2323312
2018-10-02 12:07:58 -07:00
Wu Gao
87bfd3520c qcacld-3.0: Refine PMO configures based on converged cfg component
Based on cfg component, define PMO configures and add APIs to get or
set configures.

Change-Id: I9b9ff1f8701168787985cbcb219361a3f63c787f
CRs-Fixed: 2322176
2018-10-01 18:38:06 -07:00
Abhishek Singh
5ad797d0b3 qcacld-3.0: Remove legacy APIs to modify vdev state machine
This change Removes legacy APIs to modify vdev state machine and
add use new API to get vdev state.

Change-Id: I48aa3744dafc6d13a43a14e48de821c7dadf3a37
CRs-Fixed: 2314730
2018-09-17 06:09:35 -07:00
Srinivas Girigowda
eff16d956b qcacld-3.0: Fix tab stop checkpatch warnings
Fix tab stop checkpatch warnings.

Change-Id: I4ccbc39b571737413de038fabcd4b8641a39cd62
CRs-Fixed: 2312593
2018-09-13 13:20:38 -07:00
Rajeev Kumar Sirasanagandla
85f8b02175 qcacld-3.0: Add debugfs support for offload info
Add debugfs entry to get offload info (mc addr list, arp, ns etc.,)
for STA interface.

Change-Id: I8bf4491929b5ef04ed5ce19f4b0030945f0eb0c0
CRs-Fixed: 2203786
2018-09-06 08:54:37 -07:00
Rachit Kankane
0cf4d4feb1 qcacld-3.0: Featurize WLAN_FEATURE_PACKET_FILTERING
Featurize packet filter properly, as this feature was partially featurized.

Change-Id: Ib4b0e94ab2b9847f824220e2cd4efc2cee6fae8d
CRs-Fixed: 2304233
2018-09-04 13:45:49 -07:00
Dustin Brown
6a8d39b6ed qcacld-3.0: Reduce excessive logging
Reduce or removed several excessive log in order to avoid spamming
dmesg.

Change-Id: I818c8f88f66ad11a3c3bc5d5a12799e83c02e5ff
CRs-Fixed: 2296680
2018-08-14 23:32:49 -07:00
Manikandan Mohan
dcd0fdfcc0 qcacld-3.0: Update for converged NAN config params
Update driver to use NAN config params based converged CFG
component. Cleanup hdd config references to nan ini params.

Change-Id: I5af85d68ee53ad557e64523f7a1719e328536926
CRs-fixed: 2290360
2018-08-10 20:45:16 -07:00
Nirav Shah
790d943594 qcacld-3.0: Add per module logging macros without function/line info
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.

Change-Id: Id808fef623b82cec38fc31071ef384f3ff0c92da
CRs-Fixed: 2278874
2018-07-27 09:09:42 -07:00
Nirav Shah
d6fa0f8cd8 qcacld-3.0: Add compilation flag for enter/exit macros
Map all enter/exit log macros to enter/exit QDF TRACE macro
to provide option to compile out enter/exit logs if required.

Change-Id: I0c6cd633705e820fcfeb47e3f81a3522c9ef1974
CRs-Fixed: 2274850
2018-07-25 09:40:33 -07:00
Dustin Brown
867ce6d534 qcacld-3.0: Reduce excessive logging during suspend
Currently, errors are logged if a given offload feature is disabled
while suspending the wlan driver. Instead, simply return success for the
configuration of those features which are disabled, since nothing needs
to be done. This also has the side effect of avoiding meaningless error
logs for situations which are not error conditions.

Change-Id: I1d897d8db066e642e1cc6e77daff0f44172cefe8
CRs-Fixed: 2282040
2018-07-21 13:15:52 -07:00
Dustin Brown
0127a73a2d qcacld-3.0: Enable/Disable MC filter when connected
Multicast address filtering only makes sense if the interface is
connected and capable of receiving traffic. Avoid enabling/disabling
the multicast address filter list on an interface that is disconnected.

Change-Id: Id8aff136e920bb726b8c7dd539d477ff44f080d4
CRs-Fixed: 2282003
2018-07-20 10:46:49 -07:00
gaurank kathpalia
82a1b2b802 qcacld-3.0: Fix GTK offload req params
Currently the host sends the fixed gtk offload params
and the FILS TLV params, even when the FILS feature is disabled
in the host, which force firmware to pick the KEK from the
FILS TLV structure rather than from the fixed param structure,
which further leads to GTK re-keying feature fail.

Fix is to send only the fixed params in case when host doesnt
supports FILS.

Change-Id: I5b3b3fd503c7cb9c4d7933074fd483086b113204
CRs-Fixed: 2244725
2018-07-17 14:48:23 -07:00
Qiwei Cai
1083f5b0ac qcacld-3.0: Featurize WLAN_NS_OFFLOAD
Fix compilation errors when disable WLAN_NS_OFFLOAD

Change-Id: Ifba894a4880a226cedf4c88b1121d02c63aceb4b
CRs-Fixed: 2271272
2018-07-13 10:36:11 -07:00
Dustin Brown
bec5806fea qcacld-3.0: Move panic messages into QDF_DEBUG_PANIC
QDF_DEBUG_PANIC has recently gained a reason parameter. Move instance of
logging followed immediately by QDF_DEBUG_PANIC to single calls.

Change-Id: I6633296fb1c82a3945cedc967de222410b9f5d9b
CRs-Fixed: 2274413
2018-07-09 14:24:30 -07:00
Nachiket Kukade
54e7be76f3 qcacld-3.0: Add upper limit check on Listen Interval configuration
User can override the Listen Interval value set during association
by using wifi config set vendor command. Since there is no limit
check in host, a very high value causes an assert in the Firmware.

Add an upper limit check on the user Listen Interval value.

Change-Id: I8128ccbb875adf57c95a15d0391fb442d3dbbbc3
CRs-Fixed: 2256334
2018-07-03 02:59:59 -07:00
Nachiket Kukade
01becb9bf0 qcacld-3.0: Cleanup dtim configuration during suspend and resume
Currently while going to suspend, dtim parameters are not
correctly getting configured. Some other parameters to config
like the inactivity timeout are completely skipped as well.

Cleanly port the setting of dtim and other parameters during
suspend and resume.

Change-Id: Ic41a8ace3f5650e53f2dcaa416bfe241b87aa88d
CRs-Fixed: 2248160
2018-06-21 12:35:44 -07:00
Nachiket Kukade
4b7c8e03c7 qcacld-3.0: Port modulated dtim and override listen interval
Port modulated dtim and override listen interval to PMO from
WMA.

Change-Id: Id965dd8ee0fbddfa563335fd2fe225dcd20cd162
CRs-Fixed: 2252788
2018-06-21 12:35:40 -07:00
Jeff Johnson
e84581b383 qcacld-3.0: pmo: Replace tSirRetStatus with QDF_STATUS
The tSirRetStatus definitions are obsolete, so replace them with
QDF_STATUS definitions in the pmo component.

Change-Id: Ia23e1d0eed5a88b0cb1caf4feebd535d36ca2690
CRs-Fixed: 2261705
2018-06-20 04:05:40 -07:00
Nachiket Kukade
f080407812 qcacld-3.0: Send enable/disable flag separately in hw filter command
Before wow enable or pdev suspend  host sets hardware filter bitmap
and enables the filter via a command. But after resuming it sends
bitmap as zero with filter disable. This is interpreted by Firmware
as disable the modes set in the bitmap, so none of the modes are
disabled. With this host will not receive bc/mc packets after
disabling the hw filter, which it is expecting.

Send the same bitmap after resume that was used before suspend.

Change-Id: Ic7425274c9197e907404c3ca9ba0d5269ee51690
CRs-Fixed: 2194964
2018-06-18 16:33:30 -07:00
Nachiket Kukade
e547a48662 qcacld-3.0: Rename legacy definitions containing BPF to APF
In implementation of Android Packet Filter, functions, variables,
definitions are named after BPF, which stands for Berkely Packet
Filter. The term was more appropriate for Link Layer packet
filters implemented in the Linux kernel, known as Linux Socket
Filters.

The term BPF is obsolete now, so rename it with the
appropriate acronym, APF.

Change-Id: I9e02edbc580ffb2c559c8e864f54d255fc2d51a3
CRs-Fixed: 2191530
2018-06-18 16:33:24 -07:00
Will Huang
ad01577f26 qcacld-3.0: Use wma callback to get vdev dp handle
PMO should not know about vdev data path handle, but
pmo_unpause_all_vdev() need it, so register a wma callback to retrieve
the vdev dp handle instead of keep a copy in pmo vdev private context.

Refine current code to retrieve vdev dp handle using a wma callback

Change-Id: I1f668fff633a5e5cdfc478e7f619e9600930b333
CRs-Fixed: 2227384
2018-06-18 16:33:13 -07:00
Dustin Brown
0f87448ee2 qcacld-3.0: Reduce excessive logging in PMO
There are several logs in PMO that log debugging related information
at the INFO level. Reduce the logging level of these debug logs to
avoid spamming the console.

Change-Id: Ib1bb9279d5d8104104b58bd2c83869f72c0bde4a
CRs-Fixed: 2260190
2018-06-14 23:53:59 -07:00
Nachiket Kukade
37b4e6dfbe qcacld-3.0: Add support for getting dtim and beacon interval
Add support for getting vdev dtim and beacon interval from
mlme in PMO.

Change-Id: I97c117eec290f6b9452b98629bf6b3ee10c38ce6
CRs-Fixed: 2252713
2018-06-13 22:27:01 -07:00
Mukul Sharma
4474604869 qcacld-3.0: Add support for getting cfg integer from PMO
Add support for getting cfg integer from PMO. Register callbacks
during pe_open/close so that PMO can query CFG int values for
calculating parameters like listen interval etc.

Change-Id: I52d165586576e547e175ba276e6b7225db5b27e0
CRs-Fixed: 2252661
2018-06-13 22:26:58 -07:00
Will Huang
c312328512 qcacld-3.0: Resolve assert when sending D0WOW disable command
Currently while sending wmi command when target is suspend, it will
check whether command is WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID/
WMI_PDEV_RESUME_CMDID, but D0WOW command is an exception, to keep align
with legacy code so don't set wmi_handle->is_target_suspended if it is
D0WOW enable command.

Move out logic of checking D0WOW status from PMO tgt to core layer.

Change-Id: I164f24ea733e54e5e0dbdb77344917df5d039e53
CRs-Fixed: 2254047
2018-06-13 18:20:00 -07:00
Dustin Brown
c1cdb710bf qcacld-3.0: Reduce excessive logging during suspend
There are several logs along the suspend/resume code paths that log
debugging related information at the INFO level. Reduce the logging
level of these debug logs to avoid spamming the console.

Change-Id: I0e81901e4a053038392c1012600ae125a1ad27a3
CRs-Fixed: 2258093
2018-06-13 15:23:50 -07:00
Rachit Kankane
8863cba926 qcacld-3.0: Add Kbuild config for no of WoW filter
Total 16 number of WoW filters are PoRed for Genoa.
Define CONFIG_PMO_WOW_FILTERS in genoa defconfigs with value 16.

Change-Id: Iba3d9875c954b32a3f22cfd639f4508beb36a5d5
CRs-Fixed: 2257033
2018-06-13 14:10:55 -07:00
Nachiket Kukade
107f639cce qcacld-3.0: Change wow event API's to accept wow event types
Current ucfg API's that disables wow events accept a u32 bitmap
variable. A pointer to that variable is passed to core API where
it assumes it as a u32 array of 4 bytes. This will lead to out of
bound memory access.

Change wow enable/disable API's to accept wow event type as the
parameter.

Change-Id: I220aaddfea62ab96f121014d0d65a1406988c946
CRs-Fixed: 2233108
2018-06-08 21:34:47 -07:00
Wu Gao
a9d336b455 qcacld-3.0: PMO feature flag disable (part two)
This is the change for PMO feature flag disable.

Change-Id: I3e0624c034ddfcad567534ffbbcd85735b8ea0d6
CRs-Fixed: 2243952
2018-06-08 08:31:00 -07:00
Wu Gao
5395a2e179 qcacld-3.0: PMO feature flag disable (part one)
In case PMO feature flag disable, add this change.

Change-Id: Ib0add24b3eda54d0400f9cf2eff895e28db4de39
CRs-Fixed: 2243950
2018-06-08 08:30:57 -07:00
Wu Gao
ffb9c72f7b qcacld-3.0: Use PMO macro from public head files
We should use PMO macro from public head files.

Change-Id: Iac533655e85ef85fe86bae19e0bce4967418cc81
CRs-Fixed: 2251499
2018-05-31 22:30:49 -07:00
Abhinav Kumar
6125c29a2d qcacld-3.0: Add comment between cases in switch statement
Add fallthrough comment in pmo_register_wow_wakeup_events
as per linux checkpatch script. Fallthrough required to set
interface type and to set sta wow bitmask.

Change-Id: I6931371e9a2d4421354c19c12e552c75e50cb798
CRs-Fixed: 2233187
2018-05-11 16:17:55 -07:00
Will Huang
67ce1e332b qcacld-3.0: Refine PMO wow to support legacy chip
wma_is_service_enabled can't get valid service bitmap if call in
hdd_update_pmo_config, use psoc_ctx->caps.unified_wow instead to check
pattern id per vdev and legacy d0 wow capability.

Change-Id: If7bf316f482c49253fc4b95b94e172727b27ffd1
CRs-Fixed: 2225847
2018-05-06 23:12:33 -07:00
Dustin Brown
dd2178d146 qcacld-3.0: Fix off-by-one errors in PMO
The following PMO functions have been identified as having off-by-one
logic errors. Address these errors.

 * pmo_register_resume_handler
 * pmo_register_suspend_handler
 * pmo_unregister_resume_handler
 * pmo_suspend_all_components

Change-Id: I6a328fc24ae6a575ef56cf9532133eb666e0dc8c
CRs-Fixed: 2232388
2018-05-03 02:38:39 -07:00
Rajeev Kumar
289f3c401a qcacld-3.0: Add feature flag for PMO component (part-2)
Add feature flag for PMO component such that for high latency
and IoT devices power management and offload component can be
compiled out.

Change-Id: Iaccda7d9e895cdb4610f0ec984add3aeb7ef9926
CRs-Fixed: 2227330
2018-04-26 16:01:57 -07:00
Rajeev Kumar
109683cf30 qcacld-3.0: Add feature flag for PMO component (part-1)
Add feature flag for PMO component such that for high latency
and IoT devices power management and offload component can be
compiled out.

Change-Id: I2c88b6af33e8f10f1837263f157c1f6892a2c2fb
CRs-Fixed: 2227326
2018-04-25 14:30:31 -07:00
Dustin Brown
d69ec37568 qcacld-3.0: Trigger recovery on pdev suspend timeout
Historically, recovery was triggered if PDEV suspend failed, but the
logic was lost during componentization. Restore the previous logic of
triggering recovery on PDEV suspend timeout.

Change-Id: I6e193e98c5ef45fd7ab4b6595ea85d986fa84131
CRs-Fixed: 2215588
2018-03-30 02:46:16 -07:00
Dustin Brown
89ccc3958c qcacld-3.0: Migrate PMO to level-specific log wrappers
Change Ie062ada403f8a31aebcde691396987ad9e5352b5 introduced level-
specific logging wrappers to support compiling out entire levels of
logging messages. Migrate the PMO logging wrappers to consumer these
new APIs instead of QDF_TRACE.

Change-Id: I3f46450e76cc6422a0877e95785bfd41e4c0af0c
CRs-Fixed: 2208536
2018-03-21 16:09:08 -07:00
Dustin Brown
b2cd2e0ae0 qcacld-3.0: Rename PMO_ENTER and PMO_EXIT macros
In order to better align with the other PMO logging wrappers, and the
rest of the driver, rename the following macros:
 * PMO_ENTER -> pmo_enter
 * PMO_EXIT -> pmo_exit

Change-Id: I9186c1425f22c5a8d4fc98f048a9d487b6095797
CRs-Fixed: 2206650
2018-03-15 17:31:10 -07:00
Dustin Brown
67d69ebbfd qcacld-3.0: Update firmware filter config (part 2)
In order to conserve firmware memory when various filtering features are
not in use, update the target configuration provided to firmware based
on the intersection of various filtering features and host
configuration.

Part 1
	num_wow_filters = ARP/NS offload enabled ? 2 : 5
	bpf_instruction_size - BPF enabled ? 0 (auto) : 0xffffffff

Part 2
	num_packet_filter = Packet Filter enabled ? 12 : 0xffffffff

Change-Id: Ie8cb4ae44c83b115b249e22ebd7146278ed70612
CRs-Fixed: 2199297
2018-03-15 15:11:59 -07:00
Dustin Brown
ed76c198c8 qcacld-3.0: Fix PERF build issue in PMO (part 2)
Building CLD3.2 with a performance configuration results in several
"potentially uninitialized" warnings. Initialize the relevant variables
to avoid the warnings.

Change-Id: I6a4324cb313dfb9d3b4c82294bc2fc8ce357fd0b
CRs-Fixed: 2202533
2018-03-08 18:46:54 -08:00
Dustin Brown
0b703ef927 qcacld-3.0: Remove maxWoWFilters and related
Recent changes in Power Management and Offload (PMO) have removed the
need for a configurable maximum number of WoW filters. Remove the
following relevant fields:

 * maxWoWFilters
 * CFG_MAX_WOW_FILTERS_MAX
 * WMA_STA_WOW_DEFAULT_PTRN_MAX
 * max_wow_filters
 * ol_ini_info

Change-Id: I99cc74731d6373258dc65473a8342bda0ab2786b
CRs-Fixed: 2199452
2018-03-05 23:33:27 -08:00
Dustin Brown
b9987afb2c qcacld-3.0: Update firmware filter config (part 1)
In order to conserve firmware memory when various filtering features are
not in use, update the target configuration provided to firmware based
on the intersection of various filtering features and host
configuration.

Part 1
	num_wow_filters = ARP/NS offload enabled ? 2 : 5
	bpf_instruction_size - BPF enabled ? 0 (auto) : 0xffffffff

Part 2 (pending firmware support)
	pkt_filter_num = Packet Filter enabled ? 12 : 0 (disabled)

Change-Id: Ic6624ff04598b53d8321e4864618b12b9702780f
CRs-Fixed: 2196997
2018-03-05 21:43:46 -08:00
Dustin Brown
f1d278041b qcacld-3.0: Add wlan_pmo_apf.[ch]
Add files to house PMO logic for the Android Packet Filter (APF).

Change-Id: I30e40b1dc761261511d8a37e5720a4f5c737b36c
CRs-Fixed: 2198745
2018-03-05 21:43:43 -08:00
Dustin Brown
d3a53dbc06 qcacld-3.0: Fix PERF build issue in PMO
Building CLD3.2 with a performance configuration results in several
"potentially uninitialized" warnings. Initialize the relevant variables
to avoid the warnings.

Change-Id: If97b67d50ebe2b7465fd2cc5a6a44488e4cb25a7
CRs-Fixed: 2200294
2018-03-05 20:48:51 -08:00
Dustin Brown
06259e5d96 qcacld-3.0: Add ucfg_pmo_psoc_set_caps()
Provide PMO-specific device capabilities to PMO. This allows PMO to do
intersections between configuration and device capabilities.

Change-Id: If0a199f9be466d16cef900a29b14b73a2a4e52d0
CRs-Fixed: 2197828
2018-03-05 20:48:43 -08:00
Dustin Brown
f2e2fac99e qcacld-3.0: Remove pmo_core_wow_[enter|exit]()
pmo_core_wow_enter(), pmo_core_wow_exit() and struct
pmo_wow_enter_params are all dead code. Remove them.

Change-Id: I254a0bad794ffc1170a2799918e1627a3e01e340
CRs-Fixed: 2199462
2018-03-02 20:37:21 -08:00
Dustin Brown
fbe4e7d67b qcacld-3.0: Add pmo_psoc_with_ctx() macro
It is really common to want to update or read from the PMO private
context, but doing so requires several lines boilerplate code. Because
this boilerplate is in so many places, mistakes like using the wrong
lock operation, or forgetting to use locks at all, are a always a
danger. Add pmo_psoc_with_ctx() to address this deficiency, which
retrieves the private context pointer, locks on entry, and unlocks on
exit. Usage is like so:

	struct pmo_psoc_prov_obj *psoc_ctx;

	pmo_psoc_with_ctx(psoc, psoc_ctx) {
		/* use psoc_ctx */
	}

Which is equivalent to:

	struct pmo_psoc_prov_obj *psoc_ctx;

	psoc_ctx = pmo_psoc_get_priv(psoc);
	qdf_spin_lock_bh(&psoc_ctx->lock);
	/* use psoc_ctx */
	qdf_spin_unlock_bh(&psoc_ctx->lock);

Change-Id: I6a3ccbfbfb57c589d44c7eae57e2ed8272dae3ee
CRs-Fixed: 2197722
2018-02-28 19:16:02 -08:00
Arif Hussain
05fb4870a3 qcacld-3.0: Add bss color collision detection support
Add support for bss color collision detection.

Change-Id: Idd616ca902469f5dc446d35e63fce7fe7eb0d327
CRs-Fixed: 2130127
2018-02-11 23:20:42 -08:00
Sourav Mohapatra
89c85d1d18 qcacld-3.0: Converge on wmi service/ext service is enable
Converge on wmi service/ext service is enable.

Change-Id: Ieed7a18f88806ed1e5b7fb012619ea67015cce2d
CRs-Fixed: 2152849
2018-01-24 13:19:26 -08:00
Arif Hussain
ee10f9089e qcacld-3.0: Add obss detection offload support
Add support for obss detection offload support.

Change-Id: I27fdef1604f6f92890dda024fbc8f9d13df602a3
CRs-Fixed: 2170187
2018-01-17 17:49:06 -08:00
Nachiket Kukade
da14496747 qcacld-3.0: Correct the logic that checks bound for pmo handler ids
Under unregistering of PMO handlers, incoming component id is sanity
checked. In the logic, WLAN_UMAC_MAX_COMPONENTS as id will not cause
failure even though it is an id beyond the acceptable bound.

Correct the logic so that WLAN_UMAC_MAX_COMPONENTS ends up in failure.

Change-Id: I6935f34c6d91a4217c3f7f73cd5539af2741ed2b
CRs-Fixed: 2091831
2018-01-16 09:40:16 -08:00
Naveen Rawat
b91e6eb90f qcacld-3.0: Fix out buffer overflow and un-intialized variable access
In function pmo_core_send_lphb_enable check index before accessing array.
In function pmo_core_is_wow_applicable initialize vaiable before access.

Change-Id: Iadba3175d10da3e4e311d8ab9e8a850053d3da24
CRs-Fixed: 2162257
2018-01-09 23:47:16 -08:00
Rajeev Kumar
ec1194dc72 qcacld-3.0: Rename pmo_ucfg_* APIs to ucfg_pmo_* APIs
Rename pmo_ucfg_* API to ucfg_pmo_* to match existing
naming convention for component ucfg APIs.

Change-Id: I59491eff038709a883efb527168159a7e9e2ba2a
CRs-Fixed: 2145088
2017-12-07 13:27:12 -08:00
Srinivas Girigowda
244c3f631e qcacld-3.0: Drop measurement pilot public action frame
Measurement pilot public action frame (Action Id = 7) is not
handled in the driver, if the AP is sending this action frame
it ends up waking up the APPS and burn battery.

Since anyway host is not handling this action frame, configure
the firmware to drop this action frame.

Change-Id: I15327f9af8cccaa7324e4e39f1e6336225740b75
CRs-Fixed: 2146506
2017-12-02 01:40:49 -08:00
Will Huang
3cd2b7c566 qcacld-3.0: Enable D0WOW for pcie
Enable FEATURE_WLAN_DOWOW for pcie.
This is for backward compatible with rome fw.

Change-Id: Ia2107ff6939666b4a0bd19d57149d17814f2dfb5
CRs-Fixed: 2070426
2017-11-28 19:39:01 -08:00