Commit Graph

274 Commits

Author SHA1 Message Date
Govind Singh
3dda60e173 qcacmn: Remove redundant header file inclusion from wmi layer
Remove redundant header file inclusion from wmi layer by abstracting
the dependency with in WMI layer.

Change-Id: Ie113b69006a960b70d781134775bc44c7508fc4c
CRs-Fixed: 2023825
2017-07-26 08:14:52 -07:00
Nandha Kishore Easwaran
cf08b7385e qcacmn: convert target HT cap bitmap to host bitmap
HT cap bit map is different for tlv and non-tlv based firmware.
Convert target cap to host cap bitmap to abstract out the differences.

Change-Id: Ia803efa3a895c7faa159d8051277d2a926b365a5
2017-07-15 19:35:20 -07:00
Abhijit Pradhan
59626eba4b qcacmn: Set country code for full-offload using iwpriv command
For full-offload, send user country code to FW using WMI
command.

Change-Id: I84acbd7ce30aa9a8ce590c8fadea2cb5914240fe
CRs-Fixed: 2053849
2017-07-13 22:02:53 -07:00
Srinivas Girigowda
4831049768 qcacmn: Fix clang compilation warnings
Fix clang compilation warnings.

Change-Id: If7d2d148f4d478d151640ee1a85ca64a9096cdd2
CRs-Fixed: 2055513
2017-07-12 20:12:48 -07:00
Sathish Kumar
09d4de8f98 qcacmn: Populate tx params tlv for mgmt and offchan tx WMI commands
Populate tx params tlv that includes information related to power,
chainmask, bandwidth mask, preamble type, frame type etc to the mgmt
and offchan tx WMI fixed param

Currently, we send the command with TX params valid set to zero always
and hence target does not look for the TX param TLV. This change
implements API to populate TX params TLV that facilitates configuration
of parameters per TX frame be it data or management frame

If the TX params valid is set to false, target decides the values
to use for each of the mentioned TX parameters

Change-Id: I90a1b5e1c9bf0a54a907876ed3629c2d627b3c98
CRs-Fixed: 2070454
2017-07-12 20:12:47 -07:00
Abhishek Singh
d5406a73da qcacmn: Fix memory overflow in wmi roam scan filter cmd
The length of buffer used to send wmi roam scan filter cmd is not
properly calculated and thus the length is less than the actual data
to be copied.

Fix it by properly calculating the length of the buffer.

Change-Id: I6a3baa5ca5560d2d04f9bd41a709a37abc1b95a9
CRs-Fixed: 2072057
2017-07-11 23:48:13 -07:00
Selvaraj, Sridhar
a0e6f88b15 qcacmn: Add support to pass lca_disallow_config_params to fw
Add LCA[Last Connected AP] AP disallow params to
roam_scan_filter_params structure.

Change-Id: Id7a47bdc40d08b356483114b71981df352386172
CRs-Fixed: 2054195
2017-07-07 00:50:11 -07:00
Rajeev Kumar Sirasanagandla
2a46442db5 qcacmn: Send proper CTL info to fw in world regd
Currently, for world regd and some other regds where conformance test
limit is NO_CTL, host is sending invalid CTL info to fw instead of
NO_CTL (0xff) due to type conversion issues.

To fix this, use proper unsigned type for CTL info.

Change-Id: I0407d30c6cd6f7f485d767c97bc5381c9c731440
CRs-Fixed: 2056847
2017-07-03 15:58:01 +05:30
Keyur Parekh
fad6d088fa qcacmn: Packet log changes for wifi3.0
Change-Id: I82462f426e4e449c5bc65331e39f07a062e8e242
2017-06-27 23:37:33 -07:00
Ravi Kumar Bokka
4a517a223e qcacmn: Auto Detect SoC Power Collapse Failure changes
Add host support for detecting SOC power collapse failures in FW and
communicating the same to framework.

Change-Id: Icee39c896802c4d7136e0b8ef442a33feeb4799c
CRs-Fixed: 2016580
2017-06-27 22:13:06 -07:00
Deepak Dhamdhere
e99d6683f7 qcacmn: Enable PMK cache and OKC with RSO command
Firmware now supports PMK caching in addition to OKC
(Opportunistic Key Caching). Use additional bit flags to enable
PMK caching in PMK configuration in roam offload scan request.

CRs-Fixed: 2004963
Change-Id: I536a4d45d5d915ab02dc13db6124a1ce8949fe48
2017-06-26 11:57:55 -07:00
Selvaraj, Sridhar
d6789e55d3 qcacmn: Add min_candidate_rssi to wmi_per_roam_config structure
Add min_candidate_rssi to wmi_per_roam_config. This is added to
provide the configured min candidate AP threshold to fw to be used
for PER(Packet Error Rate) based roaming.

Change-Id: I6e0ae1ebe578bcd6d858e1d5252dead6e849d54a
CRs-Fixed: 2050039
2017-06-19 12:43:28 -07:00
Govind Singh
5a990aa2a7 qcacmn: Converge WMI beacon template cmd implementation
There are two implementation of WMI beacon template wmi cmd.
Remove redundant code by converging WMI beacon template
cmd implementation.

Change-Id: Icc9e1f5326c3197a7994ed10ea1ef6386edc7efd
CRs-Fixed: 2061681
2017-06-18 17:36:52 -07:00
Nitesh Shah
b256bb0e81 qcacmn: Add support to send DBS Scan command to firmware
This change adds support to send the DBS Scan command to
the firmware.

Change-Id: I147855690f09af03a43f85f2e57626d7f73998de
CRs-Fixed: 2029402
2017-06-14 08:23:51 -07:00
Venkateswara Swamy Bandaru
8c0030f8e6 qcacmn: Add support for wmi_service_chan_load_info
Added support for wmi_service_chan_load_info which is newly
added in wmi service bitmap.

Change-Id: I95905ac95c5305f8f84ec512ecf1859955704193
CRs-Fixed: 2057719
2017-06-12 09:07:06 -07:00
Amar Singhal
2e55c111a8 qcacmn: Implement 11d state machine
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
2017-06-08 13:46:53 -07:00
Kiran Kumar Lokere
82c8645b38 qcacmn: Add support for 11d FW commands and events
Add support to send 11d scan start and stop commands to FW and
process the 11d new country update event from FW.

Change-Id: I5c1588cfb5af672cdb5738784de1bd0b83bdbe77
CRs-Fixed: 2048784
2017-06-08 13:46:51 -07:00
Kiran Venkatappa
1c7d897d9c qcacmn: Add support to extract pdev_id from utf seg info
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
2017-06-05 11:41:39 -07:00
Sathish Kumar
b5621e7d20 qcacmn: Add and modify extract APIs for TBTT offset and SWBA events
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
2017-06-02 20:38:50 -07:00
Naveen Rawat
11d820357e qcacmn: Add implementation for WMI_OEM_DMA_RING_CFG_REQ_CMDID
Program the DMA ring configuration to firmware using
WMI_OEM_DMA_RING_CFG_REQ_CMDID.

Change-Id: I99e5b3a369d7eeee1d1fe41782285ed54cdb82cf
CRs-Fixed: 2053958
2017-06-02 14:47:33 -07:00
Dustin Brown
3c777ef4d2 qcacmn: Expose full hardware filter capabilities via WMI
The WMI API exposes the broadcast hardware filter. Modify the WMI API
to expose all of the supported modes of the hardware filter.

Change-Id: I185b149f4d1ad38692d8ff5810acd52bf84565b2
CRs-Fixed: 2040419
2017-06-01 12:32:20 -07:00
Ravi Kumar Bokka
91b6182286 qcacmn: Configure and clear packet filter
Add PMO changes to configure and clear default packet filters
over suspend and resume

Change-Id: I1f3fab170d2669865da8ba09673df6ec8e755b31
CRs-Fixed: 2034458
2017-05-30 17:31:17 -07:00
Subrat Mishra
94a9ec829c qcacmn: ATF multiradio support
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
2017-05-29 06:08:21 -07:00
Kiran Venkatappa
8dfac0797a qcacmn: Changes to support pdev_id in host from zero
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
2017-05-22 17:05:25 -07:00
Kiran Kumar Lokere
a843634983 qcacmn: Add support to send new country to FW
Add support to set new country code to the FW

Change-Id: Id24967b7c9e93bfbf045f494f142be9e33e16483
CRs-Fixed: 2042879
2017-05-18 13:42:21 -07:00
Om Prakash Tripathi
104e0664e6 qcacmn: Add TLV support for thermal throttling
1. Add multi radio support for thermal throttling
2. Add TLV WMI support for thermal throttling

Change-Id: I2cdbf9a4acdd9346c0fe3dd24c510885cc8fef8e
CRs-Fixed: 2041264
2017-05-15 17:00:09 -07:00
Kiran Venkatappa
f16c6d09f4 qcacmn: Update host WMI service enums with new additions
Update enums in WMI service enums that got introduced in the latest
FW headers.

Change-Id: I46f70ff5eb41aee15f8cac784cc85201a3362fca
CRs-Fixed: 2045146
2017-05-10 15:20:29 +05:30
Govind Singh
e3331b5b3c qcacmn: Remove ol_defines dependency from WMI layer
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
2017-04-28 07:42:08 -07:00
Sathish Kumar
52cfdcf001 qcacmn: Add support for WMI_COEX_CONFIG command
Add support in WMI layer to configure coex config command for
lithium based chipsets

CRs-Fixed: 2037499
Change-Id: Ib83407524bd3b5cdad28f73a6ccc36d4a0271779
2017-04-26 06:46:29 -07:00
Padma, Santhosh Kumar
6d2e862c77 qcacmn: Get CCA from firmware
Requirement is to get CCA from frmware when connection fails due to
assoc/auth/probe response timeout. These are common changes to get
CCA from firmware.

Change-Id: I062343ed065d7b0c38b9e3b24ecfa9851b9b1537
CRs-Fixed: 2031843
2017-04-25 05:56:02 -07:00
Dustin Brown
47bd625a19 qcacmn: Change max queued WMI commands to 1024
Increase the maximum number of queued WMI commands to 1024, up from 256.

Change-Id: I79e2f0d835bf9e91bfa4e8ec3eed8391b9540c1b
CRs-Fixed: 2036638
2017-04-25 01:52:32 -07:00
Arif Hussain
83e1488870 qcacmn: extract dfs events
Add support to extract dfs events.

Change-Id: I2889d419954dec8ed3714dd0fd7383f3a3586f6e
CRs-Fixed: 2017481
2017-04-22 10:55:23 -07:00
Frank Liu
ab9f0d1b3f qcacmn: WMI changes for TDLS component
Update TDLS related wmi change

Change-Id: I3fe2745ff7fa910a8ffb6fa95256d8a10a7237a3
CRs-Fixed: 2011330
2017-04-20 00:04:37 -07:00
Arif Hussain
aa1b2abfb3 qcacmn: Add support to extract dfs events
Add support to extract dfs events.

Change-Id: I3e83d05f6e4eefb0784b54cd908ec84beb04294c
CRs-Fixed: 2017481
2017-04-17 18:47:24 -07:00
Ravi Kumar Bokka
99f07621b4 qcacmn: Enable HW broadcast filter
Add ini to param to enable/disable HW filter for bc
(except arp) frame.

Change-Id: Ibd8a0543937c2ca749851ba1902c8961b500efa4
CRs-Fixed: 1113550
2017-04-17 05:28:17 -07:00
Vikram Kandukuri
d4aa277e8b qcacmn: Static and Dynamic chain mask selection
Host support for Static and Dynamic chain mask selection.
parse new TLVs from ext service ready,copy tables to
wlan_objmgr_soc object.

CRs-Fixed: 2016643.
Change-Id: Ia4735eb4c7774c381df01f56696e8c86fc6c56ab
2017-04-17 02:13:26 -07:00
Krishna Rao
5ded5dd1bd qcacmn: Populate DFS_CFREQ2 and BW-NSS mapping
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
2017-04-13 18:37:50 -07:00
Rajeev Kumar
bc62343617 qcacmn: Migrate WMI from shared work queue to dedicated work queue
WMI RX event processing is very critical for WLAN driver and today
we are using kernel's shared event work queue. Shared event work
queue is used by many drivers and if any work submitted in shared
work queue takes longer time to finish then it directly impacts WLAN
control path processing.

Define a dedicated work queue for WMI RX event processing and use
it for WMI RX event handling.

Change-Id: I8ee6ca5b4b20c3357d46f8b56943078a0a76977f
CRs-Fixed: 2029775
2017-04-11 11:04:40 -07:00
Abhishek Singh
2c3ce9dbb8 qcacmn: Add WMI changes for PNO for converged scan
Add WMI changes for PNO for converged scan

Change-Id: I8133030502f63f458164f705aa88ebadf446ae60
CRs-Fixed: 1095299
2017-04-11 11:04:34 -07:00
Kiran Venkatappa
fa59ee7936 qcacmn: Add WMI APIs to send and extract offchan data tx
Add API to send offchan data TX command and extract API to get offchan
data tx completion params.

Change-Id: I1e04d50810e43cec2c700476581e518b394db582
2017-04-11 11:04:32 -07:00
Dustin Brown
536064a37e qcacmn: Implement WMI/Credit History log print APIs
Create output agnostic log print APIs for WMI and Credit History to
enhance the debugging experience.

Change-Id: Ie89a9cb3b54c373ac2610d62003e940da17696d8
CRs-Fixed: 2028762
2017-04-11 11:04:24 -07:00
Sathish Kumar
476d33a2b1 qcacmn: Add TLV implementations for WIN specific WMI CMDs
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
2017-04-04 01:24:08 -07:00
Kris Muthusamy
bfc37942a5 qcacmn: 11ax Draft1.0 wmi changes
11ax WMI changes to populate HE rates

Change-Id: Id303dab1c7ec47ebc31fc685ad0b50ddfdf4bc12
CRs-Fixed: 2023667
2017-04-03 13:47:10 -07:00
Soumya Bhat
169eff157d qcacmn: Add new WMI API to unregister event handler
Add new API to unregister event handler to allow
converged components to move to common eventid space.

Change-Id: I97f096ff3e36bc7923718498c535fb6c3c50e7e7
CRs-Fixed: 2023157
2017-03-29 16:06:01 -07:00
Anish Nataraj
6b38734120 qcacmn: Add multiradio support for SCAN
Modify first argument of wmi_unified_cmd_send to send
wmi_handle per pdev

Change-Id: Ifbb9cf207c34bcb21cb01492a00b107d62284218
2017-03-29 09:09:34 -07:00
Om Prakash Tripathi
89db19b5b7 qcacmn: Enable converged scan component
Update WMI layer to adopt to converged scan module
and enable converged scan component init/deinit

Change-Id: I4f9da95f90f737ac8bdcaa54f9eb4e154f37d3de
CRs-Fixed: 1095299
2017-03-29 09:09:24 -07:00
Baila, Shashikala Prabhu
af7fd90129 qcacmn: Re-factor processing of WMI_REG_CHAN_LIST_CC_EVENTID
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
2017-03-27 06:07:47 -07:00
Soumya Bhat
8b71edb772 qcacmn: Add new WMI API
Add new API to allow components to move to common eventid space.

Change-Id: Ieab2019a0fb96817833266236073cffb3aaeab2c
CRs-Fixed: 2023157
2017-03-24 06:21:06 -07:00
Krishna Kumaar Natarajan
2a22561d0c qcacmn: [11AX] Add changes for 11ax peer association
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
2017-03-23 12:15:32 -07:00
Wu Gao
41a58394a7 qcacmn: WMI changes for P2P component
Update WMI layer to adopt to converged P2P component.

Change-Id: Ia031476f7ee6071d2e15010fc3f7c998df9995dd
CRs-Fixed: 2011217
2017-03-22 19:21:34 -07:00