Commit Graph

202 Commits

Author SHA1 Message Date
Dustin Brown
a77a318840 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
2102362779 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
6e67003e87 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
56236edc88 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
3b33f59347 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
20acc975d4 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
3e15669a50 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
cdb7f861e9 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
5c5413bdcd 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
1567190755 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
60264d8283 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
Zhang Qian
4ae3026eaa qcacld-3.0: Add UCFG APIs and public structures for OCB
Add UCFG interface and public structures for OCB feature.

CRs-Fixed: 2177578
Change-Id: Id74df706e658568a0f50a8d953eca3993451f41a
2018-01-29 23:40:32 -08:00
Zhang Qian
88bc878ff7 qcacld-3.0: Add target interfaces for OCB component
Add target interfaces and core APIs for OCB component.

CRs-Fixed: 2177578
Change-Id: I76a1afa4d6f3876b0b5df89ffe4080af77cd13c4
2018-01-25 07:41:16 -08:00
Sourav Mohapatra
49b7e79081 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
14128d0b68 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
0479fdf18d 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
cf5a74d049 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
Nachiket Kukade
09acaf85a9 qcacld-3.0: Add DISA Component changes into the skeleton
Add final changes of DISA component into the skeleton. Fill up all the
code in core, dispatcher and target_if of the DISA component. Use new
wmi API to extract cmd response from event buffer.

Change-Id: I55f7170efa1055f1449dd95d9f1a911dfa6b54ce
CRs-Fixed: 2161979
2018-01-09 13:39:58 -08:00
Nachiket Kukade
ba2253d2af qcacld-3.0: Skeleton for DISA component
Create a skeleton for the DISA component. This is a CLD
component. Add files for disa core, dispatcher and
target_if. Define DISA related public structures and
objmgr objects. Add API's as stubs.

Change-Id: I63b32a0e7da0283d091815aaccea6b8703f5184c
CRs-Fixed: 2159579
2018-01-09 13:39:53 -08:00
Rajeev Kumar
7e2c874db0 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
6c5d571593 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
Naveen Rawat
9d26b1d21c qcacld-3.0: Send WOW timer pattern to firmware
Send WOW timer pattern to firmware when suspend is requested and
INSTALL_KEY is not sent to firmware yet. This will allow firmware
to wake host in case Eapol frames are not received and do a graceful
disconnect.

Change-Id: Ibbcc0af85ee9ddcd7f6559c83c67274508193004
CRs-Fixed: 2127634
2017-12-02 01:40:45 -08:00
Will Huang
e7acf06c04 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
Nachiket Kukade
2ec1adfce6 qcacld-3.0: Utilise new APIs for waiting on events
With current implementation in case of an SSR/PDR threads that are
waiting on events will only get purged after the wait timeout has
occurred, increasing the recovery time for the driver. Utilize new
APIs that maintain a list of events. In case of an SSR/PDR
forcefully set these events.

Change-Id: I83b4f576a65f8da5762288ac8dfccdef7d05d82a
CRs-Fixed: 2045156
2017-11-23 12:02:30 -08:00
Jeff Johnson
11d8f6454c qcacld-3.0: 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: 2141065
2017-11-10 00:27:42 -08:00
Rajeev Kumar
c188e1ee36 qcacld-3.0: Rename pmo_ucfg_* APIs to ucfg_pmo_* APIs
Rename pmo_ucfg_* APIs to ucfg_pmo_* to match existing
naming convention for component ucfg APIs.

Change-Id: I9fba71ee5d5cf6428f043c7d7782ef585951e059
CRs-Fixed: 2140474
2017-11-09 11:46:42 -08:00
Mukul Sharma
4a46599568 qcacld-3.0: Add wow user pattern support in PMO
Add wow user pattern support in PMO.

Change-Id: I186e650e3a165ea0aeaada4bba880005c5be8b5f
CRs-Fixed: 2135644
2017-11-08 03:01:19 -08:00
Rajeev Kumar
09d7e79df4 qcacld-3.0: Rename pmo_ucfg_* APIs to ucfg_pmo_* APIs
Rename pmo_ucfg_is_vdev_connected to ucfg_pmo_is_vdev_connected
to match existing naming convention for component ucfg APIs.

Change-Id: Idd04103664135f226881b07263365d70df5790e0
CRs-Fixed: 2135888
2017-11-02 09:38:18 -07:00
Rajeev Kumar
8d5af6e30e qcacld-3.0: Rename pmo_ucfg_* APIs to ucfg_pmo_* APIs
Rename pmo_ucfg_is_ap_mode_supports_arp_ns to ucfg_pmo_*
to match existing naming convention for component ucfg APIs.

Change-Id: I6877e1ebbc8a89d9b2cfb08f7af46e3f3b6606f3
CRs-Fixed: 2135193
2017-11-02 09:38:15 -07:00
Rajeev Kumar
d0a8ad44c7 qcacld-3.0: Clean up unwanted blank lines from wlan_pmo_obj_mgmt_api.c
Clean up unwanted blank lines from wlan_pmo_obj_mgmt_api.c

Change-Id: I4c77e9bef3fb1c6799a802095125c21979f7ba3e
CRs-Fixed: 2129039
2017-10-24 23:50:36 -07:00
Rajeev Kumar
0fb18ad5ce qcacld-3.0: Redume pmo resume timeout to 6 seconds
PMO resume timeout is 25 seconds which is too large
hence reduce PMO resume timeout to 6 seconds.

Change-Id: I9f29e136bc091ddd3ae2ca38a495edcbff6c1cb8
CRs-Fixed: 2128481
2017-10-17 21:49:30 -07:00
Jeff Johnson
eec7f692ca qcacld-3.0: pmo: Fix block comments
Checkpatch reported multiple instances of block comments not aligning
on "*" so fix them.

Change-Id: I082f62f59fe16d84ba013adbbfcd2e9bf1985e3c
CRs-Fixed: 2122901
2017-10-12 13:59:59 -07:00
Srinivas Girigowda
c76db4722b qcacld-3.0: Configure FW not to wakeup APPS for RRM action frame
This is a qcacld-2.0 to qcacld-3.0 propagation.

If the device connects to 11k enabled AP and enter WoW mode, then
the AP is keep sending RRM beacon reports (Action frames) which are
waking up the APPS and leading to battery drain.

The fix is to configure the firmware to not to wake up APPS
for RRM action frame.

Change-Id: I2368be4f641b8b8684a458daea52a81fa671200b
CRs-Fixed: 1115560
2017-10-12 13:57:58 -07:00
Poddar, Siddarth
6fa3065430 qcacld-3.0: Add support for set multicast filter command
Add support for WMI_SET_MULTIPLE_MCAST_FILTER_CMDID command
that can add/delete multiple mcast filters.

CRs-Fixed: 2096595
Change-Id: I3dc93c603a5a6676d97b5911a716277c7bef0ef8
2017-10-12 13:56:33 -07:00
Hanumanth Reddy Pothula
a9dd0d6dd2 qcacld-3.0: Update ini param g_auto_detect_power_failure_mode
Update ini param g_auto_detect_power_failure_mode to incorporate below
values,
0 - Don't register wow wakeup event and FW crashes on power failure
1 - Register wow wakeup event and FW sends failure event to host on
    power failure
2 - Don't register wow wakeup event and FW silently rejuvenate on
    power failure
3 - Don't register wow wakeup event and the auto power failure detect
    feature is disabled in FW.

Change-Id: I8a704954ecbacadbc035c1523fa41a18b6300f66
CRs-Fixed: 2087144
2017-10-09 03:47:52 -07:00
Vignesh Viswanathan
68c50b3b82 qcacld-3.0: Add kek_len to GTK Offload params in PMO component structure
Add new kek_len param used for FILS in the pmo_gtk_req structure under
PMO GTK public structures

Change-Id: I4fc25026d9fc004f267b9461d1671f8b1ac57f53
CRs-Fixed: 2081252
2017-10-06 12:27:39 -07:00
Rajeev Kumar
4eb521668d qcacld-3.0: Fix excessive logging from wlan_pmo_suspend_resume.c
Info level logs are logged on console, hence change PMO
logs in wlan_pmo_suspend_resume.c to debug log level to avoid
excessive console logging.

Change-Id: Ie9852ef5ea8fefaa33a82f0b287224271ada003b
CRs-Fixed: 2121361
2017-10-04 22:48:31 -07:00
Rajeev Kumar
5c4d118488 qcacld-3.0: Fix excessive logging from wlan_pmo_gtk.c
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_gtk.c to debug log level to avoid excessive console
logging.

Change-Id: I3aa1eef2476827157adfa51e37b0054b10ba58c1
CRs-Fixed: 2118712
2017-09-28 21:59:37 -07:00
Will Huang
baa0fa2289 qcacld-3.0: Differentiate pattern id for legacy firmware
The Wow pattern id should be identified unique for different vdevs of
legacy firmware, and latest firmware accept same Wow pattern id on
different vdevs.

This change is to differentiate this behavior using
WMI_SERVICE_UNIFIED_WOW_CAPABILITY flag, and supply a set of APIs to
manipulate pattern id.

Change-Id: I5fe7623a309a0c3baa14fb7312107c057e994462
CRs-Fixed: 2103017
2017-09-27 17:30:33 -07:00
Rajeev Kumar
054c875f46 qcacld-3.0: Fix excessive logging from wlan_pmo_tgt_gtk.c
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_tgt_gtk.c to debug log level to avoid excessive console
logging.

Change-Id: I8f19e8651927a7c3cae9ee1e1118f983c063b3ed
CRs-Fixed: 2116340
2017-09-27 16:23:40 -07:00
Rajeev Kumar
e1da683b99 qcacld-3.0: Fix excessive logging from wlan_pmo_ns.c
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_ns.c to debug log level to avoid excessive console logging.

Change-Id: I60620f6a3ce4fe708f026a554a5295c1f708f485
CRs-Fixed: 2116335
2017-09-27 16:23:38 -07:00
Rajeev Kumar
b4b51b444f qcacld-3.0: Fix excessive logging from wlan_pmo_arp.c
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_arp.c to debug log level to avoid excessive console logging.

Change-Id: I4eef5203f612b3ddaace30d4da43c13103dd60c7
CRs-Fixed: 2116328
2017-09-27 16:23:35 -07:00
Rajeev Kumar
e64d04380f qcacld-3.0: Fix excessive logging from wlan_pmo_suspend_resume.h
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_suspend_resume.h to debug log level to avoid excessive
console logging.

Change-Id: I77edb26ce3eb61573bba830787fe0ffb32eb6281
CRs-Fixed: 2116321
2017-09-27 16:23:30 -07:00
Rajeev Kumar
73f482741c qcacld-3.0: Fix excessive logging from wlan_pmo_main.c
Info level logs are logged on console, hence change PMO
logs in wlan_pmo_main.c to debug log level to avoid excessive
console logging.

Change-Id: I1f3c00537ce850079a06aaf479bdb917e7ea55e2
CRs-Fixed: 2116314
2017-09-27 16:23:28 -07:00
Jeff Johnson
afb933133e qcacld-3.0: pmo: Replace instances of unadorned %p
Replace instances of unadorned %p in components/pmo.

Change-Id: I771a66f98fafa38f77034a854c56422b535c6936
CRs-Fixed: 2100997
2017-09-20 06:22:03 -07:00
Naveen Rawat
ad1c7a2dea qcacld-3.0: Enable WOW_PATTERN_MATCH_EVENT for NDI
Enable rx of NDP data packets in WOW mode by enabling
WOW_PATTERN_MATCH_EVENT for NDI vdev.

Change-Id: I4d5edfc91c23fd8cc277c005da7803690b5fe054
CRs-Fixed: 2069493
2017-09-18 19:38:29 -07:00
Sridhar Selvaraj
8c2b906114 qcacld-3.0: Drop action frames based on action id
Currently, host driver sets bitmap of allowed action frames to fw.
For a particular action category, there are certain action id
frames which are not processed. This causes host wakeup and leads
to power drain.

Set action id along with action category to fw for action frames
to be allowed to host driver.

Change-Id: Ifa0b40b290fcabb9ce5e48f69bd462aebb9017ac
CRs-Fixed: 2072123
2017-08-30 10:45:47 -07:00
Dustin Brown
75e40eb664 qcacld-3.0: Refactor pmo_unpause_all_vdev
Refactor pmo_unpause_all_vdev to remove nested conditional compilation.

Change-Id: I17edcbb791c722a7fcb98d3dce71c82406281003
CRs-Fixed: 2094604
2017-08-30 10:43:15 -07:00
Rajeev Kumar
37b166fc08 qcacld-3.0: Avoid bug on after wow suspend if self recovery is enabled
Avoid bug on in PMO after FW response timeoout. Invoke host initiated
self recovery callback instead.

Change-Id: I4d38bdaba4a5b2ed02002b2711570109fe242848
CRs-Fixed: 2070815
2017-08-22 16:05:35 -07:00
Dustin Brown
2e6a70e2f1 qcacld-3.0: Add enhanced multicast enable/disable APIs
Currently, a hard-coded enhanced multicast filter configuration is being
sent to firmware. Instead, create a set of enable/disable APIs, and
configure enhanced multicast filter based on advertised firmware
capability.

Change-Id: I488b4a921612e1081266be8831be098d755375f9
CRs-Fixed: 2078615
2017-07-27 16:59:26 -07:00