Commit Graph

276 Commits

Author SHA1 Message Date
Krishna Kumaar Natarajan
052c6e6b30 qcacld-3.0: Fix layering violation in hdd_update_tgt_services
Fix layering violation in hdd_update_tgt_services by not accessing
pMac structure directly from HDD.

New SME API - sme_update_tgt_services() introducted to configure the
parameters in pMAC structure.

Change-Id: I7310e51001c5e17ed63730d7a86445548aa3d246
CRs-Fixed: 915267
2015-11-23 13:09:06 -08:00
Krishna Kumaar Natarajan
9f42170273 qcacld-3.0: Fix inappropriate use of linux-specific code
Fix inappropriate use of Linux-specific workqueue code and
data structures in WMA.

WMA is supposed to be os-agnostic code but it currently has
Linux-specific data declarations and code for ack_cmp_work.
This change set will convert the existing code to os-agnostic
representation.

Change-Id: I3260fa3b4b482c10272ac94ab10e14e40b8950f9
CRs-Fixed: 924421
2015-11-23 13:09:06 -08:00
Krishna Kumaar Natarajan
ea08e502e5 qcacld-3.0: Fix the incorrect usage of node in wma_cleanup_hold_req
Fix the usage of list node which was deleted before the usage in
wma_cleanup_hold_req function.

Change-Id: I8ee243fda511de71083ce7e631a21497f4f153c1
CRs-Fixed: 937267
2015-11-23 13:09:06 -08:00
Krishna Kumaar Natarajan
a5c53bd6c0 qcacld-3.0: Fix the usage of struct list_head for vdev_resp_queue
Fix the usage of linux-specific structures and functions by
replacing them with OS-abstracted types for vdev_resp_queue.

Change-Id: If2d4a9a1dffd59ec1db4b4aa572dfa453bfd0167
CRs-Fixed: 931094
2015-11-23 13:09:05 -08:00
Yue Ma
a5f06c0abd qcacld-3.0: CL 1414446 - update fw debug log file
qcacld-2.0 to qcacld-3.0 propagation

Add NAN feature follow up TX related dbglog IDs.

Change-Id: Id015d185837e917b3bf026a4a39528e7d80b2588
CRs-fixed: 938151
2015-11-23 13:09:05 -08:00
Yue Ma
38f7a1f730 qcacld-3.0: Reduce PM QOS latency tolerance time to minimum
qcacld-2.0 to qcacld-3.0 propagation

In order to improve driver load time, reduce PM QOS latency tolerance
time to minimum to avoid CPU enters aggressive PS during loading driver.

Change-Id: Ibacf933d379f37063d900d444de20493b94ebd90
CRs-fixed: 935267
2015-11-23 13:09:05 -08:00
Chandrasekaran, Manishekar
907c2af8d6 qcacld-3.0: Fix misspelled entry in the enum wifi_logging_ring_id
This is qcacld-2.0 to qcacld-3.0 propagation

Fix the misspelled entry RIND_ID_DRIVER_DEBUG to
RING_ID_DRIVER_DEBUG in the enum wifi_logging_ring_id

CRs-Fixed: 938286
Change-Id: I0d33128c6d11ecc9ff3d403931bfd6bfdbbb2b4a
2015-11-23 13:09:05 -08:00
Chandrasekaran, Manishekar
430ee2ec1f qcacld-3.0: Avoid waiting for SME messages while holding SME global lock
Avoid waiting for SME response messages while holding the SME global
lock. Currently a wait for 500ms happens in cds_handle_conc_multiport
after the holding the SME global lock. Because of this, the set hw mode
response posted by LIM is not processed by SME as SME would be waiting
for the lock.

Change-Id: Ib7890cb7124f5879316f46b1bf9f0ad3fb225665
CRs-Fixed: 939026
2015-11-23 13:09:05 -08:00
Chandrasekaran, Manishekar
eceb811625 qcacld-3.0: Add CDS APIs to manipulate connection update event
Add CDS connection manager APIs to manipulate the connection
update event. These APIs can be used to initialize, reset,
set and wait for connection update event.

Change-Id: I5689711d4bdc0e39b2456573158943ebda9cbc2a
CRs-Fixed: 939026
2015-11-23 13:09:05 -08:00
Chandrasekaran, Manishekar
0d814c7b3e qcacld-3.0: Move cds_get_bin.c to concurrency management files
cds_get_bin.h and cds_get_bin.c were derived from qcacld-2.0
vos_get_bin.h and vos_get_bin.c.  These files got their names
since at one time they housed the wrappers used to retrieve
binary files nv.bin, cfg.dat, and firmware.  But over time the
functionality to actually retrieve binary files (get_bin) has
been removed, and almost all that is left is concurrency
management functions.  So, moving the .[ch] functionality to
the right files.

CRs-Fixed: 932777
Change-Id: I4a26c304cc6b6224d0839c365e4006fd32270961
2015-11-23 13:09:04 -08:00
Chandrasekaran, Manishekar
22a7e1efe8 qcacld-3.0: Fix namespace collision in DFS module
Fix namespace collision of the DFS module
with userspace.

Change-Id: I4ca582e9cb5713238cbae3060005375682fc8806
CRs-Fixed: 935515
2015-11-23 13:09:04 -08:00
Mohit Khanna
ee9e80f8d4 qcacld-3.0: Increase default tx_queue_len for WLAN netdevice
qcacld-2.0 to qcacld-3.0 propagation

An increase in tx_queue_len of netdev to 3000 is giving us better TCP
TX performance. Hence, increasing its value from its default (1000).
This gives us about 30 - 40 Mbps of boost.

Change-Id: I68f26ac0f4a040b0bbf10dd571dae8e5316f16b3
CRs-Fixed: 927673
2015-11-23 13:09:03 -08:00
Mohit Khanna
e71e2264cd qcald-3.0: tweak sys params during high tx bandwidth case
qcacld-2.0 to qcacld-3.0 propagation

In hdd_cnss_request_bus_bandwidth function, the overall bus bandwidth
and rx bandwidth requirements are being determined based on tx and
rx packets. This change detects tx bandwidth required (high or low)
and sends WLAN_SVC_WLAN_TP_TX_IND indication to cnss-daemon which can
tweak system parameters depending upon TX bandwidth needed.

Change-Id: I3eec2e3f95fa32b191d905209a38cb6d48837c33
CRs-Fixed: 918529
2015-11-23 13:09:03 -08:00
Satish Singh
585b65d9bc Release 5.0.0.143
Release 5.0.0.143

Change-Id: I404e40080c263ce09755299a40ab3642d894cfcf
CRs-Fixed: 688141
2015-11-23 13:09:03 -08:00
Srinivas Dasari
6946a796b9 qcacld-3.0: LLStats- Don't wait for peerstats if there is no peer
qcacld-2.0 to qcacld-3.0 propagation

Firmware indicates the number of peers connected as part of iface
stats. If there are no peers connected, don't wait for the
peerstats and indicate the stats to host.

Change-Id: I32d04a5711adb5f924d120ee61064a178e753549
CRs-Fixed: 847743
2015-11-23 13:09:03 -08:00
Dhanashri Atre
9c898e7c00 qcacld-3.0: Replace panic with BUG_ON
qcacld-2.0 to qcacld-3.0 propagation

Register values are captured in the crash dump with BUG_ON.

Change-Id: I33500aea0769879d63b2e684dc898ba0e3b0b5a2
CRs-Fixed: 813402
2015-11-23 13:09:03 -08:00
Dhanashri Atre
cf475d2465 qcacld-3.0: Unmap HTT Receive Buffers
qcacld-2.0 to qcacld-3.0 propagation

In the HTT hash de-init function, the network buffers (skb) need to
 be unmapped before they are freed.

Change-Id: I879de6671d788f1ab99f7645ab424d56eafdbfd1
CRs-Fixed: 815265
2015-11-23 13:09:02 -08:00
Tushnim Bhattacharyya
bda664359b qcacld-3.0: dump the 3 port connection topology with new logs
The existing log for dumping concurrency information doesn't consider
DBS & also doesn't cover for various new combinations added newly.
Update logic for dumping DBS info & cover the new concurrency cases.

Change-Id: Id898bdc2c8aabfa70c99e6193c52f2723ded5c65
CRs-fixed: 935453
2015-11-23 13:09:02 -08:00
Tushnim Bhattacharyya
23168e484b qcacld-3.0: Remove wma_update_intf_hw_mode_params from vdev start rsp
The Tx & Rx SS & mac id update already been done by
wma_vdev_start_resp_handler. So, no need to update again by calling
wma_update_intf_hw_mode_params.

Change-Id: Ib9804bf0d30c75d95b14925a902fe167fa681be0
CRs-fixed: 935341
2015-11-23 13:09:02 -08:00
Bhargav Shah
f4fd97d004 qcacld-3.0: Variable over written in hdd_set_app_type2_parser.
qcacld-2.0 to qcacld-3.0 propagation

Currently in hdd_set_app_type2_parser, sscanf writes 4 bytes of data in
tcp_src_port and tcp_dst_port variable. The original size of variable
is 2 byte.

Update code to write appropriate size of data in variable.

Change-Id: Ifdbfa06da6cb7d0bfef4f4e105a6911950f1d6ad
CRs-Fixed: 859493
2015-11-23 13:09:02 -08:00
Chandrasekaran, Manishekar
78b98265b1 qcacld-3.0: Issue connect immediately if system is in required hw mode
Issue the connect command immediately when the system is already
in the required hw mode. Currently the connect command is issued
immediately only when the concurrent connection update succeeds,
i.e., only when a set hw mode succeeds. But, when the driver is
already in the required hw mode, the return value would not be
success and the connect command is not getting issued immediately.
Fixed this by checking the return value which indicates that the
driver is already in the required hw mode, and issuing the
connect command immediately.

Change-Id: I1ef2adf4d92953f47d36bdae41a9d7d8d559a203
CRs-Fixed: 936268
2015-11-23 13:09:02 -08:00
Leo Chang
e3e4944153 qcacld-3.0: ipa hw pipe force shutdown
qcacld-2.0 to qcacld-3.0 propagation

When the driver is in SoftAP mode when it is unloaded,
and if many clients are connected,
sometimes not all clients can gracefully disconnect.
In this case the IPA HW pipes are not cleaned up properly,
and subsequent pipe setup will usually fail.
To avoid a bad pipe configuration, before unloading driver,
check the pipe status and if the pipes are not closed properly,
shutdown the pipes forcefully.

Change-Id: Icc0543567423cc4b625140280be13ef733d7d67d
CRs-fixed: 886229
2015-11-23 13:09:02 -08:00
Rajeev Kumar
3ddf1c639f qcacld-3.0: Add length sanity check in iw_set_keepalive_params
Propagation from qcacld-2.0 to qcacld-3.0

Add length sanity check in iw_set_keepalive_params to avoid
stack over flow.

Change-Id: If59794d1b5f8efad2fe54844fab0e7cea9b1b983
CRs-Fixed: 932466
2015-11-23 13:09:02 -08:00
Jeff Johnson
56951330f8 qcacld-3.0: Avoid buffer overflow during extscan bucket fill
This is a qcacld-2.0 to qcacld-3.0 propagation.

Function hdd_extscan_start_fill_bucket_channel_spec() is used to
transfer EXTSCAN bucket parameters from a netlink message to an
internal representation.  A code analysis tool identified a potential
buffer overflow of the per-bucket channel list in this function.  In
reality this is a false positive since there is other logic which
limits the total number of channels across all buckets, and this logic
will prevent overflow of the channel list for a single bucket since
they use the same limit.

However this presents a code maintenance issue since a potential
overflow could be introduced in the future if a change is made to
allow the total number of channels across all buckets to exceed the
number of channels allowed in a single bucket.

To protect against this possibility, as well as make the code analysis
tool happy, add an additional check to make sure the per-bucket
channel list does not overflow.

Change-Id: Ifdf2de918d8b2c5a907e833e7bc42315b607e5a5
CRs-Fixed: 922047
2015-11-23 13:09:02 -08:00
Deepak Dhamdhere
29b3b2fd0c qcacld-3.0: modifications to SETDFSSCANMODE command
This is qcacld-2.0 to qcacld-3.0 propagation
When SETDFSSCANMODE is set to 0, it should now avoid DFS channels
altogether. Original implementation avoided DFS channel in roaming.
Now host code will first disable DFS channels and then follow
the original path.
Modifications to wlan_hdd_cfg80211_disable_dfs_chan_scan()
    - Keep validation of vendor command from NL.
    - Moved the DFS channel manipulation code to
      wlan_hdd_disable_dfs_chan_scan()
Call wlan_hdd_disable_dfs_chan_scan() in SETDFSSCANMODE processing.

CRs-Fixed: 778613
Change-Id: Ia2c00a6eb8d50e7962224375562a5b6417ba8bb2
2015-11-23 13:09:01 -08:00
Varun Reddy Yeturu
f6db67a9a1 qcacld-3.0: Increase the Wait for key timer value
qcacld-2.0 to qcacld-3.0 propagation

The wait for key timer value in the driver should
be greater than that of supplicant.
Hence increasing it to 15 seconds.

CRs-Fixed: 919403
Change-Id: I5d6e8d445ab9dcef73b923595f41564e0a6e3c6e
2015-11-23 13:09:01 -08:00
Varun Reddy Yeturu
062dc74d0d qcacld-3.0: Enable HI_RSSI feature only when connected to 2.4GHz AP
qcacld-2.0 to qcacld-3.0 propagation

1) Enable the feature only when connected to 2.4 GHz AP.
2) Modify the default values to reduce the scans and not impact power

CRs-Fixed: 817919
Change-Id: Idaff886cec558a06cf9341e47a8ce17b348ad72b
2015-11-23 13:09:01 -08:00
Varun Reddy Yeturu
5841476e50 qcacld-3.0: Enable HI_RSSI feature
qcacld-2.0 to qcacld-3.0 propagation

Enable the HI_RSSI feature from the code
instead of WCNSS_qcom_cfg.ini.

CRs-Fixed: 822475
Change-Id: Ic48e49e7042c06b1f0b2bf09d2d7ccae2d7cd9ad
2015-11-23 13:09:01 -08:00
Varun Reddy Yeturu
08efa3ad75 qcacld-3.0: In FTM mode stopping the MAC is not needed
qcacld-2.0 to qcacld-3.0 propagation

The MAC is not started upon FTM start.
Similarly stopping is not needed during FTM stop.

CRs-Fixed: 917306
Change-Id: I72ee4a58c88b54c1dad1b82f749274e0c2e8a9ce
2015-11-23 13:09:01 -08:00
Varun Reddy Yeturu
35b51a271f qcacld-3.0: Avoid PMKID and send correct MIC for CCKM+RSN scenario
qcacld-2.0 to qcacld-3.0 propagation

In the current design, PMKID is sent in RSN IE in reassoc req for
CCKM roaming.When AP receives CCKM IE and PMKID, it gets confused
and rejects the reassociation.So in case of CCKM+RSN, don't send
PMKID.
Also, in reassoc request, MIC was going 0 in CCKMIE.This MIC is
calculated by calling platform driver API.When this API returns
SUCCESS then result is copied in MIC buffer but if this API
returns EINPROGRESS/EBUSY, then driver wait for the event and once
the event is completed it does not copy the result in MIC buffer.
So changes are done to copy this result in MIC buffer in case of
BUSY/INPROGRESS status.

Change-Id: Ide74db250aa5c129fa223582be830c15f34cfb16
CRs-Fixed: 763969
2015-11-23 13:09:01 -08:00
Varun Reddy Yeturu
61ce89cfd8 qcacld-3.0: Cleanup logging
qcacld-2.0 to qcacld-3.0 propagation

Some of the logs are misleading to believe that there are
some memory related issue which infact is not. Cleanup the
logs to convey the exact message that has to be conveyed for
those scenarios

CRs-Fixed: 907715
Change-Id: Iaab688eb9b8b19705b3d87c4efe1c7ef29ccf613
2015-11-23 13:09:01 -08:00
Mukul Sharma
06adf26974 qcacld-3.0: Prevent null data access
qcacld-2.0 to qcacld-3.0 propagation

In DFS mode, scan req completed through work item
which is async method and may lead to null
pointer access during driver unload.
So as part of fix null check are put in place
to avoid null data access.

Change-Id: I1f2255c1ad6e3e881626a32384b9badde1b255fc
CRs-Fixed: 894741
2015-11-23 13:09:00 -08:00
Mukul Sharma
bfd19ba1ee qcacld-3.0: Handle excessive logging during sta select queue
qcacld-2.0 to qcacld-3.0 propagation

As a part of unload hdd is stopping the netdev queue.
But still N/W layer 3 is calling the select queue netdev
ops, where error print appears excessively.
As a part of this fix sta select queue netdev ops need
to validate Hdd context to take care of SSR and load
/ unload cases.

Change-Id: I087f50ac9e59c3e181bde54f2041f9dda3177266
CRs-Fixed: 857429
2015-11-23 13:09:00 -08:00
Satish Singh
abf552f8a3 Release 5.0.0.142
Release 5.0.0.142

Change-Id: Ia33b8a91e1cbbba1b620c838e55fcf1b7f464dde
CRs-Fixed: 688141
2015-11-23 13:08:12 -08:00
Satish Singh
a2ae5c115c Revert "qcacld-3.0: Enable gEnableTxSUBeamformer by default"
This reverts commit bff91464a2c38ed4ed0d3aa537d24372a6dd984a.

Change-Id: I84c07c9b2214a2d59cf35d9f0ee2deb5e838caf8
2015-11-23 13:08:12 -08:00
Satish Singh
6774ed099c Revert "qcacld-3.0: HT20 Protection Mode"
This reverts commit e85300d7533a347dd7e45919293285038db00a82.

Change-Id: Ief91957c0ba7ee1c2efc155f2335d73c37f73c6c
2015-11-23 13:08:11 -08:00
Satish Singh
f69bdced74 Release 5.0.0.141
Release 5.0.0.141

Change-Id: I210e5344c902caf66eb4debde39c17441d1e521d
CRs-Fixed: 688141
2015-11-23 13:08:11 -08:00
Edhar, Mahesh Kumar
394c3543c5 qcacld-3.0: Avoid calling memory allocation function for allocation size 0
qcacld-2.0 to qcacld-3.0 propagation

Currently we are calling memory allocation function to allocate memory for
FT ies even though FT ies length is 0.
Due to above behavior we are seeing unnecessary memory allocation failure
error prints.
Change made to check for FT ies length before calling memory allocation
function.

Change-Id: I3f9ddee1d66f51088526f6d370c83697178be925
CRs-Fixed: 930118
2015-11-23 13:08:11 -08:00
Edhar, Mahesh Kumar
4f660677dc qcacld-3.0: Properly update specturum channel list
qcacld-2.0 to qcacld-3.0 propagation

Currently for ACS,one to one correspondence between channel
number and index of Sap specturum structure is desired.

But the correspondence is broken in case of channel in NOL list
or if the DFS channels are not allowed.

In case of channel in NOL list or if DFS channel not allowed,
channel number is incremented but index of structure doesn't change.

As a part of fix, made sure that one to one correspondence is
maintained.

Change-Id: I05cbe92e2657d96e271b402b9fdbe41a32c7080d
CRs-Fixed: 922865
2015-11-23 13:08:11 -08:00
Edhar, Mahesh Kumar
d028db72ad qcacld-3.0: Change to address memory leak
qcacld-2.0 to qcacld-3.0 propagation

As per the current implementation during join timer start failure scenario,
pMlmJoinReq assigned to NULL with out freeing the memory resulting in
memory leak.

change made to release the memory in failure scenario.

Change-Id: I3f37f45129baec76671caff09790bfb70bf01208
CRs-Fixed: 930553
2015-11-23 13:08:11 -08:00
Govind Singh
c5ce2905e5 qcacld-3.0: Free rx_buff_list in htt_detach
qcacld-2.0 to qcacld-3.0 propagation

rx_buff_list is not getting freed in
htt_detach and causing memory leak.
Change-Id: Ia9d6660674c5b4570d337cb66995fc2449145d59
CRs-Fixed: 918223
2015-11-23 13:08:11 -08:00
Govind Singh
d79e134de3 qcacld-3.0: debug info for full reorder offload
qcacld-2.0 to qcacld-3.0 propagation

Log last 1K physical addresses and corresponding virtual addresses of the
Rx buffers.

Change-Id: I2bb4502fdd92b362199b579ec3cceaa691d4691f
CRs-Fixed: 864569
2015-11-23 13:08:11 -08:00
Govind Singh
edc5cda7af qcacld-3.0: Fix STA state handling in case of WEP
qcacld-2.0 to qcacld-3.0 propagation

Handle STA State in hdd_RoamSetKeyCompleteHandler for WEP case.
In WEP case Key are set in following order.
1)Group key
2)Unicast Key
In WEP case STA was moved to AUTHENTICATED prior to
setting the unicast key and it was resulting in sending
few un-encrypted packet. Now STA state will be moved to
AUTHENTICATED after we set the unicast and group
key in WEP case.

Change-Id: I7471bc76b10be31c4a2dbb52286c7f808fa27306
CRs-Fixed: 906555
2015-11-23 13:08:10 -08:00
Naveen Rawat
bace351fef qcacld-3.0: Allow minimum value for dwell time for Ext Scan to be 0
This is qcacld-2.0 to qcacld-3.0 propagation

Currently min time for dwell time for ext scan is non-zero while it
is zero for all other type of scan. This patch makes min value for
dwell time for ext scan as zero and consistent with other scans.

Change-Id: I7b6f3681c56918af7cdc381d25d6b625a5bdbda3
CRs-Fixed: 923458
2015-11-23 13:08:10 -08:00
Naveen Rawat
8928da9791 qcacld-3.0: Do not advertise 80MHz/160MHz capabilities in 40/20MHz
This is qcacld-2.0 to qcacld-3.0 propagation

Do not advertise the short GI capability for 80MHz and 160MHz
if the  operating channel width is 20MHz or 40MHz.

Change-Id: I93f0b2e94e27b50fa0baa2a263fc866ba3807fb3
CRs-Fixed: 908743
2015-11-23 13:08:10 -08:00
Naveen Rawat
3e8322c055 qcacld-3.0: Set channel width for TDLS link on base channel
This is qcacld-2.0 to qcacld-3.0 propagation

The htSupportedChannelWidthSet of the TDLS link on base channel
should be less than or equal to channel width of STA-AP link.
The parameter pStaDs->htSupportedChannelWidthSet represents the
channel width of TDLS link on base channel.
psessionEntry->htSupportedChannelWidthSet represents the channel
width set of STA-AP link.
So fill the pStaDs->htSupportedChannelWidthSet from
psessionEntry->htSupportedChannelWidthSet.

Change-Id: I7fe3f2f449d83f5d6f01adce3a25d8031dfbeb48
CRs-Fixed: 800031
2015-11-23 13:08:10 -08:00
Naveen Rawat
10ccf878f9 qcacld-3.0: Fix race condition between WMI control RX and driver unload
This is a qcacld-2.0 to qcacld-3.0 propagation

Don’t unregister the event in LIM cleanup since it will be take care
by WMI service close. Also in tlshim_mgmt_rx_wmi_handler, add driver
load/unload check to avoid processing any WMI_MGMT_RX_EVENTID event
even the handler is not NULL

Change-Id: I72b53b614218f26e874c964a0d8b0affba6cda79
CRs-Fixed: 904490
2015-11-23 13:08:10 -08:00
Chandrasekaran, Manishekar
3f6a72c09e qcacld-3.0: Check for concurrency rules before P2P CLI connection
Ensure that concurrency rules are validated before initiating
a P2P CLI connection.

Change-Id: I6ee8d03f2bde9b419391551c0ca988b3672eb089
CRs-Fixed: 935783
2015-11-23 13:08:10 -08:00
Satish Singh
18f12aac69 Release 5.0.0.140
Release 5.0.0.140

Change-Id: I4f54ce6df92b097ad33f3d6f97f9352bac4bce28
CRs-Fixed: 688141
2015-11-23 13:08:09 -08:00
Chandrasekaran, Manishekar
ef70c0dd64 qcacld-3.0: Set HW mode before issuing connect for Hidden SSID
Set the HW mode if needed before connecting to an SSID that
is hidden.

CRs-Fixed: 928208
Change-Id: Ibefd207327da1b85ae26a91afd27fc6baf98cf14
2015-11-23 13:08:09 -08:00