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
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
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
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
Add support for vendor attributes to update channel tx_time
and rx_time to the user space.
Change-Id: Ifdb50d8f7bcdcf8a560d174cd34efcb1991768a9
CRs-Fixed: 2757211
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
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
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
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
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
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
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
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
This commit introduces the vendor command to get the configured band
through QCA_NL80211_VENDOR_SUBCMD_GETBAND.
Change-Id: I3f3de10a3bd32eda2634b400d5191bf67a46eaaa
CRs-fixed: 2729768
This commit defines a new vendor interface
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT to configure TWT.
Change-Id: I077c26e56dccbcead9d5e770700813b65bb8aff4
CRs-fixed: 2729753
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
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
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
Defines the attribute in SET(GET)_WIFI_CONFIGURATION to dynamically
configure NSS.
Change-Id: Iae0db4ce3aef82c2c075095fea6c34731b86e40b
CRs-Fixed: 2708940
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Populate number of Spectral detectors per BW in the
Spectral capability vendor command response.
CRs-Fixed: 2659587
Change-Id: I2eba5df02a5f70556d65e689aece1f0fbd8bba93
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