Commit Graph

117 Commits

Author SHA1 Message Date
Tushnim Bhattacharyya
7624a18def qcacld-3.0: disallow concurrency with 160Mhz or 80+80Mhz
When there is a VHT160 or VHT80+80 connection present disallow
concurrency as no other connection is supported in VHT160/80+80
mode.

Change-Id: I6ec6fe3e7883cef34d141ee78311c1d8a0966208
CRs-Fixed: 996928
2016-04-20 22:23:34 -07:00
Abhishek Singh
a246809e2c qcacld-3.0: Init the thread resume wait event before setting suspend event
qcacld-2.0 to qcacld-3.0 propagation

While suspending threads suspend complete event is set before
resume wait event is initialized.

In case resume is followed by suspend there might arise a condition
where resume wait event is set even before its initialization.
Thus after initializing the wait event thread will keep on waiting
on the event and thus get stuck.

To avoid this initialize the thread resume wait event before
setting the suspend event.

Change-Id: Iaffacd23f363f386fbaef4de066784cfd4d9e139
CRs-Fixed: 972287
2016-04-20 22:22:40 -07:00
Rajeev Kumar
249ea8d5c7 qcacld-3.0: Add support for STA+SAP DFS concurrency
Provide support for STA+SAP DFS concurrency feature
Here is the brief description on the changes,
1) if STA came up first on DFS channel and SAP is coming up second
   then as per concurrency rule SAP can't come up on DFS channel,
   it can come up on 5G-non-dfs or 2G band.
2) if SAP came up first on DFS channel and STA is coming up second
   then as per concurrency rule SAP has to move to non-dfs channel
   by using channel switch announcement IE. Once SAP moves to
   non-dfs channel then and then STA can continue on connection.
3) if there is any STA connection alive then SAP/GO's PCL shouldn't
   contain any DFS channel in the list.

Change-Id: Iba1a64e66fbf5182152e9d2e15041923b8528c31
CRs-Fixed: 992939
2016-04-20 22:20:48 -07:00
Rajeev Kumar
43e25b17d1 qcacld-3.0: Fix layer violation in SME
Some of the SME APIs are using lim APIs, remove those violation.

CRs-Fixed: 992939
Change-Id: I0f29b5ab3a4c5df9881b5af556d155a22acfd392
2016-04-20 22:20:44 -07:00
Rajeev Kumar
a3f6c2dc48 qcacld-3.0: Add API to set the bonded channel parameters
Add API to CDS to add bonded channel parameters. Given an
operating channel and channel width, the API would verify and
populate the center frequencies.

Change-Id: Ib2c5029cda567308210b028b628d96419e3fd05c
CRs-Fixed: 988355
2016-04-20 22:19:48 -07:00
Kiran Kumar Lokere
80897d86c9 qcacld-3.0: Use pcl channel list for sap channel selection
Use the pcl channel list to do random channel selection when the
radar is detected.

Change-Id: I286bf447a398bf1d9a7a1493ac4bbfd9847de148
CRs-Fixed: 988325
2016-04-17 18:11:29 -07:00
Kiran Kumar Lokere
13644679a2 qcacld-3.0: Move the channel width enum to cds
Currently channel width has different enum values in
different modules. Move the channel width enum definition
to CDS to maintain single channel width enum value in
the driver

Change-Id: I6a46d0c02546263080a15a3ec7c52486fc51e98e
CRs-Fixed: 983914
2016-04-17 18:06:59 -07:00
Amar Singhal
a7bb01b460 qcacld-3.0: Regdomain kernel-doc and other changes
Add kernel documentation for regdomain data structures. Also
rename some of the data structures to better names.

Change-Id: Iae26079ae8a7f06e2670594694ae36c2c2a0a524
CRs-Fixed: 961806
2016-04-17 18:06:17 -07:00
Amar Singhal
c3c490cd0f qcacld-3.0: Correct the country code definitions
Correct the definitions from country code to regulatory domains
mappings. Add the missing countries to regulatory domain mappings.
Also streamline the definitions of regulatory domain pairs and
regulatory domains.

Change-Id: I0ff5a13425c6b5d4671864745f6b44a0d16b78aa
CRs-Fixed: 961806
2016-04-17 18:06:10 -07:00
Amar Singhal
0f5dc48125 qcacld-3.0: Add kernel-doc for regdomain functions
Add kernel documentation for regdomain functions and data structures.

Change-Id: I438c81892216354d9fbda6947fabba031ddcc854
CRs-Fixed: 961806
2016-04-17 18:06:00 -07:00
Amar Singhal
2299511d9f qcacld-3.0: Make regdomain code linux style
Fix the data structures of regdomain code; to make it linux style.

Change-Id: If8123370f4ce370adba1a49636b42449c2644144
CRs-Fixed: 961806
2016-04-17 18:05:45 -07:00
Naveen Rawat
3b6068c457 qcacld-3.0: Remove the file cds_regdomain_common.h
Data structures defined in cds_regdomain_common.h are similar
to those defined in cds_regdomain.h. Therefore remove the file.

Change-Id: I929b03058e9441e4a652314789cf91dbd94d0329
CRs-Fixed: 961806
2016-04-17 18:05:22 -07:00
Krunal Soni
a368784fee qcacld-3.0: (part-4)Replace enum device_mode to tQDF_ADAPTER_MODE
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.

Change-Id: Iaa945f64dd9f90f6abc0b1716b176fce0971ba71
CRs-Fixed: 985273
2016-04-17 18:01:39 -07:00
Krunal Soni
276241e3d2 qcacld-3.0: (part-1)Replace enum device_mode to tQDF_ADAPTER_MODE
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.

Change-Id: Ie41244becec39fe1f5f24a721f5b24e137e7fd26
CRs-Fixed: 985273
2016-04-17 18:01:12 -07:00
Peng Xu
242002c759 qcacld-3.0: Increase connection update timeout value
Current connection update timeout value for DBS concurrency case
is 500ms, which is not long enough as there are other WMI messages
need to be processed by master thread. Increase the timeout value
to 1000ms to ensure the set hardware mode WMI message has enough
time to be processed

Change-Id: Idecf2e830a7a37258787eb4f8c5f117cbe2a825b
CRs-fixed: 983174
2016-04-17 17:55:53 -07:00
Chandrasekaran Manishekar
cde33d77d6 qcacld-3.0: Send channel switch request instead of doing SAP restart
Send channel switch request instead of performing SAP restart when
doing a MCC to SCC switch. This is controlled using the existing INI
item 'gWlanMccToSccSwitchMode'. The new value of '3' will perform
this channel change by sending (E)/CSA whereas the old value of '2'
can still be used to do a channel change by doing SAP restart

Change-Id: I79e7317219503de0a9957940f3cf7a4e91c7a521
CRs-Fixed: 986202
2016-04-17 17:55:17 -07:00
Chandrasekaran Manishekar
068e25eeb8 qcacld-3.0: Enable FEATURE_WLAN_MCC_TO_SCC_SWITCH flag in the driver
Enable feature flag FEATURE_WLAN_MCC_TO_SCC_SWITCH in the Kbuild to
make use of the MCC to SCC switch feature. The resulting errors in
compilation are fixed along with some enhancement in the debug logs
in this feature path

Change-Id: I0ddb2f371c28ade6d8fc9ea12ba104a99394827f
CRs-Fixed: 986079
2016-04-17 17:54:28 -07:00
Amar Singhal
30193a7fa4 qcacld-3.0: Remove obsolete regdomain structures
Remove obsolete regdomain data structures. Also remove the obsolete
fields from REG_DOMAIN and REG_DMN_PAIR_MAPPING data structures.

Change-Id: I1ff906571dfadf9cf6a4dc963d8eef62acc5f6b5
CRs-Fixed: 961806
2016-04-17 17:05:13 -07:00
Amar Singhal
c1f9c1af05 qcacld-3.0: Remove sub-ctl codes.
Firmware does not require the sub-ctl codes from the host. Therefore,
remove the calculation of sub-ctl codes from the host APIs. Also
remove the associated data structures.

Change-Id: Ib5d5f074b45f2dae2bb9a7c172ee7f8750ad5355
CRs-Fixed: 961806
2016-04-17 17:05:12 -07:00
Amar Singhal
76b4132090 qcacld-3.0: Define correct country codes
Define the correct country codes per the data published by the
regulatory compliance team.

Change-Id: I2474acb2657ba1e4a0f62aef013df296aebfcb53
CRs-Fixed: 961806
2016-04-17 17:05:12 -07:00
Chandrasekaran, Manishekar
6e9aa1b9cd qcacld-3.0: Avoid message handler of netlink APIs to be OS agnostic
Avoid message handler of netlink APIs to be OS agnostic. Retain the
message handler to get the concurrency matrix in HDD.

Change-Id: Ieb121512e3d8ae15678da46ed8425c07fd003f69
CRs-Fixed: 946161
2016-04-17 17:05:12 -07:00
Amar Singhal
b8d4f1575c qcacld-3.0: Change channel nomenclature
Change channel nomenclature to more appropriate names.

Change-Id: If7fcd832a35563896534bab425ca05b528e1de93
CRs-Fixed: 856727
2016-04-13 21:51:25 -07:00
Amar Singhal
7ccdc4ff47 qcacld-3.0: Remove 40mhz bonded channel from driver
40 mhz channel array is redundant and does not give the
correct channel bonding information. Therefore remove
these channels, bonding array, and its associated usage.

Change-Id: I913fb97cdc913b1a027d21b0df526dfd5cd5902f
CRs-Fixed: 856727
2016-04-13 21:51:25 -07:00
Amar Singhal
e4f28eedfd qcacld-3.0: Re-arrange regulatory code.
Re-arrange core regulatory code between HDD and CDS
layers. Move the OS dependent code to HDD.

Change-Id: I8ac26a48d0e8d613b2f6c23fd764e5cf94365c39
CRs-Fixed: 856727
2016-04-13 21:51:25 -07:00
Ryan Hsu
8ecb0fa07a qcacld-3.0: Clean up cfg80211 del_station for Kernel upgrade
Commit: 89c771e ("cfg80211: Convert del_station() callback to
use a param struct")
Commit: 9885686 ("cfg80211: Specify frame and reason code for
NL80211_CMD_DEL_STATION")

These two commits have been merged in Kernel 3.19.

Add a kernel version macro to support this.
And refactor the inclusion of CFG80211_DEL_STA_V2 by adding a
helper function to clean it up, that way we can keep the flag
only in wlan_hdd_cfg80211.h/c as this is the cfg80211 interface
related changes.

Change-Id: I811065b7fa1cf2aee68cfe63c5cf78c2270e5af7
CRs-fixed: 963651
2016-04-13 21:51:24 -07:00
Chandrasekaran, Manishekar
ce2172e9ed qcacld-3.0: Fix reason code used during Nss update request
Fix the reason code used during Nss update request. If
there is MCC upgrade or DBS downgrade, the hw mode change
request internally send the Nss update request. But, the
current implementation uses the same fixed reason code
during Nss update request and due to this on receiving the
hw mode change response, the expected callback function is
not getting invoked. Fix this by passing the right reason
code during Nss update request.

CRs-Fixed: 978663
Change-Id: I706cb9a86d66d8601ec87f560459604e562f6037
2016-04-13 21:51:23 -07:00
Chandrasekaran, Manishekar
41ab6b0036 qcacld-3.0: Fix incorrect value of Rx Nss in operating mode field
Fix the incorrect value of receive spatial streams added for use
in operating mode field. The Operating Mode field is present in
the Operating Mode Notification frame and Operating Mode
Notification element. These are used to notify STAs that the
transmitting STA is changing its operating channel width, the
maximum number of spatial streams it can receive, or both.

As per the 802.11ac spec:
- If the Rx NSS Type subfield is 0, indicates the maximum number
of spatial streams that the STA can receive.
- If the Rx NSS Type subfield is 1, indicates the maximum number of
spatial streams that the STA can receive as a beamformee in an SU
PPDU using a beamforming steering matrix derived from a VHT
Compressed Beamforming report with Feedback Type subfield
indicating MU in the corresponding VHT Compressed Beamforming
frame sent by the STA.

Set to 0 for Nss = 1
Set to 1 for Nss = 2
...
Set to 7 for Nss = 8

Change-Id: I60cb7259df3986c0356666a357b8a4ef575b7ca4
CRs-Fixed: 973411
2016-04-13 21:51:23 -07:00
Krunal Soni
ee57247afe qcacld-3.0: Fix follow-up comments for csa changes in STA/CLI case
Move cdf/cds module related operation from
lim_handle_hw_mode_change_on_csa to cdf_handle_hw_mode_change_on_csa
to keep majority of cdf/cds operation in one place.

Change-Id: I5af9ee941f8430be49cf2e467f9eac77dc09dde4
CRs-Fixed: 972184
2016-04-13 21:51:23 -07:00
Chandrasekaran, Manishekar
5c19dc5f8e qcacld-3.0: Set hw mode during channel switch in STA/P2P-CLI case
Set the hw mode, if needed, during channel switch in STA and
P2P-CLI scenario. The STA/P2P-CLI on receiving the channel change
event may need to do a hw mode change to get the best out of the
hw capabilities.

e.g.1, In a STA+SAP concurrency, the STA and SAP are doing SCC on
channel 6. When the STA interface receives a channel event for
channel 36, it is better the driver moves to a DBS scenario.

e.g.2, In a STA+SAP concurrency, the STA is on channel 6 and the
SAP is on channel 36. When the STA interface receives a channel
event for channel 36, it is better the driver moves from a DBS
scenario to a SCC scenario.

For MCC upgrade, the following steps are taken
1. Opportunistic timer is started
2. vdev restart is initiated on the new channel
3. PM will check if MCC upgrade can be done on timer expiry

For DBS downgrade, the following steps are taken
1. PM will initiate HW mode change to DBS right away
2. vdev restart is initiated on the new channel

Change-Id: I202842bf28c3117e8cc91954cdfd3b39a0062f4e
CRs-Fixed: 972184
2016-04-13 21:51:23 -07:00
Houston Hoffman
c7c72a8cc9 qcacld-3.0: Prevent runtime suspend when recovery initiated
qcacld-2.0 to qcacld-3.0 propagation

When self recovery initiated, CRASH_INJECT command is sent to
firmware. If firmware crash doesn't reach the host in time then
RuntimePM may kick in and try to suspend the PCIe link. At this
time, firmware might already been crashed just that host missed
the interrupt. Add the logic to prevent the Runtime suspend when
initiating the recovery so that host driver doesn't attempt the
suspend which may not go through and cause stability issues.

Change-Id: Ie8d5fc6aa08e4864fa5f03119c25037f5aeb5cec
CRs-fixed: 924538
2016-04-13 21:51:23 -07:00
Krunal Soni
8c37e32104 qcacld-3.0: Fix to make common change intf api for ibss/sta/p2pcli
Current code is using seperate change interface for IBSS and
STA/P2PCLI.

Fix the API such that IBSS/STA/P2PCLI all can use same API.

Change-Id: I7a1d9fa3ef42091fcb7f71d95b604e3dceb8da50
CRs-Fixed: 973626
2016-04-13 21:51:22 -07:00
Chandrasekaran, Manishekar
ce7ab08669 qcacld-3.0: Update the policy manager table during channel switch
Update the policy manager table during channel switch in case of
STA/CLI/SAP/P2P-GO mode. The vdev (re)start response carries the
updated vdev parameters such as the new MAC to which the vdev
connection moved to etc.

Change-Id: I55a56acdba8234e09d1439698b2b13751d4e9b2d
CRs-Fixed: 970794
2016-04-13 17:58:16 -07:00
Chandrasekaran, Manishekar
e716c40025 qcacld-3.0: Set hw mode during channel switch in SAP/P2P-GO case
Set the hw mode, if needed, during channel switch in SAP and
P2P-GO scenario.

Change-Id: Icef31277465b3a298695ccefb856d9cad8a16108
CRs-Fixed: 969307
2016-04-13 17:58:16 -07:00
Chandrasekaran, Manishekar
6639d325cb qcacld-3.0: Move DBS opportunistic timer out of HDD context
Move the DBS opportunistic timer out, from the HDD context
to the CDS context.

Change-Id: I57cb3010bc1ba4ce3736edc6c4c1f4c32f226144
CRs-Fixed: 970163
2016-04-13 17:58:16 -07:00
Dhanashri Atre
b08959a747 qcacld-4.0: Data path changes to use converged APIs (Part 4)
Changes in the data path to use the converged MCL specific APIs.

Change-Id: Ib6ae1917a9678dcd735b81e3aa83d086406ac404
CRs-Fixed: 994638
2016-04-01 16:09:57 -07:00
Dhanashri Atre
12a0839cd6 qcacld-3.0: Data path changes to use converged APIs (Part 1)
Change the data path and external modules to use the new
converged common data path APIs.

Change-Id: Ifb48178efd012b6ad9ea6f6d5230d0a809922b1c
CRs-Fixed: 994638
2016-04-01 15:46:10 -07:00
Yue Ma
1e11d79646 qcacld-3.0: Remove CDS related functions in HTC
Update runtime PM APIs and HTC connection mode parameter
accordingly.

Change-Id: I2f54933b90aaed233042c113d246fae4726f5707
CRs-fixed: 982024
2016-04-01 15:24:33 -07:00
Komal Seelam
1aac198ff8 qcacld-3.0: Rename hif_callbacks and fix typos
Rename hif_callbacks to hif_driver_state_callbacks and remove
function pointer for monotonic API and fix some minor typos.

Change-Id: Iae2326e26b58a00e4cc197104b31aca36d569a8e
CRs-Fixed: 967765
2016-03-31 13:30:50 -07:00
Anurag Chouhan
ffaf220142 qcacld-3.0: Add CDS specific MC timer
Add MC timer API's in CDS.

Change-Id: Idbb10f7d2a00ad8e4620b07275c610d21f699999
CRs-Fixed: 981188
2016-03-28 03:48:24 -07:00
Houston Hoffman
ee9990f139 qcacld-3.0: Remove htc_set_target_to_sleep
Hif will take care of allowing target sleep after driver load.

Change-Id: I3def052f4c14d843e1f8eb8f261f11306958c0a7
CRs-Fixed: 986480
2016-03-24 11:58:44 -07:00
Anurag Chouhan
f04e84f24a qcacld-3.0: Add qdf references in place of cdf
Replace CDF references with QDF references.

Change-Id: Ifb4571174719b5fce61dd305545d05628265f317
CRs-Fixed: 981188
2016-03-24 11:58:26 -07:00
Nirav Shah
cbc6d72570 qcacld-3.0: Update driver to use QDF NBUF APIs(1/2)
Update driver to use QDF NBUF APIs

Change-Id: I4409b6c046de1221b57baed45088d5f3b898b565
CRs-Fixed: 981188
2016-03-24 11:58:23 -07:00
Anurag Chouhan
600c3a00be qcacld-3.0: Add QDF mem API's
Replace CDF mem API's with QDF mem API's

Change-Id: Icf247b4dc5b26f4b960dcb98e323b096c1d6076c
CRs-Fixed: 981188
2016-03-24 11:58:16 -07:00
Anurag Chouhan
df2b26883d qcacld-3.0: Fix compilation issues after rebase
Remove the compilation issues for references to cdf after rebase

Change-Id: Ia39c5c72fe5c95f9a91d5f6967ea60904b46f756
CRs-Fixed: 981188
2016-03-24 11:58:14 -07:00
Anurag Chouhan
b2dc16fefe qcacld-3.0: Add QDF trace API's
Replace CDF trace API's with QDF trace API's.

Change-Id: I5b99dce73297f7de8f0755fa0b47dc3f84c78747
CRs-Fixed: 981188
2016-03-24 11:58:11 -07:00
Anurag Chouhan
210db07644 qcacld-3.0: Add QDF MC timer API's
Replace CDF MC timer API's with QDF MC timer API's

Change-Id: If18069e9cb8dbd24c5cdc8bd8def6932f55c0168
CRs-Fixed: 981188
2016-03-24 11:58:08 -07:00
Anurag Chouhan
c554842327 qcacld-3.0: Add QDF utils
Replace CDF utils with QDF utils.

Change-Id: Ib6b3ad56b3268b1be438f3204f91d995f8bb3900
CRs-Fixed: 981188
2016-03-24 11:58:03 -07:00
Anurag Chouhan
a37b5b783a qcacld-3.0: Add QDF lock API's
Replace CDF lock API's with QDF lock API's.

Change-Id: I7c4a59920e17915f077c87457c513e763738c062
CRs-Fixed: 981188
2016-03-24 11:57:57 -07:00
Anurag Chouhan
6d760664ee qcacld-3.0: Add QDF types
Replace CDF types with QDF types

Change-Id: Idd6e65b148efb54f22d6951572957f1c6166465b
CRs-Fixed: 981188
2016-03-24 11:57:54 -07:00
Anurag Chouhan
512c7d5fca qcacld-3.0: Add QDF threads API's
Replace CDF threads API's with QDF threads API's

Change-Id: Ic20e6734f85b37ed11580ff3ed7e1a6de1356afb
CRs-Fixed: 981188
2016-03-24 11:57:49 -07:00