Commit Graph

119 Commits

Author SHA1 Message Date
Poddar, Siddarth
1ab0a3db60 qcacld-3.0: Fix memory leak when SSR is triggered
qcacld-2.0 to qcacld-3.0 propagation.

Packets are not freed from cache buffer and causes memory
leak in SSR case. Flush cache RX frame queue to avoid this memory leak.

Change-Id: Idd9edde6fdb3b9ff3ecbe7d8139f9a66468b70af
CRs-Fixed: 1051019
2016-10-03 17:33:01 -07:00
Naveen Rawat
8cc23b0d9a qcacld-3.0: Update host DBS policy manager in roaming operations
Firmware DBS mode is updated during firmware based roaming. Same change
is reflected in the host policy manager. Process hw_mode TLV in roam sync
indication event. Update cds concurrency policy after roaming. Handle
exceptions for ROAM_ABORT and HO_FAIL conditions.

Change-Id: I826c6766f73441256e5946d3167966e645f23430
CRs-Fixed: 1044336
2016-10-03 16:43:23 -07:00
Krunal Soni
499d364340 qcacld-3.0: Fix dwell-time when 2G-SAP is active and DBS is supported
Old generation of projects, which had only one MAC, are restricted to
use 28ms of fix active and passive dwell time when SAP session is active
but with new generation of projects, which can have two MACs, are
permitted to use longer active and passive dwell time when SAP session
is active on 2G band and DBS is supported.

Change-Id: I2638d9b7a3677c3f0b329ed8109d01baa2cffd68
CRs-Fixed: 1071353
2016-09-28 09:40:21 -07:00
Komal Seelam
78ff65a8c6 qcacld-3.0: Add NL event to indicate SSR shutdown is triggered
propagation from qcacld-2.0 to qcacld-3.0.

On Dual-WiFi Platforms, Radio Device 1 (R1 - SDIO interface) should
be functional only if Radio Device 0 (R0 - PCIe interface) is active.
If SSR is indentified on R0, indicate userspace application to unload
R1 on this event and Reload R1 once R0 SSR and reload is complete.

CRs-Fixed: 1046397
Change-Id: I8a06b569fe536bb93dbb37bdb289295bfce62f6e
2016-09-26 04:49:39 -07:00
Padma, Santhosh Kumar
9509135262 qcacld-3.0: Add timer related messages at the top of PE queue
qcacld-2.0 to qcacld-3.0 propagation

Currently when PE queue is full, timer message gets queued at the
end of PE queue even when timer gets expired in time. This causes
delay in processing timer messages. This delay can be maximum if
timer message is the last message in PE queue. This can take substantial
amount of time to process timer message as timer message will be
processed only after processing of other messages. For instance,
if timer message processing takes substantial amount of time during
scan, it can delay sending max channel timeout and may result in
scan timeout. So, add timer related messages at
the top of PE queue to process those messages immediately.

Change-Id: Iccaf0075c97a7edd2c1de1d168f1a4e7d01381c2
CRs-Fixed: 936179
2016-09-21 17:01:47 -07:00
Naveen Rawat
03e8d95c9e qcacld-3.0: Send HT/VHT CAPs IE to firmware per band
Send HT/VHT CAPs IE to firmware per band. This will allow certain
features like LDPC to be configured per band.

Change-Id: I21c83af984f9be3ade46121ef148b52568c3ad0f
CRs-Fixed: 1055774
(cherry picked from commit 2a94c5666ea0c66477d0086c8d5a401db8e4afcf)
2016-09-11 16:49:46 -07:00
Manjunathappa Prakash
fff753c12e qcacld-3.0: Add option to control Rx flow steering
Add ini configuration to enable/disable Rx flow steering.
Add HTT message to configure RX flow steering.

Change-Id: I80aab262c754716b28bfdae561d1cbf5e1d38e4d
CRs-Fixed: 1055179
2016-09-11 15:23:53 -07:00
Anurag Chouhan
04dbf6de4d qcacld-3.0: Disable RA filter when BPF is enabled
qcacld-2.0 to qcacld-3.0 propagation.

In current implementation, RA filter is enabled irrespective of the
BPF filter status. This change checks if BPF configuration in ini as
well as in target config is enabled, then RA will be disabled.

Change-Id: I85df0828af665d2bcc13c865b0ba40ebf882fffe
CRs-Fixed: 1058884
(cherry picked from commit 8dda6e83eb85ef9f0342ab23954e093c6dfebe2e)
2016-09-10 19:06:41 -07:00
Sachin Ahuja
0c6d507d28 qcacld-3.0: Update the MAX Tx Power cap to 30dbm
Currently Host configures MaxTxPower as 22dbm
during join which fails the TRP requirement to meet
23dbm.
Change the code to configure the max tx Power to 30dbm
in FW during join.

Change-Id: I926288972e17a9276af2744d6a070b82333d5242
CRs-Fixed: 1023616
(cherry picked from commit 206e7dd1e735a3ff0a94f2d978b606dcf87e08fd)
2016-09-10 19:05:59 -07:00
Manishekar Chandrasekaran
1004ad9cae qcacld-3.0: Check for active STA/SAP connections before SAP channel switch
Check for active STA and SAP connections before switching the operating
channel of SAP to a DFS channel. SAP moves to a DFS channel only if
this movement ensures that the SAP does not go off the DFS channel which
is needed for continuous radar detection.

The existing check looks for the number of open sessions. But these
sessions may or may not be active. So, replace this check with suitable
APIs which will check for active sessions.

Change-Id: Ib37427a9c62a785abb5e22c14ec23f09e60bf4b7
CRs-Fixed: 1063212
(cherry picked from commit d470e33f6d390b84dd98892a1b4526fd45348c2b)
2016-09-10 19:05:28 -07:00
Anurag Chouhan
01cfa4e859 qcacld-3.0: Remove ani_global.h from qca-cmn
Currently ani_global.h is included in qca-cmn,
The change removes ani_global.h and there are
corresponding changes in Driver

Change-Id: I59684e475406386e250635bde88390797835c95f
CRs-Fixed: 1012452
2016-09-10 14:19:48 -07:00
Arun Khandavalli
55f890bb97 qcacld-3.0: Send De-init sequence to firmware when the modules are not enabled
With the new statemachine  cds start/stop will not be invoked without an
interface up from upperlayer. As part of cds stop host sends de-initialization
sequence to firmware, If there is no interface up from the upper layer and
driver gets removed, host driver dosent send the de-init
inidication to firmware and starts closing its modules because of this
fw & host are out of sync.

To migitate the issue send the de-init sequence during if the modules are
opened but not enabled.

Change-Id: Ice85f995a870e69e52b4fcf2fac13761bf1a63a1
CRs-Fixed: 1060893
2016-09-02 18:24:20 -07:00
Manishekar Chandrasekaran
b82554d382 qcacld-3.0: Map internal PCL weight to the FW weight representation
Map the internal PCL weights to the weights that the FW can
understand.

Change-Id: Ib7b2a67305ddec991fe94016cea09a834e5b4cb5
CRs-Fixed: 1050438
2016-08-27 15:34:44 -07:00
Krunal Soni
0193b6f143 qcacld-3.0: Provide support enable RX LDPC in certain cases
In following conditions RX LDPC support needs to be enabled
1) when STA is coming up in 5G band
2) when IBSS is coming up in 5G band

for anyother cases RX LDPC needs to be disabled. If user has
choosen RX LDPC to be disabled from INI file then it needs to
be disabled for all the cases including above mentioned cases.

To achieve this, take the intersection of global, INI, and harware
specific RX LDPC settings.

Change-Id: Iae10aa4a8c0931cdb796cd9c8ff558d4bc8e0aed
CRs-Fixed: 1050004
2016-08-19 18:52:48 -07:00
Amar Singhal
604ba6cf04 qcacld-3.0: Modify DFS region for KR and CN
KR and CN have different DFS regions than what kernel provides.
Assign the correct DFS regions for KR and CN. Also use "enum
dfs_region" as the parameter type in functions that have
dfs region as parameter.

CRs-Fixed: 1047214
Change-Id: I2ddd67d3c29a448dd2a1d3a63113750783fb6731
2016-08-19 11:03:51 -07:00
Manishekar Chandrasekaran
d3ee9756dc qcacld-3.0: Ensure MAS commands to be made PDEV specific
Make MAS (MCC Adaptive Scheduler) commands to be PDEV
specific.

Two instances of OCS (Off Channel Scheduler) can exist
in the FW (one per MAC) and FW provides the option of
enabling and disabling MAS on a per MAC basis. But,
Host does not have enable/disable option for individual
MACs. So, the agreement with the FW is for the Host to
send down a ‘pdev id’ of 0. When ‘pdev id’ of 0 is used,
FW treats this as a SOC level command and applies the
same value to both MACs. So, irrespective of the value
of ‘WMI_SERVICE_DEPRECATED_REPLACE’ in the WMI service
bit map, the pdev id needs to be ‘0’ (SOC level) for
the WMI command
WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID.

WMI command WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID to set
the MCC quota is sent down as channel – value pairs.
The value being channel time quota and the channel being
sent down is a home channel. The additional requirement
from FW is that all the channels in a single WMI command
belong to the same MAC. FW asserts if the WMI command
mixes and matches home channels associated with
different MACs. So, although the PDEV ID is not part of
the WMI command struct, the cmd is in a sense PDEV
specific.

There is no change in the WMI command
WMI_RESMGR_SET_CHAN_LATENCY_CMDID to make it PDEV
specific since this WMI command always send only one
channel-latency pair to the FW. So, there shouldn’t be
any problem of FW receiving home channels associated
with different MACs, for this WMI command.

Change-Id: Ie22800e07bbeef65c43f9171de828533b982a06b
CRs-Fixed: 1052652
2016-08-18 09:11:47 -07:00
Nirav Shah
c657ef50ea qcacld-3.0: Changes to update mac_id in packetlog
Changes to update mac_id in packetlog header
for DBS.

Change-Id: I602d399e1ef34077b5d7bfc867fb60678ed8612c
CRs-fixed: 1047382
2016-08-18 00:41:01 -07:00
Naveen Rawat
64e477ea40 qcacld-3.0: Add support for 5/10 MHz for STA and SAP role
Add support for 5/10 MHz channel width for STA and SAP role. To
enable/disable feature, following ini parameter will be used:
 * gSub20ChannelWidth=0: indicates do not use Sub 20 MHz bandwidth
   this is also the default value.
 * gSub20ChannelWidth=1: Bring up SAP/STA in 5 MHz bandwidth
 * gSub20ChannelWidth=2: Bring up SAP/STA in 10 MHz bandwidth

Change-Id: Ic6d534dc1eae60fcd2fb7533c934b9ea28e6dd78
CRs-Fixed: 1013211
2016-08-13 14:07:29 -07:00
Manishekar Chandrasekaran
9e8c7be23d qcacld-3.0: Support for pre CAC on SAP for user requested channel
Add support for pre CAC on SAP for the user requested channel.
The reason for the requirement is to have SAP operations without
interruptions due to CAC. After starting SAP on the 2.4GHz
channel, the driver will start a pre CAC on the 5GHz DFS channel
requested. If no radar is detected, SAP is expected to switch
from the 2.4GHz channel to the DFS channel mentioned in the pre
CAC request. If radar is detected SAP will continue to operate on
the 2.4GHz channel. To provide the pre CAC channel to the driver,
vendor commands/attributes are used .

Change-Id: I4cf4bb5a861eea05f37fafb3bf35d327f5377aab
CRs-Fixed: 1045242
2016-08-13 14:07:02 -07:00
Arun Khandavalli
fae9294564 qcacld-3.0: Dynamic Mode changes
Currently MCL driver loads/unloads when user tries to
Switch On/Off from GUI and load process is different
for the static and dynamic built driver.
With this feature, we shall have a uniform behavior for
static and dynamic driver,  where the driver will be
loaded once and unload never.
Mode switch for different modes is supported via sysfs entries.

Change-Id: Ica49dd289d7f1f0ad0c56af76bd7bcfeca433a2e
CRs-Fixed: 1049218
2016-08-05 11:24:29 +05:30
Amar Singhal
8b2e3f8026 qcacld-3.0: Regulatory updates
Change 2G regulatory domain for Pakistan. Add country Namibia.
Add regdomain APL14_WORLD and APL14.

Change-Id: I5ebb27b2ded4548c107331d22e962c4c2d2c3bd5
CRs-Fixed: 1023830
2016-07-29 13:05:09 -07:00
Kabilan Kannan
163fd0b20b qcacld-3.0: Add support for TDLS over P2P clients
P2P data traffic can be improved by creating TDLS
connection between two P2P clients.
Add changes in the host driver to enable TDLS
connection between two P2P clients.

Change-Id: I2a9fe21bb3be160428ab5d8f04281802faa5f21b
CRs-Fixed: 999560
2016-07-28 17:32:05 -07:00
Mohit Khanna
b0886d6918 qcacld-3.0: Fix use of spinlock for pSchedContext->affinity_lock
In existing implementation, affinity lock is implemented as a spinlock.
The set_cpus_allowed_ptr API under the spinlock can cause the processor to go to
sleep. This is incorrect and causes a KERNEL bug when invoked.

Correct the issue by replacing spinlock with a mutex.

Change-Id: I844c19d18e6f71916592c4b35ff5f1a2b6cdbaa0
CRs-Fixed: 1046463
2016-07-28 15:35:03 +05:30
Arun Khandavalli
4b55da70d6 qcacld-3.0: Refactor hdd callback (de)registration into a single function
As part of "load once unload never" architecture, cds modules can
be opened and closed several times. Refactor the hdd callback registration/
de-registration into hdd_register_cb/hdd_deregister_cb which can
be invoked during the open/close of the modules respectively.

Change-Id: I2da9018ff2fa6188e61e007c896bc13e8fddcb7d
CRs-Fixed: 1026817
2016-07-28 15:33:50 +05:30
Arun Khandavalli
c811dccdac qcacld-3.0: Create ini config structures for cds
Update ini configuration parameters for cds modules in the driver,
this helps in avoiding layer violation of using the hdd context in
cds modules.

Change-Id: Iff149cc51ea5eacae4f84d83c51d0ed63834ba50
CRs-Fixed: 1026817
2016-07-28 15:33:17 +05:30
Anurag Chouhan
d939d3decd qcacld-3.0: Update correct authtype during connect
Currently the authtype is not getting updated properly in case
of wpa2psk security mode, this change will update the correct
auth type

Change-Id: I11d15457b375ed2803420cfd08070a7bbc181029
CRs-Fixed: 1044021
2016-07-20 07:22:58 -07:00
Anurag Chouhan
5de8d17671 qcacld-3.0: Add BSS status caching
Add BSS status caching to get the BSS Information
when disconnect happens.

Change-Id: I41b74700b161277bc454d8bb8978f4e1e92faea8
CRs-Fixed: 1013475
2016-07-15 04:23:12 -07:00
Tushnim Bhattacharyya
f44a9d86cd qcacld-3.0: Fix chain mask & nss in policy manager connection table
The chain mask in policy manager connection table needs to be updated
with the capability that HW advertises at load time intersected with
related ini configuration on host. The dynamic change of the chain
mask & NSS values will be handled only by chain mask manager in
firmware.

Change-Id: I250668c93920a63c9278aefe93491cb5aaa91ca7
CRs-Fixed: 1037816
2016-07-12 10:02:49 -07:00
Chandrasekaran Manishekar
54521c86b2 qcacld-3.0: Fix compilation error on disabling MCC to SCC switch feature
Fix compilation error on disabling the MCC to SCC switch feature flag
FEATURE_WLAN_MCC_TO_SCC_SWITCH.

Change-Id: Id741f86d2e514c5dc5bfa8164ff37f56cd1ca630
CRs-Fixed: 1037396
2016-07-11 06:37:51 -07:00
Nirav Shah
3bbfa51404 qcacld-3.0: wlan rx thread set affinity when need high bandwidth
With dual cluster system, to reduce cache miss issue and for
lower latency, RX thread should run on big cluster.
When high bandwidth detected by WLAN host driver,
RX thread should move to big cluster. And low
throughput required, RX thread should go to little core CPU
to reduce power consumption.
CPU affinity should controlled by Online CPU and throughput
requirement. Even high throughput is required, if PERF CPU is
not online, RX thread cannot attach to PERF CPU.

Change-Id: I85591d3c74973c40388a04353b1d32e009a46ec1
CRs-fixed: 1026370
2016-07-06 13:30:26 -07:00
Archana Ramachandran
080404c945 qcacld-3.0: Skip 2GHz off channels when TDLS base channel is in 5GHz
qcacld-2.0 to qcacld-3.0 propagation

In antenna sharing platform, if TDLS operates in the 5G band base
channel with NSS 2x2, it cannot accommodate 2G off channels in
TDLS operation. So in that scenario, 2G channels should be
skipped from TDLS off channels list.
Update driver to remove 2G band channels from supported off
channel list, when TDLS operates in 5G band base channel
with NSS 2x2.

Change-Id: I04aa00e1cecfae86570aa89d1743b54d55b2dc84
CRs-Fixed: 968206
2016-06-29 18:41:27 -07:00
Manishekar Chandrasekaran
1db3abe6cc qcacld-3.0: Use mandatory channel list during SAP operation
Ensure that the SAP operations make use of the mandatory
channel list during SAP channel selection with INI option
'gWlanMccToSccSwitchMode' set to the value of '4' which
will make use of this channel list while trying to avoid
MCC scenarios.

Change-Id: Ia43ee1d2c598c81a5ef0add9246c400577f6f694
CRs-Fixed: 1014128
2016-06-27 18:19:59 -07:00
Kabilan Kannan
36090ce8b4 qcacld-3.0: Add TDLS connection tracker in WLAN host
TDLS implicit trigger mode works based on data traffic without
user intervention. When the traffic meets setup threshold,
TDLS connection is initiated and when the traffic
reaches a teardown threshold/rssi TDLS connection
is torn down.
Add TDLS connection tracker in the host driver to determine,
when to initiate and teardown the TDLS connection based
on data traffic.

Change-Id: I995ea9c391372515faabe5086b638f254b6b93d7
CRs-Fixed: 996988
2016-06-24 14:30:49 -07:00
Sandeep Puligilla
1cc23f6e37 qcacld-3.0: Obtain channel params from CDS
All the regulatory and channel management functionality
moved to CDS.

Cleanup the SME redundant functionality related to channel
parameters generation and update all the code references
to CDF API's

Change-Id: Iaf4e15b4ebb7107d8bbf7a54e42f9ea9358dcdaf
CRs-Fixed: 994562
2016-06-23 12:28:15 -07:00
Nirav Shah
1da7768385 qcacld-3.0: Remove PROTO_TRACE feature
Remove PROTO_TRACE feature and add MGMT packet
logging in DPTRACE.

Change-Id: I9bc019bb03e703cb8044cb5d4290fd438b1c3e69
CRs-Fixed: 1008087
2016-06-14 14:28:41 -07:00
Manishekar Chandrasekaran
c67b2bb16c qcacld-3.0: Restart SAP through (E)CSA on channel avoidance event
Restart SAP through (E)CSA on receiving channel avoidance event
from FW instead of doing a hard restart. This provides the
advantage of not disconnecting the connected clients.

Change-Id: Ibaa74dc8d7c75ed793faa418ee8c179b4210b35e
CRs-Fixed: 1020771
2016-06-10 11:30:54 -07:00
Ryan Hsu
ceddceb391 qcacld-3.0: Add support for cnss logger module
qcacld-2.0 to qcacld-3.0 propagation

CONFIG_CNSS_LOGGER is introduced to move the logging feature from
CLD driver to kernel module.

This change will mainly benefit for two things for CLD driver.

    - To support for dual wifi driver instances and also
      future plan of moving out the logging thread and buffer
      management to the kernel module.

    - While debugging the critical feature that triggers the
      autoshutdown and SSR, the log buffer in the CLD driver will
      be lost after the driver restart or unload.

The CLD driver will register itself to the cnss logging module and
get the radio index as the indentification for rest of the operation.

Also the message sent from CLD driver to usespace need to be packed with
struct tAniNlHdr; and the hddctx.radio_index need to be filled along with
the message, so that usespace can differentiate the message.

Change-Id: I7ea6cdefac0916b9d4dd76da175607bf7169a8fa
CRs-fixed: 995073
2016-06-01 10:49:09 -07:00
Amar Singhal
046eb8a260 qcacld-3.0: Fix calculation of WLAN_PHY_MODE
Fix the calculation of WLAN_PHY_MODE from dot11mode and channel width.
Take care of all possible values of dot11mode and channel width.
Remove the usage of vht_capable parameter. Also remove the
un-necessary usage of CONFIG_160MHZ_SUPPORT.

Change-Id: Ibc263aed99b0b948f60ac6f1bfe72d16fda5c20e
CRs-Fixed: 1009720
2016-06-01 10:45:19 -07:00
Yuanyuan Liu
d416dbd274 qcacld-3.0: Remove platform dependency for crypto
Use OS standard crypto APIs instead of platform wrapper APIs.

CRs-Fixed: 1014363
Change-Id: I359b50890ec757c294cac405b46881b44881e8c8
2016-05-23 11:45:52 -07:00
Amar Singhal
0e116c6d33 qcacld-3.0: Add new country XA
Add new user country XA to regulatory tables. This is an 'engineered'
country for Japan that has channels 5150-5230 marked as passive.

Change-Id: I6c582bc0635ecae2c37b98d761f72f222c408d2f
CRS-Fixed: 1007217
2016-05-06 17:01:47 -07:00
Mohit Khanna
ebf8a8640e qcacld-3.0: Fix use-after-free crash for trace buffer
There is a race condition between hdd_disconnect_handler and
cds_pkt_proto_trace_close while trying to update the trace_buffer.

Fix race condition by calling cds_pkt_proto_trace_deinit (formerly
cds_pkt_proto_trace_close) at the end of cds_close, after all the threads
have been torn down and other modules have been shut. Similarly,
call cds_pkt_proto_trace_init at the begining of cds_open, so it gets
initialized before any of the threads are up or any modules have been
initialized.

Change-Id: If9e2d6a360d814b7f1b0c92789dc0fd3fe3d974b
CRs-Fixed: 1009162
2016-05-04 21:19:39 -07:00
Abhishek Singh
5ea86536ef qcacld-3.0: Add scenario based BUG report
qcacld-2.0 to qcacld-3.0 propagation

Change to initiate BUG report in case of fatal event
Add INI support to Enable/Disable it.

The fatal event handled are as below:
 - Roaming failed after successful preauth.
 - SME command timeout.
 - PE defer queue is full.
 - CDS run out of message wrapper.
 - HDD level wait for event timeout.

CRs-Fixed: 912560
Change-Id: I64dff8b7d0836340ce3bec5f5985d1919b600c23
2016-05-04 21:18:44 -07:00
Abhishek Singh
437606ac2d qcacld-3.0: Add diag event for TDLS management frame tx and rx
qcacld-2.0 to qcacld-3.0 propagation

Add diag event for EVENT_WLAN_TDLS_TX_RX_MGMT. This event contains
TDLS action frame type, subtype and if its rx or tx.

Change-Id: I6ec744518b7a391e4511c503cb858d532ef11322
CRs-Fixed: 934447
2016-05-04 21:18:26 -07:00
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
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
Mohit Khanna
0696eef313 qcacld-3.0: Fix RX data, peer unmap race condition
During peer unmap handler, while the peer is being deleted, there is a
possible race condition if the OL Rx thread is processing RX packets
and accesses the peer structure after its contents have been nulled.

Remove race condition by -
* Flush all RX packets in ol_txrx_peer_detach function which happens
  before peer unmap event is received from firmware
* Avoid use of peer data structures (for example peer->local_id)
  outside of peer->info_lock in ol_rx_data_cb function. Use cached
  local copies of peer data structures instead

Crash signature due to the race condition:

wlan: [0:E :CDF] TXRX: Deleting peer ffffffc012fd13c0
(02:a0:c6:81:f8:c0)
Unable to handle kernel paging request at virtual address 400000001
pgd = ffffffc0018b4000
[400000001] *pgd=0000000000000000, *pud=0000000000000000
Internal error: Oops: 96000005 [#1] PREEMPT SMP
Modules linked in: wlan(O) [last unloaded: wlan]
CPU: 1 PID: 29506 Comm: cds_ol_rx_threa Tainted: G        W  O
3.18.20-g5222edf-13780-g2219ed2 #1
Hardware name: Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8996 CD (DT)
task: ffffffc09350d400 ti: ffffffc0556a4000 task.ti: ffffffc0556a4000
PC is at hdd_rx_packet_cbk+0x84/0x224 [wlan]
LR is at hdd_rx_packet_cbk+0x48/0x224 [wlan]
pc : [<ffffffbffdd55b5c>] lr : [<ffffffbffdd55b20>] pstate: 80000145

Change-Id: I4b32313024ec214f33dcdcfc401aadfa8af9d692
CRs-Fixed: 1002081
2016-04-21 20:23:50 -07:00
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
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