Commit Graph

222 Commits

Author SHA1 Message Date
Manishekar Chandrasekaran
cb0521722b qcacld-3.0: Modify set hw mode sequence on channel switch scenarios
Modify the set hardware mode command sequence during channel switch
in the case of SAP/P2P-GO and STA/P2P-CLI as per the latest FW
requirements. This is primarily to accommodate the time take for
calibration during hardware mode change which could lead to
momentary data stalls.

The new sequence is as follows:
    1. Send (E)CSA
    2. Do vdev restart/vdev up
    3. For DBS downgrade:
       a. PM will initiate HW mode change to DBS right away
    4. For single MAC upgrade:
       a. Opportunistic timer is started, PM will check if MCC
          upgrade can be done on timer expiry

The old sequence is as follows:
    For MCC upgrade:
        1. Send (E)CSA
        2. Opportunistic timer is started
        3. vdev restart is initiated on the new channel
        4. PM will check if MCC upgrade can be done on timer expiry
    For single mac upgrade:
        1. Send (E)CSA
        2. PM will initiate HW mode change to DBS right away
        3. vdev restart is initiated on the new channel

Change-Id: I4bce2ee176cae43b6a46c47216ed7ab47a82a54c
CRs-Fixed: 1006992
2016-05-04 21:17:33 -07:00
Manishekar Chandrasekaran
d96403461f qcacld-3.0: Replace soc level references of set hw request and response
Replace the obsolete WMI command WMI_SOC_SET_HW_MODE_CMDID with
WMI_PDEV_SET_HW_MODE_CMDID and event WMI_SOC_SET_HW_MODE_RESP_EVENTID
with WMI_PDEV_SET_HW_MODE_RESP_EVENTID respectively. These new WMI
commands and events additionally carry the pdev id and all mac id
references are replaced with pdev id.

Change-Id: If2a3f93dcd1947eedce8d4eac8ed936166f7e078
CRs-Fixed: 989502
2016-05-04 21:14:01 -07:00
Manikandan Mohan
976e756f56 qcacld-3.0: Configure tsf gpio pin
qcacld-2.0 to qcacld-3.0 propagation

Add configuration of gpio pin used for TSF. FW shall toggle
this gpio when receive capture/get tsf cmd.

Change-Id: I442f2de3af4f3946a20bf3f4a9d8c9b285aa7a7c
CRs-Fixed: 817527
2016-05-02 23:27:52 -07:00
Manikandan Mohan
dcc21ba7f6 qcacld-3.0: get tsf from fw
qcacld-2.0 to qcacld-3.0 propagation

Get tsf from fw. Provide ioctl interface cap_tsf/get_tsf.
Driver issue wmi cmd to fw to realize capture/get.
It can be used in station and softap mode. For sta, getting
tsf from connected ap. For softap, it will generate tsf by-
self

Change-Id: I00d30882bce2f49ee3de3fa189e094c04c0d9943
CRs-Fixed: 817527
2016-05-02 23:27:49 -07:00
Archana Ramachandran
5482d6a4d0 qcacld-3.0: Fix STA sending SMPS force mode when connected to 1x1 AP
qcacld-2.0 to qcacld-3.0 propagation

Peer supported NSS should be updated based on the presence of HT
and VHT capabilities in the beacon/probe response IE from the AP.
Also, update session supported NSS during reassociation. Otherwise,
station will end up sending SMPS action frames to AP which only
supports 1x1 mode.

CRs-Fixed: 979545
Change-Id: Ie2dbfbb577f08c5090101e1330184e72a9f6cd46
2016-04-27 17:00:16 -07:00
Varun Reddy Yeturu
28d0312dfa qcacld-3.0: LFR3: Fix ESE Regression
Remove WLAN_FEATURE_NEIGHBOR_ROAMING which is not defined
in the build file.
Also fix the regression that has been introduced by the
change I857f9c16eb73a4b0f72e0a622be47ab756fb70f4.

CRs-Fixed: 1003135
Change-Id: I741fd3cf69a05c346e1bc11498f93e928e5c1244
2016-04-27 17:00:11 -07:00
Manishekar Chandrasekaran
7009f25399 qcacld-3.0: Replace WMI_SOC_SET_PCL_CMDID with WMI_PDEV_SET_PCL_CMDID
Replace the obsolete WMI command WMI_SOC_SET_PCL_CMDID with
WMI_PDEV_SET_PCL_CMDID. WMI_PDEV_SET_PCL_CMDID carries the weightage
for all the channels (preferred and non-preferred) in the same order
and length as that of the command WMI_SCAN_CHAN_LIST_CMDID. This is
in contrast to the command WMI_SOC_SET_PCL_CMDID which carries only
the preferred channel list.

Change-Id: I040f4307491d3242d2e9409dbbe8005c4b307bf5
CRs-Fixed: 989502
2016-04-25 22:55:25 -07:00
Rajeev Kumar
94c9b45b3d qcacld-3.0: Pass IBSS peer mac address received from target
Propagation from qcacld-2.0 to qcacld-3.0

Pass mac address received from target in IBSS peer info event to
user space. In addition remove pronto specific rate conversion
logic as ROME FW returns data rate in Mbps directly

Change-Id: Id89e9f357831f242c43fc8ce121de18a3180e422
CRs-Fixed: 777960
2016-04-20 22:24:32 -07:00
Varun Reddy Yeturu
f907f91deb qcacld-3.0: Reduce packet loss while roaming
As soon as the firmware is done with the roaming scan and about to
start hand-off, it will notify the host that the roaming is about
to start using WMI_ROAM_NOTIF_ROAM_START. The host driver will
then notify the upper layers to stop sending the packets and
the host later informs them as part of roam synch propagation
after roaming is done to start sending the packets.

Once the firmware sends the notification and if it fails to roam
for some reason, then it will send another notification
WMI_ROAM_NOTIF_ROAM_ABORT to let the host know the upper layers
to resume sending the packets again.

Introduce an operation code for the CSR roaming callback to determine
what it needs to do when called by the lower layers.

CRs-Fixed: 996949
Change-Id: I674262b95f1781747b34fb675ad179952a8ae4d1
2016-04-20 22:24:17 -07:00
Varun Reddy Yeturu
0c1a00baca qcacld-3.0: Enhancement to RRM measurement
qcacld-2.0 to qcacld-3.0 propagation

Before sending the 11k measurement report, check if there is a
valid scan result or if the measurement is done to send out a
report or cleanup the RRM state machine.

CRs-Fixed: 982133
Change-Id: I3f98450f3d139dd7a7c1548dc80070cf780ada88
2016-04-20 22:24:10 -07:00
Varun Reddy Yeturu
37c20b5419 qcacld-3.0: Always send the Beacon measurement report
qcacld-2.0 to qcacld-3.0 propagation

1) Whenever the beacon request measurement is done, always
send a beacon report despite finding any AP's or not on the
requested channels

2) Send the report always so that it implicitly also cleans up
the RRM context in the LIM and enables to process the
subsequent requests. Otherwise, the cleanup is not done and
RRM processing will be stuck

CRs-Fixed: 982133
Change-Id: I3ce023fbd4aa9d18f8d025a220a5c1d979a555f5
2016-04-20 22:24:04 -07:00
Chandrasekaran, Manishekar
4dd215edaf qcacld-3.0: Fix missing connection info update after hw mode change
Ensure that the vdev to mac mapping, tx and rx spatial stream
parameters are updated in the connection info table as part of set
hardware mode change response for all the possible scenarios.
Currently these parameters are not getting updated during hidden
ssid and channel switch connection update. Due to this the
connection info table is not reflecting the correct spatial streams
for the above mentioned scenarios, after hw mode change.

Change-Id: I42bbb40a6c99b68aa2038d3e5357580e616c76c9
CRs-Fixed: 996090
2016-04-20 22:23:54 -07:00
Gupta, Kapil
4cb1d7d032 qcacld-3.0: Add support for beacon filtering
qcacld-2.0 to qcacld-3.0 propagation

In case of DFS channels and EBT is disabled, beacons are
forwarded to host in every 50msecs which increase power consumption.
Add the changes to set beacon filter once DUT connect to AP.

CRs-Fixed: 973958
Change-Id: I1a9379eacbd13f8dc7fae08923cd91f087d1b2b2
2016-04-20 22:23:23 -07:00
Poddar, Siddarth
8390502e2e qcacld-3.0: add ini support for throttling period duty cycles
qcacld-2.0 to qcacld-3.0 propagation

Provide support to configure duty cycle by adding ini item for
different level duty cycle.

CRs-Fixed: 990798
Change-Id: I95e4f4af669fd50c5b9fc10ffc61fa5d447b5bcf
2016-04-20 22:23:19 -07:00
Krishna Kumaar Natarajan
ee4dbedf8f qcacld-3.0: Increase maximum size of oem data request
Increase maximum size of oem data request from 280 to 500. This
change set also remove the following unused macros in UMAC
- OEM_DATA_REQ_SIZE
- OEM_DATA_RSP_SIZE

Change-Id: I768da4dd03c2de618c528cb72b86a5df72dd2efe
CRs-Fixed: 997085
2016-04-20 22:23:11 -07:00
Abhishek Singh
165bc60022 qcacld-3.0: Add INI param to ignore HT op mode of peer AP
qcacld-2.0 to qcacld-3.0 propagation

Currently even if peer AP is in Legacy mode, driver can enable
11g protection, even though there is no 11g AP in vicinity.

As a part of fix, add an INI param which will enable 11g
protection only when there is a 11g AP in vicinity.

Change-Id: Ic76e6070b02f92ef33934a0e5158fa4ef6c3e45b
CRs-Fixed: 897755
2016-04-20 22:22:35 -07:00
Krishna Kumaar Natarajan
a96ee0f6ee qcacld-3.0: Fix incorrect buffer handling in OEM response handlers
qcacld-2.0 to qcacld-3.0 propagation.

Fix incorrect buffer handling in OEM response handlers.

This change set will fix,
1. Add appropriate check on the response length before malloc.
2. Add correct check for malloc failure.
3. Copy correct number of bytes into response buffer.

Change-Id: I621e391b9cdadbf01c98fdbf3ac1979373bb963c
CRs-Fixed: 996236
2016-04-20 22:21:42 -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
c9a50e769f qcacld-3.0: (part-4) Remove obsoleted BTAMP feature
Remove all the code written to support this feature as this feature
has been obsoleted for all next gen projects.

Change-Id: I469841f719ddb43710724013e4b669560f0a008b
CRs-Fixed: 992930
2016-04-20 22:20:32 -07:00
Rajeev Kumar
b983d86630 qcacld-3.0: Remove csr_neighbor_roam_create_chan_list_from_neighbor_report
Remove function csr_neighbor_roam_create_chan_list_from_neighbor_report,
since it is not being used in LFR2 and up code.

Change-Id: I5c54aa0ef2704c5d090e56c6ec65e55639371204
CRs-Fixed: 972906
2016-04-20 22:19:52 -07:00
Sandeep Puligilla
1ed781ff3a qcacld-3.0: Increase Scan timeout for emulation platform
Increase scan timeout for emulation platform
from 30secs to 600secs.

Change-Id: I5ed28990917f1262263fc05bd997b51d3cc65bbd
CRs-Fixed: 990987
2016-04-17 18:12:54 -07:00
Sreelakshmi Konamki
86d79203a7 qcacld-3.0: Fix Suspicious pointer dereference before NULL check
qcacld-2.0 to qcacld-3.0 propagation

Fix to add NULL check before dereference of pointer

Change-Id: I520aca1fc46cf3fbb30d2f068f6da43a2b2986e6
CRs-Fixed: 965800
2016-04-17 18:11:58 -07:00
Kiran Kumar Lokere
830ba16663 qcacld-3.0: Enable UAPSD only when device is in power save
Send UAPSD parameters to FW and enable it only if the device is
in power save mode.

Change-Id: I14ecfc8bace7ec15eebe18296355544cdbdf030e
CRs-Fixed: 991119
2016-04-17 18:11:37 -07:00
Varun Reddy Yeturu
bbbbe237f9 qcacld-3.0: Enable compile time enable/disable for roaming
Enable compile time featurization support for both LFR2.0
and LFR3.0 using WLAN_FEATURE_HOST_ROAM and
WLAN_FEATURE_ROAM_OFFLOAD respectively

CRs-Fixed: 978905
Change-Id: Ib5976cd0cd5a6e117a1334bfc73a043e36e25f77
2016-04-17 18:10:33 -07:00
Varun Reddy Yeturu
86459d63ca qcacld-3.0: Isolate roaming related scan functionality
Move the scanning related code which is pertinent to roaming
into a separate file so that any future maintenace would be
easy across different projects

CRs-Fixed: 978905
Change-Id: Ia8c81726eb843d0a5aa89affa89d84d77994932e
2016-04-17 18:10:26 -07:00
Varun Reddy Yeturu
883c4f20f9 qcacld-3.0: Move CSR preauth related code to a separate file
Move the preauthentication related code in the CSR module
into a separate file so that it is easy to maintain
across different projects

CRs-Fixed: 978905
Change-Id: I56e8441f08dec180f080c305ba5c6541302f107c
2016-04-17 18:10:20 -07:00
Varun Reddy Yeturu
d318632e76 qcacld-3.0: Create new function for roaming state transitions
Create a new function csr_neighbor_roam_state_transition to
transition the roaming state and also log it

CRs-Fixed: 978905
Change-Id: Id50d51fe1fa09dc9984ba83fbc01e8d9c7d00ffa
2016-04-17 18:10:15 -07:00
Varun Reddy Yeturu
a66f9c5d71 qcacld-3.0: Remove WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Remove WLAN_FEATURE_ROAM_SCAN_OFFLOAD compile time flag from the code
since this is relevant to roaming (LFR2.0) and always enabled by default.
The flag also does not seem to cover the feature entirely and it does
not make any meaning to only cover this piece of code.

CRs-Fixed: 978905
Change-Id: Ifa393c2733e87fcb34aba3e4f4cdb5f534196537
2016-04-17 18:10:07 -07:00
Varun Reddy Yeturu
0e3989af45 qcacld-3.0: Remove WLAN_VOWIFI_DEBUG and cleanup logging
Feature WLAN_VOWIFI_DEBUG is not defined. Hence remove it.
Also cleanup the logging.

CRs-Fixed: 960105
Change-Id: I76d83d5d5c93aa7e4669a73c0d3300ed5b727bb1
2016-04-17 18:09:24 -07:00
Srinivas Girigowda
18dcf3d532 qcacld-3.0: Remove csr_neighbor_roam_is_ese_assoc()
There are two utility functions to check if the association
is ESE or not. csr_neighbor_roam_is_ese_assoc() and
csr_roam_is_ese_assoc().

Both serves the same purpose, hence remove csr_neighbor_roam_is_ese_assoc()
and use csr_roam_is_ese_assoc().

Change-Id: I857f9c16eb73a4b0f72e0a622be47ab756fb70f4
CRs-Fixed: 950762
2016-04-17 18:07:44 -07:00
Srinivas Girigowda
d0bae5f2dc qcacld-3.0: Remove obsolete csr_flush_roam_scan_roam_channel_list
Remove obsolete csr_flush_roam_scan_roam_channel_list().

Change-Id: I535e4e5ce2c934451e0c94b4da825163138fe3b0
CRs-Fixed: 950762
2016-04-17 18:07:39 -07:00
Srinivas Girigowda
515a9efb36 qcacld-3.0: Remove FEATURE_WLAN_ESE_UPLOAD compile macro
At present and going forward ESE and ESE_UPLOAD will be the
de-facto approach supporting ESE. Hence there is no need of two compile macros
FEATURE_WLAN_ESE and FEATURE_WLAN_ESE_UPLOAD.

Instead Remove FEATURE_WLAN_ESE_UPLOAD and Keep only FEATURE_WLAN_ESE.

Change-Id: If1a04e95211a0d639db7b60a57a6d5f215d26f4e
CRs-Fixed: 950762
2016-04-17 18:07:30 -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
Abhishek Singh
d86d983a20 qcacld-3.0: Remove roam cmd from roam pending list is case of disconnect
qcacld-2.0 to qcacld-3.0 propagation.

If back to back connect and disconnect are issued by supplicant,
disconnect ends up queued at the head of roam/sme pending cmd
queue due to its high priority. Thus sme processes the disconnect
command before the connect command making sme and hdd out of sync.

Now if unload is triggered, with hdd in disconnected state,
disconnect is dropped in hdd. Thus no DEL BSS is sent before
HAL STOP leading to firmware crash.

This change removes the roam connect cmd from roam/sme pending list
when disconnect is issued by supplicant.

Change-Id: I34f192b3d549c6179ddc49bba376dbc007efa2c2
CRs-Fixed: 955178
2016-04-17 18:04:58 -07:00
Naveen Rawat
206e2ac787 qcacld-3.0: Reindent csr_validate_mcc_beacon_interval
This patch is to reindent csr_validate_mcc_beacon_interval

Change-Id: I0e9c420aab7a2f5534e8acc52d09a27693194073
CRs-Fixed: 985273
2016-04-17 18:03:56 -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
Archana Ramachandran
fec2481466 qcacld-3.0: Do not send SMPS force mode on dynamic antenna mode switch
When dynamic antenna selection requests to change the number of
TX/RX chains, the FW chain mask manager will take care of sending
the corresponding SMPS action frames to the AP to put the station
in 1x1 or 2x2 mode. The host driver should only handle setting
the right SMPS mode in the HT capabilities of association
or re-association requests.

CRs-Fixed: 931250
Change-Id: I9bedcc5024a98040f571f730ff084f6fe3e3ad00
2016-04-17 17:05:12 -07:00
Archana Ramachandran
20d2e23fca qcacld-3.0: Enable station SMPS only if the session supported NSS > 1
If HT SMPS is enabled and if the session supported NSS > 1
then include SMPS IE in the HT capabilities of the association
and the reassociation management frame.Enabling SMPS with an AP
whose capability is only 1x1 will result in association/reassociation
request being rejected or an unexpected behavior. Send SMPS force mode
to FW to trigger SMPS action frame only if SMPS is enabled in the
INI. For dynamic antenna switch, the chain mask manager will send
the SMPS action frames.

CRs-Fixed: 931250
Change-Id: Ifff2ef2c8790994a68e676b8bba2fb03c21370d4
2016-04-17 17:05:12 -07:00
Archana Ramachandran
a20ef8127d qcacld-3.0: Dynamic antenna selection request/response messages
Add support to request for antenna mode to FW to switch from
1x1 to 2x2 and vice versa dynamically and process the response
status of whether the request was sent successfully.

Change-Id: Ie4b0b36981423f9325c48c7ebad445d5cc1f2a21
CRs-Fixed: 931250
2016-04-17 17:05:12 -07:00
Archana Ramachandran
d41c3ed58c qcacld-3.0: Add interface files for dynamic antenna selection
Add interface files for dynamic antenna selection feature

CRs-Fixed: 931250
Change-Id: Ieafe368a25c3a69e32cd5de6822ef84130528096
2016-04-17 17:05:12 -07:00
Chandrasekaran, Manishekar
d3cb4778fe qcacld-3.0: Fix potential static code analysis issues
Fix potential null pointer access during sap open
session and validation of the session id which could
be reported during static code analysis.

Change-Id: I6146c7223c586df06c08c76abd9e38a3c1ad1c4b
CRs-Fixed: 979960
2016-04-17 17:05:12 -07:00
Rajeev Kumar
8e3e283a82 qcacld-3.0: Add extended IBSS feature on qcacld-3.0
Add extended IBSS feature on qcacld-3.0

Change-Id: I7faaf646df363a74954defbef103afbb4b72af92
CRs-Fixed: 766181
2016-04-17 17:05:12 -07:00
Peng Xu
66162de29e qcacld-3.0: Fix firmware assertion caused by vdev delete
Currently the SME session is deleted during interface change API and
a new session is not opened until SAP is ready to start. This will
cause crash when scan API is invoked. This fix opens the SME session
after interface type is changed, so that it can be used to scan and
SAP later.

Change-Id: I3c4f8da14dbc70a3102fb1892bb101eb1a90a00d
CRs-fixed: 968572
2016-04-13 21:51:26 -07:00
Sandeep Puligilla
e087566368 qcacld-3.0: UMAC: Add support for 2.4Ghz HT40 STA
- Add support for 2.4Ghz HT40 STA.
- Add HT40 OBSS scan start and stop operation.
- Add support for extraction of OBSS scan paramters from beacon
  and probe response.

Change-Id: I58e8d72b8ee922f710af0474ed3efd0438fff3a7
CRs-Fixed: 947086
2016-04-13 21:51:26 -07:00
Kiran Kumar Lokere
9a733a7fcc qcacld-3.0: Remove WLAN_FEATURE_11AC feature flag
Remove WLAN_FEATURE_11AC feature flag

Change-Id: I8c521502a44f2e8a0647843cd7a972497e900c17
CRs-Fixed: 980682
2016-04-13 21:51:25 -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