Regulatory component needs to listen to vdev messages in order to track
whether a master mode vdev is getting created or destroyed. It is also
used to kick-start the state machine. Also re-run the state machine when
user-space country code is set.
Change-Id: I5112396314a936f84dad2f0e07329f9cb237aa78
CRs-Fixed: 2048784
pdev_id is required to get the pdev object from utf event. Extract
pdev_id from the seg info within utf event's data stream.
Change-Id: Id8d3263a7f33d234c7cb43c99a0a44f28df5724d
CRs-Fixed: 2055128
Recently, FW changes were implemented to support WMI resource config for
multi-radio. As part of this, the TBTT offset and SWBA events were modified
to support increase in the number of vdevs per SOC.
Brief description of the changes with respect to TBTT offset
------------------------------------------------------------
Converged FW will send extended TBTT offset event when the number of vdevs
configured is greater than 32 and will continue to send normal TBTT offset
event when the number of vdevs configured is less than 32. Legacy FW will
continue to send vdev map and tbttoffset list array as part of the TBTT
event.
Extraction API is added to extract the number of vdevs configured for both
legacy and converged FW. Number of vdevs is sent directly by the FW for
extended TBTT offset event but sent as vdev map for the normal TBTT offset
event. In order to handle normal TBTT offset event, extraction API for
normal TBTT event adds logic to convert vdev map into the number of vdevs
configured.
Extraction APIs are added to extract vdev id and tbttoffset information per
vdev that are configured. The vdev id information is sent as vdev map and
tbttoffset list as an array for normal TBTT event and as an array of
structures containing vdev id and tbttoffset in the case of extended TBTT
event. In order to support normal TBTT event based on num vdevs, extraction
API for normal TBTT eventadds logic to determine the vdev id from vdev map
based on the index(running through 1 to total number of vdevs) passed from
the driver.
Brief description of the changes with respect to SWBA
-----------------------------------------------------
Converged FW will send additional information num vdevs and vdev id
embedded in tim info and p2p noa TLVs for SWBA event. Legacy FW will
continue to send vdev map and array of tim info and p2p noa desciptors.
Extraction APIs is added to extract the number of vdevs configured for both
legacy and converged FW. Number of vdevs is sent directly by the FW for
SWBA event in the case of converged FW and as a vdev map in the legacy FW.
In order to handle legacy FW, extraction API for non-TLV adds logic
to convert vdev map into number of vdevs configured.
Extraction APIs are modified to extract newly embedded vdev id information
in tim info and p2p noa descriptors. The vdev id information is sent as
vdev map for legacy. In order to handle legacy FW, extraction API for
non-TLV adds logic to determing the vdev id from vdev map based on the
index (running through 1 to total number of vdevs) passed from the driver.
Change-Id: Ibf84adbb1c526321ec031d5539aff66dcbd1315b
CRs-Fixed: 2053628
Changes added to support multiradio feature.
Included pdev_id and/or vdev_id in required ATF specific WMI data
structures. All ATF commands will be sent with pdev_id and/or vdev_id.
Change-Id: I723a9a6e4a67a417d4aa2b392285dc4afa590a21
CRs-Fixed: 2052786
pdev_id in FW starts from one. Zero is reserved for Soc. But host uses
pdev_id starting from zero. Make WMI changes to take care of this
difference and always provide and accept pdev_id starting from zero at
WMI. Use 0xFF for SoC on host.
Change-Id: I49f481e54bbaeea9359753bc7d3da9092fc9559a
CRs-Fixed: 2045125
1. Add multi radio support for thermal throttling
2. Add TLV WMI support for thermal throttling
Change-Id: I2cdbf9a4acdd9346c0fe3dd24c510885cc8fef8e
CRs-Fixed: 2041264
Update enums in WMI service enums that got introduced in the latest
FW headers.
Change-Id: I46f70ff5eb41aee15f8cac784cc85201a3362fca
CRs-Fixed: 2045146
ol_defines header inclusion is invalid in WMI layer.
Remove the header inclusion by abstracting the dependency
with in WMI layer.
Change-Id: I5eb8624605cde20b516a1d8d0c823996c363e119
CRs-Fixed: 2023821
Add support in WMI layer to configure coex config command for
lithium based chipsets
CRs-Fixed: 2037499
Change-Id: Ib83407524bd3b5cdad28f73a6ccc36d4a0271779
Make the following TLV WMI layer changes related to 160/80+80 MHz
functionality:
- While forming the VDEV start/restart command, if the request from
the upper layer indicates the dfs_set_cfreq2 flag, then enable the
WMI_CHAN_FLAG_DFS_CFREQ2 channel flag. This is needed in order to
enable radar event reporting for the secondary 80 MHz segment.
Make this change only in the WIN specific implementation of
copy_channel_info(). If required for MCL, to be handled separately.
- Move the 'peer_bw_rxnss_override' member in
'struct peer_assoc_params' to outside the '#ifndef CONFIG_MCL'
section so that it is available both on MCL and WIN. Since
in MCL code peer_assoc_params is initialized to all zeros and
peer_bw_rxnss_override is not set anywhere later, this should
have no side effects.
- While forming the PEER assoc completion command, populate the
peer_bw_rxnss_override field as per the corresponding parameter
sent by the upper layer. This is required for providing override
values of Rx NSS for bandwidths higher than 80 MHz.
Testing:
- Tested on QCA8074 that the WMI_CHAN_FLAG_DFS_CFREQ2 channel flag
is being set in the VDEV start command if the secondary 80 MHz
lies on DFS channels (tried VHT160 and VHT80_80)
- Tested on QCA8074 AP and STA that the peer_bw_rxnss_override
value is being set in the PEER assoc completion command to
indicate Rx NSS value 2, when NSS value 4 is used for <=80 MHz
(tried VHT160 and VHT80_80). Also tested ping.
Change-Id: Ic45d80567eeed3707f76e513f772ce4da71d6ee0
CRs-Fixed: 2022037
Converged FW has few left-over WIN specfic WMI CMDs that need to be
implemented in TLV method.
WMI CMDs implemented through this change -
WMI_PDEV_SET_QUIET_MODE_CMDID
WMI_PEER_MCAST_GROUP_CMDID
WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID
WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID
WMI_PEER_BWF_REQUEST_CMDID
WMI_PDEV_QVIT_CMDID
WMI_PDEV_SET_WMM_PARAMS_CMDID
Change-Id: Ia2ae3d2e56608fd4c51754ae2c78f2b9912d7172
CRs-Fixed: 1115239
Due to different layers, TLV processing is confined to WMI folder.
Therefore, move the TLV layer processing of WMI_REG_CHAN_LIST_EVENTID
to the wmi folder.
Change-Id: I7e7182997a9506035030f33d2f81a403fbe97a2f
CR-Fixed: 2019750
Add changes for peer association by adding support to
include HE capabilities and HE operation information
in vdev start and peer assoc WMI commands.
Change-Id: I50c0241f872219e08ee2d231c907309ee5adceef
CRs-Fixed: 1073481
Defines API and callbacks of os interface for P2P component. At the
same time, defines API of target interface.
Change-Id: Ice1c86ecba1f2410d965d9f84923589f229a1864
CRs-Fixed: 2013763
Include cac duration and regulatory domain in vdev start
command, these fields are used to process phyerrors when
dfs is offloaded to firmware.
Change-Id: I5736354913fafb7776ac71e85dc23e841de94a96
CRs-Fixed: 2017481
Add support to pass delay_start_time to firmware, this delay will be
used before starting the first scan cycle.
Change-Id: I7488fc8da4e22b170e52fb38c8a1d5b49dbf7e2f
CRs-Fixed: 2014142
Remove WMI VDEV param population for HE ofdma_cplen
command. Instead use the same old short_gi command
for HE ofdma cplen.
Change-Id: Id303dab1c7ec47ebc31fc685ad0b50ddfdf4fcac
CRs-Fixed: 2009118
Curretly FW considers minimum time of hysteresis for PER based roam as
constant value which is 25 seconds.
Add changes to make this time configurable using ini.
Change-Id: Iadb5f6a005b069e0d6190df34e382927425ec1af
CRs-Fixed: 2005849
DUT should be able to roam to a better access point if current
AP is having congestion/packet error.
This roam also devise a new selection logic for candidate
selection which considers channel congestion and AP capabilities.
Change-Id: I6cffbf0de059a218e971be32fbdc1a0092ceea9d
CRs-Fixed: 1090934
Active Mode Berkeley Packet Filter (Active BPF) is a new feature that
allows firmware to apply BPF even while the Apps processor is active.
There are 3 modes:
* Disabled: do not apply BPF in active mode
* Enabled: apply BPF to all packets in active mode
* Adaptive: apply BPF up to some threshold to avoid performance impact
Add WMI APIs and related logic to support configuration of Active BPF
Mode.
Change-Id: I8c0778b3fa73d148422aa103b0fc0950433fec95
CRs-Fixed: 1111400
Converged FW has few left-over WIN specfic WMI CMDs that need to be
implemented in TLV method.
WMI CMDs implemented through this change -
WMI_GPIO_CONFIG_CMDID
WMI_GPIO_OUTPUT_CMDID
WMI_PDEV_DFS_DISABLE_CMDID
WMI_PDEV_DFS_ENABLE_CMDID
WMI_PDEV_GET_NFCAL_POWER_CMDID
WMI_PDEV_SET_HT_CAP_IE_CMDID
WMI_PDEV_SET_VHT_CAP_IE_CMDID
Change-Id: Iad5532b305fae12f4eb8265cf9a662578041d06e
CRs-Fixed: 1115239
Converged FW has few left-over WIN specfic WMI CMDs that need to be
implemented in TLV method.
WMI CMDs implemented through this change -
WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID
WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID
WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID
WMI_PEER_ATF_REQUEST_CMDID
WMI_FWTEST_CMDID
WMI_QBOOST_CFG_CMDID
Change-Id: Ice617f7adf387d534edaefd24857c253c937de48
CRs-Fixed: 1115239
Converged FW has few left-over WIN specfic WMI CMDs that need to be
implemented in TLV method.
WMI CMDs implemented through this change -
WMI_PDEV_SMART_ANT_ENABLE_CMDID
WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID
WMI_PDEV_SET_CTL_TABLE_CMDID
WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID
WMI_PDEV_GET_TPC_CMDID
WMI_VDEV_RATEMASK_CMDID
WMI_VDEV_SET_DSCP_TID_MAP_CMDID
WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID
WMI_PEER_UPDATE_WDS_ENTRY_CMDID
WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID
Change-Id: I6e59bcb948a7368729df35d19c3d5a03a0075a15
CRs-Fixed: 1115239
Object manager psoc service ready api provides host (ext)service ready
data structures hence remove duplicate copy from wmi_unified_param.h
and change WMI to use psoc service ready data structures.
Change-Id: Iaec20e9b818077ed1ca58754c4b1bc6deaedd761
CRs-Fixed: 2002016
Currently, Host maintain multiple data structure at different
layers for offload related features like arp/ns/gtk etc.
Instead of using many structure use single data structure across
all layers for offload related feature (arp/ns/gtk) which is now
exposed by PMO. Hence to include PMO header's in WMI, refactor the
WMI code for PMO component by carving out PMO specific functionality
separatley.
Change-Id: I8314d5ece49bf6972fbe706d635385ae22d11b2e
CRs-Fixed: 2004523
Added host WMI VDEV param enumerations for new HE
commands Populated VDEV param TLV with WMI VDEV
commands ids for all the new HE commands.
Change-Id: Id9905176c7565dfa0dd56800b61b7c620136a4e7
CRs-Fixed: 2009118
Add HE Mac, PHY , MCS , OP & PPET in peer_assoc_params
structure. Add HE PHY & PPET in wmi_host_mac_phy_caps
structure. Populate HE params while sending WMI Peer
assoc commands.Parse HE Phy & PPET while parsing Mac
Phy TLV in Service ready extension event.Add required
changes in psoc_service_ready header files.
Change-Id: Ia2fc7f54634a7a0c98996e361e38b11b3b74a7a0
CRs-Fixed: 2009118
Add multiple vdev restart command request WMI command API and
extraction API for CSA count status event to support CSA implementation
for beacon offload.
Change-Id: Ic309f592137dc725e04590dc0093f30b481ebf9b
CRs-Fixed: 2000449
Added support for wmi_pdev_param_mesh_mcast_enable and
WMI_SERVICE_ENTERPRISE_MESH
Change-Id: Ie0ce2b822843d66aa14fe0a46809a78e9143f5d9
CRs-Fixed: 2003389
wmi_host_mgmt_rx_hdr struct cleanup for UMAC covergence as
struct mgmt_rx_event_params is to be used in place of
wmi_host_mgmt_rx_hdr.
Change-Id: I7ad3b641e492ecb469fa69c0025c6537c8a01e65
CRs-Fixed: 1103247
Send beacon frame in wmi_roam_invoke_cmd to firmware
This helps firmware skip scan to connect to requested
BSSID.
Change-Id: I5c6e375309dcb3bdd6430a3d501bade5cfe2e88d
CRs-Fixed: 1116901
Support to add hw_mode in init command is added by FW
to let host choose the mode to be use. Change init cmd
send API to enable upper layer to send the hw_mode selected.
Since this is new TLV in init command, init cmd send API
needs to be changed to accommodate this parameter.
Change-Id: I172d8d737425599c36666d9fec8a6cdd48085097
CRs-Fixed: 2004652
pdev_id is required to identify the pdev object on which this event is
recieved. Add pdev_id in the event extract API.
Change-Id: Ia910d42af6a9d6099da1b7781601b0320dff80ba
CRs-Fixed: 2003898
pdev_id is used to get the pdev for which the event is recieved. Add this
in extract APIs to fetch the pdev from pdev_ids and use it for further
processing. This is change is part of changes required to support
multi-radio.
Change-Id: Iadda098ccb31be5e8e43083158802abe49ac01b4
CRs-Fixed: 2003898
This patch adds support of new WMI command WMI_COEX_VERSION_CFG_CMID
for 4-wire coex configuration in non_tlv_ops.
Change-Id: I63da2c7ae99c38d297f7f13a8086611263f7fc5b
Acked-by: Daniel Kim <kimdan@codeaurora.org>
CRs-Fixed: 1081065
Add host internal definitions for the enumerations
WLAN_BAND_CAPABILITY and wmi_channel_width defined in wmi_unified.h.
This is required in order to allow common host code to access these
definitions agnostic of the actual version of wmi_unified.h used.
Testing:
Compiled and tested association and ping on QCA8074 and QCA9984.
Change-Id: I966211deb29ff3d65817b36ac4c6aefdbd39221c
CRs-Fixed: 2005796
Hold additional reference to BSS node during node allocation, and free
it in delete response. This ensures BSS Node Freed event is sent to MLME
only after receving peer delete response for BSS node.
Change-Id: I384eac54f437000a1c09eb53751ad8b8e26617ad
CRs-Fixed: 1112381
Add WMI_HOST_WLAN_PHY_MODE enum values for 802.11ax. These values
correspond to the WLAN_PHY_MODE enum values defined in the host-FW
interface.
Note that the new values for WMI_HOST_MODE_UNKNOWN and
WMI_HOST_MODE_MAX will not necessarily correspond to the MODE_UNKNOWN*
and MODE_MAX*/PHY_MODE_MAX* values in FW header files for all
chipsets/architecture families. This is because:
1) The 'unknown' PHY mode should not be used in host-FW interactions.
2) WMI_HOST_MODE_MAX is not currently used for host-FW interactions.
3) MODE_MAX*/PHY_MODE_MAX* values in FW header files can have varying
values at compile time depending on compile flags such as
SUPPORT_11AX, which in turn depend on the chipset/architecture
family. However the WMI_HOST_WLAN_PHY_MODE enum is exposed to
chipset/arch independent higher layers within host which utilize WMI
layer services. Hence WMI_HOST_WLAN_PHY_MODE enum values should not
vary.
In case the max mode value needs to be used in host-FW interaction in
the future for some reason, this should be translated separately by
the arch dependent (and if ever required, chipset dependent) WMI layer
code into the enum value directly exposed by the relevant FW header
file version for that arch/chipset. Similarly, if the arch/chipset
dependent max mode value needs to be used in-within host code in the
future for some reason, a separate variable should be dynamically
populated by the WMI layer at attach time.
Later, it might also be preferable to convert even other
WMI_HOST_WLAN_PHY_MODE enum values into values directly exposed by FW
header files in the manner noted above.
Testing:
Tested basic AP bring-up on M2M Platform with 11ACVHT80 and 11AHE20
Change-Id: I64c7a1d7491d2213c740568c3e9e2f035c82746e
CRs-Fixed: 1106923
This is needed for a requirement to change A-MPDU configuration
from per radio to per vap.
Change-Id: I916985d49bc5b059b7887b945acde798be0b38e3
CRs-fixed: 1107866