Commit Graph

433 Commits

Author SHA1 Message Date
Bapiraju Alla
cc025bf48c qcacmn: Access scan_req_q under lock
Currently, list empty checks for scan_req_q is done outside the lock.
This is causing synchronization issue during scan and SSR/vdev delete
in parallel.

To avoid this, check for scan_req_q empty inside the lock.

This change also updates the return type of
wlan_schedule_scan_start_request to QDF_STATUS, which is expected by
caller API.

Change-Id: I8b6febdd98af7856fb047b1c9d852e4944a137b5
CRs-Fixed: 2763173
2020-08-31 17:21:33 -07:00
Pragaspathi Thilagaraj
4545f87402 qcacmn: Add support for num of chains configuration nl command
Add support to configure the number of chains over the nl
vendor command
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS.

Change-Id: I81eeda348efe36e03620687e81c082d3869fcd35
CRs-Fixed: 2756676
2020-08-31 17:21:18 -07:00
Srinivas Girigowda
a4dbe43acf qcacmn: os_if: Replace QDF_MAC_ADR_STR/ARRAY with QDF_FULL_MAC_FMT/REF
Replace QDF_MAC_ADR_STR/ARRAY with QDF_FULL_MAC_FMT/REF.

CRs-Fixed: 2763028
Change-Id: Ife19dea018bd50d60ef9450fd65bdc39a32ab729
2020-08-28 02:01:07 -07:00
Chaithanya Garrepalli
58b018079f qcacmn: add vendor command for wifistats
Add new vendor command QCA_NL80211_VENDOR_SUBCMD_WIFI_FW_STATS
which is used for wifistats. Also remove
QCA_NL80211_VENDOR_SUBCMD_HTT_STATS which is wrongly used
in place of QCA_NL80211_VENDOR_SUBCMD_PEER_FLUSH_PENDING

Change-Id: Ia73a09419c22c1206f8f933b9cf4b7f22b0399fd
2020-08-27 18:37:07 -07:00
Rakesh Pillai
66b1bf9608 qcacmn: Fix NULL pointer access for mac address logging
The mac address is tried to be logged from a NULL
bss data pointer, which leads to unwanted behavior.

Remove the logging of mac address from the NULL
bss data pointer.

Change-Id: I83a9e8b1dac0bd4983bf074863987d39187f9db9
CRs-Fixed: 2761731
2020-08-26 03:56:09 -07:00
Srinivas Girigowda
5fc5aec1d9 qcacmn: os_if: Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF
Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF.

CRs-Fixed: 2760938
Change-Id: I15e51b89e25915feca98da6e7ed89237b415707b
2020-08-23 23:09:40 -07:00
Alan Chen
321ed86cde qcacmn: Add console logging for bss found during scan
Add logic to log number of bss found in dmesg during scan.

Change-Id: Idfa5c548c509f2f0669fd635eb4cae16b23f3990
CRs-Fixed: 2759312
2020-08-22 20:31:42 -07:00
Bapiraju Alla
14e5697391 qcacmn: Update channel tx_time and rx_time to user space
Add support for vendor attributes to update channel tx_time
and rx_time to the user space.

Change-Id: Ifdb50d8f7bcdcf8a560d174cd34efcb1991768a9
CRs-Fixed: 2757211
2020-08-21 06:47:55 -07:00
Rajasekaran Kalidoss
8841346dcb qcacmn: Enhancements to the TWT attributes/parameters (vendor command)
This commit does the following enhancements to the TWT interface:

Corrects the documentation for QCA_WLAN_TWT_SUSPEND and
QCA_WLAN_TWT_TERMINATE. Specifies that these operations carry the
parameters obtained through QCA_WLAN_VENDOR_ATTR_CONFIG_TWT_PARAMS. This
interface is very recently introduced and missed to document the same.
There are no user space or driver components using this interface yet.
Hence, enhancing/modifying the interface.

Corrects the documentation for
QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_DURATION. Mentions that the units it
represent is a multiple of 256 microseconds rather than a TU. The host
driver always interpreted this as an unit in 256 microseconds and there
are no user space implementations that are impacted with this change in
the unit. Hence, modifying the documentation.

Introduces QCA_WLAN_VENDOR_ATTR_TWT_RESUME_NEXT2_TWT_SIZE, which is
similar to that of QCA_WLAN_VENDOR_ATTR_TWT_RESUME_NEXT_TWT, but carries
an offset/data of u32 size.

Introduces MAC_ADDR attribute to represent the peer for the TWT setup
and resume operations.

CRs-Fixed: 2755972
Change-Id: I1c43b9942489177af9b48639d1cb4fd20dfdd80b
2020-08-20 08:00:47 -07:00
Min Liu
44150359c9 qcacmn: Move get_peer_info into cp_stats component
Move WMI_REQUEST_PEER_STATS_INFO_CMDID related statistics into
cp_stats component.

Change-Id: Ie57f64e4ee195de30271260887c48ecf76f4a2ff
CRs-Fixed: 2680626
2020-08-14 04:12:25 -07:00
Rajasekaran Kalidoss
9faef79402 qcacmn: Additional TWT attributes for response path and resume
Introduce additional attributes for the TWT response parameters from the
host driver. Also, add ATTR_TWT_RESUME_FLOW_ID for TWT Resume request.

Change-Id: I9fb2d2382acd5d82f8a3322c369d5e580a0a1442
CRs-Fixed: 2751902
2020-08-13 12:43:03 -07:00
gaurank kathpalia
63854a8235 qcacmn: Fix compile and other issues in connect request
Fix minor compile and other issues in connect req in connection
manager

Change-Id: I6c5d3146f4022cc4d12ac847815bca311962400c
CRs-Fixed: 2753498
2020-08-12 19:53:16 -07:00
Ashish Kumar Dhanotiya
64476bcd6c qcacmn: Add connect infra for connection manager
Add connect functions to convert kernel specific connect
request to connection manager specific connection request
for connection manager infrastructure.

Along with the above functions, add the file structure for
connect, disconnect and roam functions for connection
manager infrastructure.

Change-Id: Id4e389d06cea6e39327faef0c119275741574785
CRs-Fixed: 2739318
2020-08-05 13:25:30 -07:00
Bapiraju Alla
1081eb4b63 qcacmn: Enqueue scan request only after scan scheduling is success
Currently, vendor scan request is enqueued in the scan queue first and
then posted into the scheduler queue. Now if there is an SSR in between,
then scan request will be freed twice. Once in SSR context and again
in the caller context because scan scheduling fails due to user disabled
the scan.

To resolve this, post the scan request in scheduler queue first. Once
scan request scheduling is success, then enqueue the scan request in
scan queue. This approach can lead to a race condition like after
scheduling scan request, host may get scan response from firmware even
before the scan request is queued. To avoid this race, scan request
scheduling and enqueue should be protected by scan_req_q_lock.

Change-Id: Ic26da0181fb9a902a8a4abb8f68d9fc668f1b3f2
CRs-Fixed: 2714495
2020-07-27 02:42:36 -07:00
Edayilliam Jayadev
6c76bce586 qcacmn: Modify vendor command handler to accept vdev
The Spectral module uses the first vdev of a pdev for scanning.
For MCL platforms all the vdevs are associated with a single pdev
and this may cause a mismatch between the vdev intended by user and
the vdev used by driver. To avoid this MCL platforms pass a reference
to vdev on which Spectral scan is triggered. WIN platforms
can continue to use the old approach of using the first vdev of a
pdev by passing NULL for vdev to vendor command handlers.

CRS-Fixed: 2725777
Change-Id: I1a7278bdcbcc2b706aa292b33c17546190dac082
2020-07-24 02:01:11 -07:00
Wu Gao
b43c68dedf qcacmn: Gets vdev by id in spectral component
It starts spectral scan without vdev object, and uses the first vdev
as current vdev. which cause vdev mismatch in some platforms. So pass
vdev object or id when finding current vdev.

Change-Id: Iab55afbe2c98906021a008918f186d3d2dce5871
CRS-Fixed: 2716460
2020-07-24 02:01:08 -07:00
Shashikala Prabhu
6d11d6f27a qcacmn: Add support to get pdev_id and psoc from dev_name
LOWI application provides the interface name as part of lowi message to
host driver. Add support in the driver code to get the corresponding
pdev_id and pdev from interface name using  dev_get_by_name().

Change-Id: I267b95c843a9bb1dd0c58ff45767f31999500b1c
CRs-Fixed: 2711423
2020-07-17 01:51:26 -07:00
Abhinav Kumar
f037c70790 qcacmn: Add new attr for QCA_NL80211_VENDOR_SUBCMD_ROAM
Userspace can configure different roam control params as
defined in qca_vendor_attr_roam_control through the roam subcmd
QCA_NL80211_VENDOR_SUBCMD_ROAM and the below attributes:
QCA_ATTR_ROAM_CONTROL_SCAN_FREQ_SCHEME
QCA_ATTR_ROAM_CONTROL_CONNECTED_RSSI_THRESHOLD
QCA_ATTR_ROAM_CONTROL_CANDIDATE_RSSI_THRESHOLD
QCA_ATTR_ROAM_CONTROL_USER_REASON

Introduce above new attributes for roam subcommand.

Change-Id: I680ac7973cbe282673cf8cc065a7b643d4503d5e
CRs-Fixed: 2729127
2020-07-16 20:05:34 -07:00
Lincoln Tran
caa1688c1b qcacmn: Vendor command to get the configured band
This commit introduces the vendor command to get the configured band
through QCA_NL80211_VENDOR_SUBCMD_GETBAND.

Change-Id: I3f3de10a3bd32eda2634b400d5191bf67a46eaaa
CRs-fixed: 2729768
2020-07-14 22:45:39 -07:00
Lincoln Tran
ab9b3ce1e0 qcacmn: Vendor command to configure TWT
This commit defines a new vendor interface
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT to configure TWT.

Change-Id: I077c26e56dccbcead9d5e770700813b65bb8aff4
CRs-fixed: 2729753
2020-07-14 22:45:36 -07:00
Lincoln Tran
de9b5409c9 qcacmn: Enhance the qca_set_band enum value to BITMAP
Also introduce a new attribute QCA_WLAN_VENDOR_ATTR_SETBAND_MASK
to carry this new bitmask enum. This attribute shall consider the
bitmask combinations to define the respective Band combinations
and substitutes QCA_WLAN_VENDOR_ATTR_SETBAND_VALUE.

Change-Id: Ib00d93147e19593f24bd317c3962e6454e4eafc2
CRs-fixed: 2726283
2020-07-14 22:45:32 -07:00
Ashish Kumar Dhanotiya
eba983ed1e qcacmn: Fix return type of auth type and akm
Currently api osif_nl_to_crypto_auth_type is trying to convert
the nl specific auth types to driver specific auth types but
it does not return the correct value, this api always returns
auth type as none as it never updates the return value after
the initialization.

While parsing WPA and WAPI, open authmode and cipher and akm are
set as none by default.

Thus return converted value of the auth type. Also fix the
return type of the akm conversion. Also avoid setting
open authmode and cipher and akm as none while parsing WPA
and WAPI ie.

Change-Id: I260e58a28ddbf6b20a290488e205586a624c9b46
CRs-Fixed: 2725323
2020-07-07 16:23:18 -07:00
Rakesh Pillai
2a46481ab9 qcacmn: Add vendor attribute to update QoS for UDP packets
Add a vendor command attribute to upgrade the QoS
for UDP packets

Change-Id: Ie29842bfe555aecce847b15f77493662ec491d55
CRs-Fixed: 2724039
2020-07-06 05:35:27 -07:00
Alan Chen
fd5e8cd07c qcacmn: Define a new attribute for Optimized Power Management
Define a new attribute for Optimized Power Management.

Change-Id: Id7480be9ff9c8aa2c9a20ea890b9ae0fd2b52f19
CRs-Fixed: 2705539
2020-06-26 20:18:39 -07:00
bings
88cd0dfcea qcacmn: Remove redundant CONFIG_CRYPTO_COMPONENT
There should be no reason to have macro CONFIG_CRYPTO_COMPONENT.
Replace CONFIG_CRYPTO_COMPONENT with WLAN_CONV_CRYPTO_SUPPORTED.

Change-Id: Ief2b015a8e48c85c383470c669254abfa7404585
CRs-Fixed: 2705994
2020-06-24 11:43:01 -07:00
Min Liu
d0b3820279 qcacmn: QCA vendor attribute to configure NSS
Defines the attribute in SET(GET)_WIFI_CONFIGURATION to dynamically
configure NSS.

Change-Id: Iae0db4ce3aef82c2c075095fea6c34731b86e40b
CRs-Fixed: 2708940
2020-06-16 08:16:17 -07:00
Min Liu
b3cce9518b qcacmn: QCA vendor command for getting STA information
Add a QCA vendor subcommand QCA_NL80211_VENDOR_SUBCMD_GET_STA_INFO with
attributes defined in qca_wlan_vendor_attr_get_sta to get information
for BSS in STA mode or for peer STAs in AP mode. This vendor sub command
can be used to get STA information from driver to userspace.
The attributes defined in enum qca_wlan_vendor_attr_get_sta_info
are used to encapsulate required information.

Change-Id: I9747516de377a2be23cca6023f2e92f014e42ac2
CRs-Fixed: 2591613
2020-06-11 13:08:10 -07:00
Min Liu
10a544393b qcacmn: QCA vendor attribute for dynamic bandwidth adjustment
Define QCA vendor attribute in SET(GET)_WIFI_CONFIGURATION to
dynamically configure capabilities for dynamic bandwidth adjustment.

Change-Id: I97f70a4dc2b62ea2f59da9dbbd356f4c45d268d8
CRs-Fixed: 2704828
2020-06-11 02:04:49 -07:00
Min Liu
b725ee6291 qcacmn: QCA vendor attributes for setting channel width
Define QCA vendor attribute in SET(GET)_WIFI_CONFIGURATION to
dynamically configure capabilities for channel width.

Change-Id: Ice842327ca58e51632ed7acffb4c974629129bd4
CRs-Fixed: 2694595
2020-06-11 02:04:43 -07:00
Alan Chen
9fabb02b2a qcacmn: Match comments for policy OFFLOADED_PACKETS to upstream
The comments for the policy OFFLOADED_PACKETS table do not match
that in the upstream code. Change the comments so that they match
the upstream version.

Change-Id: Ie2a7a3304eb10cc0633070154c581d216fd6e0cb
CRs-Fixed: 2703061
2020-06-08 21:09:47 -07:00
Subrat Dash
40377c0b2d qcacmn: Add a new QCA vendor attribute for OEM data device info
Add an attribute QCA_WLAN_VENDOR_ATTR_OEM_DEVICE_INFO to send
additional information to specify whether the OEM vendor command
is for vdev or pdev.

This optional attribute is used to specify whether the device
type is vdev or pdev. This attribute can be omitted when the
command is for vdev.

Change-Id: Ie6f72d071d1d8393d2c9bf47d7b47a9dd2cbbeed
CRs-Fixed: 2693894
2020-06-08 16:01:16 -07:00
Kiran Kumar Lokere
c5c28eb65e qcacmn: Add QCA vendor attributes to configure PMF and disassoc Tx
Add QCA vendor attributes to configure PMF and disassoc Tx

Change-Id: I26296d3b5758c3caf3ef3034d155fe56d9904841
CRs-Fixed: 2675834
2020-06-08 16:01:12 -07:00
Min Liu
c7bf4efec6 qcacmn: Add QCA vendor interface support to configure PHY modes
Add an attribute that can be used with
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION vendor command to
configure different PHY modes to the driver/firmware.

Change-Id: I850fd6a1edaa9e74957b9f189c9b710212902781
CRs-Fixed: 2694060
2020-06-08 10:30:36 -07:00
Srinivas Dasari
3e3a071188 qcacmn: Define VENDOR_NLA_POLICY_MAC_ADDR for mac addresses
Strict NLA validation is introduced from kernel version 4.20 where
NLA_UNSPEC usage is restricted. A new attibute type
NLA_POLICY_ETH_ADDR is introduced for MAC address.
Define a macro to use this if the kernel version is greater
than 4.19.
Also define NLA_EXACT_LEN as NLA_UNSPEC for kernels less
than 4.20.

Change-Id: I9d9bee7a12d84ca81b5777ccb417a33f08949203
CRs-Fixed: 2701357
2020-06-04 23:23:01 -07:00
Jingxiang Ge
4ee2fa8596 qcacmn: Vendor attributes for configuring LDPC, TX STBC, RX STBC
Defines the attributes in SET(GET)_WIFI_CONFIGURATION to dynamically
configure capabilities: LDPC, TX STBC, RX STBC.

Change-Id: I9d38f436cb6a8ee5a0cf074c22bccb98ffd46df4
CRs-Fixed: 2689416
2020-06-04 20:36:32 -07:00
Rakesh Pillai
cbbb368ed7 qcacmn: Add the dot11 mode 11AX
Add the phy mode for 802.11 AX

Change-Id: I1cc0f94c193e1df6f60ee150598ea61bdac4ee04
CRs-Fixed: 2697055
2020-06-03 14:58:38 -07:00
Min Liu
b1e22e0cbf qcacmn: QCA vendor command for adding and deleting TSPEC
Add a QCA vendor subcommand QCA_NL80211_VENDOR_SUBCMD_CONFIG_TSPEC
to add and delete TSPEC in STA mode.
The attributes defined in enum qca_wlan_vendor_attr_config_tspec
are used to encapsulate required information.

Change-Id: Ifaba68b6619a3f6b775d2150740e7d6a2645493c
CRs-Fixed: 2686133
2020-06-03 09:27:55 -07:00
Min Liu
124f623a19 qcacmn: Vendor attributes for setting TX A-MSDU and RX A-MSDU parameters
Define QCA vendor attributes for SET(GET)_WIFI_CONFIGURATION to
dynamically configure capabilities for TX A-MSDU and RX A-MSDU.

Change-Id: Idcf7de2172cbf0b6710a7256b925939a2321e91c
CRs-Fixed: 2687224
2020-06-03 09:27:49 -07:00
sheenam monga
efbca64bbe qcacmn: Add a vendor attribute to get OEM data
Add an attribute QCA_WLAN_VENDOR_ATTR_OEM_DATA_RESPONSE_EXPECTED
to get the response for the queried data.

Change-Id: Icb3fc7072cf589cf60a7c68b7c1fa74e51dadab8
CRs-Fixed: 2699102
2020-06-01 11:03:41 -07:00
Neha Bisht
466c04dee9 qcacmn: remove dependency of public files from wlan_objmgr_psoc_obj.h
Remove dependency of wlan_lmac_if_def headerfile from
wlan_objmgr_psoc_obj.h

Change-Id: Ida8472e6f05a90b3930b5a13a2bf89ea8b3e938f
2020-05-15 10:41:46 -07:00
Alan Chen
331f8a3a54 qcacmn: Map qpower vendor command to advanced_power_save_mode
Map qpower vendor command to advanced_power_save_mode in order to support
users of HST as well as HSP.

Change-Id: I38de5981dca384b666b5086727e3da741f0cd4e3
CRs-Fixed: 2676713
2020-05-04 21:28:05 -07:00
Edayilliam Jayadev
1de47959b6 qcacmn: Enable Agile Spectral in single synth targets
Some targets have a single synthesizer and it allows
a single Spectral detector to scan in 160 MHz /165 MHz.
Enable Agile Spectral scanning in 160 MHz / 165 MHz for
such targets. Agile creq2 will be populated in the WMI
command after WMI interface changes are merged.

CRs-Fixed: 2648480
Change-Id: I8522cbeeab29ac41479e3041eea376b081c0758a
2020-04-30 01:51:14 -07:00
Yu Wang
2bfeac4376 qcacmn: update BT coex config for all vdevs when setting BT coex mode
When setting BT coex mode, the config was not updated for all
when there are multiple vdevs.
Modify the code to update it for all vdevs.

CRs-Fixed: 2667933
Change-Id: Ibad3adf44bef6842a12cbe7e46050b693ed474d6
2020-04-29 22:27:47 -07:00
Pragaspathi Thilagaraj
0150333a89 qcacmn: Abort only host scans on roam start notification
The roam sequence in LFR-3.0 is roam scan start notification
from firmware followed by roam start indication and then
roam synch,roam synch frame events. Roam start is sent
after candidate selection and host driver will disable
queues when roam start is received.
But for emergency roam trigger, firmware sends roam start
indication directly without notifying roam scan start to disable
data path queues immediately after deauth received from the AP.
So roam start is received before roam scan is started at firmware
and before candidate selection is done.

After roam start notification, host sends scan abort for all scan
on vdev by setting scan command request type to
WMI_SCN_STOP_VAP_ALL. This results in roam scan getting aborted at
firmare in emergency deauth roaming case and roaming fails.

Introduce new vdev id value based on which the scan module will
abort only host triggered scans setting the flag
WMI_SCN_STOP_HOST_VAP_ALL in the scan request.

Change-Id: I3a162c55d4a008ff986fd957bed395b39c060bb5
CRs-Fixed: 2636410
2020-04-27 21:32:22 -07:00
gaurank kathpalia
dcc847a925 qcacmn: MCL specific movement from cmn to cld of stats
Move the MCL specific files related to cp stats from
the cmn to cld folder.

Change-Id: I62076512b1b407342338d4612087edd3ba2296df
CRs-Fixed: 2552452
2020-04-17 07:37:08 -07:00
Ashish Kumar Dhanotiya
dfaf7550a0 qcacmn: Add new vendor attribute to send he operation info
Currently he operation info is not sent to user space as
part of the response of get station info command.

Add support to send the he_operation with the new vendor
attribute QCA_WLAN_VENDOR_ATTR_GET_STATION_INFO_HE_OPERATION.

Change-Id: Ib4bab7b7b2aff688293c85f8574d9f2c306f00f0
CRs-Fixed: 2664347
2020-04-17 02:36:36 -07:00
Abhishek Singh
aadc772e84 qcacmn: Add igtk def index and igtk key type in crypto
In wlan_crypto_save_key store igtk def index, bigtk def index and
igtk key type in crypto priv.

Change-Id: I96161a6dd376e7e80f88da00c891d15a5645cfa7
CRs-Fixed: 2661197
2020-04-11 12:40:32 -07:00
Edayilliam Jayadev
f76792f311 qcacmn: Add Spectral detector count in capability info
Populate number of Spectral detectors per BW in the
Spectral capability vendor command response.

CRs-Fixed: 2659587
Change-Id: I2eba5df02a5f70556d65e689aece1f0fbd8bba93
2020-04-09 11:31:53 -07:00
Edayilliam Jayadev
6fe8fb5880 qcacmn: Add an attribute for secondary 80 MHz span of agile spectral scan
Add an attribute QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CONFIG_FREQUENCY_2
for describing the secondary 80 MHz span of agile spectral scan.

CRs-Fixed: 2659496
Change-Id: I751513cb248c42dd7c59d7d979fc571459e48ad1
2020-04-09 09:47:12 -07:00
Edayilliam Jayadev
f592d86b9b qcacmn: Add attributes indicating number of Spectral detectors
Add per BW attributes which indicate the number of Spectral
detectors used.

CRs-Fixed: 2659389
Change-Id: If76c86e23ff32f21defe34c2369de5d8b0752f99
2020-04-09 09:46:56 -07:00