Commit Graph

349 Commits

Author SHA1 Message Date
Naveen Rawat
1e8e057a77 qcacmn: Free NDI peers/vdev at time of ndi_delete/driver unload
Sometime user may not delete active NDP sessions before deleting NDI or
may not delete NDI before driver unload. In such case vdev/peer object
memory will leak. Free all NDI peers for that vdev before processing NDI
delete and free all NDI peers/vdev at driver unload.

Change-Id: I04631ffd611d6ded318ddfb65b2dfeba479c9bdc
CRs-Fixed: 2262769
2018-06-27 14:48:34 -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
Naveen Rawat
b4a29b7a42 qcacmn: Fix vdev reference in NDP commands
Assign the vdev in NDP request message and hold the vdev reference till
the command is processed. Else the consumer of message will fail when
trying to take reference since vdev was not set in request packet.

Change-Id: I4c7e50690eff1f92f151f00209ec786a03252e76
CRs-Fixed: 2252035
2018-06-26 18:53:30 -07:00
Naveen Rawat
cb0a5b0bf4 qcacmn: Fix NDI create sequence
Create NDI vdev after adapter is added to back of hdd adapter list,
so that vdev create completion callback can identify right adapter
and set corresponding completion variable.

Change-Id: Id0d78a5e482c875fee346224f37c29a874814133
CRs-Fixed: 2252031
2018-06-22 10:32:42 -07:00
Ashish Kumar Dhanotiya
6f00d693a9 qcacmn: Vendor command support to enable/disable GTX
Add vendor command support to enable or disable GTX.
Currently there is no vendor attribute to enable/disable
GTX from vendor command. Add vendor attribute
QCA_WLAN_VENDOR_ATTR_CONFIG_GTX support through
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION vendor command
and with new wmi command WMI_VDEV_PARAM_GTX_ENABLE.

Change-Id: I8a740f9209ffd5f6438c3cfdd830ee2a76d0aa52
CRs-Fixed: 2261322
2018-06-21 01:58:58 -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
Naveen Rawat
2e7637575d qcacmn: Free memory for stats event to os_if in timeout
In case os_if request times out, free the corresponding
memory allocated for stats event to os_if.

Change-Id: I23bd65f2b79c71070d65b5e4045eaf4e17113354
CRs-Fixed: 2262653
2018-06-20 07:59:40 -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
Sandeep Puligilla
f57464c549 qcacmn: Add an API to check if scan is completed
Add a new scan util API to check if scan is completed and
if scan is success.

Change-Id: Id60056b999a7ec23df3d3458d4498d547f6ec4d9
CRs-Fixed: 2248972
2018-06-14 23:54:10 -07:00
Naveen Rawat
75d5ce3972 qcacmn: Fix NPD in function os_if_nan_process_ndp_responder_req
While processing of NDP responder request if NDP response code is
accept NDI interface is must. Throw error if interface is not provided
and bail out of the function.

Change-Id: I7266e3c82062130f6dbeb078cddfaa15a87d9197
CRs-Fixed: 2247586
2018-06-13 21:01:00 -07:00
Om Prakash Tripathi
9b56f5dc1c qcacmn: Use atomic allocation for all scheduler context scan allocations
In low memory environments using GFP_KERNEL flag may cause
scheduler thread to sleep. Scheduler thread callback handlers
are expected to be atomic in nature to ensure timely execution
of different commands. Move all allocations done by scan module
in scheduler thread context to atomic allocation.

Change-Id: Iee3eafbc00a3afea0687ba67b3041ec0816094cc
CRs-Fixed: 2232553
2018-06-13 21:00:59 -07:00
Kiran Kumar Lokere
76da7996ae qcacmn: Add support to send regulatory sync event
Add support to send regulatory rules info in regulatory sync
event to user space for self managed regulatory when regulatory
info is updated.

Change-Id: Iac8704598fd181e47cb023405dfe592c4c93f51b
CRs-Fixed: 2242701
2018-06-13 21:00:54 -07:00
Naga
54a68b5752 qcacmn: Add os_if implementation of dcs chan stats
Add change to support get API for dcs chan stats from
within cp stats component

Change-Id: I55af5d83389f34c6c7ff9a7f2a7826eb3a9f4a4c
CRs-Fixed: 2247228
2018-06-11 03:03:41 -07:00
Naga
8703c9c98f qcacmn: Add os_if implementation of atf peer cp stats
Add change to support get API for ATF peer cp stats from
within cp stats component

Change-Id: I1f7ed2e2d1c071df28f34f08d137be1302f61c36
CRs-Fixed: 2247228
2018-06-11 03:03:39 -07:00
Naga
06ef93b2c1 qcacmn: Add os_if implementation of pdev cp stats
Add change to support get API for pdev cp stats from
within cp stats component

Change-Id: Ib791a32a912b7f7e8b7c3b5ebcb3f4e64cdf1f6f
CRs-Fixed: 2247228
2018-06-11 03:03:37 -07:00
Naga
9eeb35db5f qcacmn: Add os_if implementation of vdev cp stats
Add change to support get API for vdev cp stats from
within cp stats component

Change-Id: Ice1c9d6858cbf7241791a6901db7934217bb6076
CRs-Fixed: 2247228
2018-06-11 03:03:35 -07:00
Naga
c5e9342021 qcacmn: Add os_if implementation of peer cp stats
Add change to support get API for peer cp stats from
within cp stats component

Change-Id: I81276cee57a8c28e52e82c0cbc7f58be7dbfa33e
CRs-Fixed: 2247228
2018-06-11 03:03:32 -07:00
Sandeep Puligilla
0a341a5e92 qcacmn: Add spectral scan feature flag
Add spectral scan feature flag which can be
used to control the feature through build options.

Change-Id: Ic56416fc99b521174cccb3af27cc841bfb2ad27d
CRs-Fixed: 2244334
2018-06-06 23:49:17 -07:00
Naveen Rawat
2d39710f9b qcacmn: Protect wifi_pos global psoc object
Protect wifi_pos global psoc object with spinlock.

Change-Id: I5a250061b482fd2699bebb34c7eac3bd649831f7
CRs-Fixed: 2235825
2018-05-30 15:51:51 -07:00
Wu Gao
ee9b1761a7 qcacmn: Check return value for channel conversion
It may return NULL, which pass to another function and dereference it.
Check return value, don't pass to another function if return value is
NULL.

Change-Id: Ib2e87231bb724c5631c12e9bee98c22d4dcc9bf2
CRs-Fixed: 2233639
2018-05-24 21:13:19 -07:00
Naveen Rawat
8c72007596 qcacmn: Implement ndp schedule update and channel info in ndp confirm
Add support for ndp schedule update event and provide channel information
in ndp confirm event.

Change-Id: Ic2c073dd4f220627cc2bd1a2d52d858136b6b450
CRs-Fixed: 2180310
2018-05-24 11:13:55 -07:00
Naga
670e851c19 qcacmn: Add implementation of WIN cp stats
Add change to alloc memory for WIN specific cp stats
structures, provide get/set API in cp stats component
for other umac component, reorganize files according
to usage inclusion in other header files

Change-Id: I8b4e4435f60cc0587917ad09ac99659f83f2cb10
CRs-Fixed: 2236328
2018-05-24 07:52:05 -07:00
Kiran Kumar Lokere
993a384744 qcacmn: Define test config attribute to configure Tx beamformee
Add new wifi test config command attribute to configure Tx
beamformee support.

Change-Id: Iddf91920c8424cb5f5681f2cc5f98d667ec1f6f4
CRs-Fixed: 2244889
2018-05-21 06:06:14 -07:00
Naveen Rawat
46f13624dd qcacmn: Update qca_vendor with NAN attributes for TCP/IP info
Update qca_vendor with NAN attributes for TCP/IP info for IPv6
address transport port and transport protocol.

Change-Id: I2176cede68347c92b6f4ddddadfa56b9591ff8fa
CRs-Fixed: 2244176
2018-05-20 23:25:53 -07:00
Jeff Johnson
24d440bccb qcacmn: os_if: Fix misspellings in qca_vendor.h
Address the following issues in qca_vendor.h:
CHECK: 'Minumum' may be misspelled - perhaps 'Minimum'?
CHECK: 'staion' may be misspelled - perhaps 'station'?

Change-Id: Ifbeec8544ffefa45b9b211c888e65b418695ad38
CRs-Fixed: 2241579
2018-05-19 19:40:33 -07:00
Jeff Johnson
3d70ae460b qcacmn: os_if: Remove legacy markings
Per current guidance remove legacy markings.

Change-Id: I0d9c1ff59217a115770baea9edd17c57a10a3bc2
CRs-Fixed: 2230684
2018-05-18 02:17:33 -07:00
Jeff Johnson
dc9c55962d qcacmn: Fix typo "lenght"
Replace typo "lenght" with correct spelling "length".

Change-Id: Ieea0c547c61248e510835d16a9fa55ace486df23
CRs-Fixed: 2238309
2018-05-17 00:47:02 -07:00
Jeff Johnson
3a1832e598 qcacmn: Fix typo "capabilites"
Replace typo "capabilites" with correct spelling "capabilities"

Change-Id: I8efa1d974ecabb1466bdf27ec305fd9960da0616
CRs-Fixed: 2238309
2018-05-17 00:46:46 -07:00
Naveen Rawat
c223147287 qcacmn: Add osif implementation of get_stations_stats
Add changes to support get station stats from within the cp stats
component.

Change-Id: I17235bf66931b2221a5ddd24aa5f761d5db7eab7
CRs-Fixed: 2210313
2018-05-16 23:20:14 -07:00
Naveen Rawat
6b44ef3460 qcacmn: Use NDP vendor attribute from qca_vendor.h
Update qca_vendor.h with latest NDP vendor attribute definitions
and use those definitions in NAN component.

Change-Id: I43f0457690b1c4027adcd0abe4ef2ac2a8f9b068
CRs-Fixed: 2239047
2018-05-14 16:50:48 -07:00
Jeff Johnson
6500e56b38 qcacmn: Fix NDP Config QoS policy
The qca_wlan_vendor_ndp_policy for the attribute
QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_QOS currently specifies type
NLA_BINARY with a maximum length of NDP_QOS_INFO_LEN (255). However
this attribute is defined to be an unsigned 32 bit value, and
nla_get_u32() is used to read the value, so change the policy to use
type NLA_U32 so that nla_parse() can properly verify that the TLV
payload has (at least) 4 bytes of data.

Change-Id: Iee5b620ef199b731fc6a449d0055db328430921b
CRs-Fixed: 2237660
2018-05-14 16:50:46 -07:00
Jeff Johnson
e30a7f5b7d qcacmn: Fix NDP Response Code policy
The qca_wlan_vendor_ndp_policy for the attribute
QCA_WLAN_VENDOR_ATTR_NDP_RESPONSE_CODE currently specifies type
NLA_U16. However this attribute is defined to be an unsigned 32 bit
value, and nla_get_u32() is used to read the value, so change the
policy to use type NLA_U32 so that nla_parse() can properly verify
that the TLV payload has (at least) 4 bytes of data.

Change-Id: I915a94e7449c2bc1abde64e2a7f5df6a58488ed6
CRs-Fixed: 2237659
2018-05-14 13:58:58 -07:00
Jeff Johnson
444703f75f qcacmn: Fix NDP Discovery MAC address policy
The current qca_wlan_vendor_ndp_policy for attribute
QCA_WLAN_VENDOR_ATTR_NDP_PEER_DISCOVERY_MAC_ADDR uses type NLA_BINARY.
Unfortunately this type uses the len as a maximum length and not a
minimum length which means that nla_parse() cannot guarantee that 6
bytes of MAC address are present.  Change the policy to use type
NLA_UNSPEC so that nla_parse() will ensure that the NDP Discovery MAC
address TLV contains (at least) 6 bytes.

Change-Id: I2c7e1efdb413dbd2f79c36ed1626c006b86e8b5b
CRs-Fixed: 2237658
2018-05-14 13:58:54 -07:00
Edayilliam Jayadev
df3100c157 qcacmn: Share Spectral HW gen as part of capability exchange
Spectral scan period is not in terms of tclk periods for
generation 3 Spectral HW. It is directly in micro seconds.
Default value is 224 us. Driver needs to use 224 us as
default value. Application needs to display the unit as
tclk period till generation II and micro second for
generation III. For this driver will be sharing the
Spectral HW generation info to application as part of
the capability exchange.

CRs-Fixed: 2225740
Change-Id: Iaeda8ebb77c2a39824b5f919e8578ff4d56c1aa5
2018-05-14 11:39:29 -07:00
Edayilliam Jayadev
0a04a141c2 qcacmn: Add spectral hardware generation attribute
Add spectral hardware generation attribute to
QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CAP_INFO vendor command.

CRs-Fixed: 2225740
Change-Id: I81a2780319ea7b9c5a895dc3e41ad6730b8dd9bc
2018-05-14 11:39:27 -07:00
Naveen Rawat
9fdd4f55e6 qcacmn: Re-factor buffer len calculation for NDP events
Re-factor vendor event buffer length calculation for NDP events
to a separate function call.

Change-Id: I6828067d0e81987d7c903fd7f7df05b3a4eadbe3
CRs-Fixed: 2183658
2018-05-02 18:46:14 -07:00
Naveen Rawat
1a9ee7dc49 qcacmn: Define ucfg api to free stats_event
Define ucfg api to free stats_event, since it will be called from
osif and hdd.

Change-Id: Ifeea3e970ddca1ed508960c39a2a39f0ed755bd9
CRs-Fixed: 2231150
2018-05-02 04:35:12 -07:00
Naveen Rawat
581787f9af qcacmn: Add osif implementation of getting peer rssi
Add changes to support get peer rssi from within cp_stats
component.

Change-Id: Ic5e9d85e24b1f272df1fa7b6482a797af2aca66a
CRs-Fixed: 2222777
2018-05-02 04:35:09 -07:00
Arif Hussain
083d9da267 qcacmn: Add kernel backport versions
Add kernel backport versions for below kernel flag
- CFG80211_REPORT_BETTER_BSS_IN_SCHED_SCAN

Change-Id: Ie89b8c639070ffe25c4410088c0e154801f5f07d
CRs-Fixed: 2232251
2018-05-01 21:37:31 -07:00
Aditya Sathish
0e6b17aeb3 qcacmn: Add NL80211 Testmode Conditional Directives
Added NL80211 testmode if directives to enable compilation when not
supporting the feature.

Change-Id: I00b8d982035b78f5893bd1bec79309c7ffa48d05
CRs-Fixed: 2231059
2018-04-26 21:39:05 -07:00
Naveen Rawat
b7ffd12530 qcacmn: Add osif implementation of get_tx_power
Add changes to support get tx power from within cp_stats component.

Change-Id: Ifafee77033b8db75e6c9ad201a26ba8bbe72efd4
CRs-Fixed: 2210311
2018-04-19 22:06:57 -07:00
Ravi Joshi
4d577e4c2b qcacmn: Fix issue while handling ndp response without iface name
Check for interface name only when ndp response is "accept" from user. In
case of "reject" discard interface name provided and instead use first NDI
available.

CRs-Fixed: 2222041
Change-Id: Ib02fe7d5b93f8e388658e511317664a4999b5fa6
2018-04-19 14:15:24 -07:00
Ravi Joshi
295cfd1a85 qcacmn: Accept nan responder request without iface name
The service layer need not provide the iface name in the
responder request to the driver if the request is being rejected.
The service layer maps the ndp_instance_id only after accepting
the request, if the ndp indication is rejected, the user space
has no knowledge of the iface name on which the NDP would have
gotten mapped if it were successful

CRs-Fixed: 2222041
Change-Id: I94a7de0c98c14dbe2389dd8364b6dd78858a9d0a
2018-04-19 14:15:21 -07:00
Naveen Rawat
0b83e8489c qcacmn: Add osif implementation of get_wake_lock stats
Add changes to support get wake lock stats from within cp_stats component.

Change-Id: I1bee578a773c6c2b4cac69c907422a4cb30084d3
CRs-Fixed: 2210309
2018-04-17 13:17:56 -07:00
Shashikala Prabhu
48ecda84bf qcacmn: Fix 4.9GHz cfg80211 issues
Send correct channel list to Firmware. When cfg80211 is enabled, STA
is scanning in a set of wrong channels. When scan callback happens
from cfg80211 module the cfg80211 module gives us the channel numbers.
There are some channel numbers which are same in both 5GHz and in
2.4Ghz bands. For example, channel number 1 maps to frequency 4942MHz
in 5GHz band, but in 2.4GHz band channel number 1 maps to frequency
2412MHz. So cfg80211 may give us a wrong channel number. Since we have
the exact frequency of the channel we should use that instead of the
one given by cfg80211.
The channel object given to the driver by cfg80211 during scan callback
is the same as the one registered to cfg80211 by the driver. So we can
use the channel frequency inside the channel object for scan which is
not changed by the cfg80211 module.

Use regdb function to convert channel number to frequency while receiving
scan entries from FW. Use pdev band (5/2.4GHz) information to map to
correct 2.4Ghz/5Ghz channel frequency.

Half/Quarter rate flags in the scan_ctrl_flags are not set. Set
Half/Quarter rate flags in scan_ctrl_flags.

Change-Id: I9df8f0e90938f86f6987574f8259a5cf66b672aa
CRs-Fixed: 2180273
2018-04-13 14:51:30 -07:00
Naveen Rawat
685bf25eb3 qcacmn: Move hdd_request_manager to qcacmn osif layer
Move hdd_request_manager to qcacmn osif layer, which will be used
by CP_STATs component.

Change-Id: Iebf7f9d259793b56cc70c5b3f9dec14a5ef35b25
CRs-Fixed: 2220035
2018-04-13 12:16:03 -07:00
Kiran Kumar Lokere
cbb21ca115 qcacmn: Add wifi test config attribute for HE LTF config
Add wifi test config attribute to configure HE LTF.

Change-Id: Id7e8919a983d47e661b71c032c99fed69e010323
CRs-Fixed: 2221172
2018-04-13 09:30:39 -07:00
Naveen Rawat
70fd32e41b qcacmn: Add new files for cp_stats mobile connectivity component
Add file for mobile connectivity to use control path stats component.

Change-Id: I11ba1103745371ebf740ee2ec06dd04912afa7c9
CRs-Fixed: 2210307
2018-04-11 10:52:45 -07:00
Naga
f325f1fe60 qcacmn: Add support for cp stats in os_if
Add framework for cp stats cfg80211 command handlers

CRs-Fixed: 2192386
Change-Id: Ief2a9f3f7d1f26722f9db09fcab674270d1859a1
2018-04-06 17:49:52 -07:00
Tushnim Bhattacharyya
f940918d4f qcacmn: Use enum type policy_mgr_con_mode instead of enum QDF_OPMODE
Use enum type policy_mgr_con_mode instead of enum QDF_OPMODE.

Change-Id: Ia7a6bb5e05c6dac650dc6386734462547365a4eb
CRs-Fixed: 2214003
2018-04-02 16:41:50 -07:00