Commit graph android_kernel_motorola_sm6375/wmi
Author SHA1 Message Date
Vignesh U
c224b9e9c7 qcacmn: Fix KW issues
Potential NULL pointer dereferences of wmi_handle are found in these
functions:
wmi_extract_dfs_cac_complete_event()
wmi_extract_dfs_radar_detection_event()
wmi_extract_reg_chan_list_update_event()
wmi_extract_reg_11d_new_cc_event()
wmi_extract_reg_ch_avoid_event()

Introduce wmi_handle NULL check in the above functions.

Change-Id: I30a842818dff400b8648293f65794ff382eb24e7
CRs-Fixed: 2286258
2018-08-01 06:44:41 -07:00
Jeff Johnson
0820b3ab2b qcacmn: Remove wmi_unified_vdev_restart_send() prototype
Currently wmi_unified_api defines a wmi_unified_vdev_restart_send()
prototype, but there is no implementation of this function. This
discrepancy dates back to the initial introduction of the prototype in
change "qcacmn: Add tlv implementation of common unified API" (Change
Id I7e70b48ef5e1df0c0f81c639579e6eb1a6685dc3). Since this function
does not exist, and in fact has never existed, remove the prototype.

Note that another API, wmi_unified_vdev_start_send(), supports both
start and restart capability.

Change-Id: Ia88d8b1e825c806b454428e72d9731ccefd05c01
CRs-Fixed: 2286613
2018-07-31 19:01:27 -07:00
Mohit Khanna
e177087b22 qcacmn: Detect if host sends out reorder queue remove cmd
We are suspecting that peer_rx_reorder_queue_remove_cmd is causing
drop of ARP response frames from REO by the FW. This may cause drop of
ping packets.
Add a check in the function to detect if its being called.

Change-Id: I368aa8155830e8e6fadccfaf9ab5bfbfc8bfdd35
CRs-Fixed: 2254858
2018-07-31 00:46:45 -07:00
Rhythm Patwa
a13757139b qcacmn: Extend support for 'setratemask' cmd
Currently the 'setratemask' command supports setting
the rate mask for upto MCS0-9 and NSS 4. Add 'lower32_2'
field in the ratemask_params struct to extend support
for the 'setratemask' command to set rate mask
for upto MCS0-11 and NSS 8.

Change-Id: I9c06ae238142dca37df9826ca34449dd34ee6782
CRs-fixed: 2251392
2018-07-30 16:34:17 -07:00
Jeff Johnson
42b74848d1 qcacmn: Clean up the extscan unified WMI (phase 3)
For a full explanation of the problem and phased solution refer to
"qcacmn: Clean up the extscan unified WMI (phase 1)", Change-Id
I11800361b572331cfada00fb7d518c314df20b43, in the qca-wifi-host-cmn
project.

For phase 3 (this change):
Remove the unions introduced in phase 1, leaving just the properly
named replacement identifiers.

Change-Id: Ia14a42a1a767a850fbfd82a5755ddea51246a95d
CRs-Fixed: 2282843
2018-07-27 14:25:07 -07:00
Arif Hussain
4c6f33a07e qcacmn: Add 2G channel active dwell time CFG/INI items
Add ini item to configure active dwell time of 2.4GHz band channels,
This will help to reduce AP search failure probability & hence
connection latency in 2.4GHz band channels especially in noisy
condition by increasing active dwell time.

Change-Id: I05259a8f1fd4a5c67da42e516721a01d32fa652e
CRs-Fixed: 2283692
2018-07-27 01:21:39 -07:00
Priyadarshnee S
973bc0affa qcacmn: Add support for twice antenna gain param
Existing antenna gain command does not take odd antenna gain value that is
gains are not supported in steps of 0.5db. antenna_gain_half_db pdev
param provides this support. Added WMI and CDP changes to configure/read
this data.
CRs-Fixed: 2024854
Change-Id: I47da9eed74a1a0180cefb4c3f47bc4340da1bdfd
2018-07-26 03:22:01 -07:00
Jeff Johnson
72eeaec103 qcacmn: Clean up the extscan unified WMI (phase 2)
For a full explanation of the problem and phased solution refer to
"qcacmn: Clean up the extscan unified WMI (phase 1)", Change-Id
I11800361b572331cfada00fb7d518c314df20b43, in the qca-wifi-host-cmn
project.

For phase 2 (this change):
Replace all references of the badly named identifiers with references
to the properly named substitutes. Note that this phase may touch
multiple repos and may involve a number of separate changes.

Change-Id: Ie19d632faa50b23f18a2214a7b2502830ff3fbd3
CRs-Fixed: 2282767
2018-07-24 20:35:51 -07:00
Rajeev Kumar Sirasanagandla
66970850d9 qcacmn: Add WMI layer support for action OUI extensions
Add WMI support to send action OUI extensions to firmware.
For STA interface, this feature is intended to control mode of connection,
connected AP's in-activity time, Tx rate etc.,

Change-Id: I6a0bc9d3f7f0d57805b872cae4baa1fe84fb8193
CRs-Fixed: 2254509
2018-07-24 13:20:42 -07:00
Kabilan Kannan
bdeda3a947 qcacmn: Move to default SAR version, when SAR2 is not supported
If SAR version 2 is not supported by firmware, then fallback to
default SAR version 1

Change-Id: Ibfbcfd7cf3f438f7cb46250c70221956ea54c7ca
CRs-Fixed: 2274447
2018-07-23 12:59:41 -07:00
Jeff Johnson
e1941d34ec qcacmn: Clean up the extscan unified WMI (phase 1)
The extscan unified data structures were duplicated from legacy
qcacld-3.0 data structures. As part of the duplication process some
things were inherited that are not appropriate in the unified WMI
including camelCase identifiers and the use of "session id" as an
instance identifier. Due to the fact that multiple repos are affected
a multi-phase cleanup is proposed in order to avoid cross-repo
inter-dependent commits.

For phase 1 (this change):
For each inappropriate identifier introduce an anonymous union which
will contain both the badly named identifier and a properly named
substitute.

Subsequent changes will address the following phases:

For phase 2:
Replace all references of the badly named identifiers with references
to the properly named substitutes. Note that this phase may touch
multiple repos and may involve a number of separate changes.

For phase 3:
Once phase 2 completes, remove the unions introduced in phase 1,
leaving just the properly named replacement identifiers.

For phase 4:
Update the legacy code to exclusively use the converged data
structures, abandoning the legacy data structures.

Change-Id: I11800361b572331cfada00fb7d518c314df20b43
CRs-Fixed: 2280645
2018-07-20 16:24:00 -07:00
Abhiram Jogadenu
c7f6224588 qcacmn: Host changes to enable Scan Offset time
Pass offset value to the Firmware to support split scanning
of total dwell time in smaller chunks. Offset passed is
calculated from TBTT.

Change-Id: I8114acd1147d468aa6471f672307d8ea0ec8611d
CRs-Fixed: 2134748
2018-07-19 04:29:32 -07:00
gaurank kathpalia
ef354f7899 qcacmn: 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: I53a77257e716bf290a6f4bd62927020f073e2df6
CRs-Fixed: 2275938
2018-07-17 14:48:31 -07:00
Gyanranjan Hazarika
1d0fedf86c qcacmn: Add host support for WMI_VDEV_PARAM_SET_HE_SOUNDING_MODE
WMI_VDEV_PARAM_SET_HE_SOUNDING_MODE provides the scope for host
to configure the sounding mode to (VHT or HE). It also provides
(SU or MU) and (Triggered or Non-Triggered) configurability.

Change-Id: Iac566383c5a6b6b3b402526afd2bfa4818f27bc5
CRs-Fixed: 2262752
2018-07-06 20:31:28 -07:00
Sandeep Puligilla
ee875f47d7 qcacmn: Reduce roam offload logging level
Reduce log level of channel list logged as part
of roam scan offload command processing.

Change-Id: I8b37db9de94d8f399525255f7d073a6340a058f3
CRs-Fixed: 2271608
2018-07-06 19:10:53 -07:00
Anirban Sirkhell
d01ccdf6eb qcacmn: Add WMI for estimated airtime calculation
Add support for sending WMI command to firmware
to measure estimated airtime that a new client
will get and populate the result that firmware
returns in the ESP IE.

Change-Id: Ic5fcb11100ecd0597ba02dfa5512e2f4ff3558c9
CRs-Fixed: 2261469
2018-07-06 04:45:23 -07:00
c_priys
b214c2454c qcacmn: WMI Recording Failure on Multi-radio RDPs
WMI recording is done per pdev and hence an instance of
debugfs directory (eg: WMI0, WMI1, WMI2 for 3 radio boards)
has to be created in /sys/kernel/debug/ path.

The wmi handle is per pdev and hence is causing the problem of wmi_instance
being 0 always as each pdev has its own wmi_handle.
WMI1 and WMI2 debugfs directories are not created as wmi_instance
is always 0.

WMI debugfs directory is created for every pdev of the psoc and naming
convention is changed to WMI_SOCx_PDEVx.

Change-Id: Ieb7e9d072d84f699588a8f719508c5cd8d9873fb
CRs-Fixed: 2232472
2018-07-06 00:16:36 -07:00
Yeshwanth Sriram Guntuka
985e8440d5 qcacmn: Fix possible buffer overflow in wma_encrypt_decrypt_msg_handler
Data len received in encrypt decrypt data response
is not validated against the max allowed size which
can result in buffer overflow.

Fix is to validate data len against max allowed size.

Change-Id: I69bd8e63014220e5a2f291e4a0b1914d10c79fd7
CRs-Fixed: 2226375
2018-07-05 12:44:10 -07:00
Lihua Liu
0fd49e9a6f qcacmn: Add check for valid length to avoid buffer overflow
Add check for valid length before copying in function
extract_ndp_ind_tlv to avoid potential buffer overflow issue.

CRs-Fixed: 2271344
Change-Id: I2ddcbc46a45d4d5308b1e0cf663598c85512bbaf
2018-07-04 11:38:14 -07:00
Krishna Rao
490ccc914e qcacmn: Add definitions for WMI_HOST_SMART_LOG_SCENARIO
Add definitions for the enum WMI_HOST_SMART_LOG_SCENARIO which defines
individual smart logging scenarios which can be enabled/disabled. Also
add utility macros to set/get the same.

Change-Id: I2b188a6f5cb202868d43253e706115de570cb1e8
CRs-Fixed: 2162053
2018-07-04 03:01:56 -07:00
Sathish Kumar
257b307eb0 qcacmn: Map IGMPMLD pdev param to appropriate param supported by target
Pdev parameter to prioritize IGMP packets are supported through
WMI_PDEV_PARAM_IGMPMLD_AC_OVERRIDE. In legacy platforms, they are
supported by different pdev parameters WMI_PDEV_PARAM_IGMPMLD_OVERRIDE
and WMI_PDEV_PARAM_IGMPMLD_TID.

Map host maintained pdev params wmi_pdev_param_igmpmld_override and
wmi_pdev_param_igmpmld_tid to WMI_PDEV_PARAM_IGMPMLD_AC_OVERRIDE since
this is the one supported by TLV based targets.

Change-Id: Ia11787265bd926f257dc1b028552c6e7f1f733d2
CRs-Fixed: 2272219
2018-07-03 08:46:41 -07:00
Amar Singhal
dbff0cc4f2 qcacmn: Make worker thread processing API non static
Worker thread WMI processing API has more broader use now. So make it
non-static.

CRs-Fixed: 2268243
Change-Id: Iae51e1115f5f3664d08c891e8a42d24bd3ef7bcf
2018-06-30 00:18:01 -07:00
Kabilan Kannan
762ad5db89 qcacmn: Add SAR V2 support
Add changes to support SAR V2 power limits

Change-Id: Ife7af8db51a45660bc27d1e5b857e38f4dd40935
CRs-Fixed: 2217069
2018-06-29 13:31:50 -07:00
Arif Hussain
fb2fd39069 qcacmn: dfs: convert pdev id from target to host
Convert pdev id of target to host for radar found event.

Change-Id: I4a83214dc913553c2851f5af77928f4373117c36
CRs-Fixed: 2268186
2018-06-28 17:50:00 -07:00
Sathish Kumar
87b8afa143 qcacmn: Suppress unsupported WMI service prints to info level
Few WMI services are defined which are specific to newer WIN
platforms and are not supported for older platforms. Since the
code to check if service is enabled is common between the platforms,
we see prints quoting service is not supported on chipsets having
both new and old generation radios

Suppress these prints to a reduced trace level to avoid flooding.
Change-Id: I83140c8eec7cf337068fff60442b9d6684efd013
CRs-Fixed: 2261754
2018-06-28 16:38:34 -07:00
Krishna Rao
2980d724f1 qcacmn: Add type+subtype specific data to WMI fatal event
Update the definition of wmi_fatal_condition_event, to include
type+subtype specific data under type_subtype_specific_data.

CRs-Fixed: 2267901
Change-Id: I7f5be6ced26a88ac86ab16efd915a5e6ca5dc608
2018-06-28 08:19:33 -07:00
Pragaspathi Thilagaraj
e449244e9f qcacmn: Fix possible buffer overflow in send_stats_ext_req_cmd_tlv
In the function __wlan_hdd_cfg80211_stats_ext_request,
data_len is recieved from vendor command and is passed ultimately
to send_stats_ext_req_cmd_tlv.  In send_stats_ext_req_cmd_tlv, len
is calculated as sum of sizeof(*cmd), WMI_TLV_HDR_SIZE,
preq->request_data_len.The len is of type uint16_t
and adding sizeof(*cmd) + WMI_TLV_HDR_SIZE will cause a buffer
overflow.

Changed the datatype of len to size_t so that it doesn't overflow.

Change-Id: I6618042e3c60bbdb1ff5d833188f4bdb4832da7a
CRs-Fixed: 2243169
2018-06-27 16:14:22 -07:00
Naveen Rawat
51f68ff7df qcacmn: Add support for NDP TCP/IP params
Add support for NDP TCP/IP params in ndp initiator
request, responder request, indication and confirm.

Change-Id: I5d60af154ea4a2f33d18d9b86049f316e7fbc524
CRs-Fixed: 2252227
2018-06-27 14:48:30 -07:00
Anirban Sirkhell
e65eeb0388 qcacmn: Add vdev param to enable/disable buffering of mcast frames
If the feature is enabled macst frames would be sent out
even when there are clients in power save (instead of DTIM).

CRs-Fixed: 2133095
Change-Id: I927be022916674cb008459868b095f15c37d8636
2018-06-27 05:33:03 -07:00
Naveen Rawat
02c2fb4606 qcacmn: Add channel information in ndp confirm event
Add channel information in NDP confirm event sent to
wifihal.

Change-Id: Icecf050aa5d67519c6278460ad92a2a02fcee2c2
CRs-Fixed: 2252226
2018-06-26 18:53:33 -07:00
Sathish Kumar
5cf9805bc3 qcacmn: Changes in direct buffer Rx module
1. Add support upto 2048 buffers in the ring
2. Add API to print current ring status per module per pdev
3. Start module ID numbering from 0

Change-Id: I7954007c6c486877ffb2ab91724885af2fbaab8c
CRs-Fixed: 2263968
2018-06-25 03:17:55 -07:00
Krishna Rao
cae37fee6e qcacmn: Add definitions for fatal condition event type/subtype
Add host WMI definitions for the type and subtype fields in
wmi_fatal_condition_event.

CRs-Fixed: 2257956
Change-Id: I2c7043081de86a42b3e89ade34d4a1ffc0c39d77
2018-06-21 05:22:20 -07:00
c_cgodav
b69942b3c9 qcacmn: CE Debug Enhancements WMI interface
Add WMI interface for the smart logging feature.

Change-Id: Ife3784020d1b9458c2b09b6a2f31f55aab5f57ec
CRs-Fixed: 2001507
2018-06-21 05:22:17 -07:00
Qiwei Cai
d56247e9e4 qcacmn: Featurize WLAN_FEATURE_LINK_LAYER_STATS
Featurize WLAN_FEATURE_LINK_LAYER_STATS to compile out in mission mode.

Change-Id: I16b7ffe869f6e46736693a02b58954a50e31b03b
CRs-Fixed: 2244583
2018-06-20 15:19:52 -07:00
Nachiket Kukade
b29adc4a4f qcacmn: Implement the commands that cover APF 3.0 requirements
Android Packet Filter 3.0 requires the framework to be able to
read and write into the APF work memory in the Firmware. It
also requires to be able to enable or disable the interpreter.
New WMI commands are defined for read/write/enable/disable
operations.

Complete the implementation of these new commands.

Change-Id: I852d61eb213d9ae530e8a71069144ef35816f5b8
CRs-Fixed: 2184971
2018-06-20 12:53:13 -07:00
Debasis Das
78495ce966 qcacmn: Fix Integer Overflow Leading to Buffer Overflow
wmi_buf_alloc() API expects length to be passed of type
uint16_t. However, the callers pass uint32_t to it.
This might result in overflow and illegal memory access
thereafter. The fix is to modify the API signature accordingly.

Change-Id: If09da4978d421269b884f7d3c933c49c81651475
CRs-Fixed: 2218346
2018-06-20 06:33:47 -07:00
Nachiket Kukade
fa7a033cac qcacmn: Add enum for listen interval offload support
Add service enum and populate service id for listen
interval offload support so that wmi_service_enabled
API can be used to check if the support is enabled.

Add enum for listen interval offload support

Change-Id: I62dbadb4980f54db8431ad53d096f7fc210d25d7
CRs-Fixed: 2253684
2018-06-20 02:30:55 -07:00
Madhvapathi Sriram
96863531f1 qcacmn: Add management frame over WMI support for HL transport
QCN7605 requires Management frames to be transported over WMI.
Enable this for HL transport too.

Change-Id: I97551684224cf027beadb403ac2220fa355af986
CRs-Fixed: 2252391
2018-06-19 21:17:11 -07:00
Vignesh Viswanathan
c352d60731 qcacmn: Fix Uninitialized byte sent to FW in wmi_unified_cmd_send
In wmi_unified_cmd_send, the skb head is pushed by size of WMI_CMD_HDR
and then the commandId is initialized in the header. However 1 byte of
reserved memory in the WMI_CMD_HDR is not initialized and is sent to
the FW as it is and this might lead to exposure of 1 byte of kernel
memory to FW.

Initialize the WMI_CMD_HDR to zero once the skb head is pushed and
then set the commandId in the header.

Change-Id: I89fd5401105cd9c61674a63aac5aa88fb20cc41a
CRs-Fixed: 2257688
2018-06-18 16:33:57 -07:00
Nachiket Kukade
d460329ba2 qcacmn: 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.

Use the correct bitmap sent by cld for disabling the hw filter.

Change-Id: I465e2ec40b6fde8a9e99743a1b9979b67cce5408
CRs-Fixed: 2194973
2018-06-18 16:33:54 -07:00
Nachiket Kukade
a52b8182da qcacmn: 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: I606afc747cddedb524a41cd8e5998400f04e69f6
CRs-Fixed: 2191531
2018-06-18 16:33:52 -07:00
Nachiket Kukade
f412a02f22 qcacmn: Refactor APF related common modules in separate
File wmi_unified_tlv.c is bloated and adding support for upcoming
Android Packet Filter v3 is going to increase its size even more.
Create a new source file for APF related WMI modules and a header
file for declaring the API's

Change-Id: I37dcc30c7d1311067f375c891be9723612161de9
CRs-Fixed: 2189827
2018-06-18 16:33:49 -07:00
Nirav Shah
79ec3e999b qcacmn: Add support to configure buffer size from kbuild
Add support to configure logging buffer size from
per-OEM kbuild based on memory requirement.

Change-Id: Ia91d79e5e738b1c9787015de101c3f67ccde46aa
CRs-Fixed: 2253438
2018-06-15 21:31:16 -07:00
gaolez
9bb98176f3 qcacmn: Add length check in ndp event handler
qcacld-2.0 to qcacld-3.0 propagation

Add length check to prevent the data overflow the wmi buffer. The
total length of data should not exceed max svc msg size.

CRs-Fixed: 2248879
Change-Id: I1543732fcfe0cb7e32f7175f7775c9550854cae8
2018-06-14 20:55:52 -07:00
bings
2a44c1c811 qcacmn: Set wmi_service_wow_wakeup_by_timer_pattern service bit
Currently the service bit of wmi_service_wow_wakeup_by_timer_pattern
is not set and it is 0. This is wrong because 0 is the service bit of
wmi_service_beacon_offload.

Set wmi_service_wow_wakeup_by_timer_pattern service bit as
WMI_SERVICE_WOW_WAKEUP_BY_TIMER_PATTERN

Change-Id: I52058d79281aeed9312ce6c0c361d3cb254fef07
CRs-Fixed: 2250922
2018-06-13 22:27:10 -07:00
Nirav Shah
c9b0931950 qcacmn: Featurize packet log
Featurize packet log.

Change-Id: Ica7d658ef65486ae77e24a11cef50291a5e82563
CRs-Fixed: 2245424
2018-06-09 02:28:11 -07:00
Varun Reddy Yeturu
27b4aef196 qcacmn: Add support to store target TWT capabilities
Add support to read the TWT services being advertised
by the target and make use of it internally in the host
at appropriate places

Change-Id: I3691622447271467d9276788574a2f2717928f83
CRs-Fixed: 2251389
2018-06-08 20:14:13 -07:00
Wu Gao
dd58f63b13 qcacmn: pmo feature flag disable
In case PMO feature flag disable, add this change. Change
WLAN_PMO_ENABLE  to WLAN_POWER_MANAGEMENT_OFFLOAD.

Change-Id: I875e568dcb239da1b86d1a76cb8cbc925bb13cde
CRs-Fixed: 2243948
2018-06-08 08:31:10 -07:00
Naveen Rawat
1883008d4c qcacmn: Fix get chain rssi stats
Fix chain rssi stats by correcting logic to extract chain
rssi stats.

Change-Id: Ifd8337abaef7f101082131e48f2ec87097317899
CRs-Fixed: 2253043
2018-06-07 12:46:58 -07:00
Wen Gong
daa9515da8 qcacmn: Add extscan feature flag
Add config flag to enable / disable extscan feature

Change-Id: I6303836226aa2cdcaf3a680d9ce36f2490fde615
CRs-Fixed: 2243749
2018-06-05 06:01:45 -07:00